3 Schichten Programmieren



  • Hallo,

    ich möchte ein C#-Programm in 3 Schichten Programmieren (GUI,Interface,Daten). Interface und Daten sind beides dll. Wie kann ich es machen, dass die Daten bein Starten des Programms von überall global sind. Von jeder Form möchte ich die einstellungen lesen können und verändern, so das die anderen Formen das auch sehen können. Ich weiß, dass man das mit static machen kann. Wie schleife ich das aber durch das Interface durch? Ich kann ja nicht direkt von der GUI auf Daten zugreifen, sonst würde ich ja die mittlere Schicht umgehen und somit das 3 Schichten-Modell zu nichte machen.

    Kann mir jemand vieleicht helfen.



  • Das Datenmodell solltest du schon so designen, dass man mehrere Instanzen davon erstellen kann. Du musst dir die DLL als Bibliothek vorstellen, die keine Ahnung davon hat, in was für Programmen sie später einmal verwendet wird. Wenn dein Hauptprogramm dann eine einzige statische Instanz davon erzeugt, geht das die DLL noch nichts an.



  • Danke Optimizer.

    Meine Frage ich aber mehr, wie schafe ich es dass diese dll dann solange das Programm läuft immer die Einstellungen global sind. Rufe ich die Klasse aus der dll mit new auf, dann habe ich wieder die originaleinstellungen und nicht die, die sich im laufe des programms verändert haben. Ich habe die klasse in der dll als static definiert.



  • Na ja, du kannst ja die Einstellungen abspeichern
    zum bleistift über settings oder properties oder wie das auch immer heisst

    bzw es muss ja nur im interface bekannt sein, und den handle dazu übergibst du halt dann von form zu form



  • Hi Blackdragon,
    ich würd mir an deiner Stelle mal das Singleton-Pattern agucken:
    http://de.wikipedia.org/wiki/Einzelst%C3%BCck_%28Entwurfsmuster%29
    Hier nochmal speziell für c#:
    http://www.yoda.arachsys.com/csharp/singleton.html


Anmelden zum Antworten