SlideShare une entreprise Scribd logo
PLATEFORME

Mutualisation des développements avec VS2012
Jonathan PAMPHILE – Consultant expert Microsoft-Agile (Cellenza)
Benoit LAUNAY – Chef de produit Visual Studio (Microsoft)
Mutualisation des développements avec VS2012

Cellenza
Mutualisation des développements avec VS2012

Cellenza
Présentation de Cellenza
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Séparation de l’UI de la logique de l’application
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
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
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
 View
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
 View
 View Model
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
Application composée de trois composants
 View
 View Model
 Model
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
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
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
Mutualisation des développements avec VS2012

Utilisation du pattern Model-View-ViewModel
•

View spécifique à la plateforme
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
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Bibliothèques de composants utilisables par différents types plateformes
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Bibliothèques de composants utilisables par différents types plateformes
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Caractéristiques des portable class libraries :
 code managé (C# ou VB)
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
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
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
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Portable class library et pattern MVVM
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Portable class library et pattern MVVM
Mutualisation des développements avec VS2012

Utilisation des Portable Class Libraries
Portable class library et pattern MVVM

 Model et ViewModel potentiellement portables
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
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
Mutualisation des développements avec VS2012

Utilisation de fichiers liés
Mutualisation des développements avec VS2012

Utilisation de fichiers liés
Partage de code en utilisant un même fichier dans plusieurs projets
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 :
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
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
Mutualisation des développements avec VS2012

Partage de composants XAML
Mutualisation des développements avec VS2012

Partage de composants XAML

Partage de composants XAML entre Windows 8 et Windows Phone 8
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
Mutualisation des développements avec VS2012

Partage de composants XAML
Limitation du partage de composants XAML
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
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"
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
Mutualisation des développements avec VS2012

Utilisation de la compilation conditionnelle
Mutualisation des développements avec VS2012

Utilisation de la compilation conditionnelle
•

Isolation du code spécifique à chaque plateforme à la compilation
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
}
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
Mutualisation des développements avec VS2012

Démos !
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
UN PROJET,
DES QUESTIONS ?
Retrouvez toutes les
émissions sur
visualstudio.fr/bonapp

Contenu connexe

Tendances

Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
Nazih Heni
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
Abdelouahed Abdou
 
Ado.net database access
Ado.net database accessAdo.net database access
Ado.net database access
MarweN Boughattas
 
Présentation Flex Mobile
Présentation Flex MobilePrésentation Flex Mobile
Présentation Flex Mobile
François Fornaciari
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
Jean-Baptiste Vigneron
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
Frédéric Vandenbriele
 
Titanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhereTitanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhere
Ayoub Zamouchi
 

Tendances (8)

Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Ado.net database access
Ado.net database accessAdo.net database access
Ado.net database access
 
Présentation Flex Mobile
Présentation Flex MobilePrésentation Flex Mobile
Présentation Flex Mobile
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
WPF MVVM
WPF MVVMWPF MVVM
WPF MVVM
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Titanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhereTitanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhere
 

En vedette

Practicas de informatica
Practicas de informaticaPracticas de informatica
Practicas de informatica
Karla Montiel
 
Hollywood Au Service Des Innovations US
Hollywood Au Service Des Innovations USHollywood Au Service Des Innovations US
Hollywood Au Service Des Innovations US
Ari Massoudi
 
Garoe. L'Arbre de l'eau
Garoe. L'Arbre de l'eauGaroe. L'Arbre de l'eau
Garoe. L'Arbre de l'eau
leticiaprofesor
 
Biocom informedereferencia
Biocom informedereferenciaBiocom informedereferencia
Biocom informedereferencia
belen2150
 
Programme 2015 -Rencontres équestres de Lunéville 5ème édition
Programme 2015  -Rencontres équestres de Lunéville 5ème édition Programme 2015  -Rencontres équestres de Lunéville 5ème édition
Programme 2015 -Rencontres équestres de Lunéville 5ème édition
Ici C Nancy Pro
 
©Midi express magazine n.3
©Midi express magazine n.3©Midi express magazine n.3
©Midi express magazine n.3
olimac33240
 
Trendsetters
TrendsettersTrendsetters
Trendsetters
influence
 
jambon iberique bellota espanol
jambon iberique bellota espanol
jambon iberique bellota espanol
jambon iberique bellota espanol
clifford8hester08
 
Revolucion virtual
Revolucion virtualRevolucion virtual
Revolucion virtual
Micaela Verdera
 
Access
AccessAccess
Sistema Internacional De Medidas
Sistema Internacional De MedidasSistema Internacional De Medidas
Sistema Internacional De Medidas
camilogonzcuellar
 
Actividad2.1 tecnologia educativa lidia_hurtado
Actividad2.1 tecnologia educativa lidia_hurtadoActividad2.1 tecnologia educativa lidia_hurtado
Actividad2.1 tecnologia educativa lidia_hurtado
102345
 
ESCP-EAP: Vive les éco-entrepreneurs !
ESCP-EAP: Vive les éco-entrepreneurs !ESCP-EAP: Vive les éco-entrepreneurs !
ESCP-EAP: Vive les éco-entrepreneurs !
jeunepousse
 
