.NET 5.0を迎えるにあたり、既存のaspnetcore3.1のWebアプリケーションがすんなり移行出来るのか気になったので、.NET 5.0を試してみました。
移行という観点として、.NET 5.0は、まだ正式に発表されていないため正確なことは言えませんが、コード修正箇所としては、プロジェクトファイルのターゲットフレームワーク箇所の変更で大抵は済むと思います。これは、aspnetcore 2.x から 3.1へ変更した時と同じです。
2.x から 3.1 への移行時に、部分的に問題箇所があったように、5.0へ移行する際にも「破壊的変更」がある様ですし、Nuget等での外部のパッケージがそのまま使用出来るかはパッケージ側に依存することになりますが、ほとんどの場合ですんなり移行出来ると思っています。もし移行に相当な問題がある場合は、.NET 5.0は見送り、LTSになる.NET 6.0まで様子見でも良いかなと思います。
以下 Visual Studio 2019 Preview を試すまでのものです。
まず先に、.NET 5.0 Preview SDK をインストールしようとしたときの画面です。
.NET 5.0 と Visual Studio を使用するには、Visual Studio 2019 16.8が必要ということなので、SDKのインストールは ここでやめてキャンセルしました。
ローカルのWindows10には、Visual Studio 2019 が入っていますが、バージョンは 16.7.3 です。(16.7.3は当エントリー投稿時最新です)
バージョン16.8はPreviewの様なので、下記ページにダウンロードのリンクがあるのでそこから取得してインストールします。
Visual Studio 2019 Preview リリース ノート
なおFAQには、Visual StudioとPreviewを同時にインストールが出来ることと、Previewの削除についても記載があり、既存環境へ追加インストールしても問題が無いことが伺えます。こういう記載があるのは安心出来るので大事ですね。
Visual Studio Preview に関する FAQ
Communityで良いと思ったので「Download Community 2019 Preview」をダウンロードしました。
インストールには、ダウンロード量と時間を考えて「ASP.NET と Web開発」だけ選択してます。右側の対象オプションは全て選択しています。
個別のコンポーネントを確認してみると、「.NET 5.0 ランタイム」があり、選択された状態になっています。
個人的にですが、初回インストールは早く終わってほしいので、特に追加等はしないでこのままインストールします。
※インストールが終わったら、管理者を抜けるためサインアウトして、通常のユーザーでログインし直します。
なお、Versionは 5.0.100-preview.8.20417.9 となりました。
>dotnet --version 5.0.100-preview.8.20417.9
Visual Studio 2019 Previewを立ち上げ、MVCアプリケーションを.NET 5.0で作成してみます。
※ここのドロップダウンメニューの表記は「ASP.NET Core 5.0」となっていますね。正式版はどうなるのでしょうかね。
作成されるソリューションは、aspnetcore3.1と全くと言って良いほど同じです。
aspnetcore3.1と差がある箇所は、プロジェクトファイルのターゲットフレームワークが、netcoreapp3.1 から net5.0 に変わっているところです。実際には正式版がリリースされるまではこの文字列値になるかは分からないところですね。
<project sdk="Microsoft.NET.Sdk.Web"> <propertygroup> <targetframework>net5.0</targetframework> </propertygroup> </project>
デバッグ実行し、IIS Express上でMVCアプリケーションとして普通に動きます。
一応、フォルダ発行をしてみました。ターゲット フレームワークが「net5.0」になっている所以外に気になる変化は無さそうです。発行されたファイルもaspnetcore3.1と同じようにしか見えません。
コード変更箇所がどのくらい発生するのかを確認したかったので、稼働サーバーでの動作確認まではしてませんが、当面は aspnetcore3.1 の開発をしていれば、.NET 5.0の環境にも最小限で移行出来る気がします。.NET 5.0で移行問題が出るとしても、正式リリース前に出来ることは心の準備だけ?ですかね。
移行案内のページがありましたのでリンクしておきます。
ASP.NET Core 3.1 から5.0 への移行
バージョン 3.1 から 5.0 への移行の破壊的変更
.NET 5.0より以前に、.NET Framework の 既存WebFormアプリケーションを移行する場合にどうやって脱却させるかのほうが課題で、仮に移行ツール等があったとしても現実的には全て頼れないので、コツコツと1ページ毎に作り直していくしか無いだろうと思っています。
コメントする