Articles Tagged “Design”
14 articles tagged “Design”, newest first.
-
When Not to Move a Windows App to the Web: A Decision Table and the Practical Answer of Splitting
Requests to move in-house Windows apps to the web are increasing, but for apps built around device integration, local file processing, offline operation, or ...
-
Where Should catch and Logging Go in Exception Handling?
To avoid broad catches in deep helpers, duplicate logs at every layer, and result-mapping that hides root causes, we organize the responsibilities of the bou...
-
Why You Should Prefer Event Waits over Sleep(1) on Windows
On Windows, the accuracy of short timed waits is bounded by the system clock granularity and scheduling. If you are waiting for work to arrive, I/O to comple...
-
A Decision Table for Whether to Exit or Continue After an Unexpected Exception
When an unexpected exception occurs, should the app exit or keep running? We organize the decision from the perspectives of state corruption, external side e...
-
A Minimum Security Checklist for Windows App Development
A checklist-style guide to the security basics for WPF / WinForms / WinUI / C++ / C# business apps: privileges, signing, updates, secrets, HTTPS, input valid...
-
What Is the .NET Generic Host? - The Foundation for DI, Configuration, and Logging
The .NET Generic Host in plain terms: one place for DI, config, logging, BackgroundService, and graceful shutdown. Minimal console example included.
-
What Is .NET Native AOT? - How It Differs from JIT and Trimming
How .NET Native AOT differs from JIT, ReadyToRun, and trimming, what you gain in startup and deployment, and where reflection-heavy code breaks.
-
Choosing Between .NET's Three Timers - PeriodicTimer/Timer/DispatcherTimer
Which .NET timer should you use? PeriodicTimer for async loops, Timer for ThreadPool callbacks, DispatcherTimer for WPF UI, plus a decision table and code.
-
Why Use the .NET Generic Host and BackgroundService in Desktop Apps
How to use the Generic Host and BackgroundService to organize startup, periodic processing, shutdown, logging, configuration, and DI in Windows tools and res...
-
A Practical Guide to FileSystemWatcher - Handling Missed and Duplicate Events
We organize how to use FileSystemWatcher and its pitfalls - missed events, duplicate notifications, completion-detection traps, rescans, atomic claims, and i...
-
A Practical Decision Table for C# async/await - Task.Run and ConfigureAwait
We organize C# async/await best practices - I/O waits, CPU work, Task.Run, ConfigureAwait(false), and fire-and-forget - complete with a decision table.
-
A Practical Guide to Getting as Close to Soft Real-Time as Possible on Ordinary Windows
We organize how to stabilize periodic and low-latency processing on ordinary Windows, covering timer resolution, priorities, power settings, and monitoring.
-
Mutual Exclusion Fundamentals for File-Based Integration - Best Practices for File Locks and Atomic Claims
We organize mutual exclusion for file-based integration around file locks, atomic claims, temp -> rename, and idempotency, and lay out designs that prevent a...
-
An Introduction to HCP Charts and MakingHCPChartSkill
We explain what HCP charts are and walk through how MakingHCPChartSkill converts HCP-DSL into deterministic SVG, how to read the output, and how to use it.