一般的なガイダンス

ヒント

このコンテンツは eBook の「コンテナー化された .NET アプリケーションの .NET マイクロサービス アーキテクチャ」からの抜粋です。.NET Docs で閲覧できるほか、PDF として無料ダウンロードすると、オンラインで閲覧できます。

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

このセクションでは、.NET 8 または .NET Framework を選ぶ場合の概要を示します。 後続のセクションでこれらの選択の詳細について説明します。

次の場合には、コンテナ化された Docker サーバー アプリケーションで、.NET 8 と Linux または Windows のコンテナーを併用します。

  • クロスプラット フォームが必要である。 たとえば、Linux と Windows のコンテナーの両方を使用する場合。

  • アプリケーション アーキテクチャがマイクロサービスに基づく場合。

  • コンテナーを高速で起動する必要があり、かつコンテナーあたりのフットプリントを小さくして密度を高めたり、ハードウェア ユニットあたりのコンテナーを増やしてコストを削減したりしたい場合。

つまり、コンテナ化された .NET アプリケーションを新たに作成する場合には、.NET 8 を既定の選択肢として考慮する必要があります。 これには多くの利点があり、コンテナーの理念や作業スタイルとぴったりと適合します。

さらに .NET 8 を使う利点は、同じマシンで複数の .NET バージョンのアプリケーションを同時に実行できることです。 この利点は、コンテナーを使用しないサーバーまたは VM にとってはさらに重要になります。コンテナーは、アプリが必要とする .NET バージョンを特定するためです。 (基礎となる OS と互換性がある場合。)

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

  • 現在、アプリケーションで .NET Framework を使用し、Windows で強い依存関係がある場合。

  • .NET 8 でサポートされていない Windows API を使う必要がある。

  • .NET 8 で使用できないサードパーティ製の .NET ライブラリまたは NuGet パッケージを使う必要がある。

Docker で .NET Framework を使用すると、展開に関する問題を最小限に抑えて、展開のエクスペリエンスを改善できます。 この "リスト アンド シフト" シナリオは、ASP.NET WebForms、MVC Web アプリ、WCF (Windows Communication Foundation) サービスなどの従来の .NET Framework を使用して開発されたレガシー アプリケーションをコンテナー化する場合に重要です。

その他のリソース