Le framework mvvm comprend : 1. Le framework MVVMLight, un framework léger qui implémente le modèle MVVM ; 2. Le framework Prism ; 3. Le framework Caliburn, un framework open source de la classe MVVM ; 5. Cadre Cinch ; 6. Cadre de la Fondation MVVM
Un cadre pour la mise en œuvre de MVVM
1. Le framework de composition le plus puissant et le plus polyvalent - Prism
Adresse de téléchargement : http://compositewpf.codeplex.com/
Développeur : Équipe de modèles et pratiques Microsoft
Si Silverlight est pris en charge : Oui
Matériel d'apprentissage : Composite Application Guidance for WPF and Silverlight - May 2010.chm et Quickstarts et StockTraderRI, etc.
Les captures d'écran du code source sont les suivantes :
Prism - anciennement connu sous le nom de Composite Application Guidance pour WPF et Silverlight, il s'agit d'une application complexe au niveau de l'entreprise basée sur sur le framework d'application WPF/Silverlight Mainstream. Il existe plusieurs concepts importants dans Prism :
1. BootStrapper : Le point d'entrée de l'application, hérite de UnityContainer de Prism ou du MefUnityContainer fourni par MEF, et fournit un conteneur pour le système.
2. Shell : c'est un shell qui présente la page à travers les éléments de l'interface utilisateur et les régions. Il s'agit de la fenêtre de niveau supérieur de l'application, et le contenu affiché est généralement rempli par View. Le Shell lui-même ne sait pas quel contenu il contient, les fonctions sont donc spécifiquement fournies par chaque module.
3. View : C'est équivalent à View en mode MVP et en mode MVVM. Il peut être injecté dans Region via IRegionManager.
4. Module : un grand projet peut être divisé en parties. Chaque module contient une vue, des données et un modèle, et est principalement utilisé pour mettre en œuvre des opérations commerciales complexes.
5. IModuleManager : principalement utilisé pour gérer le chargement des modules et peut réaliser un chargement dynamique.
6. IEventAggregator : interface de traitement d'événements, implémentant les modes d'abonnement et de publication, qui est également la pratique générale du framework MVVM.
Prism est un framework de combinaison relativement grand. Il est devenu plus puissant après l'introduction du MEF et des ajustements fonctionnels dans la version 4.0. On peut désormais dire qu'il s'agit de l'unité du framework de combinaison et du framework d'application, et c'est le. force de l'équipe Microsoft, alors choisissez Cela vaut la peine d'être garanti.
2. Le framework d'application le plus puissant et le plus polyvalent - Caliburn
Adresse de téléchargement : http://caliburn.codeplex.com/
Développeur : Rob Eisenberg
S'il prend en charge Silverlight : Oui
Matériel d'apprentissage : je me réfère principalement à des exemples de projets, au code source, à des cas de tests unitaires et à certains blogs et communautés étrangers.
Les captures d'écran du code source sont les suivantes :
Il existe plusieurs concepts importants dans Caliburn :
1. de nombreuses fonctionnalités, notamment plusieurs paramètres, opérations de filtrage et appels asynchrones.
2. Les événements du cycle de vie des formulaires et des contrôles sont également relativement bien gérés (y compris l'activation, la désactivation, l'arrêt, etc.).
3. La testabilité de l'ensemble du framework et des applications basées sur ce framework est relativement bonne.
4, fournit de nombreuses fonctions communes, qui sont plus utiles dans les projets.
5. En plus de prendre en charge le mode MVVM, il prend également en charge le mode MVP et d'autres modes variantes.
6. Cadre d'injection de dépendances puissant et cadre AOP Vous pouvez en choisir un de manière flexible ici.
Caliburn est un framework d'application MVVM très puissant qui fournit des implémentations flexibles et diverses de nombreuses fonctions, qu'il s'agisse d'utilisation de projet ou de recherche de code, j'estime qu'il a beaucoup bénéficié.
3. MVVMLight léger et applicable
MVVMLight est un framework léger qui implémente le modèle MVVM (par rapport à Prism), qui peut mieux nous aider à développer WPF, Windows Phone , Windows 8, projets liés à SilverLight.
L'auteur de MVVMLight, Laurent Bugnion, est un MVP Microsoft. L'auteur a open source le code sur Codeplex : http://mvvmlight.codeplex.com/.
Le site officiel de MVVMLight : http://www.mvvmlight.net/. Il contient une introduction détaillée et des documents vidéo. Si vous êtes intéressé, vous pouvez le consulter.
Adresse de téléchargement : http://mvvmlight.codeplex.com/
Développeur : Laurent Bugnion
Support Silverlight : Oui
Matériel d'apprentissage : En plus à la documentation en ligne, je fais principalement référence à des exemples de projets, au code source, à des cas de tests unitaires et à certains blogs et communautés étrangers. De plus, ces trois articles sont très bons. J'ai développé un projet d'entreprise Silverlight relativement complet en utilisant MVVMLight
Partie 1 - Introduction, installation et sujets généraux de conception d'applications
Partie 2 - Sujets MVVM Light
Partie 3 - Authentification personnalisée, réinitialisation du mot de passe et maintenance de l'utilisateur
Le code source la capture d'écran est la suivante :
Il existe plusieurs concepts importants dans MVVMLight :
1. RelayCommand : En encapsulant Command, le mode MVVM est plus facile à utiliser sur WPF et Silverlight. Il vous suffit de définir chaque RelayCommand dans le ViewModel, puis d'utiliser la commande pour lier le RelayCommand défini dans le ViewModel dans la vue pour obtenir les mêmes effets que les événements WinForm et ASP.NET, mais ici, l'interface utilisateur et la logique sont supprimées. .
2. Messager : Le Messager dans MVVMLight joue un rôle relativement important. Comme mentionné précédemment, le mode MVVM supprime les références fortes de ViewModel et View, alors comment interagissent-elles ? Il est utilisé pour permettre à ViewModel et View de communiquer. Généralement, nous définirons une classe AppMessages statique comme une classe de communication générale. Le principe est le modèle de publication-abonnement.
3. EventToCommand : ceci est similaire au concept de comportement supplémentaire, qui a été introduit dans MVVM Light Toolkit V3.
4. Interface ICleanup : Lorsqu'une vue est affichée, la méthode Cleanup doit être appelée pour effacer les données. C'est également une opération nécessaire en raison de l'isolement du couplage de ViewModel et View.
MVVMLight est un framework MVVM très facile à utiliser qui fournit des modèles et une détection intelligente pour VS et Blend. Il semble vraiment léger et efficace lorsqu'il est utilisé en combinaison avec MEF, et il prend en charge WPF et Silverlight, notamment en termes de prise en charge de Silverlight, donc choisissez généralement le mode léger Silverlight MVVM, qui est plus prometteur.
4. MVVM Helpers complets et faciles à utiliser
Adresse de téléchargement : http://mvvmhelpers.codeplex.com/
Développeur : Mark Smith
S'il prend en charge Silverlight : Non
Matériel d'apprentissage : http://www.julmar.com/blog/mark/ et fourni des exemples, du code source et des tests cas.
La capture d'écran du code source est la suivante :
MVVM Helpers est également appelé JulMar MVVM Helpers + Behaviors, qui comporte plusieurs concepts importants :
1. Fournit les fonctions de base du modèle MVVM, y compris l'isolation entre ViewModel, View et Model, et fournit également certaines fonctions communes.
2. La création de ViewModel est injectée sous forme de balises, et MEF peut désormais également être introduit.
3. Prise en charge IOC/DI, les attributs ont des mécanismes de vérification et la prise en charge du curseur d'attente, qui peut être publié à temps après l'utilisation du modèle de vue, évitant ainsi les fuites de mémoire.
4. Fournit une prise en charge des comportements attachés couramment utilisés.
5. L'introduction d'un mécanisme de message pour éviter les couplages provoqués par des références fortes.
MVVM Helpers est un framework MVVM très applicable, en particulier il fournit des fonctions MVVM communes + MEF + Comportements attachés, de sorte que les problèmes du projet peuvent être essentiellement résolus.
5, Cinch puissant et léger
Adresse de téléchargement : http://cinch.codeplex.com/
Développeur : Sacha Barber
Si Silverlight est pris en charge : non
Matériel d'apprentissage : http://sachabarber.net/ et fourni des exemples, du code source et des cas de test.
La capture d'écran du code source est la suivante :
Si vous étudiez attentivement le code, vous constaterez qu'il contient de nombreux codes similaires à les Helpers MVVM mentionnés ci-dessus, et ils sont probablement liés les uns aux autres, j'ai fait une référence :-D. Il existe plusieurs concepts importants dans Cinch :
1. Ce framework a déjà implémenté une forte isolation des références entre ViewModel et View avant l'émergence de MEF. Il n'a ni configuration générale IOC ni IView. Il est utilisé pour le transfert, et le. Les événements du cycle de vie des formulaires et des contrôles sont également relativement bien gérés, c'est donc très bien à cet égard.
2, prend en charge les comportements attachés couramment utilisés et fournit également certaines fonctions MVVM courantes.
3. DI/IOC est implémenté à l'aide d'Unity et multithread pour éviter les erreurs imprévisibles dans le système.
4. Le modèle de vue peut être publié à temps après utilisation, évitant ainsi les fuites de mémoire, ajoutant un mécanisme de vérification et implémentant une navigation commune.
5. L'introduction d'un mécanisme de message pour éviter les couplages provoqués par des références fortes.
Cinch est un framework très puissant, notamment parce qu'il se concentre sur la construction de l'ensemble de l'application, il est donc également plus populaire.
6. Fondation MVVM avec des fonctions simples et une expansion facile
Adresse de téléchargement : http://mvvmfoundation.codeplex.com/
Développeur : Josh Smith
S'il prend en charge Silverlight : Non
Matériel d'apprentissage : http://joshsmithonwpf.wordpress.com/ et a fourni des exemples, du code source et des cas de test.
La capture d'écran du code source est la suivante :
Il existe plusieurs concepts importants dans MVVM Foundation :
1. principalement utilisé dans diverses communications entre différents ViewModels (tels que les ViewModels interdépendants, les ViewModels maître-esclave, etc.), bien sûr, peut également être étendu à la communication entre ViewModel et View.
2. ObservableObject : Ceci est équivalent au concept de ViewModelBase. Chaque ViewModel hérite de cette classe et est libéré immédiatement après la fin de l'appel pour éviter les fuites de mémoire.
3. PropertyObserver : encapsule principalement INotifyPropertyChanged.PropertyChanged. Cette encapsulation peut simplifier le code et éviter les fuites de mémoire causées par des opérations inappropriées.
4. Interface RelayCommand : encapsule l'instruction de commande, y compris la logique d'exécution, la logique d'exécution facultative, etc. En externe, il vous suffit d'instancier et de Binding pour l'utiliser facilement.
MVVM Foundation est un framework MVVM très simple. Si vous avez du mal à étudier le code source, vous pouvez d'abord commencer par ce framework. Le code est simple et raffiné.
Pour plus de connaissances liées à la programmation, veuillez visiter : Site Web d'apprentissage en programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!