.NET Conf Recap - .NET Web 開発者向け推しセッションを一挙紹介
次点
Azure Static Web Apps with Blazor and .NET - Melissa Houghton
Backend API に Functions 以外が選べるようになった
SWA のポータル画面から、リンクするバックエンドAPIを上記から選べる
すると、バックエンドAPIに対する、SWA からの要求に対する認証も自動で構成される
ただし Preview?
Azure App Service
Azure Container Apps
Azure API Management
Static Web Apps CLI
.NET 7 on App Service - Byron Tardif, Gaurav Seth
az CLI
"> az webapp up"
Building a .NET SDK library with Open API and NSwag - Laura Rodriguez
Keynote および State of ASP.NET Core とかなり重複
Upgrading from .NET Framework to .NET 7 - Mike Rousos, Taylor Southwick, Olia Gavrysh
The Power of Polyglot Notebooks - Claudia Regio
Performance benefits of .NET 7 for Web Applications - Jérôme Laban
WebAssembly ネイティブにビルド済みの NuGet パッケージの例
SQLiteWasm
SkiaSharp
C# による実装を WebAssembly に AOT コンパイルし、それを NuGet パッケージ化して、他プロジェクトから再利用することも可能、とのこと
質問
回答は Yes, you can
.NET Configuration In Depth - Chris Ayers
特に目新しい話ではないが、.NET における IConfiguration について基本から解説
オプションの検証については時間切れ
Dynamically adding functionality to ASP.NET Core - Chris Klug
ビルド済みの ASP.NET Core アプリケーションについて、その実行直前に追加のプログラムを注入するための仕組みがある。その紹介。
Slaying Zombie ‘No Repro’ Crashes with Infer# - Matthew Jin, Xin Shi, Xiaoyu Liu, Jason Shaver
プログラムを静的解析して、潜在的なバグの可能性を報告してくれるツール "Infer" の .NET 版 "Infer#" の話
今日現在では Windows 単体では利用できず、WSL を必要とする
とはいえ、利用のための Visual Studio 拡張が用意されており、Visual Studio ユーザーならセットアップはほぼ自動なので、そのあたりをほとんど手を掛けずに始められる
CSS Techniques for Blazor Developers - Ed Charbeneau
目新しい話ではないが、CSS 実装を基本から解説
Blazor の "CSS の分離" を使う
どうやって実現されているのか、その仕組みの解説
"CSS スコープ" の制御
SaSS (ScSS) を使う
Modernize your WPF and Windows Forms application with Blazor - Michele Aponte
Blazor は MAUI 抜きでも、Windows Forms あるいは WPF アプリ内に貼り付けて使用できる
開発中は、WebView (Chromium ベース) の開発者ツールウィンドウも利用できるらしい
Blazor コンポーネント内の C# コードも CPU ネイティブで実行される (WebView 内の JavaScript/WebAssembky で動くわけではない)
Testing Blazor Applications with Playwright - Debbie O'Brien, Max Schmitt
Playwright を使って E2E テストを実装する
テスト対象のブラウザインスタンスは、ユーザーがインストールしたものではなく、Playwright が独自にインストールしたものを使う
但し、若干とはいえディスク容量は食う
AさんのPCでは動いたのに、BさんのPCに入っているブラウザはバージョンが合わなくて動かない、とかいうトラブルから解放される
plyawright.ps1 codegen を使うことで、人の手によるブラウザの操作を "レコーディング" し、Playwright を使った C# プログラムコードを生成できる
速い
安定している
Build an Audio Browser app with Blazor - Steve Sanderson
ブラウザの File System API を利用した、オーディオファイル再生アプリを Blazor WebAssembly を使って構築していくデモンストレーション
Blazor は SVG もサポート
オーディオ波形をグラフィカルに表示
しかし処理が重い...
仮想化スクロールと AOT で解決!
ここでも QuickGrid 使用
.NET ❤️’s WebAssembly in .NET 7 - Daniel Roth
マルチスレッドの試験実装が利用可能に
新しい JavaScript 相互運用機能
Blazor Wasm からの利用例 - Hand.js を使って、Web カメラに映った手のモデルを認識する
ソースコードはこちら
ライブデモはこちら
[JSImport] および [JSExport] 属性
Blazor WebAssembly
AOT
処理速度向上
WebAssembly の Exception Handling に対応
デバッガの改善
"自分のコードだけ表示 (Just My Code)" が改善
Performance Improvements in .NET 7 - Stephen Toub
.NET 7 がどれだけ処理速度向上したのか/どうやって実現されているのか
正規表現検索の BackTrack オプションの追加
一般的なシナリオならバックトラックを無効化して圧倒的処理性能を向上
What's New in C# 11 - Mads Torgersen, Dustin Campbell
required & init プロパティ
Blazor のコードビハインドでプロパティインジェクションを受け取るときに、null! などで初期化しなくて済む!
interface の静的メンバー
T.Parse パターンの実装がより簡素にできそう
Factory パターンの実装がより簡素にできそう
What's new for Blazor in .NET 7 - Steve Sanderson
Custom Elements
WordPress 上に Blazor WebAssembly で実装したコンポーネントを掲載
NavigationLock コンポーネント
編集中に別ページに遷移する前にプロンプトを出せるようになった
データバインディングの強化
@bind:after, @bind:get. @bind:set が使えるようになった
ところが、なんと、.NET 7 RTM で壊れたっぽい
QuickGrid
プレビュー公開だが、Steve Sanderson 氏によるハイパフォーマンスな Grid コンポーネントの参照実装
State of ASP.NET Core - Daniel Roth
Blazor
Custom Elements が GA
Blazor で WebComponents を実装
ブラウザネイティブのように振る舞える HTML タグを、Blazor で実装できるイメージ
他のフレームワークとの連携・統合が可能
それら他のフレームワークからは、ブラウザネイティブな HTML 要素と同じに扱えるので。
MAUI Blazor Hybrid
WinUI3 アプリ、Android アプリの UI を Blazor で実装
Minimal API 強化
Keynote とほぼ重複
Keynote
Open Telemetry と Azure Monitor の連携
Container 対応強化
Docker Desktop 不要で、"dotnet publish ..." で Docker コンテナに発行できる
Ubuntu 対応の強化
Ubuntu 上での apt install dotnet7 で .NET 7 SDK をインストールできる
コンテナサイズの縮小化
Canonical との共同体制強化
Visual Studio
dev tunnel
ローカルで開発中の Web アプリを、インターネットに一時的に公開できる
簡素化された認証機能の実装
Swagger UI も認可が必要な API を認識
"dotnet user-jwt create" コマンドで、開発中の動作確認時に使えるトークンを生成できる
Barrer トークンを指定して認証する UI も搭載
Minimal API
強く型付けされた API 戻り値
Results, NotFound>
Swagger UI で、その API が返しうる HTTP Status を明示できる
MapGroup で関連する API のまとまりの実装を簡素化
とにかく処理速度が向上した