
「何が違うの?」」
C#やVisual Basicといったプログラミング言語を学び始めると、必ずと言っていいほど**「.NET(ドットネット)」**という言葉に出会います。
そして、さらに調べていくと、「.NET Framework」や「.NET Core」、最近では単に「.NET 5 / 6 / 7…」といった言葉が出てきて、「一体何が何だか分からない!」と混乱してしまう方も多いのではないでしょうか。
これらはすべて、Microsoft社が開発した、アプリケーションを開発・実行するための**「プラットフォーム(土台)」**です。しかし、その誕生の背景や特徴、そして「できること」は大きく異なります。
-
.NET Framework:Windows全盛期に生まれた、Windows専用の、伝統的で安定した巨大な開発基盤。
-
.NET Core:クラウドと多様なOSの時代に対応するために生まれた、Windows以外でも動く、新しくてスリムで速い開発基盤。
この記事では、IT知識ゼロの初心者の方でも、この2つの「.NET」の決定的な違いがわかるように、わかりやすく歴史的なストーリーを交えながら解説していきます。Microsoftの技術戦略の大きな転換点を理解し、現代の開発の常識を掴みましょう。
-
それぞれの誕生背景と特徴
-
「何が」「どう」違うのかを徹底比較
-
なぜ.NET Core(現.NET)が主流になったのか?
-
これから学ぶなら、どちらを選ぶべきか?
物語の始まり:Windows帝国の支配者「.NET Framework」
物語は2002年に遡ります。当時、ITの世界はWindowsが圧倒的な力を持つ帝国でした。企業で使われる業務用アプリケーションも、個人が使うデスクトップアプリも、そのほとんどがWindows上で動いていました。
このWindows帝国の中で、開発者がより簡単かつ効率的に、高品質なアプリケーションを作れるようにと、Microsoftが総力を挙げて開発したのが**「.NET Framework」**です。
.NET Frameworkの主な特徴
-
Windows専用:その名の通り、Windowsの上で動くことだけを考えて作られています。Windowsの様々な機能(ファイル操作、画面表示、ネットワーク通信など)を、簡単に呼び出して使えるように設計されています。
-
巨大で多機能な「全部入り」:Webアプリケーションを作るための「ASP.NET」、デスクトップアプリを作るための「Windows Forms」や「WPF」、データベースと連携するための「ADO.NET」など、当時のWindows開発で必要とされるであろう、ありとあらゆる機能が最初から詰まった、巨大な「全部入り」パッケージでした。
-
CLRという実行環境:C#やVBで書かれたコードは、「CLR(Common Language Runtime)」という共通の実行エンジン上で動きます。これにより、言語の違いを気にせず、部品を再利用できるなどのメリットがありました。
時代の変化と、新たな挑戦者「.NET Core」の誕生
しかし、2010年代に入ると、ITの世界に大きな地殻変動が起こります。
-
クラウドの台頭:AmazonのAWSを筆頭に、サーバーを自社で持たず、インターネット経経由で利用する「クラウド」が当たり前になりました。クラウドでは、コストが安く、軽量なLinuxというOSが広く使われるようになります。
-
多様なOSの普及:スマートフォンではiOSとAndroidが、サーバーサイドではLinuxが、そして開発者のPCではmacOSが、それぞれ大きなシェアを持つようになりました。もはや、世界はWindowsだけのものではなくなったのです。
-
マイクロサービスの流行:一つの巨大なアプリケーションを作るのではなく、小さく独立したサービス(マイクロサービス)をたくさん作り、それらを連携させて大きなシステムを構築するという考え方が主流になりました。これには、軽くて起動が速いプラットフォームが求められます。
この時代の変化の中で、**「Windows専用」で「巨大な全部入り」**という.NET Frameworkの設計思想は、次第に時代遅れになっていきました。Windows城の中にいては、城の外で起きている新しい世界(Linux, macOS, クラウド)に対応できないのです。
そこで、Microsoftは大きな決断をします。過去のしがらみを断ち切り、新しい時代に最適化された、全く新しい.NETをゼロから作り直すことにしたのです。
そうして2016年に生まれたのが、**「.NET Core」**です。
徹底比較!.NET Framework vs .NET Core
では、具体的に何がどう違うのでしょうか。4つの決定的な違いを見ていきましょう。
比較項目 | .NET Framework(伝統の城塞都市) | .NET Core(新時代の冒険者) |
1. 対応OS | Windowsのみ | クロスプラットフォーム(Windows, macOS, Linux) |
2. パフォーマンス | 安定しているが、やや重い | 高速かつ軽量 |
3. 機能の提供方法 | 全部入り(モノリシック) | 必要なものだけ選ぶ(モジュラー) |
4. 開発スタイル | オープンソースではない(Microsoft主導) | オープンソース(コミュニティと共に開発) |
違い1:対応OS(クロスプラットフォーム)
これが最大の違いです。.NET FrameworkがWindowsでしか動かないのに対し、.NET CoreはWindows、macOS、そしてLinuxでも動きます。
これにより、C#という一つの言語で、
-
開発はMacBookで行い、
-
本番サーバーはクラウド上のLinuxで動かす
といった、現代的な開発スタイルが可能になりました。Microsoft技術が、初めてWindowsの壁を越えた歴史的な瞬間です。
違い2:パフォーマンス
.NET Coreは、最新の技術トレンドに合わせてゼロから設計し直されたため、.NET Frameworkに比べて大幅に高速化・軽量化されています。
特に、Webサーバーとしての処理性能は、業界トップクラスを誇ります。
違い3:機能の提供方法(モジュラー)
.NET Frameworkが「全部入り」だったのに対し、.NET Coreは、最低限のコアな機能だけを持ち、追加の機能は「NuGet(ヌゲット)」というパッケージ管理システムを使って、必要なものだけを後からインストールする「モジュラー」な設計になっています。
違い4:開発スタイル(オープンソース)
.NET Frameworkは、Microsoft社内だけで開発されるクローズドなものでした。
一方、.NET Coreは、そのソースコードが**GitHub上で全世界に公開されている「オープンソース」**です。
物語の現在、そして未来へ:「.NET」への統一
.NET Coreの登場後、しばらくは「古いWindowsアプリは.NET Framework」「新しいクロスプラットフォームアプリは.NET Core」という、2つの世界が並存していました。
しかし、Microsoftは2020年、ついに次のステップに進みます。.NET Coreの次期バージョンを**「.NET 5」としてリリースし、「これからは、こちらが.NETの未来の本流である」**と宣言したのです。
そして、.NET 5、.NET 6、.NET 7…とバージョンアップを重ね、現在「.NET」といえば、この.NET Coreの流れを汲む、クロスプラットフォームで高性能なプラットフォームのことを指します。
つまり、物語は「.NET Framework」と「.NET Core」という2つの主人公から、.NET Coreが名前を変え、すべてを引き継いだ新しい「.NET」が唯一の主人公となる新章に突入したのです。
まとめ:これから学ぶなら、どちらを選ぶべきか?
これはもう、迷う必要はありません。
これから新しくアプリケーションを開発する場合や、プログラミングを学ぶ場合は、間違いなく最新の「.NET」(.NET 6 / 7 / 8…)を選びましょう。
.NET Frameworkを今から学ぶべきなのは、
-
古い既存システムの保守・改修を担当する必要がある
-
WPFやWindows Formsといった、Windows専用の古いデスクトップアプリ技術をどうしても使わなければならない
といった、非常に限定的なケースのみです。
未来は、クロスプラットフォームで、オープンソースで、高性能な新しい「.NET」にあります。C#と最新の.NETを学べば、Webアプリケーション、クラウドサービス、デスクトップアプリ(MAUI)、モバイルアプリ、IoT、ゲーム(Unity)まで、本当にありとあらゆるものを、たった一つの言語で作ることができる、エキサイティングな未来が待っています。
「プログラミングを学んで、自由な働き方を手に入れたい」「将来性のあるスキルを身につけて、キャリアアップしたい」「自分のアイデアを形にするサービスを作ってみたい」 そんな希望を胸に、プログラミング学習を始めようとしているあなたへ[…]