.NET Conf 2022

.NET Confの季節ですね。

  • .NET Conf 2022 (dotnetconf.net)
    image
  • Digital SWAG for .NET Conf 2022 … デジタルお土産。キーワード集めて商品ゲットしようチャレンジもあるけど割と大変(英語…)
  • 1日目は .NET 7についてあれこれ。2日目は24時間深堀セッションブロードキャスト、3日目は世界のスピーカーが終日何かセッションするみたいな感じのようです。

リンクなど

Day 1 キーノート

というわけでキーノートなセッションです。最初は .NETの近況あたり。用途、環境、エコシステムそれぞれだいぶ充実してきました。コントリビューターも48000以上、NuGetパッケージも2億4千万ダウンロード、32万9千パッケージが提供されてる。新機能としてパッケージの中央管理や推移的な依存関係の把握、2要素認証、ソースマッピングなども増えてますね。

ice_screenshot_20221109-010118ice_screenshot_20221109-020104ice_screenshot_20221109-020133ice_screenshot_20221109-020146ice_screenshot_20221109-020202ice_screenshot_20221109-020226

予定通り .NET 7 がリリース。 .NET 5、.NET 6とパフォーマンス改善してきましたが .NET 7でもより沢山のパフォーマンス改善がされました。ハイライトとしては Arm64ネイティブサポート、Linuxサポートの拡張、モバイルアプリなやクラウドネイティブなどモダンなアプリへの対応、APIパフォーマンスの向上、HTTP/3やMinimal API、Dev Tunnel、コンテナー対応などなどの機能が増えました。

ice_screenshot_20221109-020241ice_screenshot_20221109-020244ice_screenshot_20221109-020308ice_screenshot_20221109-020323

C#11もリリース。Raw StringリテラルとかGeneric Mathサポートとかいろいろ。モダンWeb関連だとHTTP/3やKestrel/IISでArm64サポート、レートリミット、アウトプットキャッシュ、JWTを使った認証の向上やルートグループ、OpenAPIサポートの拡充、gRPC JSON関連やWebAssembly SIMD対応、などなど。

ice_screenshot_20221109-020340ice_screenshot_20221109-020351ice_screenshot_20221109-020406ice_screenshot_20221109-020428

パフォーマンス関連の向上について。Entity Framework Coreも4倍ぐらい向上してるとかなんとか。API関連の機能も向上してますね。OpenAPI関連サポートが強くなった、認証関連もコード量が減ってセキュアにしやすくなった感じです。

ice_screenshot_20221109-020452ice_screenshot_20221109-020505ice_screenshot_20221109-020514ice_screenshot_20221109-020537ice_screenshot_20221109-020552ice_screenshot_20221109-020604ice_screenshot_20221109-020611

というわけでREST API関連のデモ。Entity Framework CoreのスキャフォールディングしてCURDなAPIをMapGroupでまとめて管理。

ice_screenshot_20221109-020617ice_screenshot_20221109-020628ice_screenshot_20221109-020646ice_screenshot_20221109-020708ice_screenshot_20221109-020735ice_screenshot_20221109-020825ice_screenshot_20221109-020849ice_screenshot_20221109-020904

レートリミットも簡単に定義。認証関連もポリシーの追加など構成がだいぶ簡単になりました。OpenAPIサポートを有効にするとSwagger UIもすぐ使えます。OpenID Connectを使ったりした認証に必要なBearerトークンも dotnet コマンドで作れます。

ice_screenshot_20221109-020939ice_screenshot_20221109-021012ice_screenshot_20221109-021024ice_screenshot_20221109-021041

Azureとの連携ではAzure API ManagementでContainer AppなどAzure上のリソースから簡単にAPIをインポートして公開できます。テストももちろんOK。Power Platformと連携してPower PlatformからAPI Managementで公開されているAPIを簡単に呼び出せたり。

ice_screenshot_20221109-021114ice_screenshot_20221109-021117ice_screenshot_20221109-021136ice_screenshot_20221109-021147ice_screenshot_20221109-021209ice_screenshot_20221109-021216ice_screenshot_20221109-021235ice_screenshot_20221109-021246ice_screenshot_20221109-021304ice_screenshot_20221109-021419ice_screenshot_20221109-021421

