Entwerfen von Anwendungen, die Add-Ins akzeptieren können

8

Wie es viele Anwendungen gibt, die nur einfach sind, aber Sie können Installations-Add-Ins dafür haben, die ihre Funktionalität in dieser Anwendung erweitern. Zum Beispiel:

%Vor%

Wie entwerfen sie solche Anwendungen und wie akzeptiert die Anwendung das Modul und wie kann es automatisch integriert werden?

Zweitens weiß ich nicht, ob der obige Prozess generisch oder von einer Sprache oder einem Werkzeug abhängig ist. Können wir solche Anwendungen in WPF oder Winforms erstellen?

    
Afnan Bashir 23.03.2011, 14:07
quelle

4 Antworten

6

Besuche MEF .

  

Das Managed Extensibility Framework (MEF) ist eine neue Bibliothek in .NET, die eine größere Wiederverwendung von Anwendungen und Komponenten ermöglicht. Durch die Verwendung von MEF können .NET-Anwendungen die Verschiebung von statisch zu dynamisch zusammengesetzt machen. Wenn Sie erweiterbare Anwendungen, erweiterbare Frameworks und Anwendungserweiterungen erstellen, ist MEF das Richtige für Sie.

    
Brent Stewart 23.03.2011, 14:37
quelle
2

Es hängt wirklich von Ihrem Anwendungsdesign / Layout / Interface und der verwendeten Sprache ab.

Es ist in C, C ++, C # und vielen anderen Sprachen möglich, aber die tatsächliche Implementierung hängt davon ab, "wie" es funktionieren soll:

  • Viele Spiele (insbesondere MMORPGs) erlauben es dem Benutzer, seine Benutzeroberfläche mit einer Kombination aus XML- und Skriptdateien (z. B. Lua) zu ändern und zu erweitern. Dies ist der leichtere und sicherere Ansatz, der speziell auf unerfahrenere Benutzer ausgerichtet ist (es ist wahrscheinlich einfacher zu bearbeiten / zu aktualisieren / zu verwenden, Ihre Benutzer müssen keine komplette Sprache verstehen und SIE entscheiden, was Sie veröffentlichen).

  • Andere Programme verwenden Bibliotheksdateien für Plugins. Das Gesamtkonzept ist ähnlich wie oben, aber es ist schwieriger zu verwenden (um Addons / Erweiterungen zu erstellen, müssen Sie eine unterstützte Programmiersprache kennen) und Sie können mehr als Sie möchten offen legen (zB Addons können Teile Ihres Programms ändern, die Sie nicht hatten) Ich will nicht, dass sie sich berühren.

Der generische Prozess ist immer ähnlich:

  1. Suchen Sie die verfügbaren Addon-Dateien (XML-Dateien, LUA-Dateien, XUL-Dateien, ZIP-Dateien, DLL-Dateien, ... Ihre Entscheidung)
  2. Laden und bewerten Sie die Dateien (z. B. laden Sie die Skriptdatei, analysieren Sie die XML-Datei oder laden Sie die DLL)
  3. Führen Sie Ihren Code oder den von den Addon-Dateien oder dem Call-Code bereitgestellten Code in diesen Dateien usw. aus.

Da Sie dies unter C # getaggt haben, denke ich, dass Sie den Ansatz dll / assembly bevorzugen würden. Es gibt andere Fragen mit funktionierenden Lösungen, z. dieses .

    
Mario 23.03.2011 14:18
quelle
2

Wenn Sie speziell auf WPF und .NET ausgerichtet sind, lesen Sie Mono.Addins . Es gibt eine Liste von Projekten, die Mono.Addins auf der Dokumentationswebsite verwenden - ich bin sicher, dass Sie viele Beispiele finden, wie Sie eine Add-In-fähige Anwendung von dort schreiben können.

Was das richtige Design betrifft, ist es ein wenig schwierig, richtig zu machen. Wenn Sie die in Robert C. Martins Buch Agile Softwareentwicklung, Prinzipien, Muster und Praktiken erwähnten Verpackungsgrundsätze befolgen, Das Design Ihrer Anwendung wird natürlich Addins erlauben. Zwei Prinzipien, die von besonderer Bedeutung sind, sind das Prinzip der Abhängigkeitsinversion und das Prinzip der stabilen Abstraktion.

    
Trumpi 23.03.2011 14:24
quelle
2

Vielleicht möchten Sie sich LuaInterface ansehen. Sie haben die totale Kontrolle darüber, was und wie in den Dateien läuft!

    
Vercas 23.03.2011 15:31
quelle

Tags und Links