Windows phone 7 sync application sur Azure, création d'application offline ready avec le sync frame

345 views
278 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
345
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Windows phone 7 sync application sur Azure, création d'application offline ready avec le sync frame

  1. 1. 1 Windows Phone 7 Sync application on Azure David Allaigre Lead Solution Internet Digital Marketing Avanade
  2. 2. 2 Objectifs de la session Découvrir comment concevoir une application « Offline » ready. Découvrir comment utiliser le Sync Framework 4.0 Découvrir comment utiliser la plateforme Azure pour une application « Offline » Ready. Gagner du temps en s’évitant quelques problèmes !
  3. 3. 3 Un peu d’histoire ! L’ère du mainframe : Application 1 Tiers : l’écran est déporté ! L’ère de la micro informatique : Application 2 Tiers : on externalise la base de données. L’ère du réseau et de l’internet : Application 3 Tiers : Base Middle Service (Serveur Web) Client (Browser) L’ère de la mobilité & du cloud: Application n tiers, explosion des applications multi devices. Disparition du stockage on « promise », développement des offres « Software as a Service »
  4. 4. 4 Mais un vieux problème Comment résoudre les problèmes liés à la mobilité : Une promesse intenable : Une connexion partout et à un prix acceptable ! Les applications full web n’ont plus d’intérêt sans connexion : Transformer son smartphone en brique inutile : les joies du « roaming » 
  5. 5. 5 Des solutions ? Comment toujours avoir les « données » nécessaires à son application même hors connexion. Garder les données sur soi ! Ex les contacts téléphoniques Copier les données avant mobilité sur le device et les recopier au retour : ex fichier Access Excel Utiliser la réplication de données : SQL Replication ou rejouer un fichier de transaction Offline Client Server / Service Remote Store Local Data Cache Client App Sync
  6. 6. 6 Sync Framework Sync Simple protocol (OData & Sync) Minimal client & store requirements Windows Server / IIS Sync Endpoints Auth / Mgmt / Bus Logic SyncFx SQL Server Windows Azure Sync Endpoints Auth / Mgmt / Bus Logic SyncFx SQL Azure Easy to develop the sync endpoints Client API support Architecture générale
  7. 7. 7 Sync Framework Isolated Storage Provider Silverlight Offline Application OData Sync Proxy Cache Controller Isolated Storage Sync Logic Collections Silverlight Offline Client Windows Azure Application SQL Azure SQL Azure Provider Sync Logic OData Sync Endpoint Busines s Logic Architecture Silverlight
  8. 8. 8 De la méthode Le « offline ready » doit être pris en compte dès le départ Il n’est pas possible d’accéder à la base de façon totale: Problème de sécurité: avoir une copie de données auxquelles on ne devrait pas accéder. Problème de stockage sur le device On va partitionner notre base par table et par ligne. On ne synchronise qu’une partition. On accepte l’idée d’avoir de l’info en double dans la base pour des gains de performance et s’éviter des tables de liaisons à synchroniser.
  9. 9. 9 Pour des raisons de santé mentale ! Le développement d’applications « offline » ready suivra une montée en charge de la difficulté : Etape 1 : Création d’une base SQL locale, d’un service de synchronisation local et d’un client facilement débuggable (ex Silverlight) Etape 2 : On externalise sur le cloud la base SQL Etape 3 : On externalise le service sur le cloud Etape 4 : On passe sur des clients moins facilement débuggables ex WP7.
  10. 10. 10 Le scénario de la démo Une application de « Wishes list » : Un utilisateur peut créer et manager sa liste en mode online Offline Les entités : User : Entité représentant les utilisateurs WishList : Entité représentant les listes de vœux Wish : Entité représentant les vœux Connected : Entité permettant de donner accès a sa liste de vœux à d’autres utilisateurs
  11. 11. 11 Etape 1: Génération du fichier de config Après installation du sdk Dans le répertoire : Microsoft SDKsMicrosoft Sync Framework4.0bin SyncSvcUtil : outil en ligne de commande SyncSvcUtilHelper : GUI du même outil. L’outil va permettre : De générer le fichier de config De provisionner la base De générer les proxys
  12. 12. 12 Etape 1 : Génération du fichier de config Le fichier de config contient : La structure des données Les informations de localisation des données Le partitionning des données
  13. 13. 13 Etape 2 : Provisionning de la base Le provisionning consiste en la génération de tables au sein de la base pour la gestion de la synchonisation. L’opération de provisionning est réversible à tout moment.
  14. 14. 14 Etape 3 : Génération des fichiers pour le serveur et les clients Côté serveur : OData Service + génération des entités Modification des fichiers serveurs pour inclure la configuration et les informations de partitionning Côté client : Au choix : dans le cas de la démo l’isolateStorage
  15. 15. 15 Etape 4 : Utilisation des proxy client Les principales fonctions : Pour le stockage local : OfflineContext.Load LoadAsync OfflineContext.ClearCache OfflineContext.AddItem DeleteItem OfflineContext.SaveChanges OfflineContext.CancelChanges Pour la synchronisation OfflineContext.CacheControler.IsBusy OfflineContext.CacheControler.RefreshAsync Attention : Bien utiliser le dispatcher car potentiellement les retours sont dans des threads différents
  16. 16. 16 Etape 4 : Utilisation des proxy client LoadAsync : Chargement des données depuis le storage local Erreur? ClearCache, RefreshAsync AddItem Modify Item Delete Item Save Changes Action cliente : Sync RefreshAsync
  17. 17. 17 Etape 5 : Déplacement vers SQL Azure Attention dès le départ : Certains datatypes n’existent pas : GUID ! L’utilisation de SQL Azure est très similaire à SQL Server. Sync framework 4.0 est compatible avec SQL Azure de manière native.
  18. 18. 18 Etape 6 : Déplacement du service Il s’agit d’un simple projet web offrant un web service sur un binding webHttpBinding… Mais cela ne marche pas comme nous le voudrions : Sync Framework 4.0 est basé sur Sync Framework 2.1 Sync Framework 2.1 utilise une dll COM qu’il faut registrer -> On utilise donc un code dans le WebRole. OnStart pour « registrer » la dll.
  19. 19. 19 Etape 7 : Connection du WP7 vers le cloud Peu de différence avec la version Silverlight, on peut utiliser le même ViewModel et partager une grande partie du code. Lors des tests sur le device, le déconnecter pour être sûr de passer par la connexion mobile. Attention à la taille des données à synchroniser.
  20. 20. 20 Conclusion Une application doit être réfléchi avant ! Les capacités offline d’une application doivent être envisagées d’un point de vue fonctionnelle et technique Certaines fonctions n’ont aucun intérêt en mode offline. Attention à la sécurité des données, le offline sort de l’information accessible souvent sans authentification. Merci à tous, et bon Techdays…

×