Tag: .NET
-
What ClickOnce Is: How It Works, How Updates Work, and When It Fits or Does Not Fit in Practice
A practical guide to ClickOnce for .NET Windows desktop app deployment, with Mermaid diagrams covering manifests, updates, caching, signing, and the kinds of...
-
Where Unit Tests End and Integration Tests Begin - A Practical Boundary Guide
A practical guide to drawing the boundary between unit tests and integration tests by separating pure logic, formatting, wiring, environment differences, and...
-
Checklist for Safe Child-Process Handling in Windows Apps - Job Objects, Exit Propagation, stdio, and Watchdog Design
A practical guide to safe child-process handling in Windows applications, covering Job Objects, exit propagation, stdio draining, and watchdog design.
-
How Far Can a Windows App Really Be a Single Binary? What Fits in One EXE and What Still Depends on Windows
A practical guide to what can really be bundled into one Windows executable, where OS dependencies remain, and how to decide before shipping.
-
Serial Communication App Pitfalls - Framing, Timeouts, Flow Control, Reconnects, USB Adapters, and UI Freezes
A practical guide to serial communication app pitfalls in Windows, covering framing, timeouts, flow control, reconnects, USB serial adapters, and logging des...
-
What to Check Before Migrating .NET Framework to .NET - A Practical Premigration Checklist
A practical premigration checklist for moving from .NET Framework to modern .NET, covering project types, unsupported technologies, NuGet dependencies, Packa...
-
What the .NET Generic Host Is - DI, Configuration, Logging, and BackgroundService Explained
A practical explanation of what the .NET Generic Host is, how it ties together DI, configuration, logging, IHostedService, and BackgroundService, and where i...
-
What Native AOT Is in .NET - Differences from JIT, ReadyToRun, and Trimming
A practical explanation of what Native AOT is in .NET, how it differs from JIT, ReadyToRun, self-contained deployment, single-file publishing, and trimming, ...
-
How to Choose Between PeriodicTimer, System.Threading.Timer, and DispatcherTimer - First Organize Periodic Work in .NET
A practical guide to choosing between PeriodicTimer, System.Threading.Timer, and DispatcherTimer, including async processing, ThreadPool callbacks, and WPF U...
-
Why It Is Worth Bringing Generic Host / BackgroundService into a Desktop App - Startup, Lifetime, and Graceful Shutdown Become Much Easier to Organize
When startup logic, periodic work, shutdown handling, logging, configuration, and dependencies begin to scatter across a Windows desktop app, bringing in .NE...
-
How to Handle ActiveX / OCX Today - A Decision Table for Keep / Wrap / Replace
A practical decision guide for what to do when you find ActiveX / OCX in a real project: keep it, wrap it, or replace it, with bitness, registration, browser...
-
How to Turn C# into a Native DLL with Native AOT - Calling UnmanagedCallersOnly Exports from C/C++
A practical guide to publishing a C# class library as a native DLL with Native AOT and exposing UnmanagedCallersOnly entry points that can be called from C o...
-
WPF / WinForms async/await and the UI Thread in One Sheet - Where Continuations Return, Dispatcher, ConfigureAwait, and Why .Result / .Wait() Get Stuck
A practical guide to the relationship between async/await and the UI thread in WPF and WinForms, covering continuation destinations after await, Dispatcher /...
-
How to Use FileSystemWatcher Safely - Lost Events, Duplicate Notifications, and the Traps Around Completion Detection
A practical guide to FileSystemWatcher that explains missed events, duplicate notifications, completion-detection traps, rescans, atomic claims, and idempote...
-
C# async/await Best Practices - A Decision Table for Task.Run and ConfigureAwait
A practical guide to C# async/await, organized around decision tables for I/O-bound work, CPU-bound work, Task.Run, ConfigureAwait(false), fire-and-forget, a...