2 minute gelesen
Arbeiten mit Inversion of Control (IoC) in Netadmin Nine
Autor von Netadmin-Inhalten : 23.10.2023 15:14:32
In Netadmin Nine – unserer nächsten Softwaregeneration – haben wir ein gemeinsames Konzept namens Inversion of Control (IoC) eingeführt. In der Softwareentwicklung ist IoC ein Designprinzip, bei dem sich Entwickler auf den von ihnen erstellten Code und seinen spezifischen Zweck konzentrieren können, ohne detaillierte Kenntnisse über die Teile zu haben, mit denen sie interagieren. Diese Teile werden vom Framework bereitgestellt und nicht von den Entwicklern gesteuert.
Es wird manchmal humorvoll als das Hollywood-Prinzip bezeichnet: „Rufen Sie uns nicht an, wir rufen Sie an.“ In Netadmin Nine bedeutet dies, dass Sie nicht gegen die Kernimplementierung des Systems entwickeln sollten. Stattdessen entwickeln Sie gegen eine von uns bereitgestellte Abstraktion – einen „Vertrag“, dessen Erfüllung wir garantieren – und das System wird die für Ihren Code erforderlichen Abhängigkeiten bereitstellen, wenn das System Ihren Code ausführt.
Der Zweck der Verwendung von IoC besteht darin, die Implementierung zu entkoppeln, sie modularer zu gestalten, die Abhängigkeiten zwischen verschiedenen Teilen zu entfernen oder zumindest zu reduzieren, jeden Teil auf das zu konzentrieren, wofür er speziell entworfen ist, „Nebenwirkungen“ zu vermeiden, wenn ein Teil des Systems ersetzt der umstrukturiert wird, und die Testbarkeit und Erweiterbarkeit zu verbessern.
Im Wesentlichen ermöglicht es uns – und auch unseren Partnern –, das Kernstück von Netadmin Nine mehr als Framework zu betrachten und weniger als eine Sammlung von Bibliotheken mit einer Reihe von Methoden. Dadurch können wir noch schneller arbeiten und neue Funktionen noch schneller entwickeln.
Obwohl das Konzept selbst neu in Netadmin Nine ist, handelt es sich dabei um ein gut definiertes Gestaltungsprinzip, das durch eine Vielzahl verschiedener Techniken umgesetzt werden kann. Die spezifische Technik, die in Netadmin Nine verwendet wird, ist die Dependency-Injection (DI) des Konstruktors. Sie ermöglicht es Ihnen, die Abhängigkeiten im Konstruktor einer Klasse deklarativ auszudrücken und diese Abhängigkeiten in Ihrem Code zu verwenden, ohne die Implementierung der Abhängigkeit zu kennen oder zu wissen, wie sie erfüllt wird.
Die Verwendung von Inversion of Control hat sich in Netadmin Nine weit verbreitet, von der Benutzeroberfläche und unserer Geschäftsebene bis hin zu Netadmin-Erweiterungsframeworks aus der Zeit vor Netadmin Nine, wie Netadmin Assemblies. Es gibt jedoch Low-Level-Implementierungen, die nicht von IoC Gebrauch machen, wie beispielsweise die Netadmin Objects-Datenbankabstraktionsschicht vor Netadmin Nine – und das wird auch so bleiben. Abgesehen davon wurden viele Netadmin Objects durch Schnittstellen abstrahiert und können durch die neue Schnittstelle IObjectManager verwaltet werden, wodurch die Verwendung von Netadmin Objects als Abhängigkeit möglich ist.
Wann sollten Sie IoC bei der Entwicklung für Netadmin Nine verwenden? Immer, solange es möglich ist – so verwenden wir es selbst. Je weniger Kopplung zur Kernimplementierung besteht, desto geringer ist das Risiko, dass Kernänderungen den Code – unseren und Ihren – beeinträchtigen. Und es erhöht die Testbarkeit des Codes!
Wir bei Netadmin arbeiten ständig daran, uns zu verbessern und die Software auf ein anderes Niveau zu heben. Die Abstraktionen (Schnittstellen), die zur Umsetzung der Dependency Injection verwendet werden, sind ein laufender Prozess, da diese Weiterentwicklung immer weiter fortschreitet.