回答:
ここのドキュメントに従って、次の6つの一般的なシナリオでは、.NET FrameworkまたはXamarinの代わりに.NET Coreを使用する必要があります。
1.クロスプラットフォームのニーズ
明らかに、目標がプラットフォーム(Windows、Linux、MacOS)で実行できるアプリケーション(Web /サービス)を持つことである場合、.NETエコシステムでの最良の選択は、ランタイムとして.NET Coreを使用することです(CoreCLR )およびライブラリはクロスプラットフォームです。もう1つの選択肢は、Mono Projectを使用することです。
どちらの選択肢もオープンソースですが、.NET CoreはMicrosoftによって直接かつ公式にサポートされており、今後大きな投資が行われます。
プラットフォーム間で.NET Coreを使用すると、プロジェクト管理、デバッグ、ソース管理、リファクタリング、Intellisenseを含む豊富な編集、テストなど、多くの生産性機能をサポートするVisual Studio IDEを備えたWindowsで最高の開発エクスペリエンスが実現します。ただし、IntelliSenseやデバッグなど、Mac、Linux、WindowsでVisual Studio Codeを使用して、豊富な開発もサポートされています。Sublime、Emacs、VIなどのサードパーティエディターでさえうまく機能し、オープンソースのOmnisharpプロジェクトを使用してエディターのインテリセンスを得ることができます。
2.マイクロサービス
複数の独立した、動的にスケーラブルなステートフルまたはステートレスマイクロサービスで構成されるマイクロサービス指向のシステムを構築する場合、ここにある大きな利点は、マイクロサービスレベルでさまざまなテクノロジー/フレームワーク/言語を使用できることです。これにより、システムのマイクロ領域ごとに最適なアプローチとテクノロジーを使用できるため、非常に高性能でスケーラブルなマイクロサービスを構築する場合は、.NET Coreを使用する必要があります。最終的に、.NET Coreと互換性のない.NET Frameworkライブラリを使用する必要がある場合、問題はありません。.NETFrameworkを使用してそのマイクロサービスを構築でき、将来的には.NETで置き換えることができる可能性があります芯。
使用できるインフラストラクチャプラットフォームは多数あります。理想的には、大規模で複雑なマイクロサービスシステムの場合は、Azure Service Fabricを使用する必要があります。ただし、ステートレスマイクロサービスの場合、Azure App ServiceやAzure Functionsなどの他の製品を使用することもできます。
2016年6月の時点で、Azure内のすべてのテクノロジーが.NET Coreをサポートしているわけではありませんが、.NET CoreがRTMのリリースにより、Azureでの.NET Coreのサポートが劇的に増加することに注意してください。
3.最高のパフォーマンスとスケーラブルなシステム
システムが可能な限り最高のパフォーマンスとスケーラビリティを必要とするため、ユーザー数に関係なく最高の応答性を得ることができれば、.NET CoreとASP.NET Coreが本当に優れています。同じ量のインフラストラクチャ/ハードウェアでより多くのことができるほど、エンドユーザーはより低コストでより豊かなエクスペリエンスを体験できます。
ムーアの法則の時代、単一のCPUに対するパフォーマンスの向上はもはや当てはまりません。それでも、システムが成長している間はより多くのことを行う必要があり、数が指数関数的に増加している日々のより要求の厳しいユーザーのために、より高いスケーラビリティとパフォーマンスが必要です。最終的には、より効率的になり、あらゆる場所で最適化し、マシンのクラスター、VM、およびCPUコア全体でより適切に拡張する必要があります。これはユーザーの満足度だけの問題ではありません。また、コスト/ TCOに大きな違いをもたらす可能性があります。このため、パフォーマンスとスケーラビリティを追求することが重要です。
前述のように、システムの小さな部分をマイクロサービスまたはその他の疎結合アプローチとして分離できる場合は、各小さな部分/マイクロサービスを個別に進化させるだけでなく、長期的にも優れているため、より優れています。俊敏性とメンテナンスだけでなく、必要なものが.NET Coreと互換性がない場合は、マイクロサービスレベルで他のテクノロジーを使用することもできます。そして最終的には、それをリファクタリングして、可能であれば.NET Coreに取り込むことができます。
4. Mac、Linux、またはWindows用のコマンドラインスタイルの開発。
.NET Coreを使用する場合、このアプローチはオプションです。もちろん、完全なVisual Studio IDEを使用することもできます。ただし、軽量のエディターとコマンドラインを多用する開発者である場合、.NET CoreはCLI用に設計されています。サポートされているすべてのプラットフォームで使用できるシンプルなコマンドラインツールを提供し、開発者は、開発者、ラボ、または実稼働マシンに最小限のインストールでアプリケーションを構築およびテストできます。Visual Studio Codeのようなエディターは、開発エクスペリエンスに同じコマンドラインツールを使用します。そして、Visual StudioのようなIDEは同じCLIツールを使用しますが、それらを豊富なIDEエクスペリエンスの背後に隠しています。開発者は、CLIからエディター、IDEまで、ツールチェーンとやり取りするレベルを選択できるようになりました。
5.アプリケーションレベルごとに.NETバージョンを並べて配置する必要があります。
.NETのさまざまなバージョンのフレームワークに依存するアプリケーションをインストールできるようにするには、このドキュメントで前述したように、100%サイドバイサイドの.NET Coreを使用する必要があります。
6. Windows 10 UWP .NETアプリ。
さらに、以下もお読みください。
これは、Microsoftによる説明です。
。ネットフレームワークは、Windowsで配布される.NETの「完全」または「従来の」フレーバーです。デスクトップWindowsまたはUWPアプリを構築している場合、または古いASP.NET 4.6以降を使用している場合に使用します。
.NET Coreは、Windows、Mac、Linuxで動作するクロスプラットフォームの.NETです。これは、Dockerコンテナー内など、任意のプラットフォームで実行できるコンソールまたはWebアプリを構築する場合に使用します。現在、UWP /デスクトップアプリは含まれていません。
ザマリンは、iOS、Android、またはWindows Phoneデバイスで実行できるモバイルアプリの構築に使用されます。
Xamarinは通常、Mono上で実行されます。Mono は、Microsoftが.NET Coreとのクロスプラットフォームを正式に決定する前にクロスプラットフォームサポート用に構築された.NETのバージョンです。Xamarinと同様に、UnityプラットフォームもMonoの上で実行されます。
よくある混乱のポイントは、ASP.NET Coreが適しているところです。ASP.NETCoreは、.NET Framework(Windows)または.NET Core(クロスプラットフォーム)の上で実行できます。 NET Core(.NET Core)およびASP.NET Core(.NET Framework)
この行で参照できます-ASP.NET Core(.NET Core)とASP.NET Core(.NET Framework)の違い
Xamarinは決して議論の的ではありません。C#を使用してモバイル(iOS、Android、およびWindows Mobile)アプリを構築する場合、Xamarinが唯一の選択肢です。
.NET Frameworkは、WindowsおよびWebアプリケーションをサポートしています。現在、Windowsフォーム、WPF、およびUWPを使用して、.NET FrameworkでWindowsアプリケーションを構築できます。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
.Net Core Class Libraryは、.Net標準に基づいて構築されています。.NET標準スタンドアロンを実行することはできませんし、別によって参照されなければならない唯一のクラスライブラリプロジェクトを作ることができます.NET Coreまたは .NET Frameworkのあなたがに移植され、ライブラリ実装する実行可能project.If の.NET Frameworkを、.NETをコアとXamarin、.Net標準ライブラリを選択
(.NET Frameworkを使用して、実行可能プロジェクト(コンソールアプリケーション、ASP.NETアプリケーションなど)を作成できます)
これは、Windows、Mac、およびLinuxを含むすべてのオペレーティングシステム用のアプリケーションを構築するための新しいオープンソースおよびクロスプラットフォームフレームワークです。
.NET Standard [blue]の実装サポートおよび.NET Standardの完全サポートのための実行可能な最小プラットフォーム(最新:[ https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-サポート])
.NET Coreは、現在使用している.NETの現在のバージョンです(機能の追加、バグの修正など)。
Xamarinは、C#でコーディングされたクロスプラットフォームのモバイル問題のソリューションを提供するプラットフォームです。IOSでSwiftを個別に使用する必要がなく、Androidでも同じことが言えます。
Xamarinは電話アプリケーション(IOS / Androidの両方)に使用されます。.NET Coreは、ApacheとIISの両方で機能するWebアプリケーションの設計に使用されます。
それが2つの文の違いです。
2019年5月に更新
.Net Core 3.0以降を次のバージョンの.Net 5にアップグレードするときに使用する必要があります。必要なのは、1つの統合プラットフォーム.Net5だけです。
今後は.NETが1つだけとなり、それを使用してWindows、Linux、macOS、iOS、Android、tvOS、watchOS、WebAssemblyなどをターゲットにできます。 https://devblogs.microsoft.com/dotnet/introducing-net-5/