none
Wie entwickele ich ein erweiterbare Anwendung RRS feed

  • Frage

  • Hallo...

    ich möchte eine Anwendung entwickeln, die durch Komponenten erweitert und limitiert werden können soll. Grundlagen ist das .NET Framework sowie die Nutzung von C#.

    Ziel ist der Entwurf eines zentralen  Komponenten Managers, der die verfügbare Funktionalität verwaltet und Nutzung dieser ermöglicht. Beispiel: eine Forms Anwendung, die für jede verfügbare Komponente ein Fenster erzeugt dass die Nutzung der Funktion ermöglicht.

    Bisher habe ich mit zwei verschiedenen Ansätzen herum experimentiert. Beide erweitern das Programm durch Bibliotheken (dlls). Der erste durch den direkten Verweis im Projekt. Mit ihm ist die Nutzung der Funktionalität uneingeschränkt möglich. Das Programm lässt sich aber nur limitieren, nicht aber erweitern. Der zweite Ansatz ist die Nutzung von Reflections. Da aber mit der Einschränkung, dass die Nutzung für gewöhnlich sehr langsam ist. Das Erweitern und Limitieren ließe sich damit aber umsetzen.

    Bevor ich nun einen der Ansätze nutze, möchte ich mich vorher mit anderen Entwicklern kurzschließen und herausfinden, ob es andere Ansätze gibt. Ob es z.B. vielleicht immer noch sinnvoll ist einen COM Ähnlichen Ansatz mit Interfaces zu nutzen. Vielleicht kennt auch jemand eine gutes Buch zu diesem Thema und kann mir den Titel nennen. Vielleicht gibt es auch andere Quellen, die ich bisher übersehen habe.

    Ich bin für alle Infos dankbar!

    Dienstag, 20. Oktober 2009 08:01

Antworten

Alle Antworten

  • Hallo deva9n,

    wenn ich dich richtig verstanden habe, könnte die Entwicklung einer Anwendung mit Unterstützung für Add-Ins etwas für dich sein.

    Infos gibt es zum Beispiel hier:
    http://msdn.microsoft.com/de-de/library/bb384241.aspx
    http://msdn.microsoft.com/de-de/library/bb913904.aspx

    Wenn du die MSDN Library nach "Add-In" durchsuchst, findest du weitere Quellen.

    Viele Grüße
    Jan
    • Als Antwort markiert deva9n Mittwoch, 21. Oktober 2009 10:36
    Dienstag, 20. Oktober 2009 08:35
  • Vielen Dank für den Tip. Zusätzlich habe ich noch das Managed Extensibility Framework (MEF) gefunden.


    Hier möchte ich kurz mal meine Ergebnisse präsentieren und noch mal zur Diskussion anregen.

    Add-Ins:
    + sehr gute Trennung von Host zu Add-In.
    - aufwändige Entwicklung
    - viel Overhead

    MEF:
    + schlank und trotzdem mächtig
    - erst ab .NET 4.0

    COM Ansatz mit Interfaces und "händischer" Verwaltung der Assemblys:
    + schnell und schlank
    - viel eigene Entwicklungsarbeit
    - keine Vorlage auf Grundlage von Design Patterns
    Mittwoch, 21. Oktober 2009 10:36