SlideShare une entreprise Scribd logo
1  sur  25
Réutilisation de code entre
     Windows 8 et Windows Phone
                                 8.
                    Arnaud Auroux
                 Etienne Margraff
                               #infinitesquare
                       www.infinitesquare.com


Code / Développement
INFINITE SQUARE
  STAND 44 ESPACE WINDOWS 8 & EXPÉRIENCES NUMÉRIQUES

   Société de conseil, d’expertise, de réalisation et de formation exclusivement sur les technologies
    de développement d’applications et la plateforme applicative Microsoft.

   30 collaborateurs spécialisés sur les techno MS, dont 10 MVP.




   GOLD Certified Partner
    sur 4 domaines de compétences.
   Agréé CIR.
   Centre de formation agréé.
Infinite Square aux TechDays 2013
Agenda
•   Pourquoi partager du code?
•   Comparer les deux plateformes
•   Organiser son code pour qu’il soit portable
•   Les solutions techniques pour partager le code
•   L’architecture au service de la portabilité
Pourquoi partager du code ?
•   Gagner du temps
•   Homogénéiser les applications
•   Limiter les risques d’anomalies (un code à tester)
•   Parce que c’est cool

• Mais…. C’est vraiment faisable?
La plateforme Windows 8
                             Windows Store Apps                         Desktop Apps
  View




                             XAML                       HTML / CSS
Controller




                     C/C++            C#, VB            JavaScript
 Model




                                                                      HTML         C      C#
                                                                      JavaScrip   C++     VB
                             Windows Runtime APIs                         t
  System Services




                    Communication      Graphics &         Devices &
                       & Data            Media             Printing

                                    Application Model                 Internet            .NET
                                                                      Explorer    Win32    SL
   Kernel




                                       Windows Kernel Services
La plateforme Windows Phone 8

                                   Direct3D      C++
                                    Interop     Reuse

                     Windows Phone 8 API
                                              Common
      Graphics       Audio        Media
                                              .NET FX

     File System   Networking      Input
                                              CoreCLR
     Commerce      Base Types    Sensors
Comprendre les différences entre les
plateformes
      Ecran                 Résolutions extrêmement variées

   Ergonomie        1 ou 2 doigts pour WP8 & 2 mains/souris pour Win8

    Runtimes         Silverlight, WinPRT pour WP8 & WinRT pour Win8

                    Arbitraire pour WP8 & Quand ça dépasse 50ms pour
 Asynchronisme
                                           Win8

Background agents    Hétérogène pour WP8 & Conditionnel pour Win8

 Services de l’OS    Launchers d’app pour WP8 & Contrats pour Win8
        …                                  …
La recette pour maximiser la portabilité
• Séparer les couches logiques (Vues, Métier, Accès au
  données…)
   – Le pattern MVVM

• Gérer intelligemment le code source et les ressources
   – Séparation des projets
   – Partage des fichiers
   – Gestionnaire de source et Versionning … TFS ! 


• Abstraire le hardware et l'OS
   – Patterns Adapter, Bridge, Factory...
Le pattern MVVM
                                       Views
                            (XAML / Minimize Code Behind)


                                                 Binding

                                 ViewModels
        (C#|C++|VB.NET, Binding Source, Implements INotifyPropertyChanged and
                                     ICommands)

                                                 Async

                                     Models
                      (C# - business oriented, interfaces with DAL)




          OS                       Hardware                           Data
MVVM EN ACTION
Le Pattern MVVM… portable!
    Windows 8                     Views
                               Code partagé                    Windows Phone 8
                              (XAML / Minimize Code Behind)


                               - Patterns Binding
                               - PBL
                                    ViewModels
                               - Compilation INotifyPropertyChanged and
            (C#|C++|VB.NET, Binding Source, Implements
      Views                              ICommands)
                                   conditionnelle                       Views
                               - Add as link
                                                   Async
                               - …
                                        Models
                                   ViewModels with DAL)
                         (C# - business oriented, interfaces



                                    Models
                OS                  Hardware                   Data
Les Ingrédients d’un code « modulaire »
• Les features de .NET
   – Interfaces, Classes Abstraites, Méthodes d‘Extension, …

• Portable Library Tools
   – Multi-Targeting
   – Interfaces Génériques

• Directives de Préprocesseur & Compilation Conditionnelle
   – #if SYMBOL_DEFINI
   – #else
   – #endif
La Portable Library
• Sous-ensemble commun aux différents runtimes
  choisis
• Peut être référencé par n'importe quel type de
  projet
• Ne peut référencer que des assemblies de type
  Portable
  – Attention a la portabilité de vos dépendances
La Portable Library
PORTABLE LIBRARY
L’architecture au service de la portabilité
• Solutions techniques parfois insuffisantes
  – Types non partagés ou différents
  – Implémentations complétement différentes


• Il faut limiter le code non portable
• Solution fréquente : utiliser des patterns adaptés
Partager du code existant
La solution : Le Pattern Adaptor
Masquer une méthode ou un objet avec une classe intermédiaire

            Client         Adaptor          Adaptee
        + a: Adaptor     + a: Adaptee
                                           + methodB()
        + doWork()       + methodA()




           …                 …
           a.methodA()       a.methodB()
           …                 …
Partager une logique identique
La solution : Le Pattern Bridge
Masquer une implémentation avec une interface générique

                      Abstraction             Implementor
                      - impl: Implementor
                      + function()          + implementation()
   …
   a.impl.implement
   ()
   …
                      RefinedAbstraction    ConcreteImplementor
                      + impl: Implementor
                      + refinedFunction()   + implementation()
MISE EN PLACE DE PATTERNS
La Compilation Conditionnelle



                           WinRT et WinPRT
                           partagent certains
                           noms d’API
Add as a link
• Permet d‘écrire du code spécifique dans un fichier
  partagé
• Permet de visualiser facilement les différences entre les
  codes des plateformes
• Attention aux gestionnaires de sources
                             Projet W8

         Fichier
         partagé             Projet Wp8
ET SI ON CREAIT LA VERSION
WP8 ?
Conclusion : il faut un bon process de
portage

                                                   Implémentation
                                 Passage en         des interfaces
 Analyse des       Revue
                                portable library     génériques       debugging
dépendances    d'architecture
                                 (si possible)     dans les projets
                                                     spécifiques
Les Ressources
 • Série d'articles de Pierre Cauchois sur le portage
   d'applications :
    – http://blogs.msdn.com/b/pierreca/archive/2012/05/28/strat-233-
      gies-et-techniques-de-partage-de-code-c-et-xaml-entre-windows-
      phone-et-windows-8-consumer-preview-partie-1-introduction-les-
      diff-233-rences-entre-les-plateformes-224-avoir-en-t-234-te.aspx
 • La série de Stephanie Hertrich sur la portable library :
    – http://blogs.msdn.com/b/stephe/archive/2012/05/07/partager-du-
      code-entre-plate-formes-gr-226-ce-224-la-portable-class-library-1-
      4.aspx
L’Accélérateur Windows
                Ressources
                Coaching
                Visibilité

                        aka.ms/accelerateur-windows

                         Plus d’info ? RDV stand Windows 8
Accélérateur Windows

Contenu connexe

Tendances

Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERP
Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERPKinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERP
Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERPMicrosoft Décideurs IT
 
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Microsoft Décideurs IT
 
Etat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftEtat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftMicrosoft Décideurs IT
 
Retours d'experience de déploiements Windows 7
Retours d'experience de déploiements Windows 7 Retours d'experience de déploiements Windows 7
Retours d'experience de déploiements Windows 7 Microsoft Décideurs IT
 
Boostez vos applications en migrant vos bases vers SQL Server 2012 !
Boostez vos applications en migrant vos bases vers SQL Server 2012 !Boostez vos applications en migrant vos bases vers SQL Server 2012 !
Boostez vos applications en migrant vos bases vers SQL Server 2012 !Microsoft Technet France
 
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?Microsoft
 
Cloud or not Cloud, comment déployer Project… ? That is the question!
Cloud or not Cloud, comment déployer Project…  ? That is the question!Cloud or not Cloud, comment déployer Project…  ? That is the question!
Cloud or not Cloud, comment déployer Project… ? That is the question!Microsoft Technet France
 
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...Microsoft Technet France
 
CV - Chef de projet technique
CV - Chef de projet techniqueCV - Chef de projet technique
CV - Chef de projet techniqueAlexis Delaporte
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'artTugdual Grall
 
Portail d'entreprise / eXo Platform
Portail d'entreprise / eXo PlatformPortail d'entreprise / eXo Platform
Portail d'entreprise / eXo PlatformTugdual Grall
 
Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013Smile I.T is open
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Smile I.T is open
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réelSmile I.T is open
 

Tendances (19)

Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERP
Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERPKinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERP
Kinect, Tablette ou PC, Microsoft Dynamics NAV 2013 la nouvelle expérience ERP
 
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
 
Etat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftEtat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile Microsoft
 
Retours d'experience de déploiements Windows 7
Retours d'experience de déploiements Windows 7 Retours d'experience de déploiements Windows 7
Retours d'experience de déploiements Windows 7
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Cv Mame Mbarou Ndaw
Cv Mame Mbarou NdawCv Mame Mbarou Ndaw
Cv Mame Mbarou Ndaw
 
Boostez vos applications en migrant vos bases vers SQL Server 2012 !
Boostez vos applications en migrant vos bases vers SQL Server 2012 !Boostez vos applications en migrant vos bases vers SQL Server 2012 !
Boostez vos applications en migrant vos bases vers SQL Server 2012 !
 
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
SQL Azure Data Sync ou comment synchroniser vos données avec le Cloud ?
 
Cloud or not Cloud, comment déployer Project… ? That is the question!
Cloud or not Cloud, comment déployer Project…  ? That is the question!Cloud or not Cloud, comment déployer Project…  ? That is the question!
Cloud or not Cloud, comment déployer Project… ? That is the question!
 
Présentation de SQL Azure
Présentation de SQL AzurePrésentation de SQL Azure
Présentation de SQL Azure
 
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...
Créez votre application métier pour tablettes Windows 8, SharePoint 2013 et S...
 
CV - Chef de projet technique
CV - Chef de projet techniqueCV - Chef de projet technique
CV - Chef de projet technique
 
CV informatique Francias
CV informatique FranciasCV informatique Francias
CV informatique Francias
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'art
 
Mohamed -CV 2016
Mohamed -CV 2016 Mohamed -CV 2016
Mohamed -CV 2016
 
Portail d'entreprise / eXo Platform
Portail d'entreprise / eXo PlatformPortail d'entreprise / eXo Platform
Portail d'entreprise / eXo Platform
 
Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
 

Similaire à Réutilisation de code entre Windows 8 et Windows Phone 8.

Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch
 
Le développement d’un Composant WinRT
Le développement d’un Composant WinRTLe développement d’un Composant WinRT
Le développement d’un Composant WinRTMicrosoft
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Microsoft
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreMicrosoft
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 
Devforumfrancois Tonic
Devforumfrancois TonicDevforumfrancois Tonic
Devforumfrancois TonicGreenIvory
 
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 XamarinThierry Buisson
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM France Lab
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 

Similaire à Réutilisation de code entre Windows 8 et Windows Phone 8. (20)

Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
 
Le développement d’un Composant WinRT
Le développement d’un Composant WinRTLe développement d’un Composant WinRT
Le développement d’un Composant WinRT
 
Agl2012
Agl2012Agl2012
Agl2012
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 
Windows 8
Windows 8Windows 8
Windows 8
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Framework .net overview
Framework .net overviewFramework .net overview
Framework .net overview
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 
Devforumfrancois Tonic
Devforumfrancois TonicDevforumfrancois Tonic
Devforumfrancois Tonic
 
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
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Réutilisation de code entre Windows 8 et Windows Phone 8.

  • 1. Réutilisation de code entre Windows 8 et Windows Phone 8. Arnaud Auroux Etienne Margraff #infinitesquare www.infinitesquare.com Code / Développement
  • 2. INFINITE SQUARE STAND 44 ESPACE WINDOWS 8 & EXPÉRIENCES NUMÉRIQUES  Société de conseil, d’expertise, de réalisation et de formation exclusivement sur les technologies de développement d’applications et la plateforme applicative Microsoft.  30 collaborateurs spécialisés sur les techno MS, dont 10 MVP.  GOLD Certified Partner sur 4 domaines de compétences.  Agréé CIR.  Centre de formation agréé. Infinite Square aux TechDays 2013
  • 3. Agenda • Pourquoi partager du code? • Comparer les deux plateformes • Organiser son code pour qu’il soit portable • Les solutions techniques pour partager le code • L’architecture au service de la portabilité
  • 4. Pourquoi partager du code ? • Gagner du temps • Homogénéiser les applications • Limiter les risques d’anomalies (un code à tester) • Parce que c’est cool • Mais…. C’est vraiment faisable?
  • 5. La plateforme Windows 8 Windows Store Apps Desktop Apps View XAML HTML / CSS Controller C/C++ C#, VB JavaScript Model HTML C C# JavaScrip C++ VB Windows Runtime APIs t System Services Communication Graphics & Devices & & Data Media Printing Application Model Internet .NET Explorer Win32 SL Kernel Windows Kernel Services
  • 6. La plateforme Windows Phone 8 Direct3D C++ Interop Reuse Windows Phone 8 API Common Graphics Audio Media .NET FX File System Networking Input CoreCLR Commerce Base Types Sensors
  • 7. Comprendre les différences entre les plateformes Ecran Résolutions extrêmement variées Ergonomie 1 ou 2 doigts pour WP8 & 2 mains/souris pour Win8 Runtimes Silverlight, WinPRT pour WP8 & WinRT pour Win8 Arbitraire pour WP8 & Quand ça dépasse 50ms pour Asynchronisme Win8 Background agents Hétérogène pour WP8 & Conditionnel pour Win8 Services de l’OS Launchers d’app pour WP8 & Contrats pour Win8 … …
  • 8. La recette pour maximiser la portabilité • Séparer les couches logiques (Vues, Métier, Accès au données…) – Le pattern MVVM • Gérer intelligemment le code source et les ressources – Séparation des projets – Partage des fichiers – Gestionnaire de source et Versionning … TFS !  • Abstraire le hardware et l'OS – Patterns Adapter, Bridge, Factory...
  • 9. Le pattern MVVM Views (XAML / Minimize Code Behind) Binding ViewModels (C#|C++|VB.NET, Binding Source, Implements INotifyPropertyChanged and ICommands) Async Models (C# - business oriented, interfaces with DAL) OS Hardware Data
  • 11. Le Pattern MVVM… portable! Windows 8 Views Code partagé Windows Phone 8 (XAML / Minimize Code Behind) - Patterns Binding - PBL ViewModels - Compilation INotifyPropertyChanged and (C#|C++|VB.NET, Binding Source, Implements Views ICommands) conditionnelle Views - Add as link Async - … Models ViewModels with DAL) (C# - business oriented, interfaces Models OS Hardware Data
  • 12. Les Ingrédients d’un code « modulaire » • Les features de .NET – Interfaces, Classes Abstraites, Méthodes d‘Extension, … • Portable Library Tools – Multi-Targeting – Interfaces Génériques • Directives de Préprocesseur & Compilation Conditionnelle – #if SYMBOL_DEFINI – #else – #endif
  • 13. La Portable Library • Sous-ensemble commun aux différents runtimes choisis • Peut être référencé par n'importe quel type de projet • Ne peut référencer que des assemblies de type Portable – Attention a la portabilité de vos dépendances
  • 16. L’architecture au service de la portabilité • Solutions techniques parfois insuffisantes – Types non partagés ou différents – Implémentations complétement différentes • Il faut limiter le code non portable • Solution fréquente : utiliser des patterns adaptés
  • 17. Partager du code existant La solution : Le Pattern Adaptor Masquer une méthode ou un objet avec une classe intermédiaire Client Adaptor Adaptee + a: Adaptor + a: Adaptee + methodB() + doWork() + methodA() … … a.methodA() a.methodB() … …
  • 18. Partager une logique identique La solution : Le Pattern Bridge Masquer une implémentation avec une interface générique Abstraction Implementor - impl: Implementor + function() + implementation() … a.impl.implement () … RefinedAbstraction ConcreteImplementor + impl: Implementor + refinedFunction() + implementation()
  • 19. MISE EN PLACE DE PATTERNS
  • 20. La Compilation Conditionnelle WinRT et WinPRT partagent certains noms d’API
  • 21. Add as a link • Permet d‘écrire du code spécifique dans un fichier partagé • Permet de visualiser facilement les différences entre les codes des plateformes • Attention aux gestionnaires de sources Projet W8 Fichier partagé Projet Wp8
  • 22. ET SI ON CREAIT LA VERSION WP8 ?
  • 23. Conclusion : il faut un bon process de portage Implémentation Passage en des interfaces Analyse des Revue portable library génériques debugging dépendances d'architecture (si possible) dans les projets spécifiques
  • 24. Les Ressources • Série d'articles de Pierre Cauchois sur le portage d'applications : – http://blogs.msdn.com/b/pierreca/archive/2012/05/28/strat-233- gies-et-techniques-de-partage-de-code-c-et-xaml-entre-windows- phone-et-windows-8-consumer-preview-partie-1-introduction-les- diff-233-rences-entre-les-plateformes-224-avoir-en-t-234-te.aspx • La série de Stephanie Hertrich sur la portable library : – http://blogs.msdn.com/b/stephe/archive/2012/05/07/partager-du- code-entre-plate-formes-gr-226-ce-224-la-portable-class-library-1- 4.aspx
  • 25. L’Accélérateur Windows Ressources Coaching Visibilité aka.ms/accelerateur-windows Plus d’info ? RDV stand Windows 8 Accélérateur Windows

Notes de l'éditeur

  1. Intro code / dev
  2. Etienne
  3. Etienne
  4. Arnaud
  5. Arnaud
  6. Etienne
  7. Etienne
  8. Arnaud
  9. Arnaud
  10. Arnaud
  11. Etienne
  12. Etienne
  13. Etienne
  14. Arnaud
  15. Etienne
  16. Arnaud
  17. Etienne
  18. Arnaud
  19. Etienne
  20. Etienne
  21. Etienne
  22. Arnaud