Académique Documents
Professionnel Documents
Culture Documents
congrès
Paris
7, 8 et 9
février 2012
MVVM de A à Z
08/02/2012
Agréé CIR
Centre de formation
agréé
Agenda
Le XAML
Anatomie du pattern
Tests unitaires
Couplage
Business
Class 1 Business
UI Class 1
Class 2
Data Class 1
Data Class 2 UI Class 2
UI Class 3 Business
Class 3 Data Class 3
Les enjeux du développeur
Les conséquences
Applications monolithiques
Difficilement maintenable
Difficile à faire évoluer
Non réutilisable
Difficilement testable
Régressions
Les enjeux du développeur
Evolutivité
Testabilité
Les modèles MVC et MVP
Model Model
XAML
Windows 8
Le XAML
Présentation
Langage de description <Grid Margin="20">
d’interfaces graphiques <Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
Format XML </Grid.RowDefinitions>
<TextBlock Text="Liste de produits"
Grid.Row="0"/>
<ListBox Grid.Row="1>
Facile à maintenir et à <ListBoxItem Content="Produit 1"/>
<ListBoxItem Content="Produit 2"/>
réutiliser <ListBoxItem Content="Produit 3"/>
</ListBox>
<Button Content="Ajouter produit"
outils
Visual studio
Expression Blend
Internet explorer
…
Le XAML
<Button Width="100“
Height="30"
Déclaratif
Click="OnClick"
Background="LightBlue">
OK
</Button>
Page.xaml
{
MessageBox.Show("Clic !");
}
Page.xaml.
cs
Le XAML
Paper
JPG / TIFF
PSD C++
XAML
PPT C#
VB.NET
MOV / WMV
Le XAML
View : L’UI
Model
Données
Objets métier (Client, Produit, etc.)
Services
Fournissent les requêtes de données
Model
<<Produit>>
Anatomie du pattern
Model
Répercussion des modifications sur l’UI
interface INotifyPropertyChanged
Evènement PropertyChanged
Validation
Exception
interface IDataErrorInfo
ViewModel
Fait le lien entre les données à traiter et l’interface
utilisateur
Exposition de propriétés pour afficher/récupérer des
valeurs
Utilisation de commandes pour interagir avec
l’utilisateur
Définit l’intelligence applicative entre la donnée et sa
représentation
Implémente également INotifyPropertyChanged
Elément entièrement indépendant de l’UI
Testabilité
Réutilisabilité avec d’autres vues
Anatomie du pattern
ViewModel
Les commandes
Gestion découplée de l’interaction utilisateur
Interface ICommand
Méthodes Execute & CanExecute
Implémentée en standard par certains contrôles
Button
CheckBox
…
Démo: Implémentation du
ViewModel
Anatomie du pattern
View
Typiquement un écran de l’application
En charge de la mise en page des données pour les
présenter à l’utilisateur
Couple .xaml / .xaml.cs
Ne contient aucune logique/dépendance métier
On peut par contre y mettre du code relatif à l’UI
(n’hésitez pas !)
Anatomie du pattern
View
DataTemplate
Représentation visuelle d’un objet (arbre XAML)
Resource donc réutilisable
Contextualisation de la donnée
Produit
Nom : Produit 1
Prix : 20
Disponibilité :
08/02/2012
Anatomie du pattern
View
Design Time
Utilisation d’un ViewModel factice pour le design de
la View
Réaction de la vue aux données
Meilleure efficacité dans la collaboration
designer/developpeur
Outils de design time fournit par Expression Blend
Démo: Implémentation de la
View
Les différentes philosophies
ViewFirst ViewModelFirst
Frameworks MVVM
MVVM Light Toolkit
( Prism )
Cinch
…
Liste descriptive : http://www.japf.fr/silverlight/mvvm/
Pour aller plus loin…
16
Meeting protocole Open Data
Téléchargement, ressources 21
février
Live La production automatisée de code avec CodeFluent
Meeting Entities
et toolkits : RdV sur MSDN 2012
6 mars Live
Nuget et ALM
2012 Meeting
Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre
www.windowsazure.fr 2012 Meeting plateforme de développement