D20Tek Mediator supports both synchronous and async commands. In many cases, synchronous commands are plenty. But when working with data files, external service calls, and databases, it is best for performance throughput to build async WebApi handlers and async commands that process that data. To this point, we have mostly looked at synchronous ICommandHandlers. Here … Continue reading Mediator: Sync and Async Commands
Tag: c#
Introducing MinimalApi.DevView – .NET Toolkit for Minimal APIs
Minimal APIs in .NET make it easy to build lightweight web services with minimal ceremony, but during development, visibility into what your app is doing can be a challenge. That’s what MinimalApi.DevView helps you with. Today, I’m excited to announce the release of D20Tek.MinimalApi.DevView v1.0, a dev-time only diagnostics and discovery toolkit designed specifically for … Continue reading Introducing MinimalApi.DevView – .NET Toolkit for Minimal APIs
Is ASP.NET WebApi Pipeline Already a Mediator?
As we discussed in earlier posts, the Mediator and Command are patterns that can be implemented in different way. And those patterns already exist in many coding frameworks. As a matter of fact, the ASP.NET WebApi request pipeline can be considered a Mediator and Command implementation, especially when building MinimalApi. Remember that a Mediator encapsulates … Continue reading Is ASP.NET WebApi Pipeline Already a Mediator?
Getting Started with D20Tek.Mediator Package
There are a few Mediator and Command implementations in the .NET ecosystem. The most popular one has been Mediatr. But with the recent announcement that Mediatr is moving to a commercial license, many developers looking for alternatives. In an attempt to support the .NET community, I am building a simplified Mediator and Command library that … Continue reading Getting Started with D20Tek.Mediator Package
Setting up WebApi Sample Project
In many of our future articles, we will be using ASP.NET MinimalApi project to show how the Mediator library can be used. So in this article, we will discuss how to create WebApi projects in Visual Studio. Create the WebApi Project If you don't already have a WebApi project, please create a new one called … Continue reading Setting up WebApi Sample Project
Understanding the Mediator and Command Patterns: Theory, Use Cases, and Trade-offs
In the world of software design, decoupling is a recurring goal. Systems built from loosely coupled components are more maintainable, testable, and scalable. But we still want to balance that with being easy to use in simple scenarios. Two design patterns that often work well together to achieve this are the Mediator and Command patterns. … Continue reading Understanding the Mediator and Command Patterns: Theory, Use Cases, and Trade-offs
Understanding await vs. ContinueWith in C# Async Programming
When it comes to asynchronous programming in C#, developers have powerful tools to make applications more responsive and efficient. By allowing long-running operations to execute in the background, we can keep the UI thread free for other tasks, resulting in smoother user experiences. Or when running those tasks on ASP.NET, the service can respond to … Continue reading Understanding await vs. ContinueWith in C# Async Programming
Currency Input in Spectre.Console
I was trying this just the other day in Spectre.Console. I wanted an input prompt that would accept currency values. I started down the path of using a decimal representation (TextPrompt<decimal>). While that mostly worked on the input value, it does not support using negative sign, separators, or decimal places. I wanted to be able … Continue reading Currency Input in Spectre.Console
Understanding C# Keywords
In C#, keywords play a crucial role in defining how your code behaves. They help in establishing various programming constructs like classes, methods, variables, and even asynchronous behavior in a structured and precise way. This article will explore some essential C# keywords, providing clarity on their purpose and usage. 1. sealed: Preventing Inheritance The sealed … Continue reading Understanding C# Keywords
Introduction to Immutability with Records in C#
With C# 9.0, Microsoft introduced the record keyword, a powerful new addition that makes it easier to work with immutable data. Records are designed to simplify the creation of classes that are primarily intended to store data, and they offer a more concise and expressive way to model data compared to traditional classes. If you've … Continue reading Introduction to Immutability with Records in C#