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

Getting Started with Functional Programming in F#

At last night’s Windsor-Essex .NET Developers Group, we had Reid Evans presenting a talk on Getting Started with Functional Programming in F#. I absolutely loved this talk and wanted to share it along with some of my thoughts and takeaways. I’ve been over the last year or two going back and forth with learning F# and understanding more functional programming concepts.  So I was really looking forward to this talk. If you have any questions, please follow me on Twitter. Video This is the live stream we had to our user group.  If you are interested in functional programming and F#, I… Read More »Getting Started with Functional Programming in F#

Developing Features not Layers

Developing and thinking about features not layers is something I’ve moved towards over the last several years. I’ve mentioned it in several blog posts and I don’t think I ever explicitly created a post about it. CQRS The real enabler has been CQRS.  For those unfamiliar with CQRS or if you think it’s complicated, let me share a quote from Greg Young: CQRS is simply the creation of two objects where there was previously only one. The separation occurs based upon whether the methods are a command or a query (the same definition that is used by Meyer in Command and Query… Read More »Developing Features not Layers

MicroBus: In-Process Mediator

I’ve blogged about the mediator pattern a lot.  Primarily because it’s been a good fit in several of the applications I’ve developed over the last few years. Mediator Pattern For those completely unfamiliar with the mediator pattern, here’s a brief summary: With the mediator pattern, communication between objects is encapsulated with a mediator object. Objects no longer communicate directly with each other, but instead communicate through the mediator. This reduces the dependencies between communicating objects, thereby lowering the coupling. Libraries I’ve written my own implementations of the mediator library from project to project.  Once I finally found the MediatR library, I’ve pretty… Read More »MicroBus: In-Process Mediator