© best_vector/Shutterstock.com
Windows Developer
Aufbau erweiterbarer Anwendungen ohne großen Aufwand

Kleine Plug-in-Architektur

Plug-in-Systeme sind heutzutage allgegenwärtig. Googles Chrome Browser und Microsofts Visual Studio haben ihre Extensions, Firefox seine Add-ons und das Notepad++ seine Plug-ins. Aber wie wird das gemacht? Wie können wir unsere eigene Anwendung erweiterbar machen? In diesem Artikel werde ich anhand eines Beispielprojekts die Basics der Architektur erläutern und damit den Grundstein für eine erweiterbare Anwendung legen.

Jonathan Naumann


Video: Wegweiser durch den Dschungel – Datenzugriff in ASP.NET-Webanwendungen

Als Anbieter einer Software möchten wir unseren Nutzern eine Schnittstelle anbieten, die es ihnen ermöglicht, eigene Ideen und Anwendungsfälle mit in die Anwendung einfließen zu lassen und sie eventuell sogar einer Community zur Verfügung zu stellen. Solche Erweiterungen können von Bildfiltereffekten in Grafikprogrammen über Suchmaschinen im Browser bis hin zu kleinen Spielen gehen – alles ist möglich, solange der Benutzer eine Möglichkeit hat, seine Ideen umzusetzen. Dazu benötigt eine Anwendung lediglich eine Schnittstelle.

Die Schnittstelle beschreibt in diesem Zusammenhang nicht nur die erwarteten Klassen und Funktionen, weiter beschrieben durch Interfaces und abstrakte Klassen, sondern vor allem auch die Bereiche innerhalb unserer Anwendung, die wir durch ein Plug-in als erweiterbar einstufen. Das bedeutet, wir müssen explizit angeben, wo etwas verändert und erweitert werden kann. Dabei kann es sich um einen Audiostream handeln, der durch ein Plug-in noch einmal vor der endgültigen Ausgabe verändert werden kann (z. B. durch einen Echoeffekt) oder um ein Bild, das durch ein Filter-Plug-in mit einem weiteren Effekt bearbeitet wird (z. B. durch einen Ver­wisch­effekt). Hier sind uns keinerlei Grenzen gesetzt. Auch eine gesamte Anwendung kann somit geladen werden, wir müssen das nur innerhalb der Anwendung implementieren und entsprechend über unsere Schnittstelle definieren. Die Vorteile einer solchen Architektur für den Softwareanbieter liegen auf der Hand:

Nutzer können die Anwendung personalisieren und eigene Funktionalitäten einbauen.Es kann sich eine aktive Community bilden, die den Nutzerstamm stark vergrößert, was zu einem höheren Bekanntheitsgrad führt.Dem Anbieter bleibt mehr Zeit für die technische Weiterentwicklung und Optimierung, da Funktionalitäten von Nutzern beigesteuert werden.Der Open-Source-Gedanke tritt zumindest teilweise an die Software heran.

Aufbau der Architektur

Der Schlüssel zu einer Plug-in-basierten Architektur liegt in den Schnittstellen. Für unser Beispiel benötigen wir nur ein einfaches Interface für das Plug-in mit einer abstrakten Basisklasse, die wir dem Benutzer als Schnittstelle anbieten. Wir verwenden eine abstrakte Klasse und kein Interface für die Plug-ins, da wir dem Benutzer einige Arbeitsschritte abnehmen wollen. Dazu gehört die Aktivierung und Deaktivierung des Plug-ins und die Verknüpfung des Plug-ins mit der ausführenden Anwen...

Windows Developer
Aufbau erweiterbarer Anwendungen ohne großen Aufwand

Kleine Plug-in-Architektur

Plug-in-Systeme sind heutzutage allgegenwärtig. Googles Chrome Browser und Microsofts Visual Studio haben ihre Extensions, Firefox seine Add-ons und das Notepad++ seine Plug-ins. Aber wie wird das gemacht? Wie können wir unsere eigene Anwendung erweiterbar machen? In diesem Artikel werde ich anhand eines Beispielprojekts die Basics der Architektur erläutern und damit den Grundstein für eine erweiterbare Anwendung legen.

Jonathan Naumann


Video: Wegweiser durch den Dschungel – Datenzugriff in ASP.NET-Webanwendungen

Als Anbieter einer Software möchten wir unseren Nutzern eine Schnittstelle anbieten, die es ihnen ermöglicht, eigene Ideen und Anwendungsfälle mit in die Anwendung einfließen zu lassen und sie eventuell sogar einer Community zur Verfügung zu stellen. Solche Erweiterungen können von Bildfiltereffekten in Grafikprogrammen über Suchmaschinen im Browser bis hin zu kleinen Spielen gehen – alles ist möglich, solange der Benutzer eine Möglichkeit hat, seine Ideen umzusetzen. Dazu benötigt eine Anwendung lediglich eine Schnittstelle.

Die Schnittstelle beschreibt in diesem Zusammenhang nicht nur die erwarteten Klassen und Funktionen, weiter beschrieben durch Interfaces und abstrakte Klassen, sondern vor allem auch die Bereiche innerhalb unserer Anwendung, die wir durch ein Plug-in als erweiterbar einstufen. Das bedeutet, wir müssen explizit angeben, wo etwas verändert und erweitert werden kann. Dabei kann es sich um einen Audiostream handeln, der durch ein Plug-in noch einmal vor der endgültigen Ausgabe verändert werden kann (z. B. durch einen Echoeffekt) oder um ein Bild, das durch ein Filter-Plug-in mit einem weiteren Effekt bearbeitet wird (z. B. durch einen Ver­wisch­effekt). Hier sind uns keinerlei Grenzen gesetzt. Auch eine gesamte Anwendung kann somit geladen werden, wir müssen das nur innerhalb der Anwendung implementieren und entsprechend über unsere Schnittstelle definieren. Die Vorteile einer solchen Architektur für den Softwareanbieter liegen auf der Hand:

Nutzer können die Anwendung personalisieren und eigene Funktionalitäten einbauen.Es kann sich eine aktive Community bilden, die den Nutzerstamm stark vergrößert, was zu einem höheren Bekanntheitsgrad führt.Dem Anbieter bleibt mehr Zeit für die technische Weiterentwicklung und Optimierung, da Funktionalitäten von Nutzern beigesteuert werden.Der Open-Source-Gedanke tritt zumindest teilweise an die Software heran.

Aufbau der Architektur

Der Schlüssel zu einer Plug-in-basierten Architektur liegt in den Schnittstellen. Für unser Beispiel benötigen wir nur ein einfaches Interface für das Plug-in mit einer abstrakten Basisklasse, die wir dem Benutzer als Schnittstelle anbieten. Wir verwenden eine abstrakte Klasse und kein Interface für die Plug-ins, da wir dem Benutzer einige Arbeitsschritte abnehmen wollen. Dazu gehört die Aktivierung und Deaktivierung des Plug-ins und die Verknüpfung des Plug-ins mit der ausführenden Anwen...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang