RealPath:
WebPath:
2017/08/29 02:39 (JST) 更新
概要 >>

ASP.NET Core という名前

Contents

※本ページの内容はだいたい ASP.NET MVC と ASP.NET Core MVC の名前と機能と採用判断の話など - clock-up-blog に書いた内容と同じです。

ASP.NET の派生。Core という名前について。

少しめんどくさい話がありますがお付き合いください。

「ASP.NET Core」の名前に関する話です。誰も彼もが解説をさぼった結果、世間的な認識がとても曖昧になっているように見えるところです。少し整理します。

 
ASP.NET 上に構成されるフレームワークにはいくつか派生があり、名称としては「ASP.NET Web Forms」「ASP.NET MVC」「ASP.NET Core」「ASP.NET Core MVC」等の表記を見ることがしばしばあるかと思います。

これは少し名前を分解して考える必要があります。

まず、ASP.NET というウェブアプリケーション用のエンジンがあり、このエンジンは名前通り .NET Framework 上で動きます。この ASP.NET エンジンの上に「Web Forms」「MVC」のテンプレートを乗せる形で構成されたフレームワークが、それぞれ「ASP.NET Web Forms」「ASP.NET MVC」と呼ばれます。

 
エンジンである ASP.NET のバージョンは 1, 2, 3, 4, 5 と上がってきましたが、ASP.NET 6 については少し毛並みが違い、2015年に RC 版で登場した .NET Core 上で動作するような構成となりました。

「.NET Core 上で動作する」とはつまり、「Windows 以外の環境下でも動く」ことを意味します。これは画期的であり、しかし互換性等を考える上で大きく気に留めるべき性質です。

ASP.NET 6 における変更はそのように影響の大きなものであったため、バージョン番号を単純に「6」とはせず、「ASP.NET vNext」という仮称が一時期付けられました。これは後に正式名として「ASP.NET Core」という正式名に改名されます。

 
そのような経緯があり、ASP.NET 系のエンジンには「ASP.NET」「ASP.NET Core」の2系統があることを知っておいてください。旧「ASP.NET」のメジャーバージョンは 1~5 までであり、6 以降が登場することはありません。(ASP.NET 6 は ASP.NET Core そのものなのです)

 
新しい「ASP.NET Core」上で構成された MVC フレームワークが「ASP.NET Core MVC」となります。

なお、ASP.NET Core 上では Web Forms は動かないことに注意してください。Web Forms を使いたい場合は旧 ASP.NET (~5) を使う必要があります。

現状、「ASP.NET Core」上で動くフレームワークがこの「ASP.NET Core MVC」のひとつしかないため、しばしば「ASP.NET Core MVC」を指す意味で「ASP.NET Core」という表記が使わます。

Microsoft 公式のサイトを見る限りでも割とそのような表記のブレはあり、それほど意識的な区別をするポリシーは無いように見受けられます。

 
以降、本サイトにおいても明確に区別をすべき場面以外では「ASP.NET Core MVC」のことを「ASP.NET Core」と表記してしまうことにします。

ASP.NET Core が動作するプラットフォーム

前述のとおり、ASP.NET Core は .NET Core 上で動作させることができます。
また、ASP.NET Core は .NET Core だけでなく .NET Framework 上で動作させることもできます。

「.NET Core」「.NET Framework」どちらのプラットフォームを用いるべきかは要件に依ります。

.NET Core は多くの OS で動作させられるメリットがありますが、
.NET Framework は OS が Windows に制限される代わりに Windows 固有の機能を広く扱えるメリットがあります。

 
実際、ASP.NET Core プロジェクトを新規に作る際、新規プロジェクトのダイアログ内で「.NET Core」「.NET Framework」どちらのプラットフォームを利用するかを選択することができます。

目的に合わせて適切なプラットフォームを選択してください。