ItsMe84 Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Hallo zusammen, ich arbeite zurzeit an einer Anwendung zur Verwaltung von Personalakten. Ich habe eine Hauptmask in der ein Teil der Personendaten angezeigt werden. Wenn nun ein Personalmitglied ausgewählt wird, dann öffnet sich eine zweiter Dialog, mit den Details der Person. Das Laden der Daten erfolgt direkt in der GUI. Nun möchte ich das Ganze nach dem MVC-Prinzip aufbauen. Geht das? Wenn ja, kann mir jemand ein Beispiel geben? Vielen Dank!
BrauniDeluxe Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Schau mal bei Wiki Ansonsten : Controller : Klasse die auf deine Eingabenreagiert(zB alles was über die GUI läuft .. clicks und co) und diese an das Model weiter gibt Model : Klasse die die Nutzerinformationen hält (bietet Schnittstellen für Controller und Observer) .. sollte das Observer-Pattern implementieren um Observer (GUI) zu benachrichtigen bei Änderungen Observer : Deine GUI .. bzw. beliebige Komponenten die auf Änderungen im Model reagieren dieses also observen Hoffe das reicht erst mal. Gruss Hansi
ItsMe84 Geschrieben 24. Januar 2010 Autor Geschrieben 24. Januar 2010 Danke für die Antwort! Ich sollte also die Datenquellen (DataSet, ...) im Model generieren und anschlieβend an die GUI übergeben ... Wie speicher in dann danach die Änderungen? Muss ich die BindingSource im Model halten?
BrauniDeluxe Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Naja .. dein Model hat eine Liste von Observern (anfangs leer) Das Modell bietet 3 Observer Methoden an : 1. registerObserver (Observer deinObserver) 2. unregister ... 3. notifyObserver() Eine Gui Komponente (z.B.Eine Form die Nutzerinformationen anzeigt) registriert sich bei dem Modell (registerObserver(die Gui Komponente). Nun erfolgt eine Nutzereingabe (zB. Zeige Nutzerinformation von Paul) Übergabe an den Controller .. setze Benutzer Paul. Der Controller sagt dem Modell das es Paul als aktiven benutzer setzen soll (ruft also eine Methode des Modells auf. In dieser Methode im Model wird am Ende die notifyObserver() Methode aufgerufen, bei der alle registrierten Observer benachrichtigt werden (in dem zB die Gui Komponente die die Nutzerinformation darstellt) Hoffe das ist erst mal klar soweit. Gruss Dennis
Argbeil Geschrieben 28. Januar 2010 Geschrieben 28. Januar 2010 Im Prinzip hast du bei deiner Lösung schon eine MVC Lösung, das Dataset ist das Modell, der DataAdapter ist der Controller und das Form ist der View. Jetzt muss du nur noch den Code auf mehrere Klassen verteilen, am besten du fängst mit der Controller-Klasse an und baust für jede mögliche Aktion in der GUI eine Methode in den Conroller. Leider ist das MVC Pattern in WindowsForms nicht sehr gut abbildbar, der View sollte die Möglichen Aktionen des Controllers selbst erkennen und anbieten, sowas kann man zwar lösen, mit Xaml/WPF als Frontend ist es aber deutlich einfacher.
lbm1305 Geschrieben 28. Januar 2010 Geschrieben 28. Januar 2010 Hier ein weitere mögliche Inspiration Neue MSDN Webcast-Serie zu ASP.NET Architektur | PGK GmbH Thema: "Pragmatische Webarchitektur" von Patrick A. Lorenz. Diese 3-Schichten Architektur lässt sich sehr gut auf WF-Anwendungen abbilden.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden