はじめに
Visual Studio 2017 の 「新しいプロジェクト」ダイアログですが、Visual C# ノードを展開すると、実にいろいろなものが開発できるようになっているようです。(Fig.1)
Fig.1 は Visual Studio 2017 Update 5 のものですが、Visual Studio 2017 登場時より、開発できるプロジェクトの種類は、ずいぶん増えているんじゃないでしょうか。そして、これからも増えていく可能性があります。
このうち、Apple 関連のプロジェクトを除いて (iPhone も Mac も持っていないので) ざっと調べてみました。
Fig.1 「新しいプロジェクト」ダイアログで Visual C# ノードを展開したところ
プロジェクトの内容
ざっくりした「新しいプロジェクト」ダイアログの内容ですが、下記のような感じです。※ 前述したように Apple 関連は除く。
プロジェクト | 説明 |
---|---|
Windows ユニバーサル | ユニバーサル Windows プラットフォーム (UWP) 用のアプリの開発に使用する。 |
Windows クラシックデスクトップ | .NET Framework の様々なデスクトップアプリの開発に使用する。名前が「クラシック」となっていても実際はこれが主流です。 |
Web | ASP.NET の開発に使用する。ASP.NET Core (後述) も含む。 |
.NET Core | 後述 |
.NET Standard | 後述 |
Android | Xamarin.Android アプリケーションの作成用 |
Cloud | Windows, Linux, macOS 用の ASP.NET Core アプリケーションの作成用 |
Class-Platform | Xamarin を使って iOS, Android, Windows 用のアプリを開発できるらしい |
WCF | WCF (Windows Communication Foundation) のライブラリやアプリケーションを開発できる |
テスト | .NET Framework の C# 単体テストの他、Xamarin や Adnroid の単体テスト |
気になる .NET Core や .NET Standard は、この後に述べさせていただきます。
「Windows ユニバーサル」ですが、プロジェクトの先頭になっていていかにも主流のように見えます。でも、主なターゲットは Windows Phone なのでオワコンじゃないでしょうか。Windows 10 の電卓も UWP アプリですが、動作が遅くて前の電卓の方がよかったです。
実際に、「Windows ユニバーサル」のプロジェクトを作成してみましたが、非常に重くて使うのがいやになるレベルです。
遅くて使いづらい UWP アプリが今後、Windows アプリの主流になることはないでしょうね。
派生 .NET の詳細
元々は基本クラスライブラリとして .NET Framework だけでしたが、.NET Core と Xamarin が派生しました。(Fig.2)
派生と言っても、.NET Framework のコードの一部を切り出したわけではなく、Xamarin は Mono のクラスライブラリがベースだし、.NET Core も新規に作成されたらしいです。
Fig.2 .NET の基本クラスライブラリ
.NET Framework は Windows 用でご存知の通りの機能を持っています。
.NET Core は .NET Framework と異なり複数 OS で動作します。このため、Windows 特有の機能を実装したクラスは含まれません。
Xamarin は Mono のクラスライブラリをベースにしていて、iOS, MacOS, Android に対応したクラスライブラリです。
.NET Standard はクラスライブラリでなく API (仕様) で、すべての .NET が実装する必要がある基本 API セットです。
つまり、.NET Standard に準拠したクラスは .NET Framework, .NET Core, Xamarin など、すべての .NET 実装から参照できます。
ASP.NET Core は .NET Core の一部でウェブアプリとウェブ API を作成するのに使用されます。ASP.NET に含まれる Web Forms は含まれません。
-