A tool to help contributing to many Git repos

Entity Framework in .NET Aspire

ETags in ASP.NET Core

HTTP and ETag Header Fields

Being Successful with Domain-Driven Design: Minimal Complexity, Part 3

Being Successful with Domain-Driven Design: Minimal Complexity, Part 2

Being Successful With Domain-Driven Design: Minimal Complexity, Part 1

Installing .NET Framework 4.5 Targeting Pack


Things I Learned Attempting Azure Administrator Associate - Part 2 - Storage

Things I Learned Attempting Azure Administrator Associate - Part 1

Fundamental ASP.Net Minimal API Integration Tests

Visual Studio Performance with Microsoft Defender

By Reference in C#

Fundamental Quality Attributes of Technology Systems

Naming Things - Common Actions and Events

Message-oriented Minimal APIs in ASP.NET Core

Data URLs in Markdown

As a Delivery Team Member, I Want To Know if My Organization's Agile Initiative Is off the Rails


Environment Variables with C# Conditional Compilation Symbols

RESTful Versioning

Service-Oriented is Declarative, not Imperative

Thoughts on Web Services, REST APIs, and Message Structure

Domain-Oriented Observability: The Decorative Way

Disabled Browser Copy-to-Clipboard: WTF?


ASP.NET Core Configuration Recommended Practices

Supporting Structured Dynamic Configuration in ASP.NET Core appsettings

Deeper Understanding of The Bridge Pattern



Mapping a Domain Model to RESTful

What Is Architecture

Comments in Markdown

Message-oriented Content and Properties/Attributes

Bridges, Facades, and Adapters

Multi-targeting in Visual Studio 2017

Getting Started with .NET Core/Standard

Rethinking the Liskov Substitution Principle

Resetting Build Number in Appveyor


Introduction to messaging primitives


Writing Unit Tests is Hard, Because…

The Dreaded Re-write

Seam expansion


“CONSIDER providing method Close(), in addition to the Dispose(), if close is standard terminology in the area” considered deprecated

Maslow’s Hammer

If you think you need to use an ORM, think some more.

Long Paths and .NET

Iterator Methods

Testing framework assumptions

Math.Round(value) does to-even rounding

Bye bye, eBay

Was Patching XP the wrong choice?

Windows Store production mill

Comparing BackgroundWorker and async/await

What do the icons on your Windows Phone 8.1 mean?

Getting the most of Windows Phone 8.1 keyboard

On performance of immutable collections

Heartbleed: Caveat Emptor

SSL is not the basis of mission critical security

Getting used to Windows Phone 8.1

Effective Blogger

The case of the not-so-useful XBF error

Unable to resolve reference refs/remotes/origin/master

Generating Windows Phone and Windows Store application images–the vector version

Theoretical technology speed limits

Generating Windows Phone and Windows Store application images

The case of the enigmatic error 0x89721200

SkyDrive tip: extracting text from an image

Windows Phone 8 tip: copy and paste from paper book


Data virtualization in Windows Phone 7.1 (or Why INotifyCollectionChanged is fundamentally broken)

Windows Azure PowerShell

Persisting Azure Mobile Services authentication tokens and handling expiry

volatile–You Keep Using That Word, But I Do Not Think You Know What It Means

The Subtle Differences Between Events and Commands in a Message-oriented System

Visual Studio, run as Administrator

Accessing Private Fields and Properties

Now Blogging in WordPress from Azure

Introducing EffectiveIoC

Dependency Injection

Azure Table Storage and the Great Certificate Expiry of 2013

async/await Tips

IDisposable and Class Hierarchies

The Dispose Pattern as an anti-pattern


Introduction to Productivity Extensions

Leave predicting to meteorologists and fortune-tellers

And the winners are…

Developer Fitness

Win a free copy of Visual Studio 2010 Best Practices

Thread synchronization of non-atomic invariants in .NET 4.5

Thread synchronization of atomic invariants in .NET 4.5 clarifications

Thread synchronization of atomic invariants in .NET 4.5

Visual Studio 2010 Best Practices published

Automated Testing Isn’t Just for Business Logic

Dispose Pattern and “Set large fields to null”

“Virtual method call from constructor” What Could Go Wrong?

Software Design and First Principles–Part 0: Concepts of Object Orientation

The Flawed Eventually-upgrade Software Model

The Rat-hole of Object-oriented Mapping

What Code Comments are Not For.

Avoid the volatile Modifier

C#, Async, Limits, oh my!


The TeamCity Database Migration Documenation Could Use Some Work

If You’re Using “#if DEBUG”, You’re Doing it Wrong

Working with Subversion Part 2 (or Subversion for the Less Subversive)

“Explicit” Tests with Resharper

Working with Subversion, Part 1

Getting a Quick Feel for a New Software Team

DevTeach Comes to Ottawa!

Ottawa Speaker’s Idol Nov. 2nd at DevTeach Ottawa

Windows 8 for the Keyboard User

Windows 8, What Does It Mean to Me?

Enterprise Service Buses, Brokers, Message Queues, Oh My!

Message-Oriented Architecture is a Misleading Term

Message-oriented Architectures (Updated)

Taking Customer Support Into Social Era

Robustness with RabbitMQ in .NET

Hosted MongoDB

Certification Caveats

Criteria for Success

The Era of Usability

Mapping to Your Database is a Private Affair

Not Only SQL

Developing Windows Services in Visual Studio


The Custom Configuration Section Code Smell

Unbind a Visual Studio 2010 Solution from Source Code Control

Fluent Builders Part 2

Fluent Builders, Part 1

Testing Strategies Involving Async Functions

Deep Dive on Closure Pitfalls

More on Async Functions

A New Asynchronicity Awaits You

Lasagna Code

Book Review: WCF 4.0 multi-tier services development with LINQ-to-Entities

Visual Studio 2010, Enhance your Jedi Skillz

Best Practices

Using the dynamic Keyword in C# to Improve Object Orientation – A Follow-up

Using the dynamic Keyword in C# to Improve Object-Orientation

Refactoring with Visual Studio 2010

Layers in Visual Studio 2010

Principles of Software Development Productivity

Modify VS 2010 Template to Reference System.Configuration

Getting Started Unit Testing with nUnit

Flaws in the Microsoft Connect Process

Apple’s New iPhone SDK Licensing Changes are a Potential Win for Microsoft.

Platform Developer Creativity

The Add Reference Dialog is the Wrong Scenario

MEF is not An IoC container; but MEF uses IoC

Women in High Tech

What is Data-Driven Design

Nourishing Technology and product communities.

The weather outside is frightful

The Difference between an Anti-Pattern and a Code Smell


DevTeach 2010 Toronto

TechDays Canada 2009 Developer Foundations Call For Speakers

Why Fundamentals are Important to Microsoft’s Bottom-line

Thread.Sleep is a sign of a poorly-designed program, redux

Unit testing WCF data contract serialization.

DataContractSerializer.ReadObject is easily confused.

Working with Children

Evolving code over time

DevTeach 2009 Vancouver

Never Mind Canonical Tags, Let’s Get Content/Navigation Tags.

Developing with Source Code Control – Best Practices Part 2

It’s More Than Syntax

A Upcoming Pandemic of Domain Anaemia

House of Cards Design Anti-pattern


Unable To Step Into .NET Source

Pass-through Constructors

Pontificating Virtual Parameterized Constructors in C#

Dynamic Features in C#

visual studio jedi 2

DevTeach 2008 Includes over $1,000 In Free Software.

.NET 4.0, Evolving .NET Development

Microsoft Techdays 2008

Closure Tip

Developing with Source Code Control Best Practices Part 1

Developing with Source Code Control Best Practices Part x

Four Principles for Successful Standards

Bugs Are Features Too

Software Process and Reduction of Quality

Becoming a Visual Studio Jedi Part 1

Trials and Tribulations of DataGridView, Column Selections, and Sorting

Drag and drop of control selections onto forms designer toolbox

Location of unit tests.

The winds of change are blowing

Extra Features: One of the Lean 7 Wastes of Software

IS prolific use of inheritance a sign of a poorly design program?

Law of Reversibility of Attributes


Transparency in Software Products

Getting the most out of Reflector

Code Coverage

Microsoft Knowledge Base Themes

ITSWITCH #1: Answer


Working with Resharper’s External Annotation XML Files

Drag-copying in Visual Studio Solution Explorer.

Excellent Overview of Domain-Driven Design and Why it Helps

Nested Types

Multi-platform Testing

Received Microsoft MVP Award in C# Again

Sandcastle Source Code Published

Entity Framework Petition of Vote of Non Confidence

Comparing CodeRush Refactor! Pro and Resharper 4, part 1 or N — first glance.

Trace to output window without adding code.

Fundamentals of OOD Part 3: Method Cohesion

How Hard Could It Be Indeed: Another sub-standard web site.

.NET Framework Source Code License.

Spaces or Tabs?

Resharper 4.0 EAP Settings and Installing Latest Build

DevTeach Toronto 2008


RFC: Conditionals on false

DevTeach 2008

Fundamentals of OOD, Part 2 – Encapsulation Scope

Fundamentals of Object-Oriented Design (OOD) Part 1

Overcoming problems with MethodInfo.Invoke of methods with by-reference value type arguments

Resharper Isn’t Always Smart

Windows XP Professional EULA

Licences for Microsoft products

.NET 2.0 Framework License

Upcoming C# 3 Guidance From Microsoft

Single-Entry, Single-Exit, Should It Still Be Applicable In Object-oriented Languages?

"No "Add Method Stub" When Passing or Assigning Delegates"

My Wishlist for C# 4

Playing with LINQ

Maxim’s of Object-Oriented Design – Layers

In progress

Testing the Units

Not Knowing Why Something is Better or Worse Means You Believe it’s Magic

A Time and Place for Code Comments

CoDe Magazine Article.

Is C++/CLI a Second Class Language with Microsoft?

"Object is currently in use elsewhere" error.

Observation as Scientific Proof


Formatting/parsing for a specific culture redux

Compilation of LINQ Expressions and Separation of Concerns.

How do I derive from a sealed class?

Why is immutability important.

Microsoft Symbol Server EULA Circa VS 2005

Dependency Inversion Principle

Visual C# Developer Center Article


Formatting/parsing for a specific culture

Bridges and Factories

BigInteger is not in .NET Framework 3.5

Dependency Injection

New Warning CS1060 in C# 3 (Visual Studio 2008)

New warning CS0809 in C# 3 (Visual Studio 2008)

Misapplied "Premature Optimization"

New Contributor to the C# Developer Centre

Who’s Referencing Whom?

Using Exceptions For Normal Logic Flow

Web seminars on Visual Studio 2008

My Visual Studio 2008 Code Analysis Rules

Visual Studio 2008 Managed Code Analysis

Thread.Abort is a Sign of a Poorly Designed Program

Exception Logging

Performance Implications of try/catch/finally, Part Two

Visual Studio Orcas == Visual Studio 2008

C# Design Guidelines

System.Collections classes are obsolete

Performance Implications of try/catch/finally

The Religion of Class Member Prefixing

DateTime.ToUniversalTime *Should* Throw Exceptinos.

Software Design Priniples and Terminology

Oww, my brain hurts. Extension methods *will* cause me grief.

"Invalid menu handle" Opening Downloaded .ZIP Files (IE6, XPSP2)

.NET Framework 2.0 Service Pack 1

Accumulative Construction

Near Future: Side by Side CLRs in One Application

Thread.Sleep is a sign of a poorly designed program.

Reports of my death have been greatly exaggerated.

Unified Field Theory, is it Possible?

Microsoft Robotics Studio Forums

Windows Live Messenger Virus Scanner Settings


Microsoft 2007 MVP Global Summit

Microsoft Open Source Lab

Contribution to Microsoft Visual C# Develper Center

Guest Blogging on Microsoft Canada Developer Connection

Reducing code-bloat with anonymous methods

Sudden "…you must have Terminal Server User Access permissions on this computer." Error.

Uses for yield Part One – Introduction

Much needed feedback on Connect feedback.



Visual Studio 2005 Clean doesn’t clean everything

Writing Solid Code

Code Analysis: How to Correctly Resolve CA1300 – "Specify MessageBox Options"

Using Toolbox for Code Snippets in Visual Studio 2005

‘System.Threading.Thread.Suspend()’ is obsolete: ‘Thread.Suspend has been deprecated…

Writing Libraries with Visual C++

Visual Studio 2005 Service Pack 1 Beta

Add Visual Studio 2005 Intermediate Files to Windows Disk Cleanup

Pot to Kettle: "You’re Black"

Has ANSI C/C++ Been Perpetuating Unsecure Computing?

More Windows SDK Functions That Are Not Safe

Schedule at Least a Three Hours When Installing Visual Studio 2005 Service Pack 1 Beta

Useful Visual Studio 2005 Find/Find-and-replace Regular Expressions

Save CBitmap to File

The Difference Between Teams and Groups and the Difference Between Leaders and Dictators

Protecting intellectual properties in .NET, Part 2.

Changing TextBox Text as an Undo-able Action

Protecting intellectual properties in .NET, Part 1.

Time to replace UPS batteries…

MSDN Wiki Search Google Toolbar Button

Visual Studio Revert-to-saved macros

Thoughts on Some Legal Disclaimers

Routing and Remote Access, NAT, and Internet connection sharing.

Interesting Find for Command Prompt junkies

Docking With Run-Time-Created Controls

SYSK 149: Performance Analysis of the 'yield return' Statement


Sortable Value Type Code Snippet

A code snippet for Visual Studio 2005 that implements a skeleton value type adhering to Framework Design Guidelines