トピックス
Introducing .NET MAUI - One Codebase, Many Platforms
https://devblogs.microsoft.com/dotnet/introducing-dotnet-maui-one-codebase-many-platforms/
クロスプラットフォーム開発フレームワークの .NET MAUI が一般提供となった。
現時点では開発ツーリングとして Visual Studio 2022 の Preview が必要となる (ツーリングの GA は今年の後半予定)。
記事ではネイティブ UI の各種対応(アクセシビリティやクロスプラットフォームな操作、カスタマイズなど)、モダンな開発者プロダクティビティ (新しいテンプレートやプロジェクト構成)、Blazor Hybird、パフォーマンスの最適化といったものを紹介している。
Visual Studio 2022 for Mac is now available
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-for-mac-is-now-available/
Visual Studio 2022 for Mac v17.0 がリリースされた。
Visual Studio 2022 for Mac 17.0 では. NET 6 での開発サポートをはじめ、IDE の macOS ネイティブ UI 化や Apple SIlicon (ARM64) ネイティブでの動作の対応が行われている。
また、同時に Preview 版となる 17.3 もリリースされ、.NET 7 プレビューと GA となった .NET MAUI 開発がサポートされている。
Create Next Generation Experiences at Scale with Windows - Windows Developer Blog
Build 2022 での Windows 向けの開発についてのアナウンス。
WinUI 3 プラットフォームをベースとした Windows App SDK 1.1 のプレビュー版の提供や新しい API、Template Studio for WinUI と移行ツールの更新、.NET MAUI のリリースなど。
その他、Microsoft Store では Win32 アプリケーションの配布に待ちリストへの登録が不要になったことや、ARM デバイスの開発を進めるための開発向けデバイスの Project Volterra や Visual Studio の ARM 版の提供予定などが発表されている。
gRPC support on Azure App Service
https://azure.github.io/AppService/2022/05/23/gRPC-support-on-App-Service.html
Azure App Service for Linux にて .NET Core 3.1 と .NET 6 で gRPC のサポートがプライベートプレビューの Early Updates Access Program で提供開始のアナウンス。
"We are pleased to announce that gRPC is now available and supported on Azure App Service for Linux workloads. This was made possible by recent platform upgrades to the HTTP reverse proxy layer to leverage YARP and Kestrel." #dotnet #aspnetcore https://t.co/imT7GHb2f5
— David Fowler 🇧🇧🇺🇸 (@davidfowl) May 23, 2022
Introducing the private preview of port tunneling in Visual Studio for ASP.NET Core projects
Visual Studio 2022 17.3 Preview 1.1 で ASP.NET Core の Web プロジェクトへのポートトンネリング機能 (プレビュー) が追加されたことについてのアナウンス。
これはコールバックや Webhooks 、Power Platform のような外部からアクセスする必要があるアプリケーションを開発する際にインターネット側からアクセス可能にするトンネルを提供するものとなる。(類似のものでよく知られているものとしては ngrok がある)
プライベートプレビューにサインインし、Preview 版でプレビュー機能を有効にし、launchSettings.json で指定することで Visual Studio からシームレスにトンネルを作成できるとのこと。
Uno Platform 4.3 - Figma Plugin, Uno Extensions, Material Design 3 Support, New Sample App and more
Uno Platform 4.3 がリリースされた。
このリリースでは Figma プラグインと Material Design 3 テーマサポート、Uno Extensions、.NET 6 モバイル RTM のサポートなどが行われている。
The journey of moving from C++/WinRT to C# in the Microsoft Store
Microsoft Store アプリケーションを C++/WinRT から C# へと移行したことについての記事。
Microsoft Store アプリケーションは HoloLens や Surface Hub をターゲットとしている都合 UWP アプリケーションであり .NET Native (特殊な AOT) でビルドされているという事情があることで、パッケージマネージャーの WinRT API との相互運用にいくつかのハードルがありそれを乗り越える必要があったことが説明されている。
The Stack Overflow journey to .NET 6
https://www.wouterdekort.com/2022/05/25/the-stackoverflow-journey-to-dotnet6/
Stack Overflow が .NET 5 から .NET 6 へ移行したことについての記事。
3つの製品の共通コードベースがあること、本番環境へのデプロイまでの流れ、EF Core 2.2 から Entity Framework 5 へのアップグレード、.NET 6 への移行で発生した問題の対応、コネクションプールの問題(のように見えたもの)、移行の結果について書かれている。
アーティクル、スライドなど
Provide default configuration to your .NET applications
https://www.twilio.com/blog/provide-default-configuration-to-dotnet-applications
Microsoft.Extensions.Configuration
を使って、.NET アプリケーションの設定にデフォルト値を持たせる方法についての記事。
Temporary breakpoint – New feature in Visual Studio 2022
https://www.talkingdotnet.com/temporary-breakpoint-new-feature-in-visual-studio-2022/
一度だけブレークして消える、一時的なブレークポイント (Temporary Breakpoint) の紹介記事。
ASP.NET Core MVC で 1 ページに複数個のフォームを置きたい
https://zenn.dev/okazuki/articles/how-to-add-multiple-form-on-one-page
ASP.NET Core MVC のビューに複数のフォームを配置し、それぞれで送信とバリデーションを行いつつ、両方のデータを保持する方法についての記事。
ASP.NET でのパスワード格納
https://zenn.dev/masakura/articles/6ef107ad173f39
ASP.NET/ASP.NET Core 標準のユーザーパスワード格納時のハッシュ化処理で、アルゴリズムやストレッチングなどどのような手法がとられているかについての記事。
Investigating the performance benefits of EF Core 6.0 compiled models feature
Entity Framework Core 6.0 のコンパイル済みモデルによる起動パフォーマンス向上についての記事。
実際にプロジェクトで試してみたところ初回のインスタンス作成時間が4倍程度短縮されたとのこと。
Direct2DでSVGファイルを画像化する
https://zenn.dev/udaken/articles/svg-rendering-with-direct2d
P/Invoke で Direct2D を呼び出し、SVG のサブセットを描画する方法についての記事。
[Breaking change]: ActionResult<T> set StatusCode to 200 · Issue #485 · aspnet/Announcements
https://github.com/aspnet/Announcements/issues/485
.NET 6 以前の ASP.NET Core では ActionResult<T>
を返した場合、 Response.StatusCode が尊重されていたが常に 200 が返るようになったという破壊的変更のアナウンス。
macOS Environment Setup For MAUI Development | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/05/25/macos-environment-setup-for-maui-development/
Rider 2022.2 EAP でサポートされた .NET MAUI の開発を macOS 環境上で行うためのセットアップについての記事。
Extending Visual Studio CodeLens Functionality
https://dev.to/calvinallen/extending-visual-studio-codelens-functionality-507f
Visual Studio の CodeLens を拡張して独自の CodeLens Provider を実装する方法についての記事。
Exploring The F# Frontend Landscape
https://dev.to/tunaxor/exploring-the-f-frontend-landscape-13aa
F# でのフロントエンド開発のフレームワークを紹介している記事。
How We Used dotMemory to Optimize dotMemory | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/05/23/how-we-used-dotmemory-to-optimize-dotmemory/
dotMemory のドミネーターツリーのパフォーマンスを dotMemory と dotTrace で改善したドッグフーディングの記事。
当初、しばらく実行すると物理メモリーを使い果たして動かなくなってしまうほどであったが、ドミネーターツリーの構築アルゴリズムの変更やデータ構造の変更といったことを行った結果現実的な時間とメモリー使用量になったとのこと。
Bringing WebAssembly to the .NET Mainstream - Steve Sanderson, Microsoft - YouTube
https://www.youtube.com/watch?v=PIeYw7kJUIg
.NET アセンブリを WebAssembly で動かすということについてのプレゼンテーション。
このプレゼンテーションでは Blazor WebAssembly ではなく、WASI を使用した .NET アプリケーションの WebAssembly 化の可能性についてを話している。
ライブラリ、リポジトリ、ツールなど
Cysharp/GrpcWebSocketBridge: Yet Another gRPC over HTTP/1 using WebSocket implementation, primarily targets .NET platform.
https://github.com/Cysharp/GrpcWebSocketBridge
gRPC のトランスポートとして HTTP/2 の代わりに WebSocket を利用することで Unity WebGL や Blazor WebAssembly から gRPC (Unary/Streaming) を利用できるようにする ASP.NET Core と .NET クライアント向けのブリッジライブラリー。
サイト、ドキュメントなど
ツイート
We just released a new version of WinDbg Preview! Lots of new stuff to talk about, but most excitingly it's on .NET 6! If you're running on ARM64, you'll definitely love the perf improvements we got from moving to .NET 6https://t.co/8mjsz8Czwy
— Tim Misiak (@timmisiak) May 23, 2022
WinDbg Preview の新バージョンで .NET 6 へと移行して ARM64 で動くようになった話。
Deep Dive
Extended nameof parameter scope by BillWagner · Pull Request #29549 · dotnet/docs
https://github.com/dotnet/docs/pull/29549
nameof
が使える範囲が C# 11 で広がるのでそのドキュメント更新の PR。