Comportamiento en diversos lugares yadira rodriguez
Comportamiento en diversos lugares yadira rodriguezComportamiento en diversos lugares yadira rodriguez
Comportamiento en diversos lugares yadira rodriguez
Juan Vega
 
Historia de la ed
Historia de la edHistoria de la ed
Historia de la ed
fedo59
 
Que es un blog
Que es un blogQue es un blog
Que es un blog
cristopher_enriquez
 
Macro
MacroMacro
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
unicefcatalunya
 
Solucion de actividad 3
Solucion de actividad 3Solucion de actividad 3
Solucion de actividad 3
dianahm92
 
Día del trabajador
Día del trabajadorDía del trabajador
Día del trabajador
rrrr521
 

En vedette (20)

Practicas de informatica
Practicas de informaticaPracticas de informatica
Practicas de informatica
 
Hollywood Au Service Des Innovations US
Hollywood Au Service Des Innovations USHollywood Au Service Des Innovations US
Hollywood Au Service Des Innovations US
 
Garoe. L'Arbre de l'eau
Garoe. L'Arbre de l'eauGaroe. L'Arbre de l'eau
Garoe. L'Arbre de l'eau
 
Biocom informedereferencia
Biocom informedereferenciaBiocom informedereferencia
Biocom informedereferencia
 
Programme 2015 -Rencontres équestres de Lunéville 5ème édition
Programme 2015  -Rencontres équestres de Lunéville 5ème édition Programme 2015  -Rencontres équestres de Lunéville 5ème édition
Programme 2015 -Rencontres équestres de Lunéville 5ème édition
 
©Midi express magazine n.3
©Midi express magazine n.3©Midi express magazine n.3
©Midi express magazine n.3
 
Trendsetters
TrendsettersTrendsetters
Trendsetters
 
jambon iberique bellota espanol
jambon iberique bellota espanol
jambon iberique bellota espanol
jambon iberique bellota espanol
 
Revolucion virtual
Revolucion virtualRevolucion virtual
Revolucion virtual
 
Access
AccessAccess
Access
 
Sistema Internacional De Medidas
Sistema Internacional De MedidasSistema Internacional De Medidas
Sistema Internacional De Medidas
 
Actividad2.1 tecnologia educativa lidia_hurtado
Actividad2.1 tecnologia educativa lidia_hurtadoActividad2.1 tecnologia educativa lidia_hurtado
Actividad2.1 tecnologia educativa lidia_hurtado
 
ESCP-EAP: Vive les éco-entrepreneurs !
ESCP-EAP: Vive les éco-entrepreneurs !ESCP-EAP: Vive les éco-entrepreneurs !
ESCP-EAP: Vive les éco-entrepreneurs !
 
Comportamiento en diversos lugares yadira rodriguez
Comportamiento en diversos lugares yadira rodriguezComportamiento en diversos lugares yadira rodriguez
Comportamiento en diversos lugares yadira rodriguez
 
Historia de la ed
Historia de la edHistoria de la ed
Historia de la ed
 
Que es un blog
Que es un blogQue es un blog
Que es un blog
 
Macro
MacroMacro
Macro
 
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
Ponència inaugural: Impacte de les polítiques socials en el benestar de la in...
 
Solucion de actividad 3
Solucion de actividad 3Solucion de actividad 3
Solucion de actividad 3
 
Día del trabajador
Día del trabajadorDía del trabajador
Día del trabajador
 

Similaire à Mutualisation des développements avec VS2012

Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
Abdelkader Rhouati
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrr
inesrdissi60
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
Thierry Buisson
 
Présentation Angular 2
Présentation Angular 2 Présentation Angular 2
Présentation Angular 2
Cynapsys It Hotspot
 
Architecture .net
Architecture  .netArchitecture  .net
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
Jasmine Conseil
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
Jasmine Conseil
 
What’s Next Replay! Lyon 2011 - F. Fornaciari
What’s Next Replay! Lyon 2011 - F. FornaciariWhat’s Next Replay! Lyon 2011 - F. Fornaciari
What’s Next Replay! Lyon 2011 - F. Fornaciari
Zenika
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipseESPRIT
 
Le Developpement Web Aspnet2 Vb2005
Le Developpement Web Aspnet2   Vb2005Le Developpement Web Aspnet2   Vb2005
Le Developpement Web Aspnet2 Vb2005Gregory Renard
 
Java Server Faces - Beyond
Java Server Faces - BeyondJava Server Faces - Beyond
Java Server Faces - Beyond
Mamadou Lamine Ba
 
ASP_NET_complet.pdf
ASP_NET_complet.pdfASP_NET_complet.pdf
ASP_NET_complet.pdf
mostafaoujeddi1
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
imenhamada17
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
AZUG FR
 
Angular 11
Angular 11Angular 11
Angular 11
PapaDjadjigueye
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
Bacely YoroBi
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
Safwen Chibeni
 
React xp
React xpReact xp

