accéder aux données avec le windows runtime
DESCRIPTION
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)TRANSCRIPT
Accéder aux données avec le Windows
RuntimeArnaud Auroux - Matthieu MezilInfinite Square
[email protected] - @[email protected] - @matthieumezil
#mstechdays
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
Infinite Square stand 19
#mstechdays
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
STRATÉGIES D’ACCÈS AUX DONNÉESQuelle technologie utiliser ?
#mstechdays
Stratégies d’accès aux donnéesBackend existant ?
Couche service
existante ?
Consommation (WCF, ASMX, Syndication,
etc.)
BDD existante
?
Scénario basique /
data centrique ?
EF et/ou SQL + ASP.NET WEB
API
EF + WCF Data Services
Windows Azure Mobile
Services
Exposition via ASP.NET WEB API
oui
ouioui
oui
non
non
non
non
#mstechdays
Stratégies d’accès aux donnéesBackend existant ?
Couche service
existante ?
Consommation (SOAP,
Syndication, etc.)
BDD existante
?
Scénario basique /
data centrique ?
EF et/ou SQL + ASP.NET WEB
API
EF + WCF Data Services
Windows Azure Mobile
Services
Exposition via ASP.NET WEB API
oui
ouioui
oui
non
non
non
non
#mstechdays
• Azure• Cross-platform• Node.js• Fonctionnalités orientées mobiles– Push, Authentification
• Scheduler• SDK
Windows Azure Mobile Services
démo
Design/UX/UI#mstechdays
WINDOWS AZURE MOBILE SERVICESDéveloppement d’un backend complet
#mstechdays
Stratégies d’accès aux donnéesBackend existant ?
Couche service
existante ?
Consommation (SOAP,
Syndication, etc.)
BDD existante
?
Scénario basique /
data centrique ?
EF et/ou SQL + ASP.NET WEB
API
EF + WCF Data Services
Windows Azure Mobile
Services
Exposition via ASP.NET WEB API
oui
ouioui
oui
non
non
non
non
#mstechdays
• 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
Entity Framework
démo
Design/UX/UI#mstechdays
ENTITY FRAMEWORK
Code First
#mstechdays
• 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
WCF Data Services
démo
Design/UX/UI#mstechdays
WCF DATA SERVICES
#mstechdays
Stratégies d’accès aux donnéesBackend existant ?
Couche service
existante ?
Consommation (SOAP,
Syndication, etc.)
BDD existante
?
Scénario basique /
data centrique ?
EF et/ou SQL + ASP.NET WEB
API
EF + WCF Data Services
Windows Azure Mobile
Services
Exposition via ASP.NET WEB API
oui
ouioui
oui
non
non
non
non
#mstechdays
• 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é
ASP. NET Web API
démo
Design/UX/UI#mstechdays
ASP. NET WEB API
Structuration personnalisée de la couche service
#mstechdays
LE CLIENT ET LES DONNÉES
Consommation et mode déconnecté
#mstechdays
• 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
Le client et les données
#mstechdays
• 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
Le client et les données
#mstechdays
• Transfers en tâche de fond– Windows.Networking.BackgroundTransfer– Download et Upload– Fichiers (de taille importante)– HTTP, HTTPS et FTP– ContentPrefetcher
Le client et les données
#mstechdays
• Sérialisation/désérialisation– JSON/XML– Windows.Data.Json ou System.Xml.Linq– JsonObject vs Xdocument– Portabilité WP8 ? (Json.NET)
Le client et les données
#mstechdays
• Connectivité– NetworkInformation et ConnectionProfile– Détails• NetworkAdapter et « IANA interface
type » (http://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib )
Le client et les données
#mstechdays
• 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,
IndexedDB
Le client et les données
#mstechdays
Le client et les données
Local app data
Données locale non
synchronisées
Conservées entre les sessions
Roaming app data
Synchronisation
Liées au compte
Microsoft de l’utilisateur
Limitée (taille et durée)
Temporary app data
A utiliser comme un
cache
démo
Design/UX/UI#mstechdays
LE CLIENT ET LES DONNÉES
#mstechdays
IMPLICATIONS DU 3-TIERS
Tracking des modifications clientes et les accès concurrents
#mstechdays
• 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
Tracking des modifications clientes
#mstechdays
• 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
Les accès concurrents
#mstechdays
1
#mstechdays
1
#mstechdays
1
#mstechdays
• 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é
Conclusion
#mstechdays
QUESTIONS ?
#mstechdays
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 !
Donnez votre avis !
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Digital is business