Einzelne Unterprogramme inkl. Oberfläche in extra Dlls packen

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von singu.

    Einzelne Unterprogramme inkl. Oberfläche in extra Dlls packen

    Ich habe vor über einem halben Jahr mit einem größeren Projekt angefangen. Das Projekt ist mittlerweile sehr groß geworden und an einigen Stellen ist es auch nicht mehr ganz übersichtlich. Jedes Unterprogramm besitzt eine eigene Oberfläche (UserControl), das UserControl wird dann in der MainForm durch einen ContentManager, der verwaltet alle Oberflächen der Unterprogramme, angezeigt. Bisher sind alle Oberflächen im Hauptprojekt und 2-3 Unterprogramme habe ich Klassenbibliotheken ausgelagert. Nun kam mir folgende Idee und zwar jedes Unterprogramm inkl. der dazugehörigen Oberfläche wird in eine Klassenbibliothek ausgelagert. Im Hauptprogramm werden dann die Verweise zu den Unterprogrammen erstellt und diese werden dann beim Programmstart geladen, also die Oberflächen der Unterprogramme werden dem ContentManager hinzugefügt.

    Was haltet ihr von der Idee?
    Wenn dadurch nicht lange Ladezeiten endstehen würde ich es glaub ich auch machen.
    Denn irgenwann kann man einfach nicht mehr arbeiten, spätestens wenn alles nur noch ein dicker haufen Code ist xD

    In meinem aktuelllem Spiel (auch recht groß) habe ich z.B. meinen GameStateManager in eine DLL ausgelagert, weil es sont einfach zu unübersichtlich wird.
    Wenn sich die Unterprogramme gut auslagern lassen und das wieder einbinden einfach ist, warum nicht ^^
    Also alle Dlls sind als Verweise im Hauptprojekt drin. Jedes Unterprogramm hat eine eigene Oberfläche und eigene Funktionen. Nun möchte ich gerne jedes Unterprogramm inkl. Oberfläche und Funktionen in eigene Dlls packen. Plugin-System kann man eigentlich dazu sagen.
    Ich habe mich jetzt schon den ganzen Tag damit beschäftigt und es ist nach meiner Meinung sehr einfach lösbar. Nun besitzt jede Dll eines Projektes folgende Namenkonvention "Projekt.Unterprogramm". Jedes Unterprogramm hat eine Klasse, die wie das Unterprogramm heißt, diese implementiert IModule. In IModule sind wichtige Eigenschaften, wie z.B. Name, Version, Company usw. eingebaut. Nun bin ich aber auf folgendes gestoßen, wo sage ich dem Hauptprogramm welche Oberfläche das Unterprogramm besitzt. Soll das über IModule gemacht werden? Oder wo würdet ihr sowas einbauen bzw. festlegen?