The art of simplicity
C# / .NETDevOps / SRE / infrastructureDev tools / editors / IDEsAI / MLSoftware / engineering practice
- Posts
- 4,013 from 25 Aug 2009 to 21 Oct 2026
- Posting
- about daily (213 in the last year)
- Kind
- personal blog
- Feed
- https://bartwullems.blogspot.com/feeds/posts/default
Latest
October 2026
- Reducing the size of your authentication cookie with ITicketStore
- Napkin math: know what your system should do before you measure it
- Using the ADFS userinfo endpoint instead of allatclaims
- Getting all your claims in the ID token with the ADFS allatclaims scope
- Getting visual explanations from your coding agent with the show-me skill
- Using FileLifecycleHooks in Serilog
- Cleaning up old log files with Serilog
- Tuning the default logging providers in ASP.NET Core through configuration
- Getting started with DSC 3.0 – Part 6: Using the DSC MCP server with your AI coding tools
- Getting started with DSC 3.0 – Part 5: Guarding your configuration with Assertion
- Getting started with DSC 3.0 – Part 4: Configuring IIS with multiple resources and dependsOn
- Getting started with DSC 3.0 – Part 3: Capturing the current state with dsc config export
- Getting started with DSC 3.0 – Part 2: Managing a Windows service end to end
- Getting started with DSC 3.0 – Part 1: What is DSC and what changed?
- Don't know what to do while your agents work? The VS Code team has an answer.
September 2026
- Upgrading Dependency Track from v4 to v5
- Docker: No space left on device
- Auto-accepting AI edits in VS Code
- Guid.CreateVersion7() is NOT a sequential guid for SQL Server
- GitHub Copilot auto mode: should you disable models?
- Hot Exit in Visual Studio
- A weekly stocktake for your skills
- Sharing your VS Code automations
- Continuous AI lands in VS Code too
- Continuous AI, one automation at a time
- Sharing your micro-apps with /create-canvas in the GitHub Copilot app
- The Mediator pattern with MassTransit
- Why is my AI agent bribing a hamster?
- Let Copilot argue with you: the /spar slash command
- My VS Code story (and why the new documentary is a must watch)
- Using GitHub Copilot Spaces from VS Code
- Getting started with GitHub Copilot Spaces
- Cutting tool output tokens in Microsoft Agent Framework with TOON
- Firelighting vs. firefighting
- Monitoring Claude Code usage with the Aspire Dashboard
- Monitoring GitHub Copilot usage with the Aspire Dashboard
- Setting up GitHub Copilot budget policies without GitHub Enterprise Cloud
August 2026
- Renovate hostRules silently ignored? Check your config level
- Turning a single work session into a reusable Skill with Microsoft's Skill Recorder
- Packaging skills in a plugin, this time for GitHub Copilot CLI
- Packaging skills into a plugin
- Azure DevOps Server – Git submodule support
- Visual Studio finally gets proper Git submodule support
- Renovate on Azure DevOps: picking the right work item type
- Fixing "UNABLE_TO_VERIFY_LEAF_SIGNATURE" when running Renovate against an internal Azure DevOps server
- Mixing AddDbContext and AddDbContextFactory: 'Cannot consume scoped service'
- Docker snapshot tags aren't as static as I thought
- Remote control: steering your AI coding session from your phone
- Enabling diagnostics in a YAML pipeline in Azure DevOps
- EF Core savepoints: rolling back part of a transaction
- Passing custom parameters through OpenIddict's client authorization request
- Passthrough authentication with OpenIddict
- Why "AI is just the next compiler" doesn't hold up
July 2026
- Reading a Profiler trace without guessing
- Enabling the Application Insights Profiler
- Our P95 spiked, now what?
- .NET Aspire: The price of forgetting WithReference
- The mysterious .dev.localhost checkbox
- Talking to Copilot like a caveman
- Cache stampede: when our cache turned against us
- A complex system designed from scratch never works
- Fixing "Filename too long" errors on Windows with Git
- YARP and Aspire: "https+http scheme is not supported"
- The role of ActivitySource in OpenTelemetry for .NET
- Combining Google Stitch with the GitHub Copilot Coding Agent
- Dependency-Track: Error occurred decrypting the OSS Index API Token
- Slowly Changing Dimensions in Microsoft Fabric - The no-code way
- Slowly Changing Dimensions – An introduction
June 2026
- GitHub Copilot SDK Deep Dive: Session Memory
- Scheduling actions in the GitHub Copilot CLI
- Configuring Copilot CLI Isolation via the GitHub Copilot SDK
- Local sandboxing in the GitHub Copilot CLI
- Why my Azure DevOps scheduled pipeline never ran
- GitHub Copilot SDK Deep Dive: CopilotClientMode
- Shining a light on .NET versions across our organisation with OpenTelemetry – The Azure Monitor edition
- GitHub Copilot SDK Deep Dive: Controlling built-in tools with toolset
- GitHub Copilot SDK Deep Dive: Surgical system prompt customization
- AgentsView: A practical look at your AI agent sessions
- Ship your C# MCP Server as a one-click bundle with MCPB
- Level Up Your Copilot CLI Statusline with Oh My Posh
- Safely injecting a JSON configuration object into a Razor Page
- Multi-agent patterns with the GitHub Copilot SDK (continued)
- Multi-agent patterns with the GitHub Copilot SDK
- Agent Skills in the GitHub Copilot SDK
- MCP integration in the GitHub Copilot SDK
- Rubber Duck in GitHub Copilot CLI
- Visual Studio 2026–From plan mode to plan agent
- Breaking Change: The .On() Method in the Latest Copilot SDK
- GitHub Copilot SDK issue after upgrading to the 1.0.0-beta.10
- Type-safe tool definitions come to the Copilot .NET SDK
May 2026
- EF Core 10–Smarter parameterized collections
- Respect what came before
- GitHub Copilot AI Credits switch: Here's what to do before June 1
- Using ExecutionLog views in SQL Server Reporting Services to monitor performance
- Always know where you stand: Setting up a live status line in GitHub Copilot CLI
- Always know where you stand: Setting up a live status line in GitHub Copilot CLI
- Get more out of your GitHub Copilot session history with /chronicle
- Deploying and scaling the GitHub Copilot SDK (continued)
- Deploying and scaling the GitHub Copilot SDK
- GitHub Copilot Is changing how it bills you - Here's how to check the impact
- Techorama 2026 - Building an agent into any app using the GitHub Copilot SDK
- GitHub Copilot SDK–Breaking change in permission handling
- Sessions in the GitHub Copilot SDK: What they are and how to manage them
- Getting started with the GitHub Copilot SDK in .NET
- You don't need to build your own agent harness
- We are all beginners
- How to use GitHub Copilot Agent Skills in Visual Studio
April 2026
- Supercharging GitHub Copilot CLI with Ollama: Local Models, Full Control
- Fixing "Selected tag uses an invalid operating system " error when deploying to Azure Container Apps
- How to fix NuGet vulnerabilities with GitHub Copilot in Visual Studio
- Data API Builder - Get a visual config UI
- Microsoft Agent Framework- Workflow lifetime
- Expose your stored procedures as AI agent tools with DAB 2.0
- DAB 2.0 Preview: Autoconfiguration with autoentities
- Fixing the "Newer version of Aspire.Hosting.AppHost required" error
- Microsoft Agent Framework–Building a multi-agent workflow with DevUI in .NET
- Microsoft Agent Framework - Getting started with DevUI in .NET
- ADFS policies vs authorization rules - understanding the difference
- Keep your context short - Manual compaction is now available in VS Code
- Git for Windows 2.49.0 broke my Azure DevOps pushes
- Debugging your VSCode agent interactions
- Icons for Tools, Resources, and Prompts–Because a picture is worth a thousand words
- GitHub Copilot–Format your code using hooks
- CycloneDX 1.7 not yet supported by Dependency-Track
- Agents can now verify your UI changes without leaving VS Code
- Awesome GitHub Copilot just got awesommer (if that’s a word)
- Shining a light on .NET versions across our organisation with OpenTelemetry
March 2026
- VS Code Memory Tool: Local Memory meets GitHub Copilot Memory
- DeepWiki - Talk to your documentation
- SQL Server silently renames your user when you ALTER with a login
- Compile-Time options validation with the OptionsValidator source generator
- Validating configuration at startup with IValidateOptions in .NET
- How to explore multiple solutions in parallel when using Github Copilot
- You no longer have to wait for Copilot to finish thinking
- GitHub Copilot CLI Tips & Tricks — Part 5: Delegation
- GitHub Copilot CLI Tips & Tricks — Part 4: Automating and enforcing policies with hooks
- GitHub Copilot CLI Tips & Tricks — Part 3: Parallelizing Work
- GitHub Copilot CLI Tips & Tricks — Part 2: Session management
- GitHub Copilot CLI Tips & Tricks — Part 1: Understanding the Different Modes
- Managing multiple SQL Server instances from SQL Server Management Studio
- The lock that killed my migration
- The silent filter: How an ASP.NET MVC quirk became a security leak
- Cleaner Minimal API Endpoints with [AsParameters]
- ASP.NET Core - TryParse error when using Minimal APIs
February 2026
- Community is a verb
- Python vs PySpark notebooks in MS Fabric
- Cleaner switch expressions with pattern matching in C#
- Run SQL queries on local parquet and delta files using DuckDB
- How to work with OneLake files locally using Python
- Accessing Microsoft Fabric data locally with OneLake file explorer
Every year
2026 1842025 2202024 2142023 2212022 2172021 2152020 2182019 2172018 2142017 2212016 2192015 2142014 2222013 2362012 2462011 2712010 3452009 119