Heim >Web-Frontend >Front-End-Fragen und Antworten >Was sind die MVVM-Frameworks?
mvvm-Frameworks umfassen: 1. MVVMLight-Framework, das das MVVM-Muster implementiert; 3. Caliburn-Framework, ein Open-Source-Framework für MVVM-Klassen; 5. Cinch-Framework; MVVM Foundation Framework
Entwickler: Microsoft Patterns & Practices-Team
Unterstützung für Silverlight: Ja
Lernmaterialien: Composite Application Guidance für WPF und Silverlight – Mai 2010.chm und Quickstarts und StockTraderRI usw.Der Quellcode-Screenshot lautet wie folgt:
Prism – früher bekannt als Composite Application Guidance für WPF und Silverlight, ist ein Mainstream-Framework für die Erstellung komplexer Unternehmensanwendungen auf Basis von WPF/Silverlight. Es gibt mehrere wichtige Konzepte in Prism: 1. BootStrapper: Anwendungseinstiegspunkt, erbt den von MEF bereitgestellten UnityContainer oder MefUnityContainer von Prism und stellt einen Container für das System bereit.
2. Shell: Es handelt sich um eine Shell, die die Seite über UI-Elemente und Regionen anordnet. Es ist das Fenster der obersten Ebene der Anwendung, und der angezeigte Inhalt wird im Allgemeinen von View gefüllt. Die Shell selbst weiß nicht, welchen Inhalt sie enthält, daher werden die Funktionen von jedem Modul speziell bereitgestellt.
3. Ansicht: Dies entspricht der Ansicht im MVP-Modus und im MVVM-Modus. Es kann über IRegionManager in die Region eingefügt werden.
4. Modul: Ein großes Projekt kann in Teile aufgeteilt werden. Jedes Modul enthält Ansichten, Daten und Modelle und wird hauptsächlich zur Implementierung komplexer Geschäftsvorgänge verwendet.
5. IModuleManager: Wird hauptsächlich zur Verwaltung des Modulladens verwendet und kann ein dynamisches Laden erreichen.
6. IEventAggregator: Ereignisverarbeitungsschnittstelle, die den Abonnement- und Veröffentlichungsmodus implementiert, was auch die allgemeine Praxis des MVVM-Frameworks ist.
Prism ist ein relativ großes Kombinationsframework, das nach der Einführung von MEF und den Funktionsanpassungen in 4.0 leistungsfähiger geworden ist. Man kann nun sagen, dass es die Einheit von Kombinationsframework und Anwendungsframework ist, und es ist die Stärke von Microsoft Team, es lohnt sich also, es zu wählen.
2. Das leistungsstärkste und vielseitigste Anwendungsframework – CaliburnDownload-Adresse: http://caliburn.codeplex.com/
Entwickler: Rob Eisenberg
Unterstützt es Silverlight: Ja
Lernmaterialien: Ich beziehe mich hauptsächlich auf Projektbeispiele, Quellcode, Unit-Testfälle und einige ausländische Blogs und Communities.
Der Screenshot des Quellcodes lautet wie folgt:
Es gibt mehrere wichtige Konzepte in Caliburn: 1. Auf Aktionen basierende Befehle haben viele Funktionen, einschließlich Multiparameter, Filtervorgänge und asynchrone Aufrufe.
2. Auch die Lebenszyklusereignisse von Formularen und Steuerelementen werden relativ gut gehandhabt (einschließlich Aktivierung, Deaktivierung, Herunterfahren usw.).
3. Die Testbarkeit sowohl des gesamten Frameworks als auch der darauf basierenden Anwendungen ist relativ gut.
4 bietet viele allgemeine Funktionen, die in Projekten nützlicher sind.
5 Zusätzlich zur Unterstützung des MVVM-Modus werden auch der MVP-Modus und andere Variantenmodi unterstützt.
6, leistungsstarkes Dependency-Injection-Framework und AOP-Framework, Sie können hier flexibel eines davon auswählen.
Caliburn ist ein sehr leistungsstarkes MVVM-Anwendungsframework, das flexible und vielfältige Implementierungen vieler Funktionen ermöglicht, egal ob es sich um die Projektnutzung oder die Coderecherche handelt, ich habe das Gefühl, dass es große Vorteile gebracht hat.
3. Leichtes und anwendbares MVVMLight
MVVMLight ist ein leichtes Framework, das das MVVM-Muster (relativ zu Prism) implementiert, das uns bei der Entwicklung von WPF-, Windows Phone-, Windows 8- und SilverLight-bezogenen Projekten besser helfen kann. Der Autor von MVVMLight, Laurent Bugnion, ist ein Microsoft MVP. Der Autor hat den Code als Open Source für Codeplex bereitgestellt: http://mvvmlight.codeplex.com/. Die offizielle Website von MVVMLight: http://www.mvvmlight.net/. Sie enthält eine ausführliche Einführung und Videodokumente. Wenn Sie interessiert sind, können Sie mehr erfahren. Download-Adresse: http://mvvmlight.codeplex.com/Entwickler: Laurent BugnionUnterstützung für Silverlight: JaLernmaterialien: Neben der Online-Dokumentation beziehe ich mich hauptsächlich auf Projektbeispiele, Quellcode und Komponententests Fälle, einige ausländische Blogs und Communities. Darüber hinaus sind diese drei Artikel sehr gut. Ich habe ein relativ vollständiges Silverlight-Unternehmensprojekt mit MVVMLight entwickelt. Teil 1 – Einführung, Installation und allgemeine Anwendungsdesignthemen Teil 3 – Benutzerdefinierte Authentifizierung, Passwort zurücksetzen und BenutzerverwaltungDer Quellcode-Screenshot lautet wie folgt:
Es gibt mehrere wichtige Konzepte in MVVMLight:
1. RelayCommand: Durch die Kapselung von Command ist der MVVM-Modus einfacher auf WPF und Silverlight zu verwenden. Sie müssen nur jeden RelayCommand im ViewModel definieren und dann den Command verwenden, um den im ViewModel definierten RelayCommand in der View zu binden, um die gleichen Effekte wie WinForm- und ASP.NET-Ereignisse zu erzielen, aber hier werden die starke Kopplung zwischen Benutzeroberfläche und Logik entfernt .
2. Messager: Der Messager in MVVMLight spielt eine relativ wichtige Rolle. Wie bereits erwähnt, entfernt der MVVM-Modus die starken Referenzen von ViewModel und View. Wie interagieren sie also? Es wird verwendet, um ViewModel und View die Kommunikation zu ermöglichen. Im Allgemeinen definieren wir eine statische AppMessages-Klasse als allgemeine Kommunikationsklasse. Das Prinzip ist das Publish-Subscribe-Modell.
3, EventToCommand: Dies ähnelt dem Konzept des zusätzlichen Verhaltens, das in MVVM Light Toolkit V3 eingeführt wurde.
4. ICleanup-Schnittstelle: Wenn eine Ansicht angezeigt wird, muss zuerst die Cleanup-Methode aufgerufen werden, um die Daten zu löschen. Dies ist aufgrund der Kopplungsisolation von ViewModel und View ebenfalls ein notwendiger Vorgang.
MVVMLight ist ein sehr einfach zu verwendendes MVVM-Framework, das Vorlagen und intelligente Erkennung für VS und Blend bereitstellt. In Kombination mit MEF fühlt es sich wirklich leicht und effizient an und bietet Unterstützung für WPF und Silverlight, insbesondere im Hinblick auf die Silverlight-Unterstützung. Wählen Sie daher im Allgemeinen den leichten Silverlight-MVVM-Modus, der vielversprechender ist.
4. Voll ausgestattete und benutzerfreundliche MVVM-Helfer
Download-Adresse: http://mvvmhelpers.codeplex.com/
Entwickler: Mark Smith
Support Silverlight: Nein
Lernmaterialien: http://www.julmar.com/blog/mark/ und die bereitgestellten Beispiele, Quellcode und Testfälle.
Der Quellcode-Screenshot lautet wie folgt:
MVVM Helpers wird auch JulMar MVVM Helpers + Behaviors genannt und hat mehrere wichtige Konzepte:
1. Bietet die Grundfunktionen des MVVM-Modus, einschließlich ViewModel, View und Model Isolation und bietet auch einige gemeinsame Funktionen.
2. Die Erstellung von ViewModel erfolgt in Form von Tags, und MEF kann jetzt ebenfalls eingeführt werden.
3. IOC/DI-Unterstützung, Attribute verfügen über Überprüfungsmechanismen und Wait-Cursor-Unterstützung, die rechtzeitig nach Verwendung des Ansichtsmodells freigegeben werden kann, wodurch Speicherlecks vermieden werden.
4. Bietet Unterstützung für häufig verwendete angehängte Verhaltensweisen.
5. Die Einführung eines Nachrichtenmechanismus, um eine durch starke Referenzen verursachte Kopplung zu vermeiden.
MVVM Helpers ist ein sehr anwendbares MVVM-Framework, insbesondere bietet es allgemeine MVVM-Funktionen + MEF + angehängtes Verhalten, sodass die Probleme im Projekt grundsätzlich gelöst werden können.
5, leistungsstarker und leichter Cinch
Download-Adresse: http://cinch.codeplex.com/
Entwickler: Sacha Barber
Support Silverlight: Nein
Lernmaterialien: http:// sachabarber.net/ und die bereitgestellten Beispiele, Quellcode und Testfälle.
Der Screenshot des Quellcodes lautet wie folgt:
Wenn Sie den Code sorgfältig studieren, werden Sie feststellen, dass er viele ähnliche Codes wie die oben genannten MVVM-Helfer enthält. Es handelt sich wahrscheinlich um einen Verweis aufeinander :-D. Es gibt mehrere wichtige Konzepte in Cinch:
1 Dieses Framework hat bereits vor dem Aufkommen von MEF eine starke Referenzisolation zwischen ViewModel und View implementiert. Es verfügt weder über eine allgemeine IOC-Konfiguration noch über IView für die Übertragung von Formular- und Steuerelementereignissen werden auch relativ gut gehandhabt, sind also in dieser Hinsicht sehr gut.
2 bietet Unterstützung für häufig verwendete angehängte Verhaltensweisen und stellt außerdem einige allgemeine MVVM-Funktionen bereit.
3. DI/IOC wird mit Unity und Multithreading implementiert, um unvorhersehbare Fehler im System zu vermeiden.
4. Das Ansichtsmodell kann rechtzeitig nach der Verwendung freigegeben werden, wodurch Speicherlecks vermieden, Überprüfungsmechanismen hinzugefügt und eine gemeinsame Navigation implementiert werden.
5. Die Einführung eines Nachrichtenmechanismus, um eine durch starke Referenzen verursachte Kopplung zu vermeiden.
Cinch ist ein sehr leistungsfähiges Framework, insbesondere weil es sich auf die Erstellung der gesamten Anwendung konzentriert und daher auch beliebter ist.
6. MVVM Foundation mit einfachen Funktionen und einfacher Erweiterung
Download-Adresse: http://mvvmfoundation.codeplex.com/
Entwickler: Josh Smith
Support Silverlight: Nein
Lernmaterialien: http:/ / joshsmithonwpf.wordpress.com/ und die bereitgestellten Beispiele, Quellcode und Testfälle.
Der Quellcode-Screenshot lautet wie folgt:
Es gibt mehrere wichtige Konzepte in MVVM Foundation:
1. Messenger: Dies wird hauptsächlich für die Kommunikation zwischen verschiedenen ViewModels (z. B. miteinander verbundenen ViewModels, Master-Slave-ViewModels) verwendet , etc. ), kann natürlich auch erweitert werden, um zwischen ViewModel und View zu kommunizieren.
2. ObservableObject: Dies entspricht dem Konzept von ViewModelBase. Jedes ViewModel erbt von dieser Klasse und wird sofort nach Abschluss des Aufrufs freigegeben, um Speicherverluste zu verhindern.
3. PropertyObserver: Kapselt hauptsächlich INotifyPropertyChanged.PropertyChanged. Diese Kapselung kann den Code vereinfachen und Speicherverluste verhindern, die durch unsachgemäße Vorgänge verursacht werden.
4. RelayCommand-Schnittstelle: Kapselt die Befehlsanweisung, einschließlich Ausführungslogik, optionaler Can-Execute-Logik usw. Extern ist nur eine Instanziierung und Bindung erforderlich, um es problemlos verwenden zu können.
MVVM Foundation ist ein sehr einfaches MVVM-Framework. Wenn Sie Schwierigkeiten haben, den Quellcode zu studieren, können Sie zunächst mit diesem Framework beginnen.
Weitere Kenntnisse zum Thema Programmierung finden Sie auf: Website zum Programmierenlernen! !
Das obige ist der detaillierte Inhalt vonWas sind die MVVM-Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!