Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tips/Råd
Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.
Utforma en domänmodell för varje mikrotjänst eller begränsad kontext som återspeglar förståelsen för affärsdomänen.
Det här avsnittet fokuserar på mer avancerade mikrotjänster som du implementerar när du behöver hantera komplexa undersystem eller mikrotjänster som härleds från kunskapen hos domänexperter med ständigt föränderliga affärsregler. Arkitekturmönstren som används i det här avsnittet baseras på domändriven design (DDD) och CQRS-metoder (Command and Query Responsibility Segregation), enligt bild 7-1.
Skillnad mellan extern arkitektur: mikrotjänstmönster, API-gatewayer, elastisk kommunikation, pub/sub osv. och intern arkitektur: datadriven/CRUD, DDD-mönster, beroendeinmatning, flera bibliotek osv.
Bild 7-1. Extern mikrotjänstarkitektur jämfört med interna arkitekturmönster för varje mikrotjänst
De flesta tekniker för datadrivna mikrotjänster, till exempel hur du implementerar en ASP.NET Core Web API-tjänst eller hur du exponerar Swagger-metadata med Swashbuckle eller NSwag, gäller dock även för de mer avancerade mikrotjänster som implementeras internt med DDD-mönster. Det här avsnittet är en förlängning av föregående avsnitt, eftersom de flesta av de metoder som beskrivs tidigare också gäller här eller för någon form av mikrotjänst.
Det här avsnittet innehåller först information om de förenklade CQRS-mönster som används i referensprogrammet eShopOnContainers. Senare får du en översikt över de DDD-tekniker som gör att du kan hitta vanliga mönster som du kan återanvända i dina program.
DDD är ett stort ämne med en omfattande uppsättning resurser för inlärning. Du kan börja med böcker som Domain-Driven Design av Eric Evans och ytterligare material från Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard och många andra DDD/CQRS-experter. Men mest av allt behöver du försöka lära dig hur du använder DDD-tekniker från konversationer, whiteboarding och domänmodelleringssessioner med experterna i din konkreta affärsdomän.
Ytterligare resurser
DDD (Domain-Driven Design)
Eric Evans. Domänspråk
https://domainlanguage.com/Martin Fowler. Domain-Driven design
https://martinfowler.com/tags/domain%20driven%20design.htmlJimmy Bogard. Att stärka din domän: en introduktion
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/Webbseminarier för distribuerad Domain-Driven design
https://particular.net/webinars/ddd-design-no-nonsense-implementation-guide
DDD-böcker
Eric Evans. Domain-Driven Design: Hantera komplexitet i hjärtat av programvara
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/Eric Evans. Domain-Driven designreferens: Definitioner och mönstersammanfattningar
https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-2014-09-22/dp/B01N8YB4ZO/Vaughn Vernon. Implementera Domain-Driven design
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/Vaughn Vernon. Domain-Driven Design Destillerad
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/Jimmy Nilsson. Tillämpa Domain-Driven design och mönster
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/Cesar de la Torre. Arkitekturguide för N-layered Domain-Oriented med .NET
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/Abel Avram och Floyd Marinescu. Domain-Driven Designa snabbt
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett, Nick Tune – mönster, principer och metoder för Domain-Driven design
https://www.wiley.com/Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
DDD-utbildning
- Julie Lerman och Steve Smith. grunderna i Domain-Driven design
https://www.pluralsight.com/courses/fundamentals-domain-driven-design