SlideShare a Scribd company logo
.NET Framework アプリケーションの
.NET 5 への移行を考える
Tomohiro Suzuki
@hiro128_777
自己紹介
鈴木友宏
NTTデータ先端技術株式会社で働いてます。
アプリケーションプラットフォームの技術支援の
仕事をしています。
Twitter
@hiro128_777
2
3
いきなりですが
.NET Framework と .NET 5 では技術面以外で
大きく変わったことがあります
4
サポートポリシーが違います。
Version Original Release Date
Latest
Patch
Version
Patch Release Date Support Level End of Support
.NET 5 November 10, 2020 5.0.0 November 10, 2020 Current (Not LTS) 3 months after .NET 6 release
(around February 2022)
.NET Core 3.1 December 3, 2019 3.1.10 November 10, 2020 LTS December 3, 2022
.NET Core 2.1 May 30, 2018 2.1.23 October 13, 2020 LTS August 21, 2021
• LTS はリリースから3年間
• Current は、後続の Current のリリースまたは LTS リリースから3か月間
5
つまり…
大人数で一気に開発し
長期間塩漬けは厳しそう….
LTS を基準に考えても 3 年で次の
LTS に移行し続ける必要がある
6
なぜ、サポートポリシーが
変わったのでしょうか
7
現実的な落とし所
技術や
セキュリティ要件の
進化に迅速に対応
現実的な価格で
継続的に提供
競合企業との競争
サポート期間3年
サポートポリシーが変わった理由
あくまで予想ですが….
8
.NET 5 以降を使うなら…
継続的に技術力を保持しアプリケーションを
改善していくために、
長期的にチームを維持し、継続的にリリース
していく体制に変えていく必要があります。
9
•前例主義
•保守的
•新技術を取り入れることへの障壁
•などなど
通常 SIer にとってこれはなかなか難しい要件です。
10
イベントなどで新しい技術に触れても
自社に戻れば実際に使うのは数年後…
という日々にモチベーションが下がった
ご経験はありませんか
また…
11
ですが…
今回は、すべてを変える
いいタイミングかもしれません
12
リモートワーク 新しい働き方
クラウド利用の
促進
今を変えることを後押しする環境
ビジネス環境が変化に対して寛容になっています
13
この機会に .NET 5 への
移行を提案し進めましょう!
ついでに、エコシステムも変えてしまいましょう!
ならば…
14
重要なのは
業界内の社会的合意を作ること
blog 某トリ
Web
メディア
実績
今どき、.NET Framework はまずくない?
移行を検討しなさい(棒)えらい人
15
実際、.NET Framework から
.NET 5 への移行は簡単?難しい?
ご注意:以降の情報は、まだナレッジレベルで
まだ詳しく検証できていません
ASP.NET MVC については、.NET 5 でも継続してサポートされているため比較的移行
が容易です。アプリケーションのスタートアップなどが異なっていますが、比較的移行の負
担は小さくなっています。
スタートアップは、ASP.NET MVC (.NET Framework) では、Global.asax が使用されて
いましたが、ASP.NET Core アプリケーションでは Startup.cs が使用されています。
参考情報:ASP.NET MVC から ASP.NET Core MVC への移行
https://docs.microsoft.com/ja-jp/aspnet/core/migration/mvc?view=aspnetcore-
5.0
なお、Startupクラス内での処理も変更されています。
参考情報:ASP.NET Core でのアプリケーションのスタートアップ
https://docs.microsoft.com/ja-
jp/aspnet/core/fundamentals/startup?view=aspnetcore-5.0
16
ASP.NET MVC (.NET Framework) から ASP.NET MVC (.NET 5)
NET 5 において、ASP.NET Web Forms はサポートされません。
Blazor が移行先として推奨されており、移行のためのドキュメントも提供されています。
参考情報:ASP.NET Web Forms 開発者向け Blazor の紹介
https://docs.microsoft.com/ja-jp/dotnet/architecture/blazor-for-web-forms-
developers/introduction
Blazor への移行は、テクノロジーが異なるため、あくまでも、.NET 5 で提供されているア
プリケーションパターンの中では、一番移行に適しているというお話です。
今までのソースコードをそのまま流用し調整するだけで移行できるという事ではありません。
実際には UI に依存するコードはほぼ全てを捨てることになります。
17
ASP.NET Web Forms (.NET Framework ) から Blazor (.NET 5)
Blazor には、WebAssembly と Server の2つのホスティングモデルがあります。ASP.NET
Web Forms 開発者にとって違和感が少ないのは Blazor Server ホスティングモデルです。
参考情報:ASP.NET Core Blazor のホスティング モデル - Blazor Server
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/hosting-
models?view=aspnetcore-5.0#blazor-server
なお、以下の blog にあるように、「どちらもサーバー上でコードをレンダリングし、両方ともコ
ンポーネントベースのモデルを持っている」という点で、Blazor と ASP.NET Web Forms はコ
ンセプトが似ています。
参考情報:What’s Old is New Again – Web Forms meets Blazor
https://jeffreyfritz.com/2020/01/whats-old-is-new-again-web-forms-meets-blazor/
18
ASP.NET Web Forms (.NET Framework ) から Blazor (.NET 5)
さらに、UIのコードに、互換性が無い問題をクリアするため、aspx のコードをごく僅かな
書き換えでそのまま利用できるように、Blazor で ASP.NET Web Forms と同じ名前と
マークアップおよび機能を持つコンポーネントを提供するライブラリの開発も進められてい
ます。
参考情報:BlazorWebFormsComponents
https://github.com/FritzAndFriends/BlazorWebFormsComponents
本来、Blazorへの移行が検討されるような ASP.NET Web Forms アプリケーションは、
完全な書き直しの方が適している可能性が高いですが、選択肢は多い方が良く、しっ
かり保守されておりUI層以下がモダンなアプリケーションであれば、書き直しをしない選
択肢も検討の価値があります。
19
ASP.NET Web Forms (.NET Framework ) から Blazor (.NET 5)
現時点で、公式の情報が出揃っておりませんが、WPF の移行は比較的容易です。
参考情報:Differences in WPF (現時点では英語版のドキュメントのみ公開です。ま
た、.NET 5 への移行は作成中で、.NET Core 3.0 への移行の内容になっています)
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/migration/differences-from-
net-framework?view=netdesktop-5.0
参考情報:Migrating WPF apps to .NET Core(現時点では英語版のドキュメントの
み公開です。また、.NET 5 への移行は作成中で、.NET Core 3.0 への移行の内容になっ
ています)
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/migration/convert-project-
from-net-framework?view=netdesktop-5.0
20
WPF (.NET Framework ) から WPF (.NET 5)
当初 .NET Core でサポートされていなかった Windows Forms も、.NET 5 でも引き続
きサポートされます。
参考情報:Windows フォーム デスクトップ アプリを .NET 5 に移植する方法
https://docs.microsoft.com/ja-
jp/dotnet/desktop/winforms/migration/?view=netdesktop-5.0
なお、以下のように、.NET 5 を含む .NET Core で使用できない .NET Framework テ
クノロジもありますのでご注意ください。
参考情報:.NET Core と .NET 5 以降で使用できない .NET Framework テクノロジ
https://docs.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-
unavailable
21
Windows Forms (.NET Framework ) から Windows Forms (.NET 5)
また、破壊的変更もありますので併せてご注意ください。
参考情報:Windows フォームでの破壊的変更(.NET Core 全体の情報)
(現時点では英語版のドキュメントのみ公開されております。)
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/winforms
参考情報:Windows フォームでの破壊的変更(.NET 5 固有の情報)
(現時点では英語版のドキュメントのみ公開されております。)
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/winforms#net-50
22
Windows Forms (.NET Framework ) から Windows Forms (.NET 5)
今のタイミングであれば、.NET 5 でしっかり検証を行い、.NET 6 (LTS) へ
の移行をマイルストーンにして進めるのは充分「あり」です。
いずれにせよ、自分の関わっているアプリケーションが時代遅れになりす
ぎて、身動きが取れなくなることは避けたいです(自戒)
23
まとめ
主なワークロードにおいては、.NET5 リリースまでに手厚いサポートが行われ
ており、ASP.NET Web Forms 以外はソースコードの移行については比較
的容易に実施できるようになっています。
もちろん、アプリケーションとして実際に移行を進めていく段階では様々な
問題が出てくるでしょうが、移行を進める前提条件は十分に揃っていると
言えます。
ご清聴ありがとうございました

More Related Content

PDF
Net6 Overview
PDF
20201127 .NET 5
PPTX
(ゲームじゃない方の)switchで遊びたい話
PDF
Getting Started .NET Core
PPTX
.NET Core for Mac users in Azure
PDF
.NET Core時代のCI/CD
PPTX
About .Net vNext
PPTX
Visual studio 2015 update1 ctpとcsi
Net6 Overview
20201127 .NET 5
(ゲームじゃない方の)switchで遊びたい話
Getting Started .NET Core
.NET Core for Mac users in Azure
.NET Core時代のCI/CD
About .Net vNext
Visual studio 2015 update1 ctpとcsi

What's hot (20)

PDF
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
PPTX
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
PPTX
dotnetconfJP2017_netcore2
PPTX
Net fringejp2016
PDF
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
PPTX
.NET Framework で ​C# 8って使える? ​YESとNO!
PPTX
App016 .net core_~_cross-platform、_high_performance、_open_sou
PDF
App016 .net core_~_cross-platform、_high_performance、_open_sour
PDF
[TL03] あなたはどっち? Visual Studio Code 派と Visual Studio 派による Web フロントエンド開発 徹底紹介
PDF
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
PDF
[MW01] ご注文は Linux + Docker ですか? Windows だけじゃない App Service を使い切る
PPTX
Win10Pcap を使って見る
PDF
NET5 and Diagnostics
PDF
Recap: PowerShell Core
PDF
つながるJavaとTFS
PPTX
C# design note sep 2014
PPTX
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
PPTX
その後のBash on windows
PPTX
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
dotnetconfJP2017_netcore2
Net fringejp2016
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Framework で ​C# 8って使える? ​YESとNO!
App016 .net core_~_cross-platform、_high_performance、_open_sou
App016 .net core_~_cross-platform、_high_performance、_open_sour
[TL03] あなたはどっち? Visual Studio Code 派と Visual Studio 派による Web フロントエンド開発 徹底紹介
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
[MW01] ご注文は Linux + Docker ですか? Windows だけじゃない App Service を使い切る
Win10Pcap を使って見る
NET5 and Diagnostics
Recap: PowerShell Core
つながるJavaとTFS
C# design note sep 2014
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
その後のBash on windows
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
Ad

