accéder aux données avec le windows runtime

36

Upload: microsoft-developpeurs

Post on 05-Dec-2014

510 views

Category:

Technology


2 download

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

Page 1: Accéder aux données avec le Windows Runtime
Page 2: Accéder aux données avec le Windows Runtime

Accéder aux données avec le Windows

RuntimeArnaud Auroux - Matthieu MezilInfinite Square

[email protected] - @[email protected] - @matthieumezil

Page 3: Accéder aux données avec le Windows Runtime

#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

Page 4: Accéder aux données avec le Windows Runtime

#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

Page 5: Accéder aux données avec le Windows Runtime

#mstechdays

STRATÉGIES D’ACCÈS AUX DONNÉESQuelle technologie utiliser ?

Page 6: Accéder aux données avec le Windows Runtime

#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

Page 7: Accéder aux données avec le Windows Runtime

#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

Page 8: Accéder aux données avec le Windows Runtime

#mstechdays

• Azure• Cross-platform• Node.js• Fonctionnalités orientées mobiles– Push, Authentification

• Scheduler• SDK

Windows Azure Mobile Services

Page 9: Accéder aux données avec le Windows Runtime

démo

Design/UX/UI#mstechdays

WINDOWS AZURE MOBILE SERVICESDéveloppement d’un backend complet

Page 10: Accéder aux données avec le Windows Runtime

#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

Page 11: Accéder aux données avec le Windows Runtime

#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

Page 12: Accéder aux données avec le Windows Runtime

démo

Design/UX/UI#mstechdays

ENTITY FRAMEWORK

Code First

Page 13: Accéder aux données avec le Windows Runtime

#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

Page 14: Accéder aux données avec le Windows Runtime

démo

Design/UX/UI#mstechdays

WCF DATA SERVICES

Page 15: Accéder aux données avec le Windows Runtime

#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

Page 16: Accéder aux données avec le Windows Runtime

#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

Page 17: Accéder aux données avec le Windows Runtime

démo

Design/UX/UI#mstechdays

ASP. NET WEB API

Structuration personnalisée de la couche service

Page 18: Accéder aux données avec le Windows Runtime

#mstechdays

LE CLIENT ET LES DONNÉES

Consommation et mode déconnecté

Page 19: Accéder aux données avec le Windows Runtime

#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

Page 20: Accéder aux données avec le Windows Runtime

#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

Page 21: Accéder aux données avec le Windows Runtime

#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

Page 22: Accéder aux données avec le Windows Runtime

#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

Page 23: Accéder aux données avec le Windows Runtime

#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

Page 24: Accéder aux données avec le Windows Runtime

#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

Page 25: Accéder aux données avec le Windows Runtime

#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

Page 26: Accéder aux données avec le Windows Runtime

démo

Design/UX/UI#mstechdays

LE CLIENT ET LES DONNÉES

Page 27: Accéder aux données avec le Windows Runtime

#mstechdays

IMPLICATIONS DU 3-TIERS

Tracking des modifications clientes et les accès concurrents

Page 28: Accéder aux données avec le Windows Runtime

#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

Page 29: Accéder aux données avec le Windows Runtime

#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

Page 30: Accéder aux données avec le Windows Runtime

#mstechdays

1

Page 31: Accéder aux données avec le Windows Runtime

#mstechdays

1

Page 32: Accéder aux données avec le Windows Runtime

#mstechdays

1

Page 33: Accéder aux données avec le Windows Runtime

#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

Page 34: Accéder aux données avec le Windows Runtime

#mstechdays

QUESTIONS ?

Page 35: Accéder aux données avec le Windows Runtime

#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 !

Page 36: Accéder aux données avec le Windows Runtime

© 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