2 Stimmen

WPF/XAML vs. MVC-Paradigma: fehlerhaft im grundlegenden Design

In MVC kann ein Modell mehrere Ansichten haben, in WPF ist ein XAML-Code-Behind-Modell an ein einziges XAML (Ansicht) gebunden, ist WPF/XAML nicht von Anfang an fehlerhaft in Bezug auf MVC?

7voto

Reed Copsey Punkte 536986

Ich empfehle einen Blick auf MVVM für die Verwendung mit WPF.

Sie vergleichen MVC mit Windows Forms mit WPF mit Code Behind - das heißt, Sie vergleichen ein Architekturmuster mit einer Technologie (ohne ein Muster zu verwenden). Dies ist ein unfairer Vergleich.

Ich habe eine Serie über MVVM aus der Perspektive von Windows Forms die zum Verständnis beitragen können. Sie werden feststellen, dass die Trennung von View und ViewModel, die mit WPF möglich ist, viel sauberer und einfacher zu implementieren ist als der Controller von MVC. Es ermöglicht sogar noch mehr entkoppelte Architekturen mit weniger Implementierungsaufwand.

1voto

ColinE Punkte 66577

Gute Frage!

In MVC geben Sie an, dass ein Modell mehrere Ansichten haben kann, was auch stimmt. Allerdings würde jede Ansicht einen eigenen Controller haben.

In MVVM kann ein Modell mehrere Ansichten haben, und in diesem Fall kann jede ihr eigenes Ansichtsmodell haben.

In der Praxis ist es jedoch durchaus möglich, View-Modelle wiederzuverwenden, wenn ein ViewModel keine Konzepte enthält, die sehr spezifisch für eine bestimmte Ansicht sind. Tatsächlich habe ich einen Artikel über plattformübergreifende XAML-Anwendungen geschrieben, in dem ich Code zwischen drei Anwendungen wiederverwendet habe, eine auf WP7, eine in Silverlight, die andere in WPF:

http://blogs.msdn.com/b/mikeormond/archive/2010/12/09/writing-cross-platform-xaml-applications.aspx

Die Ansichten waren sehr unterschiedlich, aber ich konnte sowohl die Modelle als auch die Ansichtsmodelle für alle drei Anwendungen wiederverwenden.

0voto

Alex Burtsev Punkte 12020

WPF/XAML ist eine Technologie, und MVC ist ein Entwurfsmuster. Es ist gut, wenn eine Technologie Sie nicht auf ein bestimmtes Muster beschränkt und es dem Entwickler erlaubt, zu wählen, welches Muster er verwenden möchte. Genauso wie Programmiersprachen es erlauben, jedes beliebige Entwurfsmuster zu verwenden.

Sie können MVC, MVP, MVVM oder YourMegaPattern mit XAML verwenden \WPF. Technologie sollte über den Mustern stehen, es sind die Rahmenwerke, die normalerweise an ein bestimmtes Muster gebunden sind.

Sie können zum Beispiel die ASP.NET-Technologie und das darauf basierende MVC-Framework nehmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X