Project organization – Getting Started with Vertical Slice Architecture

Here is how we organized the project:  Figure 17.4: Solution Explorer view of the file organization  In this project, we support request validation using FluentValidation, a third-party NuGet…

Downside or Upsides? – Getting Started with Vertical Slice Architecture

The following points are downsides that we can tame as upsides: A way to start refactoring that business logic would be to push the logic into the domain…

Advantages – Getting Started with Vertical Slice Architecture

On the upside, we have the following: From my experience, features tend to start small and grow over time. The users often find out what they need while…

Vertical Slice Architecture – Getting Started with Vertical Slice Architecture

Instead of separating an application horizontally (layers), a vertical slice groups all horizontal concerns together to encapsulate a feature. Here is a diagram that illustrates that:  Figure 17.1:…

Anti-pattern – Big Ball of Mud – Getting Started with Vertical Slice Architecture

Before you begin: Join our book community on Discord Give your feedback straight to the author himself and chat to other early readers on our Discord server (find…

Conclusion – Mediator and CQRS Design Patterns

With MediatR, we packed the power of a CQS-inspired pipeline with the Mediator pattern into a Clean Architecture application. We broke the coupling between the request delegates and…

Using MediatR as a mediator – Mediator and CQRS Design Patterns-2

As you may have noticed in the code, I chose the same pattern to build the commands as I did with the CQS sample, so we have a…

Using MediatR as a mediator – Mediator and CQRS Design Patterns-1

In this section, we are exploring MediatR, an open-source mediator implementation.What is MediatR? Let’s start with its maker’s description from its GitHub repository, which brands it as this:…

Dependency identifier – Mediator and CQRS Design Patterns

If you need markers to inject some specific dependency in a particular class, you are most likely cheating the Inversion of Control principle. Instead, you should find a…

Conclusion – Mediator and CQRS Design Patterns

The CQS and CQRS patterns suggest dividing the operations of a program into commands and queries. A command mutates data, and a query fetches data. We can apply…