Une base de code Microservices ASP.NET Core contenant des exemples du monde réel (CRUD, authentification, modèles avancés, etc.) qui adhère à la spécification et à l'API RealWorld.
Cette base de code a été créée pour démontrer une architecture de microservices à part entière construite avec ASP.NET Core . Il comprend gRPC, Domain-Driven Design, CQRS, Mediator, Proxy et bien d'autres modèles.
Il adhère entièrement aux guides de style et aux meilleures pratiques de la communauté ASP.NET Core .
Pour plus d'informations sur la façon dont cela fonctionne avec d'autres frontends/backends, rendez-vous sur le dépôt RealWorld.
Architecture de microservices : style architectural qui fournit un ensemble de services hautement maintenables, testables et faiblement couplés, déployables de manière indépendante et organisés autour des capacités métier. La couche de service est placée au-dessus des modèles de domaine.
Domain-Driven Design - nous guide pour nous concentrer sur de petits éléments individuels et presque autonomes de notre domaine, notre processus et le logiciel qui en résulte sont plus flexibles. Nous pouvons facilement déplacer ou modifier les petites pièces sans effets secondaires.
Communication via gRPC : une nouvelle manière croissante de connecter des services de manière multiplateforme et multilingue.
Proxy distant - agit comme une ressource locale tout en masquant les détails sur la façon de se connecter à une ressource distante sur un réseau. Il se comporte comme une passerelle API entre le client et les services.
Application des principes fonctionnels – La programmation fonctionnelle en C# peut vous donner un aperçu du comportement de vos programmes. Les sujets spécifiques ici sont l'architecture immuable, l'évitement des exceptions, l'obsession primitive, la gestion des échecs et des erreurs de saisie, et bien plus encore.
Ségrégation des responsabilités commande-requête (CQRS) - vous encourage à démêler un modèle de domaine unique et unifié et à créer deux modèles : un pour la gestion des commandes et l'autre pour la gestion des requêtes. CQRS nous permet de prendre différentes décisions pour les lectures et les écritures, ce qui apporte trois avantages : l'évolutivité, les performances et le plus important, la simplicité. CQRS étend CQS au niveau architectural.
MediatR - garantit que les messages sont acheminés vers les endroits appropriés. Vous pourriez donc le considérer comme un peu plus un système de messagerie en mémoire.
Docker - Les conteneurs représentent un type de « virtualisation » à plus haute densité qui peut mieux répondre aux besoins de certains scénarios que les hyperviseurs traditionnels.
Travis CI - service d'intégration continue utilisé pour créer et tester des projets. Travis CI détecte automatiquement lorsqu'une validation a été effectuée et poussée vers le référentiel GitHub qui utilise Travis CI, et chaque fois que cela se produit, il essaiera de créer le projet et d'exécuter des tests.