Hallo,
ich wollte mal fragen ob einer von euch schon mal eine Anwendung, bestehend aus verschiedenen Modulen, unter Silverlight entwickelt hat und mir da evtl. ein paar Tips geben könnte.
Das Ziel ist es eine Anwendung zu entwickeln, das aus einem Softwarekern besteht und durch einzelne Module erweitert werden kann.
Ich hatte mir als Anfänger folgendes Szenario vorgestellt (stark vereinfacht):
Die Hauptanwendung (Softwarekern) wird auf dem Server installiert, falls interesse besteht kann die Hauptanwendung durch zusätzlich Funktionen, durch das nachträgliche installieren von einzelnen Modulen, erweitert werden. Die Funktionen der einzeln
installierten Module werden beim start der Anwendung in die GUI geladen.
Bisher habe ich folgende kleine Testanwendung geschrieben:
Die Testanwendung startet und holt sich über einen Webservice die Namen und XapFileNamen von den zur verfügung stehenden Modulen. Die Modulnamen werden dann nachträglich in die GUI integriert und sobald der User ein Modul (Funktion oder Page)
anklickt, wird diese On-Demand vom Server nachgeladen und gestartet. Das Laden On-Demand habe ich jetzt mit dem "Managed Extensibility Framework" (MEF) umgesetzt. Ansich funktioniert alles gut und durch das Laden On-Demand der einzelnen Funktionen
verkürzt sich auch die anfängliche Startzeit der Anwendung.
Das was mir aber nicht schmeckt, ist die Tatsache das bei jedem neustart der Anwendung die Module neulgeladen werden müssen. Die Hauptanwendung befindet sich zwar auf dem Rechner und wird nur bei einer neueren Version erneut geladen, aber die Module,
die mit Hilfe von MEF übertragen und eingebunden werden, müssen jedesmal neu übertragen werden. Mit MEF habe ich leider, soweit ich weiss, keinen zugriff auf die bereits geladenen Assemblys die sich im Cache befinden.
Hat jemand von euch evtl. eine Idee wie man das Problem lösen könnte oder einen anderen Ansatz für mich?
Viele Grüße und Danke im Voraus.
BuzalT