1731987953
2024-11-04 11:00:00
以前に .NET の互換性全般、特に .NET 8 について書きました。ブログ投稿を参照してください。 ここ、 ここ そして ここ。 .NET 6 のサポート終了日が今月に迫っており、再び質問が寄せられています。そこで、以前の記事へのリンクに加えて、追加し続けられる FAQ 形式の投稿を作成しようと考えました。
.NET バージョンのサポート終了は何を意味しますか?
サポートされている .NET バージョンのランタイムは、Microsoft の毎月の「Patch Tuesday」リリース スケジュールに従ってパッチ更新を受け取ります。これらには、セキュリティやその他の重大な問題などの修正が含まれる場合があります。これらは 100% 下位互換性があるため、これらの更新を取得するには、アプリケーションを新しいランタイム バージョンで再起動するだけで済みます。
.NET バージョンのサポートが終了すると、パッチによるサービスは提供されなくなります。アプリケーションが発見された新たな問題の影響を受けており、Microsoft が新しいパッチで問題を修正することを決定した場合、サポートされているバージョンで実行できるようにアプリケーションを更新するよう指示されます。たとえば、.NET 6 がリリースされたら .NET 8 に切り替えるように指示されます。サポートの。
サポートが終了した .NET バージョンで実行することに問題はありますか?
これは実際には、サポートされていないバージョンにまだパッチが適用されていない問題があるかどうか、そしてその問題が影響するかどうかによって異なります。実際には、そのようなことが起こるまでは問題はありません。ただし、アドバイスとしては、常に最新の状態を維持することです。少なくとも、新しい問題の影響を受けた場合は、より簡単にパッチ アップデートを適用することをお勧めします。
Optimizely CMS と Commerce Connect は .NET 8 での実行をサポートしていますか?
はい。この記事の上部にリンクされている記事で概説されているように、.NET 8 のリリース前でも .NET 8 上で実行される CMS と Commerce を検証しましたが、互換性の問題は見つかりませんでした。現在、数百の CMS およびコマース アプリケーションが .NET 8 上の DXP サービスで実行されており、非常に高いレベルの互換性があるという確信がさらに高まっています。
しかし、nuget パッケージを見ると、依然として net6 をターゲットにしていると書かれていますが、これは何を意味しますか?
これは、CMS 12.x と Commerce 14.x が、.NET 6 API をターゲットとした net6 ターゲット フレームワークを使用して構築されていることを意味します。ただし、.NET (Core) の高度な下位互換性により、アプリケーションを net8 にターゲットにすることができ、.NET 8 ランタイム (runtimeconfig.json からこれを検出する DXP を含む) を使用して実行されます。もともと古いターゲット フレームワーク用に構築されたライブラリを参照することは、それらのライブラリが新しい .NET バージョンの非常に限定的な破壊的変更の影響を受けない限り、問題はありません。 .NET は IL コードにビルドされ、JIT コンパイルされるため、基本的に新しい .NET 8 バージョンでコンパイルおよび実行されます。
net8 をターゲットに変更する予定はありますか?
はい、次のメジャー バージョン (CMS 13 など) で可能です。ターゲット フレームワークの変更は、技術的には重大な変更 (新しいメジャー バージョンが必要) であり、ターゲット フレームワークを追加すると、マルチターゲット コードによる開発とテストのオーバーヘッドが大幅に増加する可能性があります。この投稿の上部のリンクで説明されていますが、このような変更は行いません。重大な非互換性を克服する必要があるまでは実行してください。私たちがますます自信を持っているものは必要なくなるでしょう。
Microsoft.Extensions* パッケージなどの Microsoft パッケージについてはどうすればよいですか? .NET でバージョン管理されているようです。
CMS と Commerce は、Microsoft.Extensions.*、Microsoft.Data.SqlClient、およびその他の Microsoft が提供するパッケージのいくつかを利用します。 CMS または Commerce パッケージがある場合、これらはソリューション内の推移的な依存関係として取得されます。これらには、.NET 8 バージョンを追跡するパッケージ バージョンがあります。たとえば、Nuget バージョン 8.0 を含む一連のパッケージは .NET 8 とともにリリースされました。CMS と Commerce は依然として 6.0 バージョンを 最小限の 要件。つまり、これらのパッケージを直接参照し、それによって上位バージョンを強制的に参照できます。
ただし、これらのパッケージの新しいメジャー バージョンには重大な変更が含まれる可能性があることにも注意してください。 8.0 パッケージで基本的なテストを行いましたが、問題は見つかりませんでした。ただし、現時点では、これらの推移的な依存関係をデフォルトのオプションとしてそのままにすることをお勧めします。
追加された質問: .NET 9 についてはどうですか?
DXP プラットフォームは .NET 9 ランタイムをサポートしており、事前テストによれば CMS は .NET 9 で動作します。ただし、Commerce Connect には既知の非互換性があり、これに対処する予定です。現時点では、実稼働ワークロードを LTS リリース .NET 8 上に維持することをお勧めします。
他に問題や質問があります。
何か問題が発生した場合は、いつものように サポートに連絡する。
2024 年 11 月 4 日
#.NET #FAQ #Optimizely #開発者コミュニティ