Caspratique du mode déconnecté de Silverlight<br />Mohammed ZiedNemili<br />http://www.zied.fr<br />Arnaud Auroux<br />htt...
Tél : 01 46 08 78 50  <br />E-mail : contact@winwise.com     Site web : www.winwise.com<br />1ère société d’expertise spéc...
Sommaire<br />Silverlight<br />Couplage : problème et solution<br />Application occasionnellement connectées<br />Out Of B...
Silverlight<br />RIA : Rich Internet Application<br />Application riche déployée sur le Web dans un contexte sécurisé.<br ...
Silverlight<br />Plug-in multi-navigateurs<br />Multi-plateformes<br />Basésur.Net<br />Développement de RIA<br />
Silverlight<br />Applications métier à très fort potentiel, complexe mais …<br />
Couplage : le problème<br />Code spaghetti<br />Business Class 1<br />Data Access Class 1<br />Business Class 2<br />Data ...
Couplage : le problème<br />Applications monolithique<br />Difficilement maintenable<br />Difficile à faire évoluer<br />N...
Couplage : Vers la bonne solution<br />
Couplage : Vers la bonne solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur...
Couplage : Vers la bonne solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur...
Couplage : la solution<br />Injection de dépendances<br />ou<br />« Principe d'Holywood »<br />
Couplage : la solution<br />Classe I<br />Classe A<br />Dépend de<br />Classe J<br />Classe I<br />Classe A<br />injectés ...
Couplage : la solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur<br />Métie...
Couplage : la solution<br />Réutilisabilité<br />Maintenabilité<br />Souplesse d’architecture<br />Développement plus agil...
Cas pratique du mode déconnecté de Silverlight<br />Gestion de clients<br />Nous allons illustrer le découplage au sein de...
Cas pratique : Gestion de clients<br />Application Silverlight occasionnellement connectée<br />Isolated Storage pour le s...
Cas pratique : Gestion de clients<br />Service<br />010011111010100010101000110101101011100110101010110100<br />DataStore<...
Cas pratique : Gestion de clients<br />Client data<br />Service data<br />Service<br />010011111110011010101011010<br />01...
Cas pratique : Gestion de clients<br />Service<br />010011111110011010101011010<br />010011111110011010101011010<br />Sync...
Démonstration 1<br />Mode connecté<br />
Les applications occasionnellement connectées<br />Destinées à des utilisateurs nomades.<br />L’application peut fonctionn...
Silverlight Out Of Browser<br />Le XAP ainsi que des métadonnées sont stockés localement .<br />L’application est accessib...
Démonstration 2<br />Mode déconnecté<br />
Unity<br />
Unity<br />Propose un container d’injection de dépendances.<br />Supporte l’injection de dépendances par constructeur, par...
Exemples Unity<br />IUnityContainercontainer = new UnityContainer();<br />// Map l'interface IMainViewModel à l'implémenta...
Démonstration 3<br />Utilisation de Unity<br />
Silverlight Out Of Browser<br />SlApp<br />Réseau<br />010011111010100010101000110101101011100110101010110100<br />Isolate...
Sync Framework<br />Plateforme de synchronisation.<br />Permet l’itinérance, le partage et l’accès en mode déconnecté des ...
Sync Framework<br />Votre Application<br />Orchestrateur de synchronisation<br />delta<br />delta<br />Sync Provider<br />...
Sync Framework<br />Aujourd’hui pas de version Silverlight du Sync Framework (2010 ?)<br />Pas de tracking de certaines mo...
Démonstration 4<br />Synchronisation des données<br />
Conclusion<br />Silverlight tends vers un aspect client « lourd / léger » combinant ainsi le meilleur des 2 mondes.<br />L...
Merci de votre attention<br />Questions ?<br />
Cas Pratique Du Mode DéConnecté De Silverlight
Prochain SlideShare
Chargement dans…5
×

Cas Pratique Du Mode DéConnecté De Silverlight

