| 

.NET C# Java Javascript Exception

0
In einem aktuellen Projekt steht die Frage im Raum, welches Pattern für die UI verwendet werden sollte. Diese Frage stelle ich mal hier ins Forum, weil ich glaube auf diesem Wege bessere Antworten zu bekommen.
Die Bedingungen sind die, dass derzeit die Applikation eine WinForms UI erhalten soll. In Absehbarer Zeit wird sich dies aber ändern und entweder eine Web oder eine WPF UI erhalten. Zur Zeit werden die WinForm UI's mit MVP gesteuert/entkoppelt, aber für mich fühlt es sich nicht sonderlich griffig an. Ich würde lieber das MVC oder MVVM Pattern verwenden. Was meint ihr dazu?
News:
10.06.2011
Gast
1 1 1
3 Antworten
2
Prinzipiell bauen MVC, MVP (definiert von Fowler) und MVVM (definiert von Grossman) ja auf dem selben Prizip des SoC auf. MVVM ist an sich eine Spezialisierung von MVP und prinzipiell die Grundlage vom WPF/Silverlight. (Leider hat MS bim Binding der View an das ViewModel aufgehört, weiterzudenken. sonst gäbne es ja nicht all die kleinen und grossen MVVM Frameworks, die die fehlenden Funkionen in Form von Helper Klassen zusätzlich für WPF/Silverlight anbieten).

Noch mal: MVP und MVVM unterscheiden sich nur darin, welche Schicht mit welcher kommuniziert.

Wer von MVP oder MVVM redet, kommt nicht um ein Framework herum, wenn man sich dieses nicht selber strickt. Aber dann muss man das Framework zusätzlich pflegen, was ich stets als überflüssig ansehe.

Es gibt auch die Möglichkeit für Winforms Projekte, teilweise PRISM einzusetzen. Das Prinzip der Regions wird man in Winforms zwar wohl nicht nutzen können, aber den Bootstrapper mit dem DI Container.

Später könnte dann das Switchen auf WPF leichterfallen, aber garantieren will ich dies mal nicht. ;-)

MVVM und Winforms passen aber schlecht zusammen, da MVVM das speziell für WPF modifizierte MVP ist.

Grüße
Dirk
PS: Wärest Du doch gestern nur zu meinem CCD-MVVM-DI-LOB Vortrag gekommen :-)
10.06.2011
judgy 3,0k 1 1 8
"MVP (definiert von Fowler)" - was meinst Du damit? Fowler selbst hat das Pattern aufgeteilt in "Supervising Controller" und "Passive View". Letzteres unterscheidet sich von MVVM massiv, bei ersterem sind die Unterschiede subtiler.
Was MVVM genau ist, darüber scheint mir noch keine Einigkeit zu bestehen. Ich gehöre zu denen, die MVVM als Anwendung des Patterns "Presention Model" auf WPF/Silverlight sehen. In diesem Sinn schließen sich MVVM und WinForms entweder per Definition aus, oder man meint streng genommen Presentation Model und will die Gemeinsamkeiten betonen. Ich bevorzuge letzteres.
Matthias Hlawatsch 10.06.2011
Ich sehe auch Presentation Model ~ MVVM.
gfoidl 10.06.2011
Sorry, ich meinte auch "Presentation Model", das Fowler unter (http://martinfowler.com/eaaDev/PresentationModel.html) beschrieben hat.
Zur Entwicklung findet sich auch etwas unter http://msdn.microsoft.com/de-de/magazine/dd419663.aspx
judgy 10.06.2011
1
Ich denke, mit einem MVVM bist du nicht verkehrt. Dann ist die View-Logik beieinander, ganz egal, welchen View sie treibt. Bei WinForms musst du das DataBinding dann halt selbst implementieren.
10.06.2011
tack 294 1 8
1
Mit MVVM (im Nicht-WPF-Kontext auch Presentation Model genannt) liegst Du erstmal nicht falsch. Geht mit Windows Forms ganz gut, und für WPF ist es wie gemacht. Mehr Sorgen würde ich mir an Deiner Stelle aber um die Zukunftsfrage machen. Wenn Du mit "Web" nicht gerade Silverlight meinst oder Deine UI nahezu trivial ist, halte ich es für extrem unwahrscheinlich, dass die Umstellung auf eine Web-UI nicht mit größeren Umbauten verbunden ist, neues UI-Pattern inklusive. Du solltest also schauen, dass Du diese Frage möglichst bald geklärt bekommst.
10.06.2011
Matthias Hlawatsch 13,2k 4 9

Stelle deine Mvvm-Frage jetzt!