Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

Category Archives: Design

Exceptional and Substitutable

I watched Sean Chambers deliver an excellent talk about S.O.L.I.D. principles last weekend at Tallahassee CodeCamp. It motivated me to look a little deeper into the Liskov Substitution Principle, which states: Functions that use pointers or references to base classes … Continue reading 

Also posted in Agile, Behavior-Driven Development | 2 Comments

Return False on the Happy Path

When you call a query method that returns true or false, I highly suggest that you make true results trip conditional logic / guard clauses / etc. I was driving out some code today in an MVC controller that had … Continue reading 

Also posted in Agile, Test-Driven Development | 12 Comments

Designing the Team Room

At VersionOne, we just got the opportunity to move to a new team room. It’s far superior in terms of size, noise level, and natural light. It’s a very cool, very lofty kind of space. To get things started, we … Continue reading 

Also posted in Mac | 8 Comments


The next leg of our quest to uncover the deeper driving forces behind SOLID principles brings us to the Open/Closed Principal (OCP). To refresh, I think it’s important that if we’re going to say (read the next part in a … Continue reading 

Also posted in Agile, Behavior-Driven Development, Domain-Driven Design, revent, Ruby and Rails, Test-Driven Development | Leave a comment


There was some chatter on twitter today about why SOLID principles are a good idea. When designing object systems we often tote around a lot of acronyms for principles of good design, but why are these things principles? It’s not … Continue reading 

Also posted in Community, Microsoft | 4 Comments

Hook Methods

I’ve written about the template method pattern before. For my money it’s still a very useful pattern for building super lightweight frameworks and enabling the open-closed principle which states: Software entities (classes, modules, functions, etc.) should be open for extension, … Continue reading 

Also posted in Agile, Community, Events | 15 Comments

Super Models, Part 1: Sexy Specifications

In Domain-Driven Design we turn to the specification pattern when we want to check whether an object matches some criteria. I think specification is the oft-forgotten bastard child pattern of the domain model pattern language. I know I frequently turn … Continue reading 

Also posted in Agile, Behavior-Driven Development, revent, Ruby and Rails, Test-Driven Development | 12 Comments

Design: Paul Rand & Ubiquitous Language

The Ubiquitous Language is an important concept in Domain-Driven Design. Some time back, I found this video of Paul Rand talking about his views on the essence of design and art. I love it and see an immediate parallel between … Continue reading 

Also posted in Microsoft, Web | 1 Comment

The Separated Interface Pattern

I did a quick streaming video today with the Separated Interface design pattern as our topic du jour. I wanted to see if the whiteboard would show up on video and if this was something people thought was valuable. It’s … Continue reading 

Also posted in Agile, Microsoft | 3 Comments

SetUp and Teardown Methods in Test Classes

Jim Newkirk is blogging about the down side of setup and teardown methods in test classes, and why you shouldn’t use them. Setup and teardown methods attract entropy faster than an outsource programmer with his first patterns book. Jim’s new … Continue reading 

Also posted in Agile, Solubility, Test-Driven Development | Leave a comment