Freigeben über


Entwerfen der Microservice-Anwendungsschicht und Web-API

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook .NET Microservices Architecture for Containerized .NET Applications, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

.NET Microservices-Architektur für containerisierte .NET-Anwendungen eBook-Cover-Thumbnail.

Verwenden von SOLID-Prinzipien und Dependency Injection

SOLID-Prinzipien sind kritische Techniken, die in jeder modernen und unternehmenskritischen Anwendung verwendet werden können, z. B. bei der Entwicklung eines Mikroservice mit DDD-Mustern. SOLID ist ein Akronym, das fünf Grundprinzipien gruppiert:

  • das Prinzip der einzigen Verantwortung (Single Responsibility)

  • Offenes/geschlossenes Prinzip

  • Liskov Substitutionsprinzip

  • Prinzip der Schnittstellentrennung

  • Abhängigkeitsinversionsprinzip

SOLID ist mehr darüber, wie Sie ihre internen Anwendungs- oder Microservice-Ebenen entwerfen und wie Abhängigkeiten zwischen ihnen entkoppelt werden. Sie ist nicht mit der Domäne verknüpft, sondern mit dem technischen Design der Anwendung. Das letzte Prinzip, das Prinzip der Abhängigkeitsinversion, ermöglicht es Ihnen, die Infrastrukturschicht von den restlichen Ebenen zu entkoppeln, was eine bessere entkoppelte Implementierung der DDD-Ebenen ermöglicht.

Die Abhängigkeitsinjektion ist ein Ansatz zum Implementieren des Prinzips der Abhängigkeitsumkehr. Es ist eine Technik zum Erreichen einer lockeren Kopplung zwischen Objekten und deren Abhängigkeiten. Anstelle einer direkten Instanziierung von Projektmitarbeitern oder der Verwendung statischer (d.h. neuer) Verweise werden die Objekte, die eine Klasse für die Durchführung ihrer Aktionen benötigt, für die Klasse bereitgestellt (bzw. in diese „injiziert“). In den meisten Fällen deklarieren Klassen ihre Abhängigkeiten über ihren Konstruktor, sodass sie dem Prinzip "Explizite Abhängigkeiten" folgen können. Die Abhängigkeitsumkehr basiert üblicherweise auf bestimmten IoC-Containern (Inversion of Control). ASP.NET Core bietet einen einfachen integrierten IoC-Container, aber Sie können auch Ihren bevorzugten IoC-Container verwenden, z. B. Autofac oder Ninject.

Durch das Befolgen der SOLID-Prinzipien neigen Ihre Klassen dazu, natürlich klein, gut strukturiert und leicht testbar zu sein. Aber wie können Sie wissen, ob zu viele Abhängigkeiten in Ihre Klassen eingefügt werden? Wenn Sie DI über den Konstruktor verwenden, ist es einfach zu erkennen, indem Sie nur die Anzahl der Parameter für den Konstruktor betrachten. Wenn zu viele Abhängigkeiten vorhanden sind, ist dies im Allgemeinen ein Zeichen (ein Codegeruch), dass Ihre Klasse zu viel zu tun versucht und wahrscheinlich gegen das Prinzip der einzelverantwortlichen Verantwortung verstößt.

Es bedarf eines weiteren Leitfadens, um SOLID im Detail abzudecken. Daher erfordert dieser Leitfaden, dass Sie nur ein Mindestwissen zu diesen Themen haben.

Weitere Ressourcen