SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Accéder aux données avec
le Windows Runtime
Arnaud Auroux - Matthieu Mezil
Infinite Square
aauroux@infinitesquare.com - @arnaudauroux
mmezil@infinitesquare.com - @matthieumezil
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
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É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
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.)
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.)
Windows Azure Mobile Services
•
•
•
•

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

• Scheduler
• SDK
#mstechdays
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
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.)
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
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’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
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
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.)
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
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, 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
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
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
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)
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
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
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
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

• 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
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
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 du
monde mobile
• Modularité et flexibilité

#mstechdays
QUESTIONS ?

#mstechdays
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
Digital is
business

Weitere ähnliche Inhalte

Andere mochten auch

Leo pesca - Catalogo Carson Scatole
Leo pesca - Catalogo Carson ScatoleLeo pesca - Catalogo Carson Scatole
Leo pesca - Catalogo Carson ScatoleLeo Pesca
 
Leo pesca - Catalogo Colmic Girelle
Leo pesca - Catalogo Colmic GirelleLeo pesca - Catalogo Colmic Girelle
Leo pesca - Catalogo Colmic GirelleLeo Pesca
 
Leo pesca - Catalogo Carson Monofili
Leo pesca - Catalogo Carson MonofiliLeo pesca - Catalogo Carson Monofili
Leo pesca - Catalogo Carson MonofiliLeo Pesca
 
Leo pesca - Catalogo Colmic Borsetteria
Leo pesca - Catalogo Colmic BorsetteriaLeo pesca - Catalogo Colmic Borsetteria
Leo pesca - Catalogo Colmic BorsetteriaLeo Pesca
 
Leo pesca - Catalogo Colmic Galleggianti
Leo pesca - Catalogo Colmic GalleggiantiLeo pesca - Catalogo Colmic Galleggianti
Leo pesca - Catalogo Colmic GalleggiantiLeo Pesca
 
Leo pesca - Catalogo Teben Mulinelli by Carson
Leo pesca - Catalogo Teben Mulinelli by CarsonLeo pesca - Catalogo Teben Mulinelli by Carson
Leo pesca - Catalogo Teben Mulinelli by CarsonLeo Pesca
 
Leo pesca - Catalogo Carson Guadini Nasse
Leo pesca - Catalogo Carson Guadini NasseLeo pesca - Catalogo Carson Guadini Nasse
Leo pesca - Catalogo Carson Guadini NasseLeo Pesca
 
Leo Pesca - Catalogo 3 milo
Leo Pesca - Catalogo 3 miloLeo Pesca - Catalogo 3 milo
Leo Pesca - Catalogo 3 miloLeo Pesca
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftMicrosoft
 
La magie des pixels pour les nuls
La magie des pixels pour les nulsLa magie des pixels pour les nuls
La magie des pixels pour les nulsMicrosoft
 
Leo pesca - Catalogo Carson Carpfishing
Leo pesca - Catalogo Carson CarpfishingLeo pesca - Catalogo Carson Carpfishing
Leo pesca - Catalogo Carson CarpfishingLeo Pesca
 
Leo pesca - Catalogo Colmic Panieri
Leo pesca - Catalogo Colmic PanieriLeo pesca - Catalogo Colmic Panieri
Leo pesca - Catalogo Colmic PanieriLeo Pesca
 
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Microsoft
 
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...Travis Whiteside
 
Gpjc2 gce2012 P2 passage: music
Gpjc2 gce2012 P2 passage: musicGpjc2 gce2012 P2 passage: music
Gpjc2 gce2012 P2 passage: musicNurhayati Khan
 

Andere mochten auch (18)

APA_2015_FALL_Whiteside
APA_2015_FALL_WhitesideAPA_2015_FALL_Whiteside
APA_2015_FALL_Whiteside
 
Leo pesca - Catalogo Carson Scatole
Leo pesca - Catalogo Carson ScatoleLeo pesca - Catalogo Carson Scatole
Leo pesca - Catalogo Carson Scatole
 
Leo pesca - Catalogo Colmic Girelle
Leo pesca - Catalogo Colmic GirelleLeo pesca - Catalogo Colmic Girelle
Leo pesca - Catalogo Colmic Girelle
 
Leo pesca - Catalogo Carson Monofili
Leo pesca - Catalogo Carson MonofiliLeo pesca - Catalogo Carson Monofili
Leo pesca - Catalogo Carson Monofili
 
Leo pesca - Catalogo Colmic Borsetteria
Leo pesca - Catalogo Colmic BorsetteriaLeo pesca - Catalogo Colmic Borsetteria
Leo pesca - Catalogo Colmic Borsetteria
 
