.NET Core、.NET Framework、Xamarinの違いは何ですか?
マイクロソフトは現在、.NETファミリーとして、.NET Core、.NET Framework、Xamarin(Mono)を擁しています。
ここには多くの重複があるようです。これらのタイプの.NETの違いは何ですか?自分のプロジェクトで、.NET FrameworkやXamarinではなく、.NET Coreを使うことを選ぶべきなのはどんなときですか?
333
3
ドキュメント[こちら][1]によると、以下の6つの典型的なシナリオでは、.NET FrameworkやXamarinではなく、.NET Coreを使用する必要があります。
マイクロソフトの説明はこうだ。
.NET Frameworkは、Windowsと一緒に配布されている.NETの"full"または"traditional"フレーバーです。WindowsデスクトップやUWPアプリを構築する場合や、古いASP.NET 4.6+を使用する場合に使用します。
.NET Coreは、Windows、Mac、Linuxで動作するクロスプラットフォームの.NETです。Dockerコンテナ内を含め、あらゆるプラットフォームで動作するコンソールアプリやWebアプリを構築したい場合に使用します。現在、UWP/デスクトップアプリケーションは含まれていません。
Xamarinは、iOS、Android、Windows Phoneデバイス上で動作するモバイルアプリの構築に使用します。
Xamarinは通常、Monoの上で動作します。Mono**は、Microsoftが.NET Coreで正式にクロスプラットフォーム化を決定する前に、クロスプラットフォーム対応のために構築された.NETのバージョンです。Xamarinと同様に、UnityプラットフォームもMonoの上で動作します。
よくある混乱のポイントは、ASP.NET Coreがどこに入るのかということです。ASP.NET Coreは、こちらの回答に詳しく書かれているように、.NET Framework(Windows)または.NET Core(クロスプラットフォーム)のいずれかの上で動作します。ASP.NET Core(.NET Core)とASP.NET Core(.NET Framework)の違い
この行で参照することができます - https://stackoverflow.com/questions/37684508/difference-between-asp-net-core-net-core-and-asp-net-core-net-framework/37684644#37684644
Xamarinは全く議論になりません。C#を使ってモバイル(iOS、Android、Windows Mobile)アプリを作りたい場合、Xamarinが唯一の選択肢となります。
.NET Frameworkは、WindowsとWebアプリケーションをサポートしています。現在、.NET FrameworkでWindowsアプリケーションを構築するには、Windows Forms、WPF、UWPを使用することができます。ASP.NET MVCは、.NET FrameworkでWebアプリケーションを構築するために使用されます。
.NET Coreは、Windows、Mac、Linuxを含むすべてのオペレーティングシステム用のアプリケーションを構築するための、新しいオープンソースでクロスプラットフォームのフレームワークです。.NET Coreは、UWPとASP.NET Coreのみをサポートしています。UWPは、Windows 10ターゲットのWindowsおよびモバイルアプリケーションの構築に使用されます。ASP.NET Coreは、ブラウザベースのWebアプリケーションの構築に使用されます。
詳細については、以下のリンクを参照してください。 https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server