タグ: C#
-
Windows アプリで子プロセスを安全に扱うためのチェックリスト - Job Object、終了伝播、標準入出力、watchdog のベストプラクティス
Windows アプリで子プロセスを安全に扱うには、起動 API よりもプロセス木の所有権と終了手順の設計が重要です。Job Object、終了伝播、標準入出力、watchdog を整理します。
-
シリアル通信アプリの落とし穴 - 1 byte 単位、タイムアウト、フロー制御、再接続、USB 変換、UI フリーズを先に整理
装置連携や計測器制御で避けたいシリアル通信アプリの落とし穴を、フレーミング、タイムアウト、RTS/CTS、DTR/RTS、再接続、ログ設計まで実務目線で整理します。
-
Windows Forms、WPF、WinUI のどれにするか - 新規開発、既存資産、配布、UI 表現の判断表
WinForms、WPF、WinUI のどれを選ぶべきかを、新規開発、既存資産、配布、UI 表現、チーム体制の観点から整理します。
-
共有メモリを使うときの落とし穴とベストプラクティス - 同期、可視性、寿命、ABI、セキュリティを先に整理
共有メモリを実務で使うときの落とし穴と、同期、可視性、寿命、ABI、権限まで含めた事故率を下げる設計を整理します。
-
様々なプログラミング言語の速さを測定して比較するにはどうすれば良いのか - C# / C++ / Java / Go を同条件で比べる実践ガイド
C#、C++、Java、Go の実行速度を公平に比較する方法を、測定設計、warm-up、環境固定、統計の見方、具体的なベンチ項目まで整理します。
-
.NET 8 の DLL を型付きで VBA から使う方法 - COM 公開 + dscom で TLB を生成する
.NET 8 のクラスライブラリを COM 公開し、dscom で TLB を生成して、VBA から早期バインディングで使う手順をまとめます。
-
.NET Framework を .NET に移行する前に確認するべきこと - 着手前で勝負が決まる実践チェックリスト
.NET Framework から .NET へ移行する前に確認しておくべきポイントを実務目線で整理します。プロジェクト種別、移行できない技術、NuGet 依存関係、PackageReference、SDK スタイル、ASP.NET / WPF / WinForms / WCF / EF6、設定ファイル、CI/C...
-
.NET の Generic Host とは何か - DI、設定、ログ、BackgroundService を先に整理
Generic Host とは何かを、DI、設定、ログ、IHostedService、BackgroundService、Host.CreateApplicationBuilder と WebApplicationBuilder の関係から整理し、どこで効いてどこでは過剰かを実務目線でまとめます。
-
.NET における Native AOT とは何か - JIT、ReadyToRun、trimming との違いを先に整理
Native AOT とは何かを、JIT、ReadyToRun、self-contained、single-file、trimming、source generator との違いから整理し、向いているケースと厳しいケースを実務目線でまとめます。
-
PeriodicTimer / System.Threading.Timer / DispatcherTimer の使い分け - .NET の定期実行をまず整理
PeriodicTimer / System.Threading.Timer / DispatcherTimer の違いと、async 処理、ThreadPool callback、WPF の UI 更新でどう使い分けるかを整理します。
-
Generic Host / BackgroundService をデスクトップアプリに持ち込む理由 - 起動・寿命・graceful shutdown の整理がかなり楽になる
Windows ツールや常駐系アプリで、起動処理、定期処理、終了処理、ログ、設定、依存関係が散らばり始めたら、.NET Generic Host と BackgroundService を持ち込む価値があります。起動と lifetime を整理し、graceful shutdown とバックグラウンド処理を管理し...
-
C# を Native AOT でネイティブ DLL にする方法 - UnmanagedCallersOnly で C/C++ から呼び出す
C# のクラスライブラリを Native AOT でネイティブ DLL として発行し、UnmanagedCallersOnly のエントリポイントを C/C++ から呼び出す構成を、使いどころと実装パターンと注意点から整理します。
-
WPF / WinForms の async/await と UI スレッドを一枚で整理 - await 後の戻り先、Dispatcher、ConfigureAwait、.Result / .Wait() の詰まりどころ
WPF / WinForms の async/await と UI スレッドの関係を、await 後の戻り先、Dispatcher / Invoke、ConfigureAwait(false)、.Result / .Wait() で画面が固まる理由まで一枚で整理します。
-
FileSystemWatcher の使い方と注意点 - 取りこぼし、重複通知、完了判定の落とし穴
FileSystemWatcher の使い方と注意点を、取りこぼし、重複通知、完了判定の落とし穴、再スキャン、原子的 claim、idempotency の観点から整理します。
-
C# async/await のベストプラクティス - Task.Run と ConfigureAwait の判断表
C# async/await のベストプラクティスを、I/O 待ち、CPU 計算、Task.Run、ConfigureAwait(false)、fire-and-forget の判断表つきで整理します。
-
C# からネイティブ DLL を使うなら C++/CLI ラッパーが有力な理由 - P/Invoke と比較して整理
C# からネイティブ DLL を呼び出すときに、P/Invoke で十分なケースと C++/CLI ラッパーが有力になるケースを、所有権や例外、C++ 型の扱いまで含めて整理します。