SlideShare a Scribd company logo
7
Most read
15
Most read
NTTデータ先端技術株式会社
MS基盤担当 鈴木 友宏
.NET アップグレード アシスタントで
簡単にできます!
.NET Framework アプリの
.NET 6 へのマイグレーション
Microsoft MVP for Developer Technologies
Agenda
 Introduction
 本セッションのゴール
 .NET 6 への移行の基本的な手順と問題点
 ツールを活用し、移行計画を作成するメリット
 ツールを活用した .NET 6 への移行の基本的な手順
 Windows Form アプリのテスト移行のデモ
 ポイントとまとめ
Introduction
.NET に限らず、アプリを最新の環境に移行する場合に最も重要なことは
①作業内容 ②リスク ③実施計画 ④コストを
ステークホルダーにわかりやすく説明し、理解と承認を得ることですが…
移行計画
移行先の環境の知見が少ない段階で、これらを調査・理解し、
移行計画を作成するのは困難です…
本セッションでは、
① .NET Portability Analyzer や .NET アップグレード アシスタントを使い
② .NET Framework アプリを .NET 6 へテスト移行を実施し
③ その結果から移行計画を作成する
基本的手順をデモを交えながらご説明します。
本セッションのゴール
ツールを活用してテスト移行を実施し
「移行計画」を作成する手順を理解します
ツールを活用した場合の
「移行の基本的な手順」を理解します
移行に際し押さえておくべき
ポイントを理解します
.NET 6 への移行の基本的な手順と問題点
移行計画
• .NET 6 で動作しない API の調査
• 移行に必要な作業のリストアップ
• 移行に必要な作業量(作業時間)の見積もり
移行実施
• csproj ファイルを .NET 6 対応に書換え
• コードを .NET 6 対応に書換え
テスト
• 自動テスト、手動テストの実施
• 正常動作しないコードの修正
ドキュメントベースの調査は
時間がかかり、低精度になりがち
精度の低い移行計画では
承認をとれず移行を進められません
問題点
少ない手間で可能な限り精度の
高い移行計画を作成する方法は..
作業内容と作業量が見えず
移行計画を立てるのが困難です
移行計画の承認を取らないと
移行を進められません
ツールを活用し、移行計画を作成するメリット
ツールでできること
手作業で行う必要があること
.NET Portability Analyzer
・.NET 5 で使用できない(ビルドが通らず代替が必要な)
API を特定(現状 .NET 6 未対応)
.NET アップグレード アシスタント
・syntax や名前空間の問題でビルドが通らないコードを
.NET 6 の新しい構文に変換
• ツールで変換できなかった サポートされていない
構文を修正
• テストが通らない(正常動作しない)コードを修
正
必要な手作業がリストアップされ
移行作業の大まかな見積もりができます
ツールでの処理後にビルドが通らないコード
基本的に「手作業が必要な部分」
ツールを活用した .NET 6 への移行の基本的な手順
準備と
調査
• アプリのモダン化、自動テスト作成
• 移行先プラットフォーム(.NET 6)の API の対応状況を .NET Portability Analyzer で確認
テスト
移行
• .NET アップグレード アシスタントでプロジェクトの変換
移行計
画作成
• 「調査」「テスト移行」の結果を活用し移行計画を作成
計画に基
づく移行
• 作成した移行計画に基づき移行を実施
テスト
• 自動テスト、手動テストの実施
• 正常動作しないコードの修正
主にこの部分をデモします
Windows Form アプリのテスト移行のデモ
例として、Windows Form アプリを実際にテスト移行しながらツールを活用し
た .NET 6 への移行計画を作成する手順の詳細をご説明します。
なお、WPF、ASP.NET、コンソールアプリの移行の場合も手順や考え方は変わ
りません。
テスト移行の準備と調査
アプリのモダン化、自動テスト作成
アプリを移行したのち、必ず全てを網羅したテストが必要になります。また、.NET 6 に移行後も 2
年に 1 回最新の .NET への移行が必要になるため、アプリのモダン化(最低でも自動テストが可能な
View と ロジックの分離)と自動テスト作成を行うことをお勧めします。
移行先プラットフォーム(.NET 6)の API の対応状況確認
移行先で使用できないクラス・メソッドや UI コントロールを Excel ファイルで出力できます。
(この作業は Visual Studio 上で .NET Portability Analyzer により可能です。※現状 .NET 6 未対応)
調査結果の非対応API を確認することで、移行の難易度、作業量の見当をつけることが可能です。
テスト移行の準備と調査のデモ
ツールによる移行
.NET アップグレード アシスタントによるプロジェクトの移行
コマンドベースの対話形式のツールでステップバイステップの移行ができます。
移行前のプロジェクトもバックアップできるため、何度でもやり直し可能です。
このツールでできることは基本的に以下の3つです。
・xxx.csproj ファイルのフォーマットとその設定値を新しい形式に変換します
・起動プロセスなどの定型的なコードを .NET 6 の新しい構文に変換します
・名前空間の変更などによる足りない参照を追加します
ツールで移行することで、正常動作するかは別として、手作業でビルドエラーを修正しなければいけ
いない箇所がわかります。
ツールによる移行のデモ
移行計画の作成
「調査」「テスト移行」の結果を活用し移行計画を作成
ツールでの変換後にビルドエラーが出ている箇所、警告が出ている個所は API の互換性がないなど、
手作業での移行が必要な場所です。
エラーや警告をリストアップし、それぞれに応じた対応策を検討していきます。
ポイントとまとめ
① おおまかでよいので、根拠のある移行計画を作成することで移行を進
めやすくなります
② 机上の調査を実施するより、ツールを利用したテスト移行を実施した
方が簡単に具体的な情報が手に入るので、まずは実施します
③ .NET 環境では LTS でも3年のサポートとなり、自動テストが導入さ
れていない場合、移行後のメンテナンス負担が大きいので、少しづつ
でも導入をお勧めします
【付録】今回使用したツール・リポジトリ
.NET Portability Analyzer
Visual Studio Extension
https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer
GitHub リポジトリ
https://github.com/microsoft/dotnet-apiport
.NET アップグレード アシスタント(コマンド実行でインストール)
dotnet tool install -g upgrade-assistant
デモのリソース一式
https://github.com/TomohiroSuzuki128/net-upgrade-assistant-tutorial
以上となります。
ご視聴ありがとうございました。
◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に
対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うこと
は、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではあり
ません。
◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給さ
れる場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
◼ Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。

