webentwicklung-frage-antwort-db.com.de

Welches MVVM-Framework ist das beste Framework für WPF-Apps?

Ich bin ein Anfänger mit WPF. Bevor ich mittelgroße und große Projekte mit WPF entwickeln kann, muss ich mit Open Source/Free MVVM Framework für WPF arbeiten. Sagen Sie mir also bitte, welches MVVM-Framework die richtige Wahl für WPF-Apps ist, mit deren Hilfe ich eine sehr attraktive Benutzeroberfläche entwickeln kann Für Unternehmensanwendungen, die mit einem guten Tutorial und zahlreichen Beispielcodes geliefert werden, um sich mit dem Ablauf des Frameworks vertraut zu machen. Bitte ausführlich besprechen. Vielen Dank.

55
Thomas

Diese Frage ist wirklich schwer objektiv zu beantworten, denn was für Sie am besten ist, hängt so sehr von Ihren Anforderungen und Vorlieben ab. Ich habe selbst zwei Frameworks verwendet, über die ich sprechen kann.

Eines der beliebtesten MVVM-Frameworks ist MVVM Light Toolkit , ein vielseitiges Framework, mit dem Sie Anwendungen nach Ihren Wünschen erstellen können. Es bietet Hilfe, um einige der Hauptprobleme beim Erstellen von MVVM-Anwendungen zu umgehen, erfordert jedoch, dass Sie selbst einen Großteil des Boilerplate-Codes schreiben. Dies könnte für einen neuen WPF-Entwickler von Vorteil sein, da hierdurch nicht so viel von der WPF-Infrastruktur verborgen wird.

Mein persönlicher Favorit ist Caliburn.Micro , ein MVVM-Framework mit einer Meinung für WPF, Silverlight und Windows Phone 7. Es verwendet einen Ansatz, bei dem die Konfiguration nicht zu langweilig ist , langwieriger Installationscode. Dies bedeutet auch, dass Sie der Meinung des Frameworks zustimmen müssen. Wenn Sie die darin festgelegten Konventionen nicht einhalten, werden Sie einen harten Kampf führen, um alles zum Laufen zu bringen.

Caliburn.Micro hat auch die Qualität nur zu arbeiten , und wenn Sie nicht wirklich verstehen, was unter der Haube vor sich geht, können die Dinge ein wenig magisch wirken . Das ist großartig, solange die Dinge funktionieren. Aber wenn dies nicht der Fall ist oder Sie etwas tun müssen, für das das Framework nicht entwickelt wurde, benötigen Sie ein ziemlich solides Verständnis von WPF, um sich zurechtzufinden.

Sie müssen die Funktionen verschiedener Frameworks und Toolkits bewerten und selbst entscheiden.

66
jevakallio

Es gibt viele beliebte Open-Source-MVVM-Frameworks.

Die drei wahrscheinlich beliebtesten sind MVVM Light , Caliburn oder Prism (ab Version 4 werden MVVM-Beispiele unterstützt und bereitgestellt). Alle drei haben Stärken und Schwächen, und alle sind gut.

Prism hat den Vorteil, ein "Microsoft" -Produkt (gesponsert) zu sein, wie es von der Microsoft-Gruppe Patterns and Practices herausgegeben wird. Dies hilft in der Regel bei der Einführung in vielen größeren Unternehmen. Abgesehen davon ist es auch weitaus umfangreicher und komplizierter als die anderen gängigen Optionen, zumal es nicht nur darum geht, ein "MVVM-Framework" zu sein, sondern vielmehr eine universelle Bibliothek für die Entwicklung von Verbundanwendungen.


Ich bin Anfänger für WPF.

Ich dachte auch, ich würde es erwähnen - bevor Sie ein Framework auswählen, würde ich einige Zeit damit verbringen, MVVM wirklich zu lernen und zu verstehen. Ich habe eine Reihe geschrieben, um zu helfen Übergang zu WPF mit MVVM von Windows Forms was von Wert sein kann.

Oft ist es schwierig, ein Framework auszuwählen, bis Sie verstehen, was es wirklich leistet. Die meisten MVVM-Vorgänge können sehr einfach und ohne jegliches Framework ausgeführt werden. Mit den "Frameworks" werden Dienstprogramme hinzugefügt, die die Handhabung bestimmter Probleme bei der MVVM-Entwicklung erleichtern. MVVM Light verfügt beispielsweise über eine hervorragende Messenger-Klasse, die bei der Kommunikation zwischen ViewModels hilfreich ist, was manchmal schwierig sein kann. Caliburn hat einige großartige Tools, die Ihnen beim Entwerfen usw. helfen. Solange Sie die Grundlagen nicht kennen, kann die Auswahl eines Toolkits Ihr Leben komplizierter und nicht einfacher machen.

95
Reed Copsey

Vielleicht brauchen Sie keine Bibliotheken, um einen Eindruck von MVVM zu bekommen? Es ist einfach, grundlegende Dinge zu implementieren (DelegateCommand und Klasse zum Auslösen von Eigenschaftsbenachrichtigungen - alles, was Sie benötigen), aber dies hilft Ihnen dabei, MVVM zu verstehen, ohne eine Bibliothek einzuführen. Wahrscheinlich werden Sie bei dieser Implementierung auf einige Hindernisse stoßen, die Sie selbst lösen müssen, ohne Bibliotheken von Drittanbietern. Ich glaube, dies kann Ihnen helfen, eine klarere Sicht auf das MVVM-Muster zu entwickeln (natürlich, wenn Sie eine gute Anleitung haben), ohne jedoch die von den Bibliotheken bereitgestellten Einzelheiten einzuführen.

Vielleicht bin ich ein bisschen ein Raderfinder, aber ich benutze immer noch keine MVVM-Bibliotheken. Ich sehe einfach nichts, was sie bieten können, um noch eine weitere Bibliothek in das Projekt einzuführen. Die Implementierung grundlegender Funktionen für MVVM erfordert normalerweise nicht viel. Am Ende erhalten Sie jedoch hochflexiblen Code (da der gesamte Code Ihnen gehört).

27
Snowbear