Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

ConfigR: Look Mom, No XML

I stumbled upon ConfigR a several months ago  on twitter from Glenn Block.  It uses ScriptCS (and Roslyn) and was developed by Adam Ralph. I finally got around to take it for a test drive on a side project.  It’s really a simple tool that I’ve been waiting for. Why ConfigR? The purpose of ConfigR is pretty straight forward.  It allows you to write C# code to define configuration settings which you would normally place in a the appSettings section of a web.config/app.config. If you have used the appSettings at all, you probably wished they could be typed instead of always having to… Read More »ConfigR: Look Mom, No XML

How to get started with CQRS & Event Sourcing

When I first heard about CQRS & Event Sourcing concepts through various blogs and videos, primarily from Greg Young and Udi Dahan, I wanted to apply it everywhere. It seems really natural to want to take the limited knowledge we have about a new concept or technology and try and apply it to any problem. Most of us know this is a terrible idea, but we are so tempted to push the concepts on a problem that it just doesn’t fit. I realize I’m grouping CQRS and Event Sourcing together in this post.  Generally, if you are applying Event Sourcing then… Read More »How to get started with CQRS & Event Sourcing

Handling Async Await Exceptions

Async/Await There’s a ton of information about async await support in .NET 4.5.  I don’t want to go over all the best practices and gotchas in this post, but I did want to point out one common trend I’ve seen lately, which is handling async await exceptions. Await or forget about it Any async method that returns a Task or Task<T>, you should always await the result. If you do not await, any exceptions that occur in the calling method will be swallowed.  Essentially you are turning the method call into a fire and forget. Async Await Exceptions Example Below is a simple example that… Read More »Handling Async Await Exceptions