Leo pesca - Catalogo Colmic Galleggianti
Leo pesca - Catalogo Colmic GalleggiantiLeo pesca - Catalogo Colmic Galleggianti
Leo pesca - Catalogo Colmic Galleggianti
 
Leo pesca - Catalogo Teben Mulinelli by Carson
Leo pesca - Catalogo Teben Mulinelli by CarsonLeo pesca - Catalogo Teben Mulinelli by Carson
Leo pesca - Catalogo Teben Mulinelli by Carson
 
Leo pesca - Catalogo Carson Guadini Nasse
Leo pesca - Catalogo Carson Guadini NasseLeo pesca - Catalogo Carson Guadini Nasse
Leo pesca - Catalogo Carson Guadini Nasse
 
Leo Pesca - Catalogo 3 milo
Leo Pesca - Catalogo 3 miloLeo Pesca - Catalogo 3 milo
Leo Pesca - Catalogo 3 milo
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
 
La magie des pixels pour les nuls
La magie des pixels pour les nulsLa magie des pixels pour les nuls
La magie des pixels pour les nuls
 
Leo pesca - Catalogo Carson Carpfishing
Leo pesca - Catalogo Carson CarpfishingLeo pesca - Catalogo Carson Carpfishing
Leo pesca - Catalogo Carson Carpfishing
 
Leo pesca - Catalogo Colmic Panieri
Leo pesca - Catalogo Colmic PanieriLeo pesca - Catalogo Colmic Panieri
Leo pesca - Catalogo Colmic Panieri
 
ANNUAL RETURN
ANNUAL RETURNANNUAL RETURN
ANNUAL RETURN
 
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
 
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...
Prazosin for the Treatment of Nightmares Related to Posttraumatic Stress Diso...
 
E- book 2015
E- book 2015E- book 2015
E- book 2015
 
Gpjc2 gce2012 P2 passage: music
Gpjc2 gce2012 P2 passage: musicGpjc2 gce2012 P2 passage: music
Gpjc2 gce2012 P2 passage: music
 

Mehr von Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Mehr von Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Accéder aux données avec le Windows Runtime

  • 1.
  • 2. Accéder aux données avec le Windows Runtime Arnaud Auroux - Matthieu Mezil Infinite Square aauroux@infinitesquare.com - @arnaudauroux mmezil@infinitesquare.com - @matthieumezil
  • 3. 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
  • 4. 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
  • 5. STRATÉGIES D’ACCÈS AUX DONNÉES Quelle technologie utiliser ? #mstechdays
  • 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 (WCF, ASMX, Syndication, etc.)
  • 7. 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.)
  • 8. Windows Azure Mobile Services • • • • Azure Cross-platform Node.js Fonctionnalités orientées mobiles – Push, Authentification • Scheduler • SDK #mstechdays
  • 9. WINDOWS AZURE MOBILE SERVICES Développement d’un backend complet #mstechdays Design/UX/UI
  • 10. 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.)
  • 11. 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
  • 13. 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
  • 15. 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.)
  • 16. 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
  • 17. ASP. NET WEB API Structuration personnalisée de la couche service #mstechdays Design/UX/UI
  • 18. LE CLIENT ET LES DONNÉES Consommation et mode déconnecté #mstechdays
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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)
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. LE CLIENT ET LES DONNÉES #mstechdays Design/UX/UI
  • 27. IMPLICATIONS DU 3-TIERS Tracking des modifications clientes et les accès concurrents #mstechdays
  • 28. 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
  • 29. 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
  • 33. 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
  • 35. 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

Hinweis der Redaktion

  1. 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)
  2. 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
  3. Montrerwizard de creationconnected serviceRéférencement serviceMontrer proxy généré dans le app.xaml.csCréation table todoitemAjout classe todoitemAjout snipetxamlInsertAsyncMontrer dashboard azure8mins
  4. Création d’entité, contexte et génération de la baseCréerApp_DataEnable-MigrationsAdd-Migration InitialUpdate-Database -Verbose
  5. Peu ou pas de code côté serveur
  6. Install-Package Microsoft.OData.EntityFrameworkProvider –PreHériter de EntityFrameworkDataServicehttp://localhost:38174/EventsService.svc/Sessions?$filter=Title eq 'WAQS‘
  7. 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
  8. Remplace System.Net.Http.HttpClient et WinJS.xhrCache commun avec ie et cookie webview
  9. Manipulation HttpClient (sur l’API Orders)GetAsyncConfigureAwaitCancellationTokenCacheLocalFolder si pas de InternetAccessHttpFilter et Retry (démo filter)SQLite avec BD comics