-
Notifications
You must be signed in to change notification settings - Fork 0
MS_DotNetCoreUpgrade
-
TOP > 移行・マイグレーション > 各種、技術毎の移行性
- .NET Coreバージョンアップ
-
2.0 から追っているので 2.0 以前は不明。
補足(.NET Core のバージョンアップは「サポート期限で回る」):
.NET Framework がバイナリレベルの後方互換を重視し、
OS のライフサイクルに従っていたのに対し、
.NET Core / .NET はリリース単位でサポート期間が定義される。
- 偶数バージョン = LTS(3 年)、奇数バージョン = STS(18 か月)
- 期限が来るとセキュリティ修正も止まる
つまり .NET Framework 時代のように「動いているから触らない」が成立せず、
定期的なバージョンアップが運用作業として組み込まれる。
本ページが各バージョン間の差分を丹念に記録しているのは、この事情による。
-
API 移植、追加が続いている。
-
特に暗号系は顕著だった。
これは、.NET Framework 側でも同じ。
-
ASP.NET 系の API が入って来ている。
- 旧 ASP.NET 系の API は入って来ていない。
- が、ASP.NET Core 関連が入って来ている。
-
と言う事で、この段階で、
.NET Core がメインストリームになると予想できた。
-
API 追加ということで、既存コードに、ほぼ影響なし。
-
ポイントは、.NET Core 2.1 ではなく、3.0 に対応していると言う事。
-
.NET 5 以降
- 新規採用は非推奨。
- NuGet でのサポート状況を要確認。
補足(.NET Standard は役割を終えた): .NET Standard は
「.NET Framework と .NET Core の両方から参照できるライブラリ」を作るための仕組みだった。
.NET 5 で実行基盤が 1 本化されたため、現在は
net8.0などのターゲット フレームワークを直接指定するのが標準で、
.NET Standard を新規に採用する理由は
.NET Framework 向けにも同じライブラリを配りたい場合に限られる。
本ページの「新規採用は非推奨」という記述はそのとおりである。
API 移植、追加が続いている。
- 既存コードに、ほぼ影響なし。
- 参考
- 既存コードに、ほぼ影響なし。
- 参考
- DesktopPackが追加された。
- 参考
(元ページ未記載)
(元ページ未記載)
補足(3.1 → 5.0 の位置づけ): 5.0 で
製品名から "Core" が外れ、.NET Framework との系統が統合された
(4.x との混同を避けるため 4 を飛ばして 5 になった)。
コードの移行という意味ではTargetFrameworkを
netcoreapp3.1→net5.0に変えるだけで済むことが多く、
3.0 のときのような大きな破壊的変更は少ない。
ただし **5.0 は STS(短期サポート)**であり、
実運用では 6.0(LTS)まで進めるのが前提になる。
→ 6.0
→ 8.0
→ 10.0
-
API 移植、追加が続いている。
-
フレームワークの変更が多いので、
フレームワークの DI をしているStartup.csの変更が多い印象。
- …。
- 参考
-
Startup.csの DI の API の呼出し順の変更など。-
変更点が多いので新規のプロジェクト・テンプレートから移植
-
また、WebApiCompatShimの利用も本バージョンから中止した方がよさそう。
-
その他、重要な変更
- Endpoint Routing への全面的な移行
- JSON.NET から System.Text.Json にデフォルトが変更。
-
…。
…。
補足(6.0 以降の最大の変更は
Startup.csの廃止): 本ページが
「Startup.csの変更が多い印象」と繰り返し指摘しているとおり、
ASP.NET Core のバージョンアップ作業はここに集中する。
.NET 6 では、そのStartup.cs自体が既定のテンプレートから消え、
Minimal Hosting(Program.cs1 ファイルにWebApplicationBuilderで集約)
に置き換わった。
- 既存の
Startup.cs方式は引き続き動作するので、
バージョンアップ時に必ず書き換える必要はない。- ただし、新しいテンプレートやドキュメントは Minimal Hosting 前提で書かれているため、
本ページが推奨する「新規のプロジェクト・テンプレートから移植」という手順を採る場合は、
この形式変更ごと取り込むことになる点に注意。
→ 6.0
→ 8.0
→ 10.0
ASP.NET のビルドシステムに npm を使用している場合。
移行メモ: 元ページでは上記 2 つの見出しに同一のアンカー ID が
重複して振られていた(PukiWiki 側の入力ミスと思われる)。
Markdown では見出しからアンカーが自動生成されるため、影響はない。
- Visual Studio 2019で.NET Core 3.0 (Preview)を使うときの環境設定 - Qiita
https://qiita.com/tanitanin/items/c21783403c349a23d11b
- .NET Standard の新機能 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/standard/whats-new/whats-new-in-dotnet-standard
-
.NET Core 2.1のロードマップが公開されたようです - つばろぐ
http://tsubalog.hatenablog.com/entry/net-core-2-1-roadmap -
.NET Core 2.1 正式リリース | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2018/5/netcore21/
…。
-
.NET Core 3 Previewの気になることまとめ - つばろぐ
https://tsubalog.hatenablog.com/entry/2019/04/22/080000 -
++C++; // 未確認飛行 C ブログ
- Visual Studio 2019 Preview 1
https://ufcpp.net/blog/2018/12/vs2019p1/ - Visual Studio 2019 Preview 2
https://ufcpp.net/blog/2019/1/vs2019p2/ - Visual Studio 2019 RC と Preview 4
https://ufcpp.net/blog/2019/2/vs2019rc/ - .NET Core 3.0 Preview 3
https://ufcpp.net/blog/2019/3/netcore3p3/ - .NET 5、Visual Studio 16.1 Preview 3
https://ufcpp.net/blog/2019/5/build2019/ - Visual Studio 16.1.0 & 16.2 Preview 1
https://ufcpp.net/blog/2019/5/vs16_2_p1/ - Visual Studio 16.2 Preview 2 & .NET Core 3.0 Preview 6
https://ufcpp.net/blog/2019/6/vs16_2_p2/ - Visual Studio 16.2 Preview 3、notnull 制約
https://ufcpp.net/blog/2019/6/vs16_2_p3/ - Visual Studio 16.2 GA と 16.3 Preview 1
https://ufcpp.net/blog/2019/7/vs16_3_p1/ - Visual Studio 16.2.2 & 16.3 Preview 2
https://ufcpp.net/blog/2019/8/vs16_3_p2/
- Visual Studio 2019 Preview 1
-
新機能
- .NET Core 2.1
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-2-1 - .NET Core 2.2
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-2-2 - .NET Core 3.0
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-3-0 - .NET Core 3.1
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-3-1 - .NET 5
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-5-0 - .NET 6 の新機能
https://learn.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-6/overview - .NET 8 の新機能
https://learn.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-8/overview - .NET 10 の新機能
https://learn.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-10/overview
- .NET Core 2.1
-
破壊的変更 - .NET Core
- バージョン 2.0 から 2.1
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/2.0-2.1 - バージョン 2.1 から 2.2
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/2.1-2.2 - バージョン 2.2 から 3.0
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/2.2-3.0 - バージョン 3.0 から 3.1
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/3.0-3.1 - バージョン 3.1 から 5.0
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/3.1-5.0 - https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/6.0
- https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/8.0
- https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/10.0
- バージョン 2.0 から 2.1
- ASP.NET Core 2.0 から 2.1 へのアップデートを行ったメモ
https://blog.shibayan.jp/entry/20180603/1527958208
- VisualStudio2017 .NETCore 2.1から2.2更新しようとしてはまった - Qiita
https://qiita.com/na8esin/items/0ee7b8f362a55c83f3ea
-
ASP.NET Core 2.2→3.0への移行 メモ - shuhelohelo's blog
https://shuhelohelo.hatenablog.com/entry/2019/05/16/105013 -
.NET Core 3.0 移行のハマりポイントまとめ - Qiita
https://qiita.com/wipiano/items/b2e92ff994892f71f710 -
ASP.NET Core / Entity Framework Core 3.0 の気になった機能と 2.2 からの移行 - しばやん雑記
https://blog.shibayan.jp/entry/20190924/1569263757 -
Stack Overflow
- asp.net core - RenderPartialAsync returns System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
https://stackoverflow.com/questions/33892952/ - asp.net core - 'IHostingEnvironment' is obsolete
https://stackoverflow.com/questions/55601958/ihostingenvironment-is-obsolete- [Announcement] IHostingEnvironment's and IApplicationLifetime's marked obsolete and replaced · Issue #7749 · aspnet/AspNetCore
https://github.com/aspnet/AspNetCore/issues/7749
- [Announcement] IHostingEnvironment's and IApplicationLifetime's marked obsolete and replaced · Issue #7749 · aspnet/AspNetCore
- asp.net core - RenderPartialAsync returns System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
-
aspnet/AspNetCore
- Replace PackageReference to Microsoft.AspNetCore.App with FrameworkReference · Issue #3612
https://github.com/aspnet/AspNetCore/issues/3612 - Stop producing packages for shared framework assemblies in 3.0 · Issue #3756
https://github.com/aspnet/AspNetCore/issues/3756
- Replace PackageReference to Microsoft.AspNetCore.App with FrameworkReference · Issue #3612
-
OpenTouryoProject
- OpenTouryoTemplates
- Add root_VS2019 folder · Issue #79
https://github.com/OpenTouryoProject/OpenTouryoTemplates/issues/79\ ・ASP.NET Core MVC : https://github.com/OpenTouryoProject/OpenTouryoTemplates/commit/b06a3d51a3d164b44b3b8c8db56d43e85a70c974\ ・ASP.NET Core WebAPI : https://github.com/OpenTouryoProject/OpenTouryoTemplates/commit/ed25e89ff5184de870bc3c49a60bfd3ec53a7fc7
- Add root_VS2019 folder · Issue #79
- MultiPurposeAuthSite/MultiPurposeAuthSiteCore
- Change to ASP.NET Core 3.0 project using Visual Studio 2019. · Issue #107
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/issues/107\ ・https://github.com/OpenTouryoProject/MultiPurposeAuthSite/commit/2c14aae291bf0dcb8e677aeca1cc5fc24d511073
- Change to ASP.NET Core 3.0 project using Visual Studio 2019. · Issue #107
- OpenTouryoTemplates
-
参考
移行メモ(正誤): 元ページの
IHostingEnvironmentに関する Stack Overflow の
引用元リンクのうち、aspnet/AspNetCoreの Issue #7749 を指すはずの URL が
別サイト(aspnet-core.clock-up.jp)を指していたため、
当該 Issue の URL に修正した。
(元ページ未記載)
→ 6.0
→ 8.0
→ 10.0
-
ASP.NET Core 1.x から 2.0 への移行
-
ASP.NET Core 2.0 から 2.1 への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/20_21 -
ASP.NET Core 2.1 から 2.2 への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/21-to-22 -
ASP.NET Core 2.2 から 3.0 への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/22-to-30 -
ASP.NET Core 3.0 から 3.1 への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/30-to-31 -
ASP.NET Core 3.1 から 5.0 への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/31-to-50 -
https://learn.microsoft.com/ja-jp/aspnet/core/migration/50-to-60
-
https://learn.microsoft.com/ja-jp/aspnet/core/migration/60-to-70
-
https://learn.microsoft.com/ja-jp/aspnet/core/migration/70-to-80
-
https://learn.microsoft.com/ja-jp/aspnet/core/migration/80-to-90
-
ビルド・システム問題
https://www.osscons.jp/joc41qz48-537/ -
Startupクラス修正問題
https://www.osscons.jp/jo7bdq086-537/
https://www.osscons.jp/jov00r1c7-537/
Tags: 移行, .NET開発
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。