To pack a nuget package for testing locally is actually a fairly trivial process of using the dotnet pack and defining a local folder you want your package to be located.
The strategy design pattern splits the behavior (there are many behaviors) of a class from the class itself. This has some advantages, but the main draw back is that a client must understand how the Strategies differ.
vertical slice architecture separates applications into “vertical slices”, representing the part of each layer that creates a specific feature
Exploring the .net minimal Api templates and the how and why they can be useful for developers
Statement management can be a key aspect of any application design. It tends to cover a broad range data storage capabilities in your application, which may include accessing files on the file system or accessing a database of some description, with the purpose of manipulating the state of an object.
In this article we’ll explore how to create a simple state management microservice using dapr
JSONPatch can help update document resources in a very explicit way.
C# 9.0 introduces record types, a reference type that provides synthesized methods to provide value semantics for equality. Dive in deeper to understand what this means
GitHub Actions enables the user to create custom Software Development Life Cycle (SDLC) workflows in their GitHub repositories. Enabling the repository owner to write individual actions and then combine them to create a custom workflows of their choice for their project. These workflows could be anything that software developers would want to typically automate in their day to day processes.
exploring how to make use of MediatR Pipeline Behaviors to address cross-cutting concerns like caching, logging, validation, security and transactions
Different types of data structures are suited to different applications and some are suited to to highly specific types of tasks. The most commonly found data structures most software developers will be familiar with are Queues and Stacks.
Command Query Responsibility Segregation (CQRS) specifies that different data models should be used to for updating the database and read from the database. Command and Query are two operations which infer read and write respectively
MediatR Pipeline behaviours were introduced in Version 3, enabling you execute validation or logging logic before and after your Command or Query Handlers execute, resulting in your handlers only having to deal with Valid requests in your CQRS implementation
JetBrains Rider provides Docker support using the Docker plugin. The plugin is bundled and enabled by default. For more information. In this post we’ll walk through the process of running a docker compose files in Rider.
Mediator pattern is used to reduce communication complexity between multiple objects or classes. The pattern provides a mediator class which handles all the communications between different classes and supports easy maintenance of the code by loose coupling.
Converts the interface of a class into another interface this client expects.
we are going to take a look at installing Seq and configuring our application to use Serilog to send our logs and use Seq to review our log details
how to implement services and invoke them from other applications, which can be either aware of Dapr as they rely on its SDK or unaware of the presence of Dapr as they just invoke a local HTTP endpoint
The simplicity of the .net core packing and publishing tool, enables you simply use what you’re already doing to make doing what you’re already doing faster. No need to learn a new complex template language.
ASP.NET Core includes some basic logging providers, but to get the most out of it you’ll need to plug in a full logging framework like Serilog – simple .NET logging with fully-structured events.
Dapr is an event-driven, portable runtime created by Microsoft as an open source initiative. Due to the fact that Dapr is event-driven it plays an important role in microservices as the applications can be designed to efficiently react to events from external systems or other parts of the solution, and also produce events in order to inform other services of new facts to continue their processing.