Archive

2019


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?

2018


ASP.NET Core Configuration Recommended Practices

Supporting Structured Dynamic Configuration in ASP.NET Core appsettings

Deeper Understanding of The Bridge Pattern

Innovation

2017


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

2016


Introduction to messaging primitives

2015


Writing Unit Tests is Hard, Because…

The Dreaded Re-write

Seam expansion

2014


“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?

Comparing BackgroundWorker and async/await

Windows Store production mill

Getting the most of Windows Phone 8.1 keyboard

What do the icons on your Windows Phone 8.1 mean?

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

2013


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

2012


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!

2011


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

Hosted MongoDB

Robustness with RabbitMQ in .NET

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

2010


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

2009


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

Developing with Source Code Control – Best Practices Part 2

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

It’s More Than Syntax

A Upcoming Pandemic of Domain Anaemia

House of Cards Design Anti-pattern

2008


Unable To Step Into .NET Source

Pass-through Constructors

Pontificating Virtual Parameterized Constructors in C#

visual studio jedi 2

Dynamic Features in C#

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

DataGridViewColumn.Frozen

Transparency in Software Products

Getting the most out of Reflector

Code Coverage

Microsoft Knowledge Base Themes

ITSWITCH #1: Answer

ITSWITCH: #1

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

Multi-platform Testing

Nested Types

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

en POCO

DevTeach 2008

RFC: Conditionals on false

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

.NET 2.0 Framework License

Windows XP Professional EULA

Licences for Microsoft products

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

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

In progress

Testing the Units

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

BDD vs TDD.

Compilation of LINQ Expressions and Separation of Concerns.

Why is immutability important.

How do I derive from a sealed class?

Visual C# Developer Center Article

Dependency Inversion Principle

Microsoft Symbol Server EULA Circa VS 2005

2007


Formatting/parsing for a specific culture

Bridges and Factories

Dependency Injection

BigInteger is not in .NET Framework 3.5

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

Using Exceptions For Normal Logic Flow

Who’s Referencing Whom?

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

System.Collections classes are obsolete

C# Design Guidelines

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?

Windows Live Messenger Virus Scanner Settings

Microsoft Robotics Studio Forums

Community

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.

2006


Dogfooding

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

Save CBitmap to File

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

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

Welcome

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