Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...
Mutualisation des développements avec VS2012
1. PLATEFORME
Mutualisation des développements avec VS2012
Jonathan PAMPHILE – Consultant expert Microsoft-Agile (Cellenza)
Benoit LAUNAY – Chef de produit Visual Studio (Microsoft)
5. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Séparation de l’UI de la logique de l’application
6. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Séparation de l’UI de la logique de l’application
Développeurs travaillent sur la logique de l’application
7. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Séparation de l’UI de la logique de l’application
Développeurs travaillent sur la logique de l’application
Designers travaillent sur l’interface
8. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
9. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
View
10. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
View
View Model
11. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
View
View Model
Model
12. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
•
Model : représente le modèle de données consommé par l’application
13. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
•
Model : représente le modèle de données consommé par l’application
•
View : code XAML définissant et mettant en forme ce que voit l’utilisateur
14. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
•
Model : représente le modèle de données consommé par l’application
•
View : code XAML définissant et mettant en forme ce que voit l’utilisateur
•
View Model : contient la logique de gestion des données du modèle et les lie à l’UI
16. Mutualisation des développements avec VS2012
Utilisation du pattern Model-View-ViewModel
•
View spécifique à la plateforme
•
View Model et Model potentiellement
portables ou réutilisables
18. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Bibliothèques de composants utilisables par différents types plateformes
19. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Bibliothèques de composants utilisables par différents types plateformes
21. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
22. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
code managé (C# ou VB)
23. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
code managé (C# ou VB)
ne pas utiliser la compilation conditionnelle
24. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
code managé (C# ou VB)
ne pas utiliser la compilation conditionnelle
ne pas utiliser d’APIs Windows Runtime
25. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
code managé (C# ou VB)
ne pas utiliser la compilation conditionnelle
ne pas utiliser d’APIs Windows Runtime
ne pas utiliser d’éléments de l’UI
28. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Portable class library et pattern MVVM
Model et ViewModel potentiellement portables
29. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Portable class library et pattern MVVM
Model et ViewModel potentiellement portables
View et code de démarrage spécifique à la plateforme
30. Mutualisation des développements avec VS2012
Utilisation des Portable Class Libraries
Portable class library et pattern MVVM
Model et ViewModel potentiellement portables
View et code de démarrage spécifique à la plateforme
Si code spécifique dans le ViewModel, utilisation d’interfaces communes et implémentation
de ces fonctionnalités dans du code spécifique
32. Mutualisation des développements avec VS2012
Utilisation de fichiers liés
Partage de code en utilisant un même fichier dans plusieurs projets
33. Mutualisation des développements avec VS2012
Utilisation de fichiers liés
Partage de code en utilisant un même fichier dans plusieurs projets
Code éligible :
34. Mutualisation des développements avec VS2012
Utilisation de fichiers liés
Partage de code en utilisant un même fichier dans plusieurs projets
Code éligible :
Logique applicative en commun mais non portable
35. Mutualisation des développements avec VS2012
Utilisation de fichiers liés
Partage de code en utilisant un même fichier dans plusieurs projets
Code éligible :
Logique applicative en commun mais non portable
User Controls indépendants de la plateforme
37. Mutualisation des développements avec VS2012
Partage de composants XAML
Partage de composants XAML entre Windows 8 et Windows Phone 8
38. Mutualisation des développements avec VS2012
Partage de composants XAML
Partage de composants XAML entre Windows 8 et Windows Phone 8
Utilisation de User Controls
40. Mutualisation des développements avec VS2012
Partage de composants XAML
Limitation du partage de composants XAML
•
Implémentation des éléments UI spécifique à chaque plateforme
41. Mutualisation des développements avec VS2012
Partage de composants XAML
Limitation du partage de composants XAML
•
Implémentation des éléments UI spécifique à chaque plateforme
•
Namespaces XAML préfixés différemment entre Windows 8 et Windows Phone 8
Windows Phone 8: xmlns:phone="clr-namespace:Microsoft.Phone.Controls"
Windows 8:
xmlns:local="using:Win8App"
42. Mutualisation des développements avec VS2012
Partage de composants XAML
Limitation du partage de composants XAML
•
Implémentation des éléments UI spécifique à chaque plateforme
•
Namespaces XAML préfixés différemment entre Windows 8 et Windows Phone 8
•
Compilation conditionnelle non prise en charge en XAML
44. Mutualisation des développements avec VS2012
Utilisation de la compilation conditionnelle
•
Isolation du code spécifique à chaque plateforme à la compilation
45. Mutualisation des développements avec VS2012
Utilisation de la compilation conditionnelle
•
Isolation du code spécifique à chaque plateforme à la compilation
public void PlatformSpecificMethod()
{
#if NETFX_CORE
// code Windows 8
#else
// code Windows Phone 8
#endif
}
46. Mutualisation des développements avec VS2012
Utilisation de la compilation conditionnelle
•
Isolation du code spécifique à chaque plateforme à la compilation
public void PlatformSpecificMethod()
{
#if NETFX_CORE
// code Windows 8
#else
// code Windows Phone 8
#endif
}
NETFX_CORE : directive de compilation pour les projets Windows 8
48. Mutualisation des développements avec VS2012
Résumé
Ce qu’on a vu, ce qu’il faut savoir
Visual Studio permet de mutualiser les développements
entre Windows 8 et Windows Phone 8
Pour aller plus loin :
• contact
• http://visualstudio.fr/bonapp