More Related Content

PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
PDF
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
PDF
【BS2】.NET 6 最新アップデート
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
PPTX
コンテナネットワーキング(CNI)最前線
PDF
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
【BS2】.NET 6 最新アップデート
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
コンテナネットワーキング(CNI)最前線
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)

What's hot (20)

PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PPTX
Dockerからcontainerdへの移行
PDF
マイクロにしすぎた結果がこれだよ!
PPTX
「ネットワーク超入門 IPsec VPN編」
PDF
マルチテナント化で知っておきたいデータベースのこと
PDF
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PDF
Open Liberty: オープンソースになったWebSphere Liberty
PPTX
Amazon EKS への道 ~ EKS 再入門 ~
PDF
Spring 5でSpring Testのここが変わる_公開版
PDF
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
単なるキャッシュじゃないよ!?infinispanの紹介
PPTX
Rootlessコンテナ
PDF
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
PPTX
Azure Service Fabric 概要
PDF
ASP.NETの進化とASP.NET Core Blazorの凄さ
PPTX
分散トレーシングAWS:X-Rayとの上手い付き合い方
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
Dockerからcontainerdへの移行
マイクロにしすぎた結果がこれだよ!
「ネットワーク超入門 IPsec VPN編」
マルチテナント化で知っておきたいデータベースのこと
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
ドメイン駆動設計 ( DDD ) をやってみよう
Open Liberty: オープンソースになったWebSphere Liberty
Amazon EKS への道 ~ EKS 再入門 ~
Spring 5でSpring Testのここが変わる_公開版
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
単なるキャッシュじゃないよ!?infinispanの紹介
Rootlessコンテナ
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Azure Service Fabric 概要
ASP.NETの進化とASP.NET Core Blazorの凄さ
分散トレーシングAWS:X-Rayとの上手い付き合い方
これからSpringを使う開発者が知っておくべきこと
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
Ad

Similar to 【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション (20)

PDF
App Modernization for .NET
PDF
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
PPTX
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
PPTX
Relationship betweenddd and mvc
PDF
【サイボウズ インターンシップ2025】Webアプリケーション開発(kintone)コース説明資料
PDF
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
PDF
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
PPTX
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
PDF
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
PDF
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
PDF
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
PPTX
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
PDF
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
PDF
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
PDF
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
PDF
Tech summitの歩き方 開発者編
PDF
Tech summitの歩き方 開発者編
PDF
楽天エンジニアライフ
PDF
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
App Modernization for .NET
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Relationship betweenddd and mvc
【サイボウズ インターンシップ2025】Webアプリケーション開発(kintone)コース説明資料
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
Tech summitの歩き方 開発者編
Tech summitの歩き方 開発者編
楽天エンジニアライフ
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Ad