Similar to .NET Framework アプリケーションの NET 5 への 移行を考える (20)

PDF
【BS2】.NET 6 最新アップデート
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
PDF
Dotnetcore30forwindesktop
PDF
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
PDF
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
PDF
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
PDF
Application Platform としての Windows Server 2019
PDF
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
PPTX
WPF on .NET Core 3.0
PDF
How to walk_on_windows_azure_platform
PDF
18-D-1 .Net Framework 4 概要
PDF
New Features of DotNet 6 Blazor WASM
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
PPTX
MS系Chatbot触ってみた
PDF
未知との交信!?Project SignalR
【BS2】.NET 6 最新アップデート
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Dotnetcore30forwindesktop
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Application Platform としての Windows Server 2019
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
WPF on .NET Core 3.0
How to walk_on_windows_azure_platform
18-D-1 .Net Framework 4 概要
New Features of DotNet 6 Blazor WASM
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
MS系Chatbot触ってみた
未知との交信!?Project SignalR
Ad

More from Tomohiro Suzuki (16)

PPTX
Xamarin.iOS の仕組みを理解しよう!
PDF
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
PPTX
Another Visual Studio - Visual Studio for Mac
PPTX
Visual Studio といえば 当然 Visual Studio for Mac だよね!
PPTX
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
PPTX
JXUG ハンズオンもくもく会
PPTX
Xamarin.iOS 開発者から見た Swift
PDF
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
PPTX
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
PPTX
Cocos sharpformsの使用例
PPTX
がんばれガンプ ソルバルウを倒せについて
PPTX
Xamarin Native vs Xamarin Forms
PPTX
がんばれガンプ ソルバルウを倒せ
PPTX
Xamarin 実戦投入時に気をつけたいことあれこれ
PPTX
Xamarin 実戦投入時の留意点再確認
PPTX
Cocos sharpでゲーム開発してみました
Xamarin.iOS の仕組みを理解しよう!
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
Another Visual Studio - Visual Studio for Mac
Visual Studio といえば 当然 Visual Studio for Mac だよね!
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG ハンズオンもくもく会
Xamarin.iOS 開発者から見た Swift
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
Cocos sharpformsの使用例
がんばれガンプ ソルバルウを倒せについて
Xamarin Native vs Xamarin Forms
がんばれガンプ ソルバルウを倒せ
Xamarin 実戦投入時に気をつけたいことあれこれ
Xamarin 実戦投入時の留意点再確認
Cocos sharpでゲーム開発してみました

.NET Framework アプリケーションの NET 5 への 移行を考える