Start Debugging

タグ: csharp

165 件 · ページ7/17

.NET でファイルの書き込みが完了したことを検知する方法
FileSystemWatcher は書き込み側が終わる前に Changed を発火します。.NET 11 でファイルが完全に書き込まれたことを知るための信頼できる 3 つのパターン: FileShare.None でオープンする、サイズの安定化でデバウンスする、そして問題そのものを回避するプロデューサー側の rename トリックです。
サーバーと Blazor WebAssembly でバリデーションロジックを共有する方法
Blazor WebAssembly + ASP.NET Core アプリでバリデーションがずれていく最大の原因は、ルールを二度書きたくなる衝動です。本記事では .NET 11 で唯一スケールするレイアウトを示します。DTO とそのバリデーターを所有する Shared クラスライブラリを WASM クライアント (EditForm + DataAnnotationsValidator または Blazored.FluentValidation) とサーバー (minimal API のエンドポイントフィルターまたは MVC のモデルバインディング) の両方から参照し、サーバーから返ってきた ValidationProblemDetails を同じ EditContext に書き戻すラウンドトリップまでテスト済みで構築します。
EF Core のモデルを最初のクエリの前にウォームアップする方法
EF Core は最初の DbContext アクセスで概念モデルを遅延構築するため、新しいプロセスでの最初のクエリは以後のどのクエリよりも数百ミリ秒遅くなります。本ガイドでは EF Core 11 で実用に足る三つの対策を扱います: Model に触れて接続を開く起動時の IHostedService、事前コンパイル済みモデルを出荷する dotnet ef dbcontext optimize、そして二つの対策を静かに無効化するキャッシュキーの落とし穴です。
変更追跡を壊さずに DbContext をモックする方法
DbContext を直接モックすると ChangeTracker が静かに壊れます。だからこそ Microsoft はそれを推奨していません。本ガイドは EF Core 11 で実際に機能する 2 つのパターンを示します。接続を開いたまま保持して本物の ChangeTracker を動かす SQLite インメモリと、テストから EF Core を完全に追い出すリポジトリパターンです。
前へ 次へ