Accéder aux données avec
le Windows Runtime
Arnaud Auroux - Matthieu Mezil
Infinite Square
aauroux@infinitesquare.com - @a...
Infinite Square stand 19
 Société de conseil, expertise, réalisation, formation, spécialisée dans le développement d’appl...
Accéder aux données avec le Windows Runtime
• Accès direct (Bluetooth, UDP, etc.)
• Modèle de développement 3 (ou n) tiers...
STRATÉGIES D’ACCÈS AUX
DONNÉES
Quelle technologie utiliser ?

#mstechdays
Stratégies d’accès aux données
non

non

BDD
existante ?

Windows Azure
Mobile Services

non

EF et/ou SQL +
ASP.NET WEB
A...
Stratégies d’accès aux données
non

non

BDD
existante ?

Windows Azure
Mobile Services

non

EF et/ou SQL +
ASP.NET WEB
A...
Windows Azure Mobile Services
•
•
•
•

Azure
Cross-platform
Node.js
Fonctionnalités orientées mobiles
– Push, Authentifica...
WINDOWS AZURE MOBILE
SERVICES
Développement d’un backend complet

#mstechdays

Design/UX/UI
Stratégies d’accès aux données
non

non

BDD
existante ?

Windows Azure
Mobile Services

non

EF et/ou SQL +
ASP.NET WEB
A...
Entity Framework
• Accès aux données côté serveur
– Gagner en productivité et maintenabilité
– Abstraction de la base de d...
ENTITY FRAMEWORK
Code First

#mstechdays

Design/UX/UI
WCF Data Services
• Manipulation des données depuis le client
– Requêtage
• LINQ
• Depuis une url
• Développement d’interc...
WCF DATA SERVICES

#mstechdays

Design/UX/UI
Stratégies d’accès aux données
non

non

BDD
existante ?

Windows Azure
Mobile Services

non

EF et/ou SQL +
ASP.NET WEB
A...
ASP. NET Web API
• REST
• Pas de limitation vis-à-vis du protocole HTTP
• Permet de définir de façon simple des
méthodes "...
ASP. NET WEB API
Structuration personnalisée de la couche service

#mstechdays

Design/UX/UI
LE CLIENT ET LES DONNÉES
Consommation et mode déconnecté

#mstechdays
Le client et les données
• Socket, Proxy SOAP, Syndication
• Windows.Web.Http.HttpClient
– RESTful : GET, POST, PUT, DELET...
Le client et les données
• Windows.Web.Http.HttpClient
– Communication asynchrone
• async, await
• Gestion élégante du con...
Le client et les données
• Transfers en tâche de fond
–
–
–
–
–

#mstechdays

Windows.Networking.BackgroundTransfer
Downlo...
Le client et les données
• Sérialisation/désérialisation
–
–
–
–

#mstechdays

JSON/XML
Windows.Data.Json ou System.Xml.Li...
Le client et les données
• Connectivité
– NetworkInformation et ConnectionProfile
– Détails
• NetworkAdapter et « IANA int...
Le client et les données
• Persistence
– app data API
• 2 types de données
– Fichiers : système de fichier (répertoires, a...
Le client et les données
Local app data

Roaming app data

Données locale
non
synchronisées

Synchronisation

Conservées
e...
LE CLIENT ET LES DONNÉES

#mstechdays

Design/UX/UI
IMPLICATIONS DU 3-TIERS
Tracking des modifications clientes et les accès concurrents

#mstechdays
Tracking des modifications clientes
• Gestion d’un graphe de données
– Manipulation de données relationnelles déconnectées...
Les accès concurrents
• Problématique au niveau de la couche
d’accès aux données
• Plusieurs types de résolutions possible...
1

#mstechdays
1

#mstechdays
1

#mstechdays
Conclusion
• Plusieurs stratégies Web pour des cas
d’utilisation client différents
• Une API WinRT adaptée aux exigences d...
QUESTIONS ?

#mstechdays
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!...
Digital is
business
Accéder aux données avec le Windows Runtime
Prochain SlideShare
Chargement dans…5
×

Accéder aux données avec le Windows Runtime

704 vues

Publié le

Windows 8.1 fournit un modèle de développement client offrant plusieurs possibilités basées sur un modèle trois tiers pour l'accès et le stockage des données. Cette session présentera les différentes options qui s'offrent à vous en fonction de votre stratégie. Nous verrons les nouveautés apportées par Entity Framework 6 pour l'accès aux données ainsi que les différents moyens d'exposer ces données avec une architecture orientée service utilisant WCF Data Services/OData, Windows Azure Mobile Services ou une Web API personnalisée. De plus l'aspect mobile d'une application Windows 8 imposant souvent la gestion d'un mode déconnecté, nous verrons les techniques pour consommer mais également persister et synchroniser de la donnée grâce à la sérialisation ou encore un moteur de base de donnée client comme SQLite.

Speakers : Matthieu Mezil (MVP), Arnaud Auroux (MVP)

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
704
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Nous ne parlons pas d’accès direct (connexion bluetooth, tcp/udp wifi direct, aux objets connectés etc…)On parle plus souvent de N tiers (ici on simplifie les choses)
  • Backend existantCouche service existanteCréation d’une couche servicesExposition via Web APIPas de backendBDD existanteEntity FrameworkScénario data centrique et simple : WCF Data ServicesScénario avancé : Web APIBDD non existanteBesoin standard (authentification social, push, règles métier simples : Windows Azure Mobile ServicesAvancé : EF + Web API
  • Montrerwizard de creationconnected serviceRéférencement serviceMontrer proxy généré dans le app.xaml.csCréation table todoitemAjout classe todoitemAjout snipetxamlInsertAsyncMontrer dashboard azure8mins
  • Création d’entité, contexte et génération de la baseCréerApp_DataEnable-MigrationsAdd-Migration InitialUpdate-Database -Verbose
  • Peu ou pas de code côté serveur
  • Install-Package Microsoft.OData.EntityFrameworkProvider –PreHériter de EntityFrameworkDataServicehttp://localhost:38174/EventsService.svc/Sessions?$filter=Title eq 'WAQS‘
  • Création model edmxnorthwindCréationcontroller web api vide (montrer le wizard avancé)Création action GetOrders et test dans chromeCréation action GetOrder(int id) et test dans chromeMontrer HttpResponseException et HttpResponseMessageCréation api personnalisée (GetOrders by city)Consommation cliente avec DefaultRequestHeaders.Accept JSON
  • Remplace System.Net.Http.HttpClient et WinJS.xhrCache commun avec ie et cookie webview
  • Manipulation HttpClient (sur l’API Orders)GetAsyncConfigureAwaitCancellationTokenCacheLocalFolder si pas de InternetAccessHttpFilter et Retry (démo filter)SQLite avec BD comics
  • Accéder aux données avec le Windows Runtime

    1. 1. Accéder aux données avec le Windows Runtime Arnaud Auroux - Matthieu Mezil Infinite Square aauroux@infinitesquare.com - @arnaudauroux mmezil@infinitesquare.com - @matthieumezil
    2. 2. Infinite Square stand 19  Société de conseil, expertise, réalisation, formation, spécialisée dans le développement d’applications logicielles innovantes sur les technologies Microsoft  100% des consultants certifiés Microsoft, parmi lesquels 10 MVP et 2 Nokia Champions  GOLD Certified Partner sur 5 domaines de compétences  Centre de formation agrée #mstechdays
    3. 3. Accéder aux données avec le Windows Runtime • Accès direct (Bluetooth, UDP, etc.) • Modèle de développement 3 (ou n) tiers #mstechdays
    4. 4. STRATÉGIES D’ACCÈS AUX DONNÉES Quelle technologie utiliser ? #mstechdays
    5. 5. Stratégies d’accès aux données non non BDD existante ? Windows Azure Mobile Services non EF et/ou SQL + ASP.NET WEB API #mstechdays oui Backend existant ? non oui Scénario basique / data centrique ? oui Exposition via ASP.NET WEB API EF + WCF Data Services Couche service existante ? oui Consommation (WCF, ASMX, Syndication, etc.)
    6. 6. Stratégies d’accès aux données non non BDD existante ? Windows Azure Mobile Services non EF et/ou SQL + ASP.NET WEB API #mstechdays oui Backend existant ? non oui Scénario basique / data centrique ? oui Exposition via ASP.NET WEB API EF + WCF Data Services Couche service existante ? oui Consommation (SOAP, Syndication, etc.)
    7. 7. Windows Azure Mobile Services • • • • Azure Cross-platform Node.js Fonctionnalités orientées mobiles – Push, Authentification • Scheduler • SDK #mstechdays
    8. 8. WINDOWS AZURE MOBILE SERVICES Développement d’un backend complet #mstechdays Design/UX/UI
    9. 9. Stratégies d’accès aux données non non BDD existante ? Windows Azure Mobile Services non EF et/ou SQL + ASP.NET WEB API #mstechdays oui Backend existant ? non oui Scénario basique / data centrique ? oui Exposition via ASP.NET WEB API EF + WCF Data Services Couche service existante ? oui Consommation (SOAP, Syndication, etc.)
    10. 10. Entity Framework • Accès aux données côté serveur – Gagner en productivité et maintenabilité – Abstraction de la base de données • Version 6 – Amélioration des performances – Ajout des méthodes Async • Permet d’augmenter la scalabilité • Code First ou Entity Data Model #mstechdays
    11. 11. ENTITY FRAMEWORK Code First #mstechdays Design/UX/UI
    12. 12. WCF Data Services • Manipulation des données depuis le client – Requêtage • LINQ • Depuis une url • Développement d’intercepteurs sur les requêtes côté serveur – Persistance • Pertinent dans le cas d’un développement RAD – Application Data Centric basique – Particulièrement bien intégré avec Entity Framework • Protocole OData #mstechdays
    13. 13. WCF DATA SERVICES #mstechdays Design/UX/UI
    14. 14. Stratégies d’accès aux données non non BDD existante ? Windows Azure Mobile Services non EF et/ou SQL + ASP.NET WEB API #mstechdays oui Backend existant ? non oui Scénario basique / data centrique ? oui Exposition via ASP.NET WEB API EF + WCF Data Services Couche service existante ? oui Consommation (SOAP, Syndication, etc.)
    15. 15. ASP. NET Web API • REST • Pas de limitation vis-à-vis du protocole HTTP • Permet de définir de façon simple des méthodes "métier" dans une logique SOA • Contrôle total du contenu renvoyé (non limité aux données structurées sérialisables) • Grande flexibilité #mstechdays
    16. 16. ASP. NET WEB API Structuration personnalisée de la couche service #mstechdays Design/UX/UI
    17. 17. LE CLIENT ET LES DONNÉES Consommation et mode déconnecté #mstechdays
    18. 18. Le client et les données • Socket, Proxy SOAP, Syndication • Windows.Web.Http.HttpClient – RESTful : GET, POST, PUT, DELETE – Gestion d’erreur simplifiée – Contrôle fin de la couche HTTP cliente • Contrôle des headers • Authentification • Formats multiples (texte, stream, etc.) • Cache, Filtres #mstechdays
    19. 19. Le client et les données • Windows.Web.Http.HttpClient – Communication asynchrone • async, await • Gestion élégante du contexte – Retour automatique sur le contexte du thread appelant – Configurable (le switch de contexte est coûteux !) • Annulation #mstechdays
    20. 20. Le client et les données • Transfers en tâche de fond – – – – – #mstechdays Windows.Networking.BackgroundTransfer Download et Upload Fichiers (de taille importante) HTTP, HTTPS et FTP ContentPrefetcher
    21. 21. Le client et les données • Sérialisation/désérialisation – – – – #mstechdays JSON/XML Windows.Data.Json ou System.Xml.Linq JsonObject vs Xdocument Portabilité WP8 ? (Json.NET)
    22. 22. Le client et les données • Connectivité – NetworkInformation et ConnectionProfile – Détails • NetworkAdapter et « IANA interface type » (http://www.iana.org/assignments/ianaiftypemib/ianaiftype-mib ) #mstechdays
    23. 23. Le client et les données • Persistence – app data API • 2 types de données – Fichiers : système de fichier (répertoires, arborescence) – Paramètres : base de registre (conteneurs, données composites) • Localisation des données transparente grâce à l’app data API • Par application et par utilisateur – Données structurées et relationnelle => SQLite, #mstechdays
    24. 24. Le client et les données Local app data Roaming app data Données locale non synchronisées Synchronisation Conservées entre les sessions Liées au compte Microsoft de l’utilisateur Limitée (taille et durée) #mstechdays Temporary app data A utiliser comme un cache
    25. 25. LE CLIENT ET LES DONNÉES #mstechdays Design/UX/UI
    26. 26. IMPLICATIONS DU 3-TIERS Tracking des modifications clientes et les accès concurrents #mstechdays
    27. 27. Tracking des modifications clientes • Gestion d’un graphe de données – Manipulation de données relationnelles déconnectées • Persistance transactionnelle du graphe – Permettre au serveur d’identifier les modifications • WCF Data Services – Informer le contexte des changements • Web API – Intégrer une logique de report de modifications #mstechdays
    28. 28. Les accès concurrents • Problématique au niveau de la couche d’accès aux données • Plusieurs types de résolutions possibles – Par ex. avec EF : le dernier a raison avec une logique de merge #mstechdays
    29. 29. 1 #mstechdays
    30. 30. 1 #mstechdays
    31. 31. 1 #mstechdays
    32. 32. Conclusion • Plusieurs stratégies Web pour des cas d’utilisation client différents • Une API WinRT adaptée aux exigences du monde mobile • Modularité et flexibilité #mstechdays
    33. 33. QUESTIONS ? #mstechdays
    34. 34. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays
    35. 35. Digital is business

    ×