.NET Confの季節ですね。
- .NET Conf 2022 (dotnetconf.net)
- Digital SWAG for .NET Conf 2022 … デジタルお土産。キーワード集めて商品ゲットしようチャレンジもあるけど割と大変(英語…)
- 1日目は .NET 7についてあれこれ。2日目は24時間深堀セッションブロードキャスト、3日目は世界のスピーカーが終日何かセッションするみたいな感じのようです。
リンクなど
- Download .NET 7.0 (Linux, macOS, and Windows)
- .NET 7 is Available Today
- Welcome to C# 11
- Announcing ASP.NET Core in .NET 7
- Entity Framework Core 7 (EF7) is available today
- Announcing .NET MAUI for .NET 7 General Availability
- What’s new in Windows Forms in .NET 7.0
- What’s new for WPF in .NET 7
- Announcing F# 7
- What’s new in Orleans 7.0
- Visual Studio 2022 17.4 is now available!
- Arm64ネイティブ対応もした 17.4と、17.5 Previewもでてます。
- Azure関連
- .NET 7 GA available on App Service – Azure App Service
- .NET 7がGAしたのでApp Serviceでも即サポートです。Early Accessのほうでですけど。Windows/Linux両方OK。今週中には統合版のロールアウトが完了予定らしい。
- Announcing the .NET 7 for Azure functions isolated worker process is generally available
- FunctionsはIsolated Worker(OutOfProcess)なら今すぐ利用OK。
- Generally available: Azure Static Web Apps now fully supports .NET 7
- .NET 7 Blazor WebAssemblyアプリをデプロイできるようになりました。バックエンドのAzure Functionsも上述通り。
- Event
Day 1 キーノート
というわけでキーノートなセッションです。最初は .NETの近況あたり。用途、環境、エコシステムそれぞれだいぶ充実してきました。コントリビューターも48000以上、NuGetパッケージも2億4千万ダウンロード、32万9千パッケージが提供されてる。新機能としてパッケージの中央管理や推移的な依存関係の把握、2要素認証、ソースマッピングなども増えてますね。
予定通り .NET 7 がリリース。 .NET 5、.NET 6とパフォーマンス改善してきましたが .NET 7でもより沢山のパフォーマンス改善がされました。ハイライトとしては Arm64ネイティブサポート、Linuxサポートの拡張、モバイルアプリなやクラウドネイティブなどモダンなアプリへの対応、APIパフォーマンスの向上、HTTP/3やMinimal API、Dev Tunnel、コンテナー対応などなどの機能が増えました。
C#11もリリース。Raw StringリテラルとかGeneric Mathサポートとかいろいろ。モダンWeb関連だとHTTP/3やKestrel/IISでArm64サポート、レートリミット、アウトプットキャッシュ、JWTを使った認証の向上やルートグループ、OpenAPIサポートの拡充、gRPC JSON関連やWebAssembly SIMD対応、などなど。
パフォーマンス関連の向上について。Entity Framework Coreも4倍ぐらい向上してるとかなんとか。API関連の機能も向上してますね。OpenAPI関連サポートが強くなった、認証関連もコード量が減ってセキュアにしやすくなった感じです。
というわけでREST API関連のデモ。Entity Framework CoreのスキャフォールディングしてCURDなAPIをMapGroupでまとめて管理。
レートリミットも簡単に定義。認証関連もポリシーの追加など構成がだいぶ簡単になりました。OpenAPIサポートを有効にするとSwagger UIもすぐ使えます。OpenID Connectを使ったりした認証に必要なBearerトークンも dotnet コマンドで作れます。
Azureとの連携ではAzure API ManagementでContainer AppなどAzure上のリソースから簡単にAPIをインポートして公開できます。テストももちろんOK。Power Platformと連携してPower PlatformからAPI Managementで公開されているAPIを簡単に呼び出せたり。
開発中はPower Platform経由の呼び出しなどもデバッグしたい、といったときはDevTunnelを使ってローカルPC上のデバッグ実行してるエンドポイントへインターネット経由(DevTunnel経由)でアクセスしてもらうことでデバッグも可能に。(Power PlatformでDevTunnel使うのはまだ申請が必要みたいです)
次はASP.NET からの移行や .NETアップグレードアシスタントについて。それから実際に移行した事例をいくつか。
クラウドネイティブ関連。Canonicalと連携してUbuntuに.NET 7載せるだけでなくより小さなサイズのコンテナー対応とか。Ubuntuでdotnet7インストールすぐできるようになります。
dotnet publishコマンドでコンテナーイメージをビルドできるようになったり。
デモではコンテナーレジストリー(ここではAzure Container Registry)にデプロイしたり、Visual Studioの機能で発行する際にCI/CDで使えるYamlを生成したり。
デプロイだけでなく、Application InsightsやOpenTelemetryを使ってトラブルシュートのデモも。デモでは処理にとても時間がかかってるリクエストがあるというのを見つけて原因を探していきます。
それらのメトリクスを見るための(出力するための)コードもBuilderで簡単に。OpenTelemetryもAzure Application Insightsも同じように定義できます。テレメトリだけじゃなくログも同様に。さて診断のほうではコアダンプを取って分析、結果のサマリに表示されたコードを見ると非同期呼び出しの中で同期呼び出ししてました、みたいな感じですね。
.NET MAUI (Multi-platform App UI)関連。.NET MAUIもGAですね。Blazorと.NET MAUIを組み合わせたHybridも構成可能になりました。最後にもろもろ対応できるようになったツールとして Visual Studio 2022 v17.4 も今日リリースです。Arm64ネイティブサポートもされてます。
というわけでキーノートは終了です。
キーノートで紹介した .NET 7の詳細やASP.NET、Azure関連など詳細は以降のセッションで!