Similaire à Mutualisation des développements avec VS2012 (20)

Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrr
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Présentation Angular 2
Présentation Angular 2 Présentation Angular 2
Présentation Angular 2
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
What’s Next Replay! Lyon 2011 - F. Fornaciari
What’s Next Replay! Lyon 2011 - F. FornaciariWhat’s Next Replay! Lyon 2011 - F. Fornaciari
What’s Next Replay! Lyon 2011 - F. Fornaciari
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipse
 
Gwt final
Gwt finalGwt final
Gwt final
 
Le Developpement Web Aspnet2 Vb2005
Le Developpement Web Aspnet2   Vb2005Le Developpement Web Aspnet2   Vb2005
Le Developpement Web Aspnet2 Vb2005
 
Java Server Faces - Beyond
Java Server Faces - BeyondJava Server Faces - Beyond
Java Server Faces - Beyond
 
ASP_NET_complet.pdf
ASP_NET_complet.pdfASP_NET_complet.pdf
ASP_NET_complet.pdf
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
Angular 11
Angular 11Angular 11
Angular 11
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
React xp
React xpReact xp
React xp
 

Plus de Cellenza

Global AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interfaceGlobal AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interface
Cellenza
 
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Cellenza
 
Soirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & XamarinSoirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & Xamarin
Cellenza
 
Soirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live ShareSoirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live Share
Cellenza
 
Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19
Cellenza
 
Soirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - IntroductionSoirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - Introduction
Cellenza
 
Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ? Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ?
Cellenza
 
Gouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de GouvernanceGouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de Gouvernance
Cellenza
 
Gouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture AzureGouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture Azure
Cellenza
 
Gouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommageGouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommage
Cellenza
 
Continuous monitoring : Dev to Ops
Continuous monitoring : Dev to OpsContinuous monitoring : Dev to Ops
Continuous monitoring : Dev to Ops
Cellenza
 
MobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 CrossplateformMobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 Crossplateform
Cellenza
 
MobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon MicrosoftMobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon Microsoft
Cellenza
 
MobileDay - Parcours 1 Hybride (Cordova)
MobileDay - Parcours 1 Hybride  (Cordova)MobileDay - Parcours 1 Hybride  (Cordova)
MobileDay - Parcours 1 Hybride (Cordova)
Cellenza
 
MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)
Cellenza
 
MobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEXMobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEX
Cellenza
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOT
Cellenza
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous Delivery
Cellenza
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A Code
Cellenza
 
Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...
Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...
Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...Cellenza
 

Plus de Cellenza (20)

Global AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interfaceGlobal AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interface
 
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
 
Soirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & XamarinSoirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & Xamarin
 
Soirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live ShareSoirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live Share
 
Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19
 
Soirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - IntroductionSoirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - Introduction
 
Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ? Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ?
 
Gouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de GouvernanceGouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de Gouvernance
 
Gouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture AzureGouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture Azure
 
Gouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommageGouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommage
 
Continuous monitoring : Dev to Ops
Continuous monitoring : Dev to OpsContinuous monitoring : Dev to Ops
Continuous monitoring : Dev to Ops
 
MobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 CrossplateformMobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 Crossplateform
 
MobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon MicrosoftMobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon Microsoft
 
MobileDay - Parcours 1 Hybride (Cordova)
MobileDay - Parcours 1 Hybride  (Cordova)MobileDay - Parcours 1 Hybride  (Cordova)
MobileDay - Parcours 1 Hybride (Cordova)
 
MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)
 
MobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEXMobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEX
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOT
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous Delivery
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A Code
 
Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...
Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...Applications "legacy": testez-les avec Visual Studio 2012 sans modifier leurs...
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)
  • 2. Mutualisation des développements avec VS2012 Cellenza
  • 3. Mutualisation des développements avec VS2012 Cellenza Présentation de Cellenza
  • 4. Mutualisation des développements avec VS2012 Utilisation du pattern Model-View-ViewModel
  • 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
  • 15. Mutualisation des développements avec VS2012 Utilisation du pattern Model-View-ViewModel • View spécifique à la plateforme
  • 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
  • 17. Mutualisation des développements avec VS2012 Utilisation des Portable Class Libraries
  • 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
  • 20. Mutualisation des développements avec VS2012 Utilisation des Portable Class Libraries
  • 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
  • 26. Mutualisation des développements avec VS2012 Utilisation des Portable Class Libraries Portable class library et pattern MVVM
  • 27. Mutualisation des développements avec VS2012 Utilisation des Portable Class Libraries Portable class library et pattern MVVM
  • 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
  • 31. Mutualisation des développements avec VS2012 Utilisation de fichiers liés
  • 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
  • 36. Mutualisation des développements avec VS2012 Partage de composants XAML
  • 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
  • 39. Mutualisation des développements avec VS2012 Partage de composants XAML Limitation du partage de composants XAML
  • 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
  • 43. Mutualisation des développements avec VS2012 Utilisation de la compilation conditionnelle
  • 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
  • 47. Mutualisation des développements avec VS2012 Démos !
  • 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
  • 49. UN PROJET, DES QUESTIONS ? Retrouvez toutes les émissions sur visualstudio.fr/bonapp