Vertical Slice Architecture

Many years back, we started on a new, long term project, and to start off with, we built the architecture around an onion architecture. Within a couple of months, the cracks started to show around this style and we moved away from that architecture and towards CQRS (before it had that name). Along with moving to CQRS, we started building our architectures around vertical slices instead of layers (whether flat [Read More]

Containers - What Are They Good For? Build Environments?

In the last post, I looked at how containers could make local development easier for our typical projects, and mainly found they work well for dependencies. Next up, I wanted to see if they could make our continuous integration server "better". Better, as in, faster, more reliable, more deterministic. But first, let's review our typical environment: We have Continuous Integration servers running either on premise (with TFS, Jenkins, TeamCity) or [Read More]

The False Dichotomy of Monoliths and Microservices

When learning about microservices, you're nearly always introduced to the concept of a monolith. If you're not doing microservices, you're building a monolith. If you're not building a monolith, you must go with microservices. If you're building a monolith, perhaps you're doing it well and it's a majestic monolith. From my early encounters with microservices, this dichotomy bothered me. The discussion of a monolith was nearly always focused on its [Read More]

Migrating Contoso University Example to Razor Pages

A coworker noticed that it looked like Razor Pages were the new "recommended" way of building server-side rendered web applications in ASP.NET Core 2.0. I hadn't paid much attention because at first glance they looked like Web Forms. However, that's not the case. I forked my Contoso University example (how I like to build MVC applications) and updated it to use Razor Pages instead. Razor Pages are similar [Read More]

My Microservices FAQ

Mainly because I get asked all the time about microservices and I'm tired of having to remember on the spot: What is a microservice? A microservice is a service with a design focus towards the smallest autonomous boundary. What is a service? (From Clemens) A service is software that: is owned, built, and run by an organization is responsible for holding, processing, and/or distributing particular kinds of information within [Read More]