一般的なガイダンスGeneral guidance

このセクションでは、どのような場合に .NET Core または .NET Framework を選択すべきかの概要を示します。This section provides a summary of when to choose .NET Core or .NET Framework. 後続のセクションでこれらの選択の詳細について説明します。We provide more details about these choices in the sections that follow.

次の場合には、コンテナー化された Docker サーバー アプリケーションで、.NET Core と Linux または Windows のコンテナーを併用します。Use .NET Core, with Linux or Windows Containers, for your containerized Docker server application when:

  • クロスプラット フォームが必要である。You have cross-platform needs. たとえば、Linux と Windows のコンテナーの両方を使用する場合。For example, you want to use both Linux and Windows Containers.

  • アプリケーション アーキテクチャがマイクロサービスに基づく場合。Your application architecture is based on microservices.

  • コンテナーを高速で起動する必要があり、かつコンテナーあたりのフットプリントを小さくして密度を高めたり、ハードウェア ユニットあたりのコンテナーを増やしてコストを削減したりしたい場合。You need to start containers fast and want a small footprint per container to achieve better density or more containers per hardware unit in order to lower your costs.

つまり、コンテナー化された .NET アプリケーションを新たに作成する場合には、.NET Core を既定の選択肢として考慮する必要があります。In short, when you create new containerized .NET applications, you should consider .NET Core as the default choice. これには多くの利点があり、コンテナーの理念や作業スタイルとぴったりと適合します。It has many benefits and fits best with the containers philosophy and style of working.

.NET Core を使用するその他の利点は、同じマシンで複数の .NET バージョンのアプリケーションを同時に実行できることです。An additional benefit of using .NET Core is that you can run side by side .NET versions for applications within the same machine. この利点は、コンテナーを使用しないサーバーまたは VM にとってはさらに重要になります。コンテナーは、アプリが必要とする .NET バージョンを特定するためです。This benefit is more important for servers or VMs that do not use containers, because containers isolate the versions of .NET that the app needs. (基礎となる OS と互換性がある場合。)(As long as they are compatible with the underlying OS.)

次の場合には、コンテナー化された Docker サーバー アプリケーションで、.NET Framework を使用します。Use .NET Framework for your containerized Docker server application when:

  • 現在、アプリケーションで .NET Framework を使用し、Windows で強い依存関係がある場合。Your application currently uses .NET Framework and has strong dependencies on Windows.

  • .NET Core がサポートしていない Windows API を使用する必要がある場合。You need to use Windows APIs that are not supported by .NET Core.

  • .NET Core で使用できないサードパーティ製の .NET ライブラリまたは NuGet パッケージを使用する必要がある場合。You need to use third-party .NET libraries or NuGet packages that are not available for .NET Core.

Docker で .NET Framework を使用すると、展開に関する問題を最小限に抑えて、展開のエクスペリエンスを改善できます。Using .NET Framework on Docker can improve your deployment experiences by minimizing deployment issues. この "リスト アンド シフト" シナリオは、ASP.NET WebForms、MVC Web アプリ、WCF (Windows Communication Foundation) サービスなどの従来の .NET Framework を使用して開発されたレガシー アプリケーションをコンテナー化する場合に重要です。This "lift and shift" scenario is important for containerizing legacy applications that were originally developed with the traditional .NET Framework, like ASP.NET WebForms, MVC web apps or WCF (Windows Communication Foundation) services.

その他の技術情報Additional resources

  • 電子書籍: Modernize existing .NET Framework applications with Azure and Windows Containers (Azure および Windows コンテナーで既存の .NET Framework アプリケーションを最新化する)E-book: Modernize existing .NET Framework applications with Azure and Windows Containers
    https://aka.ms/liftandshiftwithcontainersebook

  • サンプル アプリ:Windows コンテナーを使用した従来の ASP.NET Web アプリの最新化Sample apps: Modernization of legacy ASP.NET web apps by using Windows Containers
    https://aka.ms/eshopmodernizing