windows phone 7 sync application sur azure, création d'application offline ready avec le sync...

20
1 Windows Phone 7 Sync application on Azure David Allaigre Lead Solution Internet Digital Marketing Avanade

Upload: microsoft-decideurs-it

Post on 01-Nov-2014

386 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

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

1

Windows Phone 7 Sync

application on Azure

David Allaigre Lead Solution Internet Digital Marketing Avanade

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

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 !

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

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 »

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

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 »

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

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

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

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

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

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

Business Logic

Architecture Silverlight

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

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.

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

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.

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

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

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

11

Etape 1: Génération du fichier de

config

Après installation du sdk

Dans le répertoire : Microsoft SDKs\Microsoft Sync

Framework\4.0\bin

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

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

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

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

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.

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

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

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

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

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

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

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

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.

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

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.

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

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.

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

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…