Slide 1

Slide 1 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. Amazon Q Developerで .NET Frameworkプロジェクトを モダナイズしてみた 木村健一郎 2025年1月11日 .NET Conf Fukuoka x Osaka

Slide 2

Slide 2 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 名前 :木村健一郎 所属 :株式会社オルターブース SORACOM UG九州 JAWS-UG福岡 娘ちゃんのパパ(7歳6ヶ月) お仕事:IoT番長 受賞歴:SORACOM MVC 2021,2023 AWS Samurai 2019 APJ Commnity Award 2023(Ownership) 気になる.NET :.NET nanoFramework 好きなAWSサービス :Lambda、App Runner、IoT Core SNS : @show_m001

Slide 3

Slide 3 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved.

Slide 4

Slide 4 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. Amazon Qとは • AWSの、生成AIを利用したアシスタントサービス • Amazon Q BusinessとAmazon Q Developerがある • まぁAWSのCopilotみたいなものでAmazon Q Developerが GitHub Copilotと思えば良さそう(雑)

Slide 5

Slide 5 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 昨年のre:Invent2024 こんな発表がありました https://aws.amazon.com/jp/blogs/aws/announcing- amazon-q-developer-transformation-capabilities-for-net- preview/

Slide 6

Slide 6 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 要約すると • これまで.NET Frameworkから.NETへの移行ツールを提供し てきた • Porting Assistant for .NET • AWS Toolkit for .NET Refactoring • AWS Microservice Extractor for .NET • 今回、Amazon Q Developer transform for .NETをプレ ビューで発表した • Amazon Q Developerの力で変換プランを生成し、タスクを実行する • つまりGitHub Copilot Upgrade Assistant for .NETの Amazon Q Developer版

Slide 7

Slide 7 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 早速やってみた やったこと 1. AWS Toolkit with Amazon QをVS2022にインストール 2. サンプルとして準備した.NET Framework Webアプリケー ション(MVC)を開く 3. コンテキストメニューから「Port project with Amazon Q Developer」を選ぶ 4. プランとタスクを確認して適用 5. 手動で解決すべき事を実施

Slide 8

Slide 8 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. とりあえずサンプルのプロジェクトをビルドして実行したらこんな感じ

Slide 9

Slide 9 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. ソリューションを右クリックしてコンテキストメニューから「Port solution with Amazon Q Developer」を選びます。 ターゲットはLTS(net8.0)しか選べませんでした。

Slide 10

Slide 10 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. しばらく待ってると無事変換が完了。4:41で終わってますね。

Slide 11

Slide 11 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 実施されたタスクの一覧を見てみるとこんな感じ。 appsettings.jsonやProgram.csやStartup.csを作ったり、cssやviewの場所が移動したり、 Controllerを書き換えたりと、だいたい見慣れた変換が行われてます。

Slide 12

Slide 12 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. Controllerの変換タスクの詳細でdiffを見てみるとこんな感じ。

Slide 13

Slide 13 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. タスクを全部適用したらそれで完了・・とはいきません。 今回の場合はviewのcshtmlは手動の対応が必要でしたので手で直していきます。

Slide 14

Slide 14 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 無事ビルドできて起動できました。

Slide 15

Slide 15 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 番長~、Web Formsの プロジェクトがたくさん あるんだけど・・・

Slide 16

Slide 16 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 変換できるプロジェクトタイプは ・コンソールアプリ ・クラスライブラリ ・Web API ・WCF Service ・MVCとSPAのビジネスロジックレイヤー ・テスト サポートしてないプロジェクトはスキップするよ

Slide 17

Slide 17 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 対 応 プ ロ ジ ェ ク ト タ イ プ に 入 っ て な い か ら

Slide 18

Slide 18 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. まとめ • Amazon Q Developer transform for .NETで、.NET Frameworkのプロジェクトを最新の.NETに変換できた • 簡単なMVCのプロジェクトしか試してないけど、対応してる部分は全 て完全に自動で変換してくれて精度は良さそうな印象 • 今後、他のタイプや複雑なものも試してみたい • 対応してないプロジェクトタイプは無視されるので、MVCの Viewなどは手動の対応が必要 • 機械的に置き換えできそうな所くらいはGAまでに何とかならないかと 期待 • Web Formsは・・・

Slide 19

Slide 19 text

Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved.