Heim Web-Frontend Front-End-Fragen und Antworten Was sind die MVVM-Frameworks?

Was sind die MVVM-Frameworks?

Nov 09, 2020 am 11:02 AM
mvvm 框架

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: JaWas sind die MVVM-Frameworks?

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. Was sind die MVVM-Frameworks?

2. Das leistungsstärkste und vielseitigste Anwendungsframework – Caliburn

Download-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. Was sind die MVVM-Frameworks?

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 Bugnion

Unterstützung für Silverlight: Ja

Lernmaterialien: 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 Benutzerverwaltung

Der 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:

Was sind die MVVM-Frameworks?

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:

Was sind die MVVM-Frameworks?

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:

Was sind die MVVM-Frameworks?

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks Jun 05, 2024 pm 05:25 PM

Die Bewertung des Kosten-/Leistungsverhältnisses des kommerziellen Supports für ein Java-Framework umfasst die folgenden Schritte: Bestimmen Sie das erforderliche Maß an Sicherheit und Service-Level-Agreement-Garantien (SLA). Die Erfahrung und das Fachwissen des Forschungsunterstützungsteams. Erwägen Sie zusätzliche Services wie Upgrades, Fehlerbehebung und Leistungsoptimierung. Wägen Sie die Kosten für die Geschäftsunterstützung gegen Risikominderung und Effizienzsteigerung ab.

Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Jun 06, 2024 pm 12:41 PM

Die Lernkurve eines PHP-Frameworks hängt von Sprachkenntnissen, Framework-Komplexität, Dokumentationsqualität und Community-Unterstützung ab. Die Lernkurve von PHP-Frameworks ist im Vergleich zu Python-Frameworks höher und im Vergleich zu Ruby-Frameworks niedriger. Im Vergleich zu Java-Frameworks haben PHP-Frameworks eine moderate Lernkurve, aber eine kürzere Einstiegszeit.

Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Jun 06, 2024 am 10:53 AM

Das leichte PHP-Framework verbessert die Anwendungsleistung durch geringe Größe und geringen Ressourcenverbrauch. Zu seinen Merkmalen gehören: geringe Größe, schneller Start, geringer Speicherverbrauch, verbesserte Reaktionsgeschwindigkeit und Durchsatz sowie reduzierter Ressourcenverbrauch. Praktischer Fall: SlimFramework erstellt eine REST-API, nur 500 KB, hohe Reaktionsfähigkeit und hoher Durchsatz

Leistungsvergleich von Java-Frameworks Leistungsvergleich von Java-Frameworks Jun 04, 2024 pm 03:56 PM

Laut Benchmarks sind Quarkus (schneller Start, geringer Speicher) oder Micronaut (TechEmpower ausgezeichnet) für kleine, leistungsstarke Anwendungen die ideale Wahl. SpringBoot eignet sich für große Full-Stack-Anwendungen, weist jedoch etwas langsamere Startzeiten und Speichernutzung auf.

Best Practices für die Dokumentation des Golang-Frameworks Best Practices für die Dokumentation des Golang-Frameworks Jun 04, 2024 pm 05:00 PM

Das Verfassen einer klaren und umfassenden Dokumentation ist für das Golang-Framework von entscheidender Bedeutung. Zu den Best Practices gehört die Befolgung eines etablierten Dokumentationsstils, beispielsweise des Go Coding Style Guide von Google. Verwenden Sie eine klare Organisationsstruktur, einschließlich Überschriften, Unterüberschriften und Listen, und sorgen Sie für eine Navigation. Bietet umfassende und genaue Informationen, einschließlich Leitfäden für den Einstieg, API-Referenzen und Konzepte. Verwenden Sie Codebeispiele, um Konzepte und Verwendung zu veranschaulichen. Halten Sie die Dokumentation auf dem neuesten Stand, verfolgen Sie Änderungen und dokumentieren Sie neue Funktionen. Stellen Sie Support und Community-Ressourcen wie GitHub-Probleme und Foren bereit. Erstellen Sie praktische Beispiele, beispielsweise eine API-Dokumentation.

So wählen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus So wählen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus Jun 05, 2024 pm 04:05 PM

Wählen Sie das beste Go-Framework basierend auf Anwendungsszenarien aus: Berücksichtigen Sie Anwendungstyp, Sprachfunktionen, Leistungsanforderungen und Ökosystem. Gängige Go-Frameworks: Gin (Webanwendung), Echo (Webdienst), Fiber (hoher Durchsatz), gorm (ORM), fasthttp (Geschwindigkeit). Praktischer Fall: Erstellen einer REST-API (Fiber) und Interaktion mit der Datenbank (gorm). Wählen Sie ein Framework: Wählen Sie fasthttp für die Schlüsselleistung, Gin/Echo für flexible Webanwendungen und gorm für die Datenbankinteraktion.

Was sind die häufigsten Missverständnisse im Lernprozess des Golang-Frameworks? Was sind die häufigsten Missverständnisse im Lernprozess des Golang-Frameworks? Jun 05, 2024 pm 09:59 PM

Beim Go-Framework-Lernen gibt es fünf Missverständnisse: übermäßiges Vertrauen in das Framework und eingeschränkte Flexibilität. Wenn Sie die Framework-Konventionen nicht befolgen, wird es schwierig, den Code zu warten. Die Verwendung veralteter Bibliotheken kann zu Sicherheits- und Kompatibilitätsproblemen führen. Die übermäßige Verwendung von Paketen verschleiert die Codestruktur. Das Ignorieren der Fehlerbehandlung führt zu unerwartetem Verhalten und Abstürzen.

Detaillierte praktische Erklärung der Golang-Framework-Entwicklung: Fragen und Antworten Detaillierte praktische Erklärung der Golang-Framework-Entwicklung: Fragen und Antworten Jun 06, 2024 am 10:57 AM

Bei der Go-Framework-Entwicklung treten häufige Herausforderungen und deren Lösungen auf: Fehlerbehandlung: Verwenden Sie das Fehlerpaket für die Verwaltung und Middleware zur zentralen Fehlerbehandlung. Authentifizierung und Autorisierung: Integrieren Sie Bibliotheken von Drittanbietern und erstellen Sie benutzerdefinierte Middleware zur Überprüfung von Anmeldeinformationen. Parallelitätsverarbeitung: Verwenden Sie Goroutinen, Mutexe und Kanäle, um den Ressourcenzugriff zu steuern. Unit-Tests: Verwenden Sie Gotest-Pakete, Mocks und Stubs zur Isolierung sowie Code-Coverage-Tools, um die Angemessenheit sicherzustellen. Bereitstellung und Überwachung: Verwenden Sie Docker-Container, um Bereitstellungen zu verpacken, Datensicherungen einzurichten und Leistung und Fehler mit Protokollierungs- und Überwachungstools zu verfolgen.

See all articles