Edition 0 Updated to asp. Net core 0


Implement the command process pipeline with a mediator pattern



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə242/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   238   239   240   241   242   243   244   245   ...   288
NET-Microservices-Architecture-for-Containerized-NET-Applications

Implement the command process pipeline with a mediator pattern 
(MediatR) 
As a sample implementation, this guide proposes using the in-process pipeline based on the Mediator 
pattern to drive command ingestion and route commands, in memory, to the right command 
handlers. The guide also proposes applying 
behaviors
 in order to separate cross-cutting concerns. 
For implementation in .NET, there are multiple open-source libraries available that implement the 
Mediator pattern. The library used in this guide is the 
MediatR
 open-source library (created by Jimmy 
Bogard), but you could use another approach. MediatR is a small and simple library that allows you to 
process in-memory messages like a command, while applying decorators or behaviors. 
Using the Mediator pattern helps you to reduce coupling and to isolate the concerns of the requested 
work, while automatically connecting to the handler that performs that work

in this case, to 
command handlers. 
Another good reason to use the Mediator pattern was explained by Jimmy Bogard when reviewing 
this guide: 


283 
CHAPTER 6 | Tackle Business Complexity in a Microservice with DDD and CQRS Patterns 
I think it might be worth mentioning testing here 

it provides a nice consistent window into the 
behavior of your system. Request-in, response-
out. We’ve found that aspect quite valuable in building 
consistently behaving tests. 
First, let’s look at a sample WebAPI controller where you actually would use the mediator object. If 
you we
ren’t using the mediator object, you’d need to inject all the dependencies for that controller
things like a logger object and others. Therefore, the constructor would be complicated. On the other 
hand, if you use the mediator object, the constructor of your controller can be a lot simpler, with just a 
few dependencies instead of many dependencies if you had one per cross-cutting operation, as in the 
following example: 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   238   239   240   241   242   243   244   245   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin