Articles Tagged “Windows Development”
95 articles tagged “Windows Development”, newest first.
-
The Network Works but Windows Says "No internet" — Isolating NCSI, DNS, Proxy, and VPN on Windows
Why Windows says "No internet" while the network works, starting from the NCSI verdict. Isolate DNS, proxy, VPN, and captive portals with read-only checks an...
-
What Fast Startup Really Does — Why a Windows 'Shutdown' Is Not the Same as a Restart
A Windows shutdown is a hybrid shutdown by default, saving the kernel and drivers to hiberfil.sys. Why only a restart resets them, and when to turn Fast Star...
-
Time Travel Debugging — Recording and Rewinding the Bugs That Never Reproduce in Long-Running Apps
A once-a-month bug leaves only its result in a crash dump. Record and rewind execution with WinDbg Time Travel Debugging (TTD): TTD.exe, ring buffers, and TT...
-
Why Arguments Break — The Rules of Windows Command-Line Arguments
Windows passes CreateProcess a single string that the receiver splits. Covers the CommandLineToArgvW, CRT, and .NET rules, ArgumentList, and building it in C++.
-
End of Servicing for Windows Printer Drivers — How Business Apps Should Prepare Their Report and Label Printing
Microsoft is phasing out v3/v4 printer drivers. What Windows protected print mode removes, and how to inventory and prepare report and label printing in busi...
-
WinRT Is COM — IInspectable, .winmd, Language Projections, and Why WinUI Still Rests on a Binary Contract
WinRT is not a managed runtime but an ABI built on COM plus .winmd metadata and language projections. Covers IUnknown vs. IInspectable, HWND setup, and packa...
-
What Is Left After the Parent Dies — Keeping Child Processes in a Job Object
Why do SDK helpers outlive a killed UI and keep the camera or COM port? Designing child process lifetime with Job Objects, KillOnJobClose, and completion ports.
-
What Is an OLE Object? — How Embedding and Linking Work and the Pitfalls in Business Documents
An OLE object is what embeds an Excel table in Word. Learn embedding vs. linking, compound files, In-Place Activation, broken links, bloat, and security.
-
The Win32 Thread Pool API — Concurrency That Does Not Create Threads, with CreateThreadpoolWork
Calling CreateThread everywhere in native code? A primary-source guide to the Win32 thread pool API: the work, timer, wait, and io objects, cleanup groups, a...
-
Named Pipes in Practice — Windows' Standard IPC from Design to Security
A practical guide to named pipes, Windows' standard IPC. Covers byte vs. message mode, servers that handle multiple clients, ACL and impersonation security, ...
-
Apps That Break on Resume from Sleep — How Power Events Work and How to Build Business Apps That Survive Resume
Why business apps break after a laptop resumes from sleep: WM_POWERBROADCAST notifications, Modern Standby, reconnect design, sleep suppression, and powercfg.
-
DllMain and the Loader Lock — The Real Reason You Are Told to "Do Nothing in DLL Initialization"
Why DllMain must not call LoadLibrary or wait on threads: the loader lock serializes DLL notifications, typical deadlocks, deferred initialization, and hang ...
-
What "Not Responding" Really Is — How Windows Decides an App Has Hung, and How to Design Apps That Don't
Windows marks a window Not Responding after 5 seconds without message retrieval and shows a ghost window: the check, hang causes, UI-thread design, and inves...
-
How the Clipboard and Drag & Drop Work — Handling OLE Data Transfer Correctly in Business Apps
Why Excel pastes break and paste fails once the source closes: clipboard formats, delayed rendering, OLE drag and drop, and clipboard history and cloud sync ...
-
WPR/WPA in Practice — A Primer on Investigating "the Whole PC Is Slow" Across the Entire System
Investigate a slow PC or slow startup that Task Manager cannot explain with an OS-wide ETW trace: capture with wpr.exe, then read CPU, waits, and disk I/O in...
-
Windows Shutdown from the App's Point of View — Surviving Exit Notifications, Restarts, and Power Loss Correctly
Data corrupted by a nightly Windows Update restart is preventable by design: WM_QUERYENDSESSION/PRESHUTDOWN notifications, cleanup in seconds, and power-loss...
-
How Windows App Compatibility Works — Keeping Old Apps Alive with Compatibility Mode, Shims, and Compatibility Administrator
Why Compatibility mode makes old apps run: how shims (API hooks) work, what key shims do, rollout via Compatibility Administrator and sdbinst, limits, and ex...
-
Windows Shell Integration Today — Context Menus, File Associations, and What Changed in Windows 11
Why Windows 11 hides context menus behind "Show more options": extension → ProgID → verb basics, classic shell-extension caveats, and the IExplorerCommand + ...
-
Decoding Windows Error Codes — The Three-Layer Structure of Win32 Errors, HRESULT, and NTSTATUS
Decompose 0x80004005 before searching. The three layers of Win32 errors, HRESULT, and NTSTATUS, why 0x8007xxxx is a rewrapped Win32 error, and lookup via err...
-
What Does Windows' "Memory Usage" Actually Mean? — Reading Working Set, Private Bytes, Commit, and the Page File Correctly
Task Manager Memory, Working Set, Private Bytes, and Commit differ. See how virtual and physical memory relate, the page file's role, and which metrics revea...
-
Using WMI/CIM from C# and PowerShell — A Practical Guide to Hardware Inventory, Process Monitoring, and Remote Queries
WMI/CIM is the standard way to read a PC serial number, watch disk space, and detect process starts. Covers CIM cmdlets, Get-WmiObject migration, C# APIs, an...
-
How to Work with USB Devices from a Windows App — Choosing Between virtual COM, HID, WinUSB, and Vendor SDKs
A comparison of four ways to control equipment and USB devices from a Windows application: virtual COM port, HID, WinUSB, and vendor SDKs. We cover whether a...
-
Code Design for Business Systems — Deciding Product and Customer Codes, and Check Digits
A practical guide to deciding the code scheme for a business system, including product and customer codes. Covers a decision table for meaningful codes versu...
-
Incident Response Doesn't End at Recovery — A Postmortem (Recurrence Prevention) Template for Small Development Teams
Treating an incident as over once it's fixed and apologized for guarantees you'll repeat it. This article translates the blameless postmortem for small teams...
-
An Introduction to ADRs (Architecture Decision Records) — The Minimal Way to Record 'Why We Designed It This Way' on a Small Team
Code never explains why it was written that way. We cover how to use an ADR (Architecture Decision Record) — one decision, one Markdown file — to preserve th...
-
Versioning Your Business App's Database Schema — Migration Practices to Prevent 'Every Customer Has a Different DB'
A practical guide to versioning the database schema of a business app whose databases are scattered across customer sites. Covers PRAGMA user_version and a C...
-
CI/CD for WinForms / WPF Apps in Practice — Automating from Build to Signing and Distribution with GitHub Actions
A practical guide to setting up CI/CD for WinForms / WPF apps with GitHub Actions. Covers a minimal YAML for build+test on windows-latest, tag-driven version...
-
When Your In-House Windows App Gets Flagged as a Virus — Handling Microsoft Defender False Positives and Living With the Performance Impact
We lay out the proper way to respond when Microsoft Defender flags your in-house Windows app as malware: how modern antivirus detection actually works, how t...
-
Sleep, Hibernation, Modern Standby, and Long-Running Apps — Designing Around 'It Stopped Overnight'
Why a long-running Windows app can end up 'stopped by the time you check it in the morning,' worked through from the differences between S3 sleep, hibernatio...
-
Do Business Apps Run on Windows on Arm? — The Reality of x64 Emulation (Prism) and Native DLLs/COM
An answer, aimed at developers and IT staff, to 'will our business app run on Windows on Arm?' Covers how x64 emulation (Prism) works, the layers it can't re...
-
When You Inherit a System With No Source Code and No Documentation — A Practical Playbook for Keeping It Running
A practical playbook for starting operations and maintenance on a business system that has no source code and no specifications. Covers preserving and backin...
-
MAX_PATH and Windows Path/Filename Pitfalls — the 260-Character Limit, Reserved Names, Trailing Dots, and Case Sensitivity
A rundown of the path and filename limits behind the classic 'file not found' bug. Covers the breakdown of MAX_PATH=260, enabling long paths with LongPathsEn...
-
Pitfalls of Network Drives and UNC Paths — Working With File Servers (Shared Folders) From a Business Application
This article organizes the classic problems that show up when a business application writes to or watches a shared folder: why a drive letter (Z:) is invisib...
-
System Tray Icons and Toast Notifications in Windows Apps — NotifyIcon Pitfalls and Choosing the Right AppNotification API
A practical guide to keeping a business Windows app resident in the system tray and notifying users with toast notifications. Covers the correct use of Notif...
-
How Long Will VB6 Apps Keep Running? — Runtime Support Status and a Practical Path to .NET Migration
How long will VB6 applications keep running? This practical guide clarifies the asymmetry between the VB6 runtime support policy (still supported on Windows ...
-
Japanese Era Dates, Public Holidays, and Closing-Date Processing in Business Apps — Era-Resilient Design, JapaneseCalendar, and Business-Day Calculations in Practice
A report that must show '令和8年' in the Japanese era, business-day calculations that exclude public holidays, payment due on the last business day of the month...
-
A Practical Guide to Process Monitor (ProcMon) — Pinpointing "Settings Not Applied" and "ACCESS DENIED" in 10 Minutes
"I fixed the config file, but nothing changed." "It worked yesterday, but won't start today." Before touching the source code, Process Monitor (ProcMon) lets...
-
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 ...
-
Localizing WinForms/WPF Apps — resx, Satellite Assemblies, and Culture Switching in Practice
A practical guide to localizing Windows desktop apps, covering the difference between CurrentCulture and CurrentUICulture, how resx and satellite assemblies ...
-
CSV Is Not "Just Text": A Practical Guide to CSV Handling in C# Business Apps (Encoding, Excel Compatibility, Injection Defense)
A practical rundown of the classic failure patterns in business-app CSV I/O - hand-rolled Split(',') parsing, mojibake from BOM-less UTF-8 in Excel, lost lea...
-
Don't Wrap HttpClient in a using Block — Practical HTTP Communication in C# Business Apps (Creation Patterns, Timeouts, Retries)
Creating a new C# HttpClient with using on every request exhausts sockets, but making it static means it stops following DNS changes. This article walks thro...
-
Pinpointing "Slow" with PerfView and dotnet-trace — A Practical Introduction to .NET Performance Investigation
When a business app is "slow," "pegs the CPU," or "occasionally freezes," which tool should you reach for, and what should you look at? This article walks th...
-
An Introduction to Windows Event Log and ETW — Putting Your Business App's Logs on the OS's Standard Mechanisms
Are you relying on file logging alone for your Windows business app? Event Log and ETW are records visible on a different layer — to operations staff and OS-...
-
More Than appsettings.json — A Practical Guide to Configuration Management in Windows Business Apps (Per-Environment Settings, Secrets, and Where to Write)
A practical look at configuration management for Windows business apps: layering appsettings.json, choosing between IConfiguration and the IOptions/IOptionsS...
-
Printing and PDF Output in Windows Business Apps — Choosing Between System.Drawing.Printing, WPF, and Report Libraries
Organizes WinForms printing with PrintDocument, WPF FlowDocument/FixedDocument printing, and PDF output options into a requirement-based decision table. Cove...
-
Extending the Life of and Migrating VB6 / Access Business Apps — A Decision Table for Keep, Wrap, or Replace
How do you decide whether to leave a VB6 application or Microsoft Access business app as-is, extend its life by wrapping only part of it, or replace it outri...
-
Preventing Multiple Instances of a Windows App — Named Mutexes and Activating the Existing Window on a Second Launch
This article organizes the classic requirement for business Windows apps — 'don't let the same app launch twice' — around a named Mutex. We cover the pitfall...
-
Safely Calling Win32 APIs from C# — A Practical P/Invoke Guide (DllImport / LibraryImport / CsWin32)
A practical rundown of what to watch for when calling Win32 APIs and native DLLs from C# via P/Invoke. Covers the differences between DllImport and LibraryIm...
-
Windows App Outsourcing and Custom Software Development: What to Sort Out Before You Ask
Before commissioning Windows app outsourcing or custom software development, here is how to sort out existing software modification, device integration, COM/...
-
Why Windows Became What It Is Today: The Evolution of Windows Through a Developer's Eyes
A look at the changes from Windows 95 to Windows 11 — not as a visual timeline, but from a Windows application developer's perspective: compatibility, stabil...
-
A Developer's Strange Love, or: How I Learned to Stop Worrying and Love Windows
Windows is a hassle. But that hassle is the hassle of an OS that has carried real-world business on its back.
-
Why Windows Shows "Windows protected your PC"
Why SmartScreen warns when you distribute a Windows app, organized from a practitioner's perspective: code signing, EV/OV certificates, Azure Artifact Signin...
-
Registration and Bitness Pitfalls in COM/OCX/ActiveX Development
A practical look at the 32bit/64bit, Visual Studio 2022, regsvr32/Regasm, administrator-rights, HKCR, and STA/MTA pitfalls that trip up COM, OCX, and ActiveX...
-
What Is ClickOnce? - How It Works, How It Updates, and Where It Fits (and Doesn't) in Practice
An overview of ClickOnce, the deployment technology used for .NET Windows desktop apps - manifests, updates, the cache, signing, and which projects it suits ...
-
How to Speed Up App Validation with Windows Sandbox
How to use Windows Sandbox to isolate administrator-privilege issues, reproduce problems in a clean environment, and simulate missing privileges or resources...
-
Security Design for Auto-Update - Why HTTPS Alone Is Not Enough
We treat auto-update as a trust boundary and walk through signed metadata, client-side verification, key separation, rollback protection, and fail-closed des...
-
Minimum Requirements for a Custom Logger, with an Integration Test Checklist
To make a custom app's diagnostic logs trustworthy, we lay out UTF-8 JSON Lines, the required fields, flush, rotation, and failure behavior, plus the integra...
-
Where to Draw the Line Between Unit Tests and Integration Tests
We organize the boundary between unit tests and integration tests along the axes of pure logic, formats, wiring, environment differences, and time dependence...
-
How Windows DLL Name Resolution Works - Search Order and SxS
A practical guide to DLL name resolution on Windows: the DLL search order, Known DLLs, the loaded-module list, API sets, SxS manifests, and how the LoadLibra...
-
When Do You Actually Need Administrator Privileges on Windows? - UAC, Protected Areas, and How to Tell by Design
A practical look at when administrator privileges are required on Windows, from the perspectives of UAC, protected areas, services, drivers, and per-user/per...
-
What Is VBA? - Its Constraints, Its Future, When to Replace It, and Realistic Migration Patterns
The basics and constraints of VBA, its future, when it should be replaced, and a realistic way to migrate Excel macros and in-house tools in stages.
-
Serial Communication App Pitfalls - Through Reconnection and Log Design
The serial communication app pitfalls you want to avoid in device integration and instrument control, organized from a practical perspective: framing, timeou...
-
Designing Windows Apps to Leave Logs and Dumps When They Crash
How to combine regular logging, a final crash marker, WER LocalDumps, and a watchdog process so that even when a Windows app dies from an unexpected exceptio...
-
Windows App UX Design - Priorities by Usage Environment
What to prioritize in Windows app UX design, organized as a decision table covering B2C vs. B2B, input methods, usage environments, and the cost of mistakes.
-
Choosing Between WinForms, WPF, and WinUI - A Practical Decision Table
How to decide between WinForms, WPF, and WinUI, organized from the perspectives of new development, existing assets, deployment, UI expressiveness, and team ...
-
Shared Memory Pitfalls and Practical Best Practices
The pitfalls of using shared memory in production, and a design that leaves fewer ways to go wrong across synchronization, visibility, lifetime, ABI, and per...
-
Introduction to Windows User Profiles - AppData and NTUSER.DAT
The basics of Windows user profiles: how to split AppData, local / roaming / mandatory / temporary profiles, Folder Redirection, FSLogix, and where to look w...
-
What Is Reg-Free COM - Using COM Without Registration
An overview of Reg-Free COM basics, the roles of activation contexts and manifests, the benefits, the limitations, and how to decide when to use it in practice.
-
How to Build Excel Report Output - COM / Open XML / Templates
The design of Excel report output changes considerably depending on whether you automate Excel itself, generate xlsx files directly, or keep existing VBA. As...
-
How to Burn Images and Text into MP4 Frames with Media Foundation
How to burn an image and text into every frame of an MP4 with Media Foundation and produce a new MP4, organized around the roles of the Source Reader, drawin...
-
An Introduction to Collecting Windows Crash Dumps - WER/ProcDump/WinDbg
To chase hard-to-reproduce Windows application crashes, we walk through when to use WER LocalDumps, ProcDump, MiniDumpWriteDump, and WinDbg, along with the o...
-
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...
-
How to Concretely Isolate "Only the Operations That Need Administrator Privileges" in a Windows App
A concrete walkthrough of keeping a Windows app UI at asInvoker while isolating only the administrator-privileged operations into a helper EXE, covering UAC,...
-
Storing Secrets in Windows Apps - Avoiding Plaintext Configuration with DPAPI
To avoid storing connection credentials and API tokens in plaintext configuration files in Windows apps, we walk through DPAPI / ProtectedData, the differenc...
-
Pre-Migration Checklist for Moving from .NET Framework to .NET
A practical checklist of what to verify before migrating from .NET Framework to .NET: project types, unsupported technologies, NuGet dependencies, SDK-style ...
-
How to Convert YUV to RGB with Media Foundation
Two ways to get RGB from YUV in Media Foundation: let the Source Reader output RGB32, or convert NV12/YUY2 yourself with stride and color matrix handled.
-
A Guide to Windows NIC Advanced Settings - RSS/LSO/EEE/Wake on LAN
A practical guide to Windows NIC advanced settings. What actually changes when you adjust Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE, Wak...
-
Extracting a Still Image from an MP4 at a Specific Time with Media Foundation
How to grab the frame closest to a given time in an MP4 with the Source Reader, fix up stride and the RGB32 alpha byte, and save it as a PNG.
-
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 Are COM / ActiveX / OCX? - The Differences and Relationships Explained
A practical guide to what COM is, what ActiveX is, and what OCX is - covering their differences and relationships, the connection to OLE, where they are used...
-
Calling a C# Native AOT DLL from C/C++
Publish a C# class library as a native DLL with Native AOT and call its UnmanagedCallersOnly entry points from C/C++ - where the setup fits, the implementati...
-
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...
-
How to Handle ActiveX / OCX Today - A Keep / Wrap / Replace Decision Table
When you find ActiveX / OCX, how to choose between keeping, wrapping, and replacing it, covering 32-bit / 64-bit, registration, browser dependencies, and ven...
-
Building a Windows Failure-Path Test Foundation with Application Verifier
What Application Verifier is, organized together with how to build a Windows failure-path test foundation using Handles, Heaps, Low Resource Simulation, and ...
-
Investigating Long-Run Crashes of an Industrial Camera App - The Handle Leak (Part 1)
How to look at a Windows app that suddenly crashes after long-running operation, using a case study of an industrial camera control app, from the perspective...
-
Why TCP Retransmissions Stall Industrial Camera Communication, and How to Isolate Them
How to isolate the cause when industrial camera communication stalls for several seconds due to TCP retransmissions, covering packet loss, RTO, RFC1323 times...
-
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...
-
An Introduction to Media Foundation - Understanding the API Through a COM Lens
We explain what Media Foundation is, together with the basic vocabulary of Windows media APIs - COM, HRESULT, IMFSourceReader, MFTs - in the order you should...
-
A Practical Guide to Getting as Close to Soft Real-Time as Possible on Ordinary Windows
How to stabilize periodic and low-latency processing on ordinary Windows, covering timer resolution, thread priorities, power settings, and how to monitor th...
-
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 keep shar...
-
Calling Native DLLs from C#: C++/CLI Wrapper vs P/Invoke
When using a native DLL from C#, this article separates the cases where P/Invoke is enough from the cases where a C++/CLI wrapper pays off, looking at owners...
-
COM STA/MTA Fundamentals - Threading Models and How to Avoid Hangs
COM STA/MTA fundamentals, covering the apartment model, UI threads, message loops, marshaling, and how to think about avoiding hangs.
-
A Worked Example of a COM Bridge for Calling a 64-bit DLL from a 32-bit App
When a 32-bit app cannot call a 64-bit DLL directly, a COM bridge can connect them. We walk through the approach, including the Windows constraints, the arch...
-
What Is COM? - Why the Design of Windows COM Is Still Beautiful Today
We explain what COM is from the perspective of Windows COM interface design, IUnknown, GUIDs, and binary compatibility, and why it still holds up today.