MVVM - Cadres

Dans ce chapitre, nous aborderons les toolkits ou frameworks MVVM disponibles. Vous pouvez également utiliser ces frameworks afin de ne pas avoir à écrire un tas de code répétitif pour implémenter vous-même le modèle MVVM. Voici quelques-uns des frameworks les plus populaires -

  • Prism
  • MVVM Lumière
  • Caliburn Micro

Prisme

Prism fournit des conseils sous forme d'exemples et de documentation qui vous aident à concevoir et à créer facilement des applications de bureau Windows Presentation Foundation (WPF) riches, flexibles et faciles à entretenir. Applications Internet riches (RIA) construites avec le plug-in de navigateur Microsoft Silverlight et les applications Windows.

  • Prism utilise des modèles de conception qui incarnent d'importants principes de conception architecturale, tels que la séparation des préoccupations et le couplage lâche.

  • Prism vous aide à concevoir et à créer des applications en utilisant des composants faiblement couplés qui peuvent évoluer indépendamment mais qui peuvent être facilement et de manière transparente intégrés dans l'application globale.

  • Ces types d'applications sont appelés applications composites.

Prism a un certain nombre de fonctionnalités prêtes à l'emploi. Voici quelques-unes des caractéristiques importantes de Prism.

Modèle MVVM

Prism prend en charge le modèle MVVM. Il a une classe Bindablebase similaire à celle qui est implémentée dans les chapitres précédents.

Il a un ViewModelLocator flexible qui a des conventions mais vous permet de remplacer ces conventions et de connecter de manière déclarative vos Views et ViewModels d'une manière faiblement couplée.

Modularité

C'est la possibilité de diviser votre code en bibliothèques de classes totalement couplées en parties et de les rassembler au moment de l'exécution en un tout cohérent pour l'utilisateur final, tandis que le code reste entièrement découplé.

Composition / régions de l'interface utilisateur

C'est la possibilité de brancher des vues dans des conteneurs sans la vue qui effectue le branchement, qui doit avoir une référence explicite au conteneur d'interface utilisateur lui-même.

La navigation

Prism possède des fonctionnalités de navigation qui se superposent aux régions, comme la navigation vers l'avant et vers l'arrière et la pile de navigation qui permet à vos modèles de vue de participer directement au processus de navigation.

Commandes

Prism a des commandes, donc ils ont une commande déléguée qui est très similaire à MyICommand que nous avons utilisée dans les chapitres précédents, sauf qu'elle a une robustesse supplémentaire pour vous protéger des fuites de mémoire.

Événements Pub / Sub

Prism prend également en charge les événements Pub / Sub. Ce sont des événements faiblement couplés dans lesquels l'éditeur et l'abonné peuvent avoir des durées de vie différentes et n'ont pas besoin d'avoir des références explicites l'un à l'autre pour communiquer via des événements.

MVVM Lumière

MVVM Light est produit par Laurent Bugnion et vous aide à séparer votre vue de votre modèle, ce qui crée des applications plus propres et plus faciles à entretenir et à étendre.

  • Il crée également des applications testables et vous permet d'avoir une couche d'interface utilisateur beaucoup plus fine (qui est plus difficile à tester automatiquement).

  • Cette boîte à outils met un accent particulier sur l'ouverture et la modification de l'interface utilisateur dans Blend, y compris la création de données au moment du design pour permettre aux utilisateurs de Blend de «voir quelque chose» lorsqu'ils travaillent avec des contrôles de données.

Caliburn Micro

Il s'agit d'un autre petit framework open-source qui vous aide à implémenter le modèle MVVM et prend également en charge un certain nombre de choses prêtes à l'emploi.

  • Caliburn Micro est un framework petit mais puissant, conçu pour créer des applications sur toutes les plates-formes XAML.

  • Avec une prise en charge solide de MVVM et d'autres modèles d'interface utilisateur éprouvés, Caliburn Micro vous permettra de créer rapidement votre solution, sans avoir à sacrifier la qualité du code ou la testabilité.