Programm in mehrere Dateien auslagern



  • Guten Tag,
    ich habe mal eine ganz grundlegende Frage. Ich beschäftige mich seit kurzer Zeit mit C# und habe ein Programm geschrieben, das mehrere Unterprogramme enthält (Eine Skaliersoftware, ein Portscanner,...).

    Langsam wird die Exe aber immer größer und ich würde mal gerne wissen, wie man das Programm in mehrere Teile zerlegt, so dass z.B. eine Datei "Skalierer" im gleichen Verzeichnis der Exe liegt und dann geladen wird, wenn der User den Skalierercode ausführen will.

    Das ganze hat den Hintergrund, dass a) Speicher unnötig blockiert wird und ich von der Software unterscheidliche Versionen machen möchte. Eine Version soll z.B. nur 3 von 4 Programmen enthalten. Und genau da möchte ich die Funktionalität des vierten Programms nicht mitgeben.

    Leider kenne ich den Begriff für diese Aufteilung nicht, deshalb waren meine Googleergebnisse nicht erfolgreich.

    Ich hoffe es ist verständlich was ich erreichen möchte 🙂

    Gruß



  • Sollen die Unterprogramme direkt (vom Benutzer) ausführbar sein? Wenn nein ist der gesuchte Begriff (Klassen)Biliothek.



  • Hallo,
    vielen Dank für die schnelle Antwort.

    Die Unterprogramme sollen nicht vom Anwender separat aufgerufen werden, sondern über in das Hauptprogramm integriert werden.

    Mein Projektaufbau ist wie folgt:
    Es gibt eine Form in der das Menü usw. sind.

    Dann gibt es die Unterprogramme, die jeweils in separaten Klassen vorliegen.

    Hauptklasse mit Formtemplate usw.
    -> Skaliererklasse.cs
    -> Runterfahrer.cs
    -> ...

    Die Klassen haben auch jeweils eine Form, die dann aufgerufen wird:

    Skalierer newSkal = new Skalierer();
    newSkal.Show();
    

    Und diesen Aufruf würde ich gerne Dynamisch gestalten, so dass ich eine Abfrage durchführen kann, ob der Anwender das Programm starten darf und das dann aus der Datei nachladen.

    Gruß
    Jo



  • Dann musst du dich mal in Reflection ein bisschen Schlau machen ...
    Wenn du eine Art Plug-In / Add-In System haben möchtest gibt es was dazu im C++/CLI (is nur halt in C++CLI und nicht in C#). Aber dazu gibt es seht viele Tutorials im Internet.



  • Wenn es um die Größe im Speicher geht, sind Bibliotheken aber nicht optimal, soweit ich weiss, werden alle verlinkten Bobliotheken beim Start geladen.



  • Vielen Dank,
    ich habe grade diesen Link gefunden:
    http://www.scratchprojects.com/2006/03/building_a_plugin_architecture_p01.php

    Ich glaube das hilft weiter.
    Das mit der Größe im Speicher ist nicht ganz so wichtig, sondern eher (wenn überhaupt) ein angenehmer Nebeneffekt. Der Code muss eh nochmal optimiert werden 🙂

    Ich danke euch.


Log in to reply