Upgrade to Pro — share decks privately, control downloads, hide ads and more …

.NET Aspireの新機能を使ってみる

Tomohisa Takaoka
November 22, 2024
220

.NET Aspireの新機能を使ってみる

November 23, 2024
.NETラボ 勉強会 2024年11月

https://dotnetlab.connpass.com/event/334612/

株式会社ジェイテックジャパン CTO Sekiban Framework メンテナ Microsoft MVP for Developer Technologies 高丘 知央

.NET Aspire 9.0には、アプリ開発を効率化するための新機能が多数搭載されています。このセッションでは、既存のAspire 8.0のプロジェクトをAspire 9.0に対応させた経験をもとに、なぜ .NET Aspireをすべてのアプリに活用すべきか、また .NET 9がどのようにしてアプリをさらに優れたものにするのかについて解説します。

Tomohisa Takaoka

November 22, 2024
Tweet

More Decks by Tomohisa Takaoka

Transcript

  1. ネットシェア可 #dotnetlab ⾃⼰紹介 Tomohisa Takaoka X: @tomohisa Github: @tomohisa Works

    at : 株式会社ジェイテックジャパン CTO, J-Tech Creations, Inc. B2B B2C アプリケーション開発、コンサルティング JTS Group - 株式会社ジャパンテクニカルソフトウェア Microsoft MVP for Developer Technologies (Web Development, .NET) new from November 2024 - OSS: Sekiban - Event Sourcing and CQRS Framework ResultBoxes - Railway Oriented Programing Library. 登壇予定: 11⽉26⽇ アーキテクチャカンファレンス 『イベントソーシング‧CQRSで、 ドメイン駆動設計をシンプルかつ柔軟に実践する』 12⽉21⽇ CQRS+ESカンファレンス 『中⼩規模のイベントソーシングを実現 する、Sekibanフレームワーク(仮)』 2 / 27
  2. ネットシェア可 #dotnetlab .NET Aspireの新機能を使ってみる 3 / 27 アジェンダ • dotnet

    confにおけるAspire関連の登壇のまとめ ◦ What’s new in Aspire. ◦ Build your own .NET Aspire integrations ◦ Building and deploying an Azure Functions app with .NET Aspire in 25 minutes ◦ Building .NET Applications Across Clouds with .NET Aspire ◦ Aspirations for .NET Aspire • ライブコーディング • まとめ
  3. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「Aspireは.netエコシステムの⼀部である」

    Aspireが、新しいプラットフォームやデスク トップアプリ、モバイルアプリという枠を超え て、.netエコシステムの⼀環として存在してい ることを意味します。Aspireの存在理由は、現 代の世界に適応し、応答性が⾼く、回復⼒があ り、観察可能なアプリを開発するための⽅法を 提供することにあります。 5 / 27
  4. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. Aspireの構成

    • Inner loop - AppHost • Developer Dashboard • Integration • Deployment (optional) 個⼈的には開発促進ツールとして現在は使⽤し ている。 6 / 27
  5. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「Visual

    Studio Code対応が機能追加中」 C# Dev Kit を使⽤することにより、「.NET Add .NET Aspire Orchestration (preview)」をコマ ンドパレット > から実⾏できるようになり、既 存ソリューションにAppHostやServiceDefault のプロジェクトを追加しやすくなった。 7 / 27
  6. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「Health

    Checkの活⽤」 Health状態を確認する機能がオーケストレー ションに組み込まれるようになった。 「.WaitFor()」をつけることによって、起動し て状況が出来上がってからマイグレーションを 流すなどを正しく定義できるようになった。 8 / 27
  7. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「カスタムコマンド」

    AppHostだけで実⾏できるコマンドを定義でき る。データのリセットや、開発⽤追加データな ど。Api側では、開発のみに実⾏できるHTTPエ ンドポイントとすることにより、開発中のみ使 ⽤できるようにする。 9 / 27
  8. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「インテグレーションの追加」

    リリース以来たくさんのインテグレーションが 使⽤できるようになってきている。 Aspireメインチームの負担を下げるため に、.NET Aspire Community Toolkitがリリー スされた。 10 / 27
  9. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ What’s new in Aspire. 「デプロイにおけるフレキシビリティの増加」

    Azure Container Appにおいて、ユーザーから のフィードバックをもとに、カスタムドメイン や証明書を追加できるようになった。 簡単デプロイは、本番環境⽤というよりも、簡 単にステージング環境を作るのに役に⽴つかも しれない。 11 / 27
  10. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Build your own .NET Aspire

    integrations .NET Aspire Community Toolkitのリリース https://github.com/communityToolkit/aspire Aspire本体でメンテナンスできないようなコ ミュニティのホスト統合、クライアント統合を 共同開発することができる Azure Data API Builder, Azure Static Web Apps, Bun, Deno, Golang, Java, Mellisearch, NodeJs, Ollama (host), Python, Rust, SQLDatabaseProjects, Ollamasharp (client) etc... できたものは、nuget で利⽤可能になってい る。 CommunityToolkit.Aspire.* 12 / 27
  11. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Building and deploying an Azure

    Functions app with .NET Aspire in 25 minutes Beta版としてAzure FunctionsのAspire対応が リリースされている。 storage = builder. AddAzureStorage"mystorage") .RunAsEmulator; blobs = storage.AddBlobs("blobs"); builder.AddAzureFunctionsProject<Projects. AspireImageResizer>("aspireimageresizer") WithReference(blobs); 簡単に追加できる。 13 / 27
  12. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Building and deploying an Azure

    Functions app with .NET Aspire in 25 minutes Aspire 8でも、⾃作拡張でのローカル実⾏がで きていたが、デプロイ機能などはなかったた め、機能的には便利になっている。 プレビュー版では、特定のサービスのサブセッ トのトリガーのみがサポートされています。 サポートされているトリガー • Azure Storage Queue • Azure Storage BLOB • Azure Service Bus • Azure Event Hubs • HTTP トリガー • タイマートリガー 14 / 27
  13. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Building and deploying an Azure

    Functions app with .NET Aspire in 25 minutes macOS + VSCode でも問題なく動作して、デ バッグも問題なくできる。 デプロイも可能 15 / 27
  14. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Building .NET Applications Across Clouds

    with .NET Aspire • AWS CloudFormationでJSONで開発⽤の データベースなどの構築が可能 • AWS Cloud Development Kit (CDK) を使⽤ して、C#でリソースを管理可能 Node.js を 内部使⽤しているため、node.jsのインス トールが必須。これも開発⽤のデータベー ス構築に⽤いることができる。 • Aspire.Host.AWS は、AWS内のGithubに 引っ越した。それによって、AWSのペース で開発ができるようになった。 • Dynamo DBをローカルで実⾏したテストで きるなどの新しい機能も開発中。 16 / 27
  15. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire “"Aspiration"は「⾼みを⽬指す意欲」や「夢‧⽬標」

    を意味し、成⻑や進化への強い願望を表しま す。"Aspirations for .NET Aspire" という名前に は、.NET Aspire を通じてコミュニティが⽬指す未来像 や可能性、成⻑への期待が込められており、.NET の進 化を推進し、希望と⾰新を象徴するフレーズとなって います。” - by GPT 4o Aspireの現時点を振り返ったところ、Aspire は開発、 テスト、デプロイのプラットフォームとなってきた。 最終的に⽣まれたのは、開発者がローカルでの開発、 テスト、デプロイメントを容易に⾏えるようにするた めの、キュレーションされた体験を提供するプラット フォームです。私がこれをプラットフォームと呼ぶ理由 です。 17 / 27
  16. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire 将来の展望

    Hotter Reload. 部分的にアプリケーションを変更したときに、 そのリソースだけを再起動する機能を近い将来 に作りたいと考えている。 また、デバッガーのダイナミックなdetach / attach も⾏いたいと考えている。 18 / 27
  17. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire 将来の展望

    多⾔語対応 .NET でできている開発の効率化を、 javascirpt、python など他の⾔語でもできるよ うにしていく。デバッガのアタッチなども.NET 並にできるようになることを考えている。 19 / 27
  18. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire 将来の展望

    ローカル実⾏もコンテナで可能にしたい。デ バッグ、ネットワークなど課題は多い チーム開発補助 マイクロサービス開発の効率化、パスワードや インフラの共有など 20 / 27
  19. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire 将来の展望

    リモート開発ができるようにすることにより、 Github Codespacesなどでフルの開発がAspire で⾏いやすくする。 Aspire CLI Aspire関係のコマンドをCLIとしてまとめたい とのこと開発体験やデプロイを効率化させると のこと。 21 / 27
  20. ネットシェア可 #dotnetlab 1. dotnet confにおけるAspire関連の登壇のまとめ Aspirations for .NET Aspire 将来の展望

    デプロイにApp Hostを使うとか、いろいろなア イデアが計画されている。チーム内でも意⾒が 分かれているので、実現するかは未定だが、開 発体験の向上という意味でいろいろなチャレン ジや、固定観念を壊すアイデアも考えらている ので楽しみ。 Azureのデプロイに関しては全ての機能が使え ることを計画され、できるだけ低い権限で安全 にリリースする⽅式に関して考えられている。 22 / 27
  21. ネットシェア可 #dotnetlab 2. ライブコーディング 24 / 27 やりたいこと • mac

    で postgres を設定 • Sekibanの簡単な機能を書く • SekibanのWeb APIの設定をAPI書く • SekibanのScalar UIの実⾏ができる • Blazor からデータを取得する (時間的に間に合わなそう)
  22. Thank You 27 Sekiban Github https://github.com/J-Tech-Japan/Sekiban Resultbox Github https://github.com/J-Tech-Japan/ResultBoxes Today’s

    Sample https://github.com/tomohisa/Solution2_202411 19_Sample 株式会社ジェイテックジャパン Website. https://www.jtechs.com/japan/ 会社ブログ zenn https://zenn.dev/p/jtechjapan_pub