3 460 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
3 460
Sur SlideShare
0
Issues des intégrations
0
Intégrations
414
Actions
Partages
0
Téléchargements
43
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Démonstration de l’application dans l’état avec ajout de nouveaux utilisateurs
  • Création du ViewModel offline + écriture de code pour la sérialization dans l’IS
  • Ajout du resolver avec système d’injection de dépendances.
  • Cas Pratique Du Mode DéConnecté De Silverlight

    1. 1.
    2. 2. Caspratique du mode déconnecté de Silverlight<br />Mohammed ZiedNemili<br />http://www.zied.fr<br />Arnaud Auroux<br />http://blogs.codes-sources.com/thadeus<br />
    3. 3. Tél : 01 46 08 78 50 <br />E-mail : contact@winwise.com Site web : www.winwise.com<br />1ère société d’expertise spécialisée sur les nouvelles technologies Microsoft<br />90 consultants experts certifiés sur les dernières technologies Microsoft , plusieurs MVP et 1 RegionalDirector<br />4 centres de compétences pour réaliser vos projets à forte valeur ajoutée :<br />Travail collaboratif <br />Business Intelligence & Data Management<br />Architecture et Cycle de vie des applications <br />Interfaces Utilisateurs et « Smart Clients »<br />1er centre de formation en France sur les technologies .Net et la BI<br />La solidité financière du groupe ALTEN<br />Pour tout renseignement : Stand N°C13, espace Communications Unifiées et Collaboration<br />
    4. 4. Sommaire<br />Silverlight<br />Couplage : problème et solution<br />Application occasionnellement connectées<br />Out Of Browser<br />Unity<br />Synchronisation des données : le SyncFramework<br />
    5. 5. Silverlight<br />RIA : Rich Internet Application<br />Application riche déployée sur le Web dans un contexte sécurisé.<br />Application offrant une grande expérience utilisateur : <br />Interactivité avec l’utilisateur<br />Utilisation de médias (audio/vidéo)<br />Animations/Transformations<br />…<br />
    6. 6. Silverlight<br />Plug-in multi-navigateurs<br />Multi-plateformes<br />Basésur.Net<br />Développement de RIA<br />
    7. 7. Silverlight<br />Applications métier à très fort potentiel, complexe mais …<br />
    8. 8. Couplage : le problème<br />Code spaghetti<br />Business Class 1<br />Data Access Class 1<br />Business Class 2<br />Data Access Class 2<br />Business Class 3<br />Data Access Class 1<br />
    9. 9. Couplage : le problème<br />Applications monolithique<br />Difficilement maintenable<br />Difficile à faire évoluer<br />Non réutilisable<br />Difficilement testable<br />Régressions<br />
    10. 10. Couplage : Vers la bonne solution<br />
    11. 11. Couplage : Vers la bonne solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur<br />Métier<br />DataAccess Interfaces<br />DataAccessimplementation<br />
    12. 12. Couplage : Vers la bonne solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur<br />Métier<br />DataAccess Interfaces<br />Factories<br />DataAccessimplementation<br />
    13. 13. Couplage : la solution<br />Injection de dépendances<br />ou<br />« Principe d'Holywood »<br />
    14. 14. Couplage : la solution<br />Classe I<br />Classe A<br />Dépend de<br />Classe J<br />Classe I<br />Classe A<br />injectés dans<br />Classe J<br />
    15. 15. Couplage : la solution<br />Métier<br />Accès aux données<br />Interface utilisateur<br />Interface utilisateur<br />Métier<br />DataAccess Interfaces<br />Injection de dépendances<br />Résolution de dépendances<br />DataAccessimplementation<br />Container IoC<br />
    16. 16. Couplage : la solution<br />Réutilisabilité<br />Maintenabilité<br />Souplesse d’architecture<br />Développement plus agile<br />Permet de charger une implémentation en fonction du contexte<br />
    17. 17. Cas pratique du mode déconnecté de Silverlight<br />Gestion de clients<br />Nous allons illustrer le découplage au sein des applications à travers un cas pratique : une application fonctionnant en mode online / offline<br />
    18. 18. Cas pratique : Gestion de clients<br />Application Silverlight occasionnellement connectée<br />Isolated Storage pour le stockage en local<br />Out Of Browser pour télécharger l’application en local<br />Syncframework pour synchroniser les données distantes<br />Unity pour l’injection de dépendances<br />
    19. 19. Cas pratique : Gestion de clients<br />Service<br />010011111010100010101000110101101011100110101010110100<br />DataStore<br />Application connectée.<br />Appel d’un Web Service pour la lecture et l’écriture de données.<br />
    20. 20. Cas pratique : Gestion de clients<br />Client data<br />Service data<br />Service<br />010011111110011010101011010<br />010011111110011010101011010<br />ViewModel<br />Entité logique permettant de faire le lien entre les données et le rendu visuel.<br />Application déconnectée.<br />LeViewModel utilise l’Isolatedstorage.<br />
    21. 21. Cas pratique : Gestion de clients<br />Service<br />010011111110011010101011010<br />010011111110011010101011010<br />Synchronisation des données offline et online.<br />
    22. 22. Démonstration 1<br />Mode connecté<br />
    23. 23. Les applications occasionnellement connectées<br />Destinées à des utilisateurs nomades.<br />L’application peut fonctionner aussi bien en mode online qu’en mode offline.<br />Téléchargement de l’application et des données en local.<br />L’isolatedstorage est mis à contribution.<br />
    24. 24. Silverlight Out Of Browser<br />Le XAP ainsi que des métadonnées sont stockés localement .<br />L’application est accessible en mode connecté et déconnecté.<br />L’application peut-être notifiée du changement d’état du réseau.<br />Le quota pour le stockage isolé passe de 1 à 25 Mo.<br />http://www.slapp.net<br />SlApp<br />
    25. 25. Démonstration 2<br />Mode déconnecté<br />
    26. 26. Unity<br />
    27. 27. Unity<br />Propose un container d’injection de dépendances.<br />Supporte l’injection de dépendances par constructeur, par setteur ou encore par appel de méthodes.<br />Résout les dépendances récursivement.<br />Les dépendances peuvent être déclarées par code ou via un fichier XML.<br />
    28. 28. Exemples Unity<br />IUnityContainercontainer = new UnityContainer();<br />// Map l'interface IMainViewModel à l'implémentation MainViewModel.<br />container.RegisterType<IMainViewModel, MainViewModel>();<br />// La même chose en mode "Singleton"<br />container.RegisterType<IMainViewModel, MainViewModel>(new ContainerControlledLifetimeManager());<br />// La même chose avec "une instance par thread" :<br />container.RegisterType<IMainViewModel, MainViewModel>(new PerThreadLifetimeManager());<br />// Spécifie comment notre Object doit être construit<br />// (ici en spécifiant un context de test):<br />container.RegisterType<Object, IObject>(new InjectionConstructor(new TestContext()));<br />
    29. 29. Démonstration 3<br />Utilisation de Unity<br />
    30. 30. Silverlight Out Of Browser<br />SlApp<br />Réseau<br />010011111010100010101000110101101011100110101010110100<br />Isolatedstorage<br />En mode déconnecté :<br />Modifications de l’entrepôt de données local.<br />Modifications de l’entrepôt de données distant.<br />… de façon désynchronisée.<br />
    31. 31. Sync Framework<br />Plateforme de synchronisation.<br />Permet l’itinérance, le partage et l’accès en mode déconnecté des données.<br />Fournit un modèle extensible qui permet d’intégrer plusieurs sources de données dans un écosystème de synchronisation.<br />Fonctionne sur un système de fournisseurs de synchronisation qui fournit la logique de synchronisation pour un type précis d’entrepôt de données.<br />Plusieurs fournisseurs sont fournis en standard (File system, Azure, etc.).<br />
    32. 32. Sync Framework<br />Votre Application<br />Orchestrateur de synchronisation<br />delta<br />delta<br />Sync Provider<br />Sync Provider<br />Données<br />Données<br />Détection des changements<br />Détection des changements<br />
    33. 33. Sync Framework<br />Aujourd’hui pas de version Silverlight du Sync Framework (2010 ?)<br />Pas de tracking de certaines modifications.<br />Silverlight ne peut pas compter sur un autre participant pour maintenir à jour ses métadonnées.<br />Une image de l’entrepôt de données est enregistrée avant d’être renvoyée au client<br />WebService<br />Le client Silverlight gère lui-même le tracking de certaines modifications<br />DataStore<br />
    34. 34. Démonstration 4<br />Synchronisation des données<br />
    35. 35. Conclusion<br />Silverlight tends vers un aspect client « lourd / léger » combinant ainsi le meilleur des 2 mondes.<br />Les outils sont là pour le développement d'applications de très grandes envergures.<br />Recommandons l’utilisation de l’IoC au quotidien.<br />A partir d’une certaine complexité, l’IoCs’impose.<br />A la portée de tout le monde.<br />
    36. 36. Merci de votre attention<br />Questions ?<br />

    ×