Eine Microservices ASP.NET Core-Codebasis mit Beispielen aus der Praxis (CRUD, Authentifizierung, erweiterte Muster usw.), die der RealWorld-Spezifikation und -API entspricht.
Diese Codebasis wurde erstellt, um eine vollwertige Mikroservice-Architektur zu demonstrieren, die mit ASP.NET Core erstellt wurde. Es umfasst gRPC, Domain-Driven Design, CQRS, Mediator, Proxy und viele weitere Muster.
Es entspricht vollständig den Styleguides und Best Practices der ASP.NET Core- Community.
Weitere Informationen dazu, wie dies mit anderen Frontends/Backends funktioniert, finden Sie im RealWorld-Repo.
Microservices-Architektur – Architekturstil, der eine äußerst wartbare, testbare, lose gekoppelte Sammlung von Diensten bereitstellt, die unabhängig voneinander einsetzbar und nach Geschäftsfunktionen organisiert sind. Die Serviceschicht wird über den Domänenmodellen platziert.
Domain-Driven Design – führt uns dazu, uns auf kleine, individuelle, nahezu autonome Teile unserer Domäne zu konzentrieren, unser Prozess und die daraus resultierende Software sind flexibler. Wir können die Kleinteile problemlos und ohne Nebenwirkungen verschieben oder modifizieren.
Kommunikation über gRPC – eine neue, wachsende Möglichkeit, Dienste plattform- und sprachübergreifend zu verbinden.
Remote-Proxy – verhält sich wie eine lokale Ressource, verbirgt jedoch die Details zum Herstellen einer Verbindung zu einer Remote-Ressource über ein Netzwerk. Es fungiert als API-Gateway zwischen dem Client und den Diensten.
Anwenden funktionaler Prinzipien – Die funktionale Programmierung in C# kann Ihnen Einblicke in das Verhalten Ihrer Programme geben. Spezifische Themen hier sind unveränderliche Architektur, Vermeidung von Ausnahmen, primitive Besessenheit, Umgang mit Fehlern und Eingabefehlern und mehr.
Command-Query Responsibility Segregation (CQRS) – ermutigt Sie, ein einzelnes, einheitliches Domänenmodell zu entwirren und zwei Modelle zu erstellen: eines für die Bearbeitung von Befehlen und das andere für die Bearbeitung von Abfragen. Mit CQRS können wir unterschiedliche Entscheidungen für Lese- und Schreibvorgänge treffen, was wiederum drei Vorteile mit sich bringt: Skalierbarkeit, Leistung und vor allem Einfachheit. CQRS erweitert CQS auf die Architekturebene.
MediatR – stellt sicher, dass die Nachrichten an die richtigen Stellen weitergeleitet werden. Man könnte es sich also eher als ein In-Memory-Messaging-System vorstellen.
Docker – Container stellen eine Art „Virtualisierung“ mit höherer Dichte dar, die die Anforderungen bestimmter Szenarien besser erfüllen kann als herkömmliche Hypervisoren.
Travis CI – kontinuierlicher Integrationsdienst zum Erstellen und Testen von Projekten. Travis CI erkennt automatisch, wenn ein Commit durchgeführt und an das GitHub-Repository übertragen wurde, das Travis CI verwendet, und jedes Mal, wenn dies geschieht, wird versucht, das Projekt zu erstellen und Tests auszuführen.