MediatR is a tool - and just like any tool, it has its own scope of application, and being used incorrectly might do more harm than good. This blog post summarizes my thoughts about using MediatR for supporting CQRS architecture.
Sztuka programowania 1057 dni, 11 godzin, 35 minut temu 197 źrodło rozwiń
.NET się zmienia. Staje się coraz lżejszy. Minimal API są tego przykładem. Pozwalają na szybkie zbudowanie API i uruchomienie nowego serwisu. W dobie mikroserwisów i Cloud jak znalazł. Przetestowałem, jak sprawdzą się z innym wzorcem promującym prosty podział kodu: CQRS. Czytaj dalej by zobaczyć jakie są moje wnioski.
Architektura 1058 dni, 11 godzin, 44 minuty temu 281 źrodło rozwiń
W CQRS często definiuje się interfejsy dla handlerów, aby wymusić ujednoliconą strukturę kodu. Takie podejście stosowane jest m.in. przez bibliotekę MediatR. Nawet jeśli nie używasz żadnych bibliotek, ale ręcznie dziergasz swoje rozwiązania, możesz chcieć iść tą drogą. W moim najnowszym artykule wyjaśniłem, jak zarejestrować wszystkie handlery według konwencji za pomocą biblioteki Scrutor.
Architektura 1079 dni, 11 godzin, 38 minut temu 118 źrodło rozwiń
Dyskusje o tym jak strukturyzować nasz kod potrafią się szybko zrobić gorące. Dorzućmy więc nieco ognia do pieca! Opisałem swoje podejście do cięcia kodu, oraz opisałem dlaczego pozwala mi ono lepiej się skupić i pracować efektywnie.
Sztuka programowania 1155 dni, 13 godzin, 19 minut temu 126 źrodło rozwiń
🚨 Quite often, to make our code simpler, we're trying to make our code more reusable and generic. I wrote an article with a warning that "generic" does not mean "simple". I did that on the example of #CQRS code evolution. Beware and have a read!
Architektura 1240 dni, 12 godzin, 1 minutę temu 65 źrodło rozwiń
This article describes the naming convention I use in projects where CQRS is applied. After creating a couple of projects we’ve finally reached the convention which works great for my team. Let’s try to point out how it looks.
Sztuka programowania 1288 dni, 12 godzin, 48 minut temu 112 źrodło rozwiń
Today I would like to show you a really cool way to validate MediatR commands and queries using FluentValidation.
Sztuka programowania 1295 dni, 12 godzin, 56 minut temu 142 źrodło rozwiń
Last week I busted common myths and explained facts about CQRS. Today I’ll continue my effort. I tackle one of the most common questions about CQRS: “Can command return a value?”.
Architektura 1337 dni, 12 godzin, 20 minut temu 123 źrodło rozwiń
I explained in my recent article the facts and myths of CQRS. If you heard you need: - 2 databases - to use a messaging queue - to be facing Eventual Consistency - use it with Event Sourcing and it's hard to apply and complicates the architecture. Then you should definitely read this post!
Architektura 1345 dni, 12 godzin, 41 minut temu 110 źrodło rozwiń
Buzzword świata IT, który widnieje w czołówce obok mikroserwisów i DDD. Wzorzec tak popularny, a jednoczenie w wielu przypadkach tak błędnie rozumiany.
Architektura 1457 dni, 12 godzin, 36 minut temu 115 źrodło rozwiń
Segregacja odpowiedzialności Polecenie-Zapytanie. Te dosłowne tłumaczenie wspaniale opisuje ideę naszego wzorca. Większość z nas jednak wie czym jest CQRS. W końcu temat ten jest poruszany niemal na każdej konferencji! Prezentacje te jednak często nie zawierają przykłady w kodzie, które głównie interesują żądnych technicznych detali programistów.
Architektura 1480 dni, 12 godzin, 45 minut temu 174 źrodło rozwiń
Dziś będzie solidna i skondensowana dawka wiedzy. Od początku wiedziałem, że tematu architektury nie może zabraknąć w Cesarstwie-Dev. Długo myślałem o tym, od jakiego tematu rozpocząć wpisy o tej tematyce. Zdecydowałem się na krótki opis aż czterech architektur, bądź wzorców architektonicznych. Zapraszam!
Architektura 1506 dni, 12 godzin, 58 minut temu 184 źrodło rozwiń
CQRS is a simple pattern that strictly segregates the responsibility of handling command input into an autonomous system from the responsibility of handling side-effect-free query/read access on the same system. If you are familiar with Domain-Driven Design, you’ve most likely heard about, Command-Query Responsibility Segregation (CQRS). Though the CQRS pattern is well-known, there are still a lot of misconceptions around this pattern, especially when it comes to applying it in real-world software proje...
Sztuka programowania 1645 dni, 13 godzin, 7 minut temu 100 źrodło rozwiń
CQRS - jakie przynosi korzyści oraz jakie problemy rozwiązuje. Praktyczne podejście na przykładzie rzeczywistego systemu.
Sztuka programowania 1653 dni, 13 godzin, 32 minuty temu 183 źrodło rozwiń
Gościem występującym w 31 odcinku podcastu jest Andrzej Krzywda, na co dzień programista oraz CEO firmy Arkency. Rozmawiamy o CQRS (Command Query Responsibility Segregation), poruszając najważniejsze podstawy, ale także dyskutując o: CQRSie jako sposobie na walkę z legacy code, szczególnie w kontekście aplikacji opartych o Ruby on Rails, wykorzystaniu widoków bazodanowych w read modelach, czyli „CQRS po białostocku”, dużych formularzach, które mogą wywołać kilka akcji domenowych, Eventual Consistency.
Architektura 1921 dni, 13 godzin, 3 minuty temu 94 źrodło rozwiń
We live in a world of dynamically changing technologies. New ways of architecturing our solutions, new frameworks and libraries seem to appear on almost daily basis. But good software engineering is not about fancy frameworks and solutions aggressively promoted by their vendors. It is not about doing something because Netflix or Google did it. It is about taking well-thought-out decisions based on facts and knowledge. That’s why it is important to be familiar basic architectural concepts like CQRS. It is...
Architektura 2002 dni, 12 godzin, 46 minut temu 234 źrodło rozwiń
Dziś odpowiedź na zdecydowanie najczęściej zadawane pytanie w kontekście naszego projektu DShop. Brzmi ono „w jaki sposób użytkownik końcowy aplikacji wie czy jego komenda została (i kiedy została) przetworzona?”. Na pierwszy rzut oka odpowiedź na to pytanie może wydawać się trywialna, prawda? Wszak większość typowych aplikacji webowych po wykonaniu jakiejś akcji informuje nas o jej powodzeniu lub błędzie poprzez np. toastry...
Programowanie rozproszone 2046 dni, 13 godzin, 21 minut temu 329 źrodło rozwiń
In this article we will design internal architecture of non-trivial microservice that is responsible for both managing its data state and exposing it to the external world. Basically our microservice will be responsible for creation and various modifications of its data and also will expose API that will allow other services and applications to query for this data.
Sztuka programowania 2087 dni, 12 godzin, 43 minuty temu 231 źrodło rozwiń
Simple .NET Core REST API CQRS implementation with raw SQL and DDD - Kamil Grzybek
Architektura 2101 dni, 11 godzin, 7 minut temu 215 źrodło rozwiń
In first article in our series about building microservices in .NET core we are going to focus on internal architecture of a typical microservice. There are many options to consider depending on microservice type. Some services in your system will be typical CRUD so there is no use debating on their design...
Sztuka programowania 2117 dni, 11 godzin, 40 minut temu 191 źrodło rozwiń