Start Debugging

ASP.NET Core 11

10 件

ASP.NET Core で MapIdentityApi がマップする個別のエンドポイントを削除または非表示にする方法

MapIdentityApi<TUser>() は 10 個のエンドポイントをマップしますが、1 つだけ除外するスイッチはありません。.NET 11 で実測した 4 つの対処法 (OpenAPI から隠す、404 を返す、シャドウする、ルーティングから完全に削除する) と、登録を 500 エラーにする /confirmEmail の落とし穴を紹介します。

1 つの ASP.NET Core リクエストの中でデータベース書き込みと Azure Blob Storage へのアップロードの整合性を保つ方法

SQL Server と Blob Storage をまたぐトランザクションは存在しません。データベースが既に知っている名前にアップロードし、コミットは後から行い、失敗時には補償し、クラッシュの隙間はスイーパーに片付けさせます。条件付き作成を黙って上書きに変えてしまう UploadAsync のオーバーロードについても。

ASP.NET Core を参照せずに型付き HttpClient から RFC 9457 の ProblemDetails レスポンスを読み取る方法

BCL に ProblemDetails 型は存在せず、Microsoft.AspNetCore.App への FrameworkReference を追加すると、ランタイムだけのコンテナーでクライアントが起動を拒否します。仕事をこなす 20 行のモデル、problem+json を型付き例外に変える DelegatingHandler、そして今なお多くの回答が繰り返している content-type の神話を扱います。

.NET 11 で Swashbuckle の IOperationFilter と ISchemaFilter を OpenAPI トランスフォーマーに移行する

Swashbuckle の IOperationFilter と ISchemaFilter のコードを .NET 11 の組み込みのオペレーショントランスフォーマーとスキーマトランスフォーマーへ移すための、フィルターごとの移行リファレンスです。コンテキストオブジェクトのマッピングと、コンパイルを壊す Microsoft.OpenApi v2 の変更を扱います。

サーバーと Blazor WebAssembly でバリデーションロジックを共有する方法

Blazor WebAssembly + ASP.NET Core アプリでバリデーションがずれていく最大の原因は、ルールを二度書きたくなる衝動です。本記事では .NET 11 で唯一スケールするレイアウトを示します。DTO とそのバリデーターを所有する Shared クラスライブラリを WASM クライアント (EditForm + DataAnnotationsValidator または Blazored.FluentValidation) とサーバー (minimal API のエンドポイントフィルターまたは MVC のモデルバインディング) の両方から参照し、サーバーから返ってきた ValidationProblemDetails を同じ EditContext に書き戻すラウンドトリップまでテスト済みで構築します。