3 Different Ways to Implement Value Object in C# 10
Let’s find out how to implement value objects and map them to a database table with EF Core 6.0. — What is Value Object A value object is an object without an explicit identifier. Its first main characteristic is that it does not require an identity. The second principal characteristic is that value objects must be immutable. It means that once value object properties are initialized, we can’t change their values. You can change…
How I Upgrade my Code-Style of MediatR Pipeline using .NET 6
I want to share with you how .NET 6 features with the new MediatR.Extensions.AttributedBehaviors NuGet package helped me polish my MediatR pipelines. — What is MediatR It is a popular library for C# created by Jimmy Boggard, which can be described as a simple Mediator Pattern implementation in .NET. MediatR NuGet package currently has almost 50 million downloads and still rising. Wiki page on its GitHub says:
How to Implement Azure Functions in any Language with Custom Handlers
Introduction of Custom Handlers with Demo using Go Language. — Introduction Every Azure Function has its handler. Azure Functions supports handler implementations in many different languages but they may not provide a native implementation in your favorite language. That is where Custom Handlers comes at the scene. The language of your choice must support HTTP communication because Custom Handler is a…
From Monolith to Microservices in 5 Minutes
“A microservice architectural style is an approach to developing a single application as a suite of small services.” — Martin Fowler. — First, we will find out what is Monolithic Architecture. Therefore, I will show you how to modify its domain to be ready for Microservice Architecture. In the end, I will briefly tell you the basics of Microservice Architecture and judge its pros and cons. Monolithic Architecture
Let Me Hear you Scream(ing Architecture)
The software architecture should scream the intent of the system. — Uncle Bob — Let me hear you scream like you want it Let me hear you yell like you mean it This is a part of the refrain from Ozzy Osbourne’s song “Let Me Hear You Scream.” Let me modify it a little bit into a software-related context. Let me hear it screams…
3 Things that Change my Way of Thinking in 2020
This is a list of things that completely changed me in 2020, and it was not the COVID-19. — This year is hard for all of us. When everybody is scared of how global warming affects humanity's future, other catastrophes came by. Large fires in Australia, COVID-19 Pandemic, American Riots, and recent events, the Islamic state’s strikes in France and Austria. But from my individual perspective, I love the…
Layers in Software Architecture that Every Sofware Architect should Know
Architectures have the same objective — the separation of concerns. They all achieve it by dividing the software into layers. — Uncle Bob — Layers Layers are horizontal (don’t get confused with title image) abstract parts of an application. Their boundaries are making a right angle with the data flow. Layers are representing the different levels and types of abstraction of the concerns which accompany software development.
No More Mess in my Head Around Phrases Related to Identity in Computing
What is Identity? Azure Active Directory is just Active Directory in Azure? Microsoft Graph is a Data Visualization Framework or What? — Identity What is Identity in Cloud Identity is a unique identification of an object. Such an object can be a human being, machine, or a combination of it. When we talk in the cloud computing context, identity means a set of properties about this object stored in the cloud's datacentre.
3 CQRS Architectures that Every Software Architect Should Know
Separation of concerns is a technique for the effective ordering of one’s thoughts. You should focus one’s attention upon one aspect. — Edsger W. Dijkstra — Command-Query Separation (CQS) In 1988 Bertrand Meyer devised the CQS principle for object-oriented languages in the book Object-Oriented Software Construction. In simple words, the principle says that software should either modify the system (commands) or return values (queries) and you should maintain the command-query separation in your software.