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
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.
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.
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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

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.

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.

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.

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.

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.