開発中はPower Platform経由の呼び出しなどもデバッグしたい、といったときはDevTunnelを使ってローカルPC上のデバッグ実行してるエンドポイントへインターネット経由(DevTunnel経由)でアクセスしてもらうことでデバッグも可能に。(Power PlatformでDevTunnel使うのはまだ申請が必要みたいです)

ice_screenshot_20221109-021510ice_screenshot_20221109-021539

次はASP.NET からの移行や .NETアップグレードアシスタントについて。それから実際に移行した事例をいくつか。

ice_screenshot_20221109-021736ice_screenshot_20221109-021747ice_screenshot_20221109-021754ice_screenshot_20221109-021805ice_screenshot_20221109-021815ice_screenshot_20221109-013243ice_screenshot_20221109-013329ice_screenshot_20221109-013336

クラウドネイティブ関連。Canonicalと連携してUbuntuに.NET 7載せるだけでなくより小さなサイズのコンテナー対応とか。Ubuntuでdotnet7インストールすぐできるようになります。

ice_screenshot_20221109-013528ice_screenshot_20221109-013535ice_screenshot_20221109-013603ice_screenshot_20221109-013613ice_screenshot_20221109-013628ice_screenshot_20221109-013638ice_screenshot_20221109-013648ice_screenshot_20221109-013718ice_screenshot_20221109-013722ice_screenshot_20221109-013802ice_screenshot_20221109-013837ice_screenshot_20221109-013920

dotnet publishコマンドでコンテナーイメージをビルドできるようになったり。

ice_screenshot_20221109-014024ice_screenshot_20221109-014030ice_screenshot_20221109-014122ice_screenshot_20221109-014748ice_screenshot_20221109-014756ice_screenshot_20221109-014136ice_screenshot_20221109-014230ice_screenshot_20221109-014252

デモではコンテナーレジストリー(ここではAzure Container Registry)にデプロイしたり、Visual Studioの機能で発行する際にCI/CDで使えるYamlを生成したり。
ice_screenshot_20221109-014301ice_screenshot_20221109-014506ice_screenshot_20221109-014537ice_screenshot_20221109-014550ice_screenshot_20221109-014604ice_screenshot_20221109-014724

デプロイだけでなく、Application InsightsやOpenTelemetryを使ってトラブルシュートのデモも。デモでは処理にとても時間がかかってるリクエストがあるというのを見つけて原因を探していきます。

ice_screenshot_20221109-014806ice_screenshot_20221109-014828ice_screenshot_20221109-014854ice_screenshot_20221109-014942ice_screenshot_20221109-015006

それらのメトリクスを見るための(出力するための)コードもBuilderで簡単に。OpenTelemetryもAzure Application Insightsも同じように定義できます。テレメトリだけじゃなくログも同様に。さて診断のほうではコアダンプを取って分析、結果のサマリに表示されたコードを見ると非同期呼び出しの中で同期呼び出ししてました、みたいな感じですね。

ice_screenshot_20221109-015057ice_screenshot_20221109-015125ice_screenshot_20221109-015145ice_screenshot_20221109-015211ice_screenshot_20221109-015228ice_screenshot_20221109-015259ice_screenshot_20221109-015341ice_screenshot_20221109-015416ice_screenshot_20221109-015441

.NET MAUI (Multi-platform App UI)関連。.NET MAUIもGAですね。Blazorと.NET MAUIを組み合わせたHybridも構成可能になりました。最後にもろもろ対応できるようになったツールとして Visual Studio 2022 v17.4 も今日リリースです。Arm64ネイティブサポートもされてます。

ice_screenshot_20221109-015604ice_screenshot_20221109-015640ice_screenshot_20221109-015712ice_screenshot_20221109-015717ice_screenshot_20221109-015810ice_screenshot_20221109-015826ice_screenshot_20221109-015859ice_screenshot_20221109-020017

というわけでキーノートは終了です。
キーノートで紹介した .NET 7の詳細やASP.NET、Azure関連など詳細は以降のセッションで!

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中