More from 日本マイクロソフト株式会社 (20)

PDF
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
PDF
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
PDF
【BS12】Visual Studio 2022 40分一本勝負!
PDF
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
PDF
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
PDF
【BS8】GitHub Advanced Security で実践できる DevSecOps 対策
PDF
【BS7】GitHubをフル活用した開発
PDF
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
PDF
【BS6】 マイクロソフトの GitHub との取り組み
PDF
【BS1】What’s new in visual studio 2022 and c# 10
PDF
N08_次世代通信キャリアの "Resilience" を支援する Microsoft Cloud [Microsoft Japan Digital Days]
PDF
S09_プライバシー規約準拠の基本! Amazon S3 やオンプレ SQL もサポートする Azure Purview による情報分類と管理 [Micr...
PDF
S18_ゼロトラストを目指し、Windows 10 & M365E5 を徹底活用した弊社 (三井情報) 事例のご紹介 [Microsoft Japan D...
PDF
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
PDF
S15_標準 PC にさようなら!ニューノーマルの働き方に合わせたデバイスの選択 [Microsoft Japan Digital Days]
PDF
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
PDF
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
PDF
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
PDF
S08_Microsoft 365 E5 Compliance による内部不正対策の実践 [Microsoft Japan Digital Days]
PDF
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS12】Visual Studio 2022 40分一本勝負!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
【BS8】GitHub Advanced Security で実践できる DevSecOps 対策
【BS7】GitHubをフル活用した開発
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
【BS6】 マイクロソフトの GitHub との取り組み
【BS1】What’s new in visual studio 2022 and c# 10
N08_次世代通信キャリアの "Resilience" を支援する Microsoft Cloud [Microsoft Japan Digital Days]
S09_プライバシー規約準拠の基本! Amazon S3 やオンプレ SQL もサポートする Azure Purview による情報分類と管理 [Micr...
S18_ゼロトラストを目指し、Windows 10 & M365E5 を徹底活用した弊社 (三井情報) 事例のご紹介 [Microsoft Japan D...
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
S15_標準 PC にさようなら!ニューノーマルの働き方に合わせたデバイスの選択 [Microsoft Japan Digital Days]
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
S10_Microsoft 365 E5 Compliance で実現する機密情報の検出・分類・保護 - Microsoft Information P...
S08_Microsoft 365 E5 Compliance による内部不正対策の実践 [Microsoft Japan Digital Days]
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...

Recently uploaded (11)

PDF
ISACA CISM Study memo - Japanese version in 2025
PPTX
株式会社フライク_______採用ピッチ資料_____update20250801
PPTX
SPOファイル操作の安定化_2025072800000000000000.pptx
PDF
中小企業のIT放題 - サービス概要です。当サービスにご契約いただくと、すべてのサービスが利用し放題となります。
PDF
Fellowship Co.,Ltd. Company Overview for Students
PPTX
Document from Suhani (2).pptx on the following topic
PPTX
データサイエンス研修紹介資料.pptx RIZAPビジネスイノベーション株式会社
PDF
AI活用の成果が変わる!生成AI時代の速読・読解力トレーニング「AI Reading Lab」
PPTX
「AI×仕事の進め方」研修資料.pptx RIZAPビジネスイノベーション株式会社
PDF
無紙チャートレコーダー、グローバルトップ10企業のランキングと市場シェア.pdf
PDF
自動鉱山スキャナー、グローバルトップ11企業のランキングと市場シェア2025~2031年.pdf
ISACA CISM Study memo - Japanese version in 2025
株式会社フライク_______採用ピッチ資料_____update20250801
SPOファイル操作の安定化_2025072800000000000000.pptx
中小企業のIT放題 - サービス概要です。当サービスにご契約いただくと、すべてのサービスが利用し放題となります。
Fellowship Co.,Ltd. Company Overview for Students
Document from Suhani (2).pptx on the following topic
データサイエンス研修紹介資料.pptx RIZAPビジネスイノベーション株式会社
AI活用の成果が変わる!生成AI時代の速読・読解力トレーニング「AI Reading Lab」
「AI×仕事の進め方」研修資料.pptx RIZAPビジネスイノベーション株式会社
無紙チャートレコーダー、グローバルトップ10企業のランキングと市場シェア.pdf
自動鉱山スキャナー、グローバルトップ11企業のランキングと市場シェア2025~2031年.pdf

【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション