Author Archives: Ian Cooper

About Ian Cooper

Ian Cooper has over 18 years of experience delivering Microsoft platform solutions in government, healthcare, and finance. During that time he has worked for the DTi, Reuters, Sungard, Misys and Beazley delivering everything from bespoke enterpise solutions to 'shrink-wrapped' products to thousands of customers. Ian is a passionate exponent of the benefits of OO and Agile. He is test-infected and contagious. When he is not writing C# code he is also the and founder of the London .NET user group.

Avoid Testing Implementation Details, Test Behaviours

Every so often I return to Kent Beck’s Test-Driven Development. I honestly believe it to be one of the finest software development books ever written. What I love about the book is its simplicity. There is a sparseness to it … Continue reading 

Posted in ATDD, BDD, SOLID, STDD, TDD, xUnit | 23 Comments

Why CRUD might be what they want, but may not be what they need

A brief history of CRUD The Rolling Stones once sung: “You can’t always get what you want, But if you try sometimes, well you just might find, You get what you need” I think the same is true of CRUD. … Continue reading 

Posted in Uncategorized | 23 Comments

Why use the command processor pattern in the service layer

Using a Command Processor When we think about a layered or hexagonal architecture it is common to identify the need for a service layer. The service layer both provides a facade over our domain layer to applications – acting as … Continue reading 

Posted in CQRS, DDD, Events, Object-Orientation, SOLID, Uncategorized | 15 Comments

Why Repository SaveUpdate is a smell

One of the idioms I see a fair amount of is the SaveUpdate method on a Repository. The intent is usually to persist an item to storage, using a SaveUpdate method to lazily avoid the question of whether it is … Continue reading 

Posted in .Net, DDD, NHibernate, ORM | 5 Comments

Mocks and Tell Don’t Ask

One of our alumni Karl blogged a request recently for folks to stop using mocks. Once upon a time I also made clear that I had a significant distrust of mocks. I’ve mellowed on that position over time, so I … Continue reading 

Posted in .Net, Agile, BDD, Behavior Specification, Mocks, Object-Orientation, Stubs, TDD | 6 Comments