ヒント
このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。
.NET 8 は新しいアプリケーションとアプリケーション パターンに大きな利点をもたらしますが、.NET Framework は、多くの既存のシナリオに適した選択肢であり続けます。
既存のアプリケーションを Windows Server コンテナーに直接移行する
マイクロサービスを作成していない場合でも、デプロイを簡略化するために Docker コンテナーを使用することをお勧めします。 たとえば、Docker を使用して DevOps ワークフローを改善したい場合などです。コンテナーを使用すると、分離されたテスト環境が向上し、運用環境に移行するときに依存関係の不足によって発生するデプロイの問題を排除することもできます。 このような場合は、モノリシック アプリケーションをデプロイする場合でも、現在の .NET Framework アプリケーションに Docker と Windows コンテナーを使用するのが理にかなっています。
このシナリオでは、ほとんどの場合、既存のアプリケーションを .NET 8 に移行する必要はありません。従来の .NET Framework を含む Docker コンテナーを使用できます。 ただし、ASP.NET Core で新しいサービスを記述するなど、既存のアプリケーションを拡張するときに .NET 8 を使用することをお勧めします。
.NET 8 では使用できないサードパーティの .NET ライブラリまたは NuGet パッケージの使用
サード パーティ製ライブラリでは 、.NET Standard をすばやく採用しています。これにより、.NET 8 を含むすべての .NET フレーバーでコードを共有できます。 .NET Standard 2.0 以降では、さまざまなフレームワーク間の API サーフェスの互換性が大幅に大きくなります。 さらに、.NET Core 2.x 以降のアプリケーションでは、既存の .NET Framework ライブラリを直接参照することもできます ( .NET Standard 2.0 をサポートする .NET Framework 4.6.1 を参照)。
さらに、 Windows 互換機能パック は、Windows 上の .NET Standard 2.0 で使用できる API サーフェスを拡張します。 このパックを使用すると、Windows で実行するために、ほとんどの既存のコードをほとんどまたはまったく変更なしで .NET Standard 2.x に再コンパイルできます。
ただし、.NET Standard 2.0 および .NET Core 2.1 以降以降の例外的な進行でも、特定の NuGet パッケージで Windows の実行が必要になり、.NET Core 以降がサポートされない場合があります。 これらのパッケージがアプリケーションにとって重要な場合は、Windows コンテナーで .NET Framework を使用する必要があります。
.NET 8 では使用できない .NET テクノロジの使用
一部の .NET Framework テクノロジは、.NET 8 では使用できません。 その一部は後のリリースで使用できるようになる可能性がありますが、.NET Core を対象とする新しいアプリケーション パターンに適合しないものもあります。また、使用できない場合もあります。
次の一覧は、.NET 8 で使用できないテクノロジのほとんどを示しています。
ASP.NET Web フォーム。 このテクノロジは、.NET Framework でのみ使用できます。 現在、ASP.NET Web フォームを .NET 以降に持ち込む予定はありません。
ワークフロー関連のサービス。 Windows Workflow Foundation (WF)、Workflow Services (WCF + 1 つのサービスの WF)、および WCF Data Services (旧称 ADO.NET Data Services) は、.NET Framework でのみ使用できます。 現在、.NET 8 に持ち込む予定はありません。
公式 の .NET ロードマップに記載されているテクノロジに加えて、他の機能が新しい 統合 .NET プラットフォームに移植される可能性があります。 音声が聞こえるように、GitHub のディスカッションに参加することを検討してください。 また、何かが不足していると思われる場合は、 dotnet/runtime GitHub リポジトリに新しい問題を提出してください。
.NET 8 をサポートしていないプラットフォームまたは API の使用
一部の Microsoft およびサード パーティのプラットフォームでは、.NET 8 がサポートされていません。 たとえば、一部の Azure サービスでは、まだ .NET 8 で使用できない SDK が提供されています。 ほとんどの Azure SDK は最終的に .NET 8/.NET Standard に移植する必要がありますが、いくつかの理由で移植されないものもあります。 使用可能な Azure SDK は、 Azure SDK の [最新リリース] ページで確認できます。
それまでの間、Azure のプラットフォームまたはサービスでクライアント API で .NET 8 がサポートされていない場合は、Azure サービスまたは .NET Framework 上のクライアント SDK から同等の REST API を使用できます。
既存の ASP.NET アプリケーションを .NET 8 に移植する
.NET Core は、.NET Framework からの革新的な一歩です。 生産性からパフォーマンスまで、クロスプラットフォームサポートから開発者の満足度まで、.NET Framework よりも多くの利点を提供します。
その他のリソース
.NET 5 へのプロジェクトの移植
https://learn.microsoft.com/events/dotnetconf-2020/porting-projects-to-net-5Docker 上の .NET ガイド
https://learn.microsoft.com/dotnet/core/docker/introduction
.NET