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

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

msmvps (275) Software Development (101) .NET Development (91) C# (87) Uncategorized (61) Design/Coding Guidance (50) Software Development Guidance (33) DevCenterPost (31) Visual Studio 2005 (19) Visual Studio 2008 (19) Patterns (15) Visual Studio 2010 (14) .NET 2.0 (14) Non-development (13) Pontification (12) August 2008 (12) .NET 3.5 (12) .NET 4.0 (11) January 2008 (11) Visual Studio 2010 Best Practices (10) General (10) September 2006 (10) Architecture (9) July 2008 (9) February 2008 (9) C# 3.0 (9) .NET 4.5 (8) April 2014 (8) May 2008 (8) Microsoft (8) November 2008 (8) October 2006 (7) July 2006 (7) June 2008 (6) March 2008 (6) June 2007 (6) April 2010 (6) February 2010 (6) Azure (5) Software Development Principles (5) Windows Store (5) Multithreaded (5) February 2014 (5) AntiPattern (5) November 2011 (5) Interesting Find (5) December 2007 (5) May 2007 (5) March 2007 (5) February 2007 (5) OOD (5) Open Source (4) Windows Phone (4) Visual Studio 2012 (4) March 2013 (4) November 2012 (4) September 2012 (4) Unit Testing (4) Visual Studio (4) Product Bugs (4) Resharper (4) October 2007 (4) DevTeach (4) Visual Studio vNext (4) Message-Oriented Architectures (4) May 2011 (4) December 2010 (4) C# 4 (4) .NET 3.x (4) May 2010 (4) WinForms (4) March 2009 (4) June 2023 (3) September 2022 (3) Software Development Practices (3) July 2014 (3) May 2014 (3) Security (3) Windows Phone 8.1 (3) Windows Phone 8.0 (3) Random (3) October 2013 (3) C# 5 (3) Concurrency (3) TDD (3) February 2012 (3) Code Smells (3) January 2012 (3) Async Functions (3) October 2008 (3) September 2008 (3) August 2007 (3) April 2007 (3) C++ (3) Software Development Workflow (3) September 2011 (3) Distributed Systems (3) MOM (3) WCF (3) October 2010 (3) C# 4.0 (3) DDD (3) January 2009 (3) October 2023 (2) ASP.NET (2) Cosmos DB (2) Optimistic Concurrency (2) May 2023 (2) December 2022 (2) June 2022 (2) September 2018 (2) December 2017 (2) June 2017 (2) February 2015 (2) Tips (2) August 2014 (2) XAML (2) Heartbleed (2) March 2014 (2) Visaul Studio 2013 (2) January 2014 (2) Mobile (2) Windows Phone 7.1 (2) April 2013 (2) EffectiveIoC (2) January 2013 (2) Visual studio 2010 Best Practices (2) April 2012 (2) Code Analysis/FxCop Warning Resolutions (2) SCC (2) Framework Bug (2) Pop Quiz (2) Poor UI (2) MVP (2) C# 3.0 Breaking Changes (2) C# Nugget (2) September 2007 (2) July 2007 (2) November 2006 (2) August 2006 (2) March 2006 (2) Subversion (2) SVN (2) DevTeach YOW 2011 (2) October 2011 (2) Rant (2) March 2011 (2) November 2010 (2) June 2010 (2) July 2009 (2) April 2009 (2) ALT.NET (2) Visual Studio 2008 SP1 (2) Git (1) .NET (1) Aspire (1) Entity Framework (1) ETag (1) Domain-Driven Design (1) Repository (1) Application Service (1) HTTP (1) February 2023 (1) November 2022 (1) October 2022 (1) August 2022 (1) Markdown (1) Tips & Tricks (1) Workplace (1) Agile (1) December 2019 (1) REST (1) Versioning (1) November 2019 (1) June 2019 (1) April 2019 (1) February 2019 (1) August 2018 (1) July 2017 (1) Visual Studio 2017 (1) May 2017 (1) Message-oriented (1) September 2016 (1) March 2015 (1) September 2014 (1) LongPath (1) Apps (1) GIT (1) SkyDrive (1) December 2013 (1) Azure Mobile Services (1) C/C++ (1) Win32 (1) July 2013 (1) Productivity Extensions (1) async (1) February 2013 (1) health/fitness (1) August 2012 (1) May 2012 (1) December 2011 (1) Code Contracts (1) DbC (1) Definition (1) DevTeach YUL 2008 (1) techdays2008 (1) Connect Issue (1) Connect Suggestion (1) Kaikaku (1) Kaizen (1) Lean (1) ITSWITCH Answer (1) ITSWITCH (1) Asynchronous Programming Model (APM) (1) TCP (1) CodeRush Refactor! Pro (1) Reader Questions (1) April 2008 (1) C++/CLI (1) November 2007 (1) Debugging (1) Code Analysis Rules (1) Visual Studio Orcas (1) SilverLight (1) New Forums (1) Small Business Server 2003 R2 (1) Team Foundation Server (1) January 2007 (1) Visual Studio 2005 Service Pack 1 Beta (1) MFC (1) Humourous (1) Visual Studio 2011 (1) Windows 8 (1) August 2011 (1) July 2011 (1) June 2011 (1) RabbitMQ (1) Opinion (1) Software (1) Usability (1) April 2011 (1) February 2011 (1) Unity 2.0 (1) Book Review (1) August 2010 (1) Refactoring (1) Refactoring with Visual Studio 2010 (1) March 2010 (1) DevTeach YYZ 2010 Toronto (1) December 2009 (1) August 2009 (1) May 2009 (1) Microsoft Patterns and Practices (1)