2
ARC 303 Choisir une technologie d’accès aux données distantes
Février 2011
David Rousset & Stéphanie HertrichRelations Techniques DéveloppeursMicrosoft
3
Historique de l’accès aux données
Structurer et stocker Fichiers, DB, Tables, Relations
Multi-client, résolution des conflits Serveur de BDD
Simplifier l’accès aux données ODBC, Providers, ADO .Net, …
Mapping Objet-Relationnel Linq To Sql, Entity Framework, Nhibernate, …
Publication des données sur le réseau ?
Evol
ution
de
l’acc
ès a
ux d
onné
es
4
Data
DAL
WP7 Silverlight .Net Html5
LAN, WAN, …
?
? Exposition des données
Consommation et manipulationdes données
De quoi parle-t-on ?
5
Agenda
Présentation des candidats CaractéristiquesDémoRemise en contexte client avec diagramme
Conclusion
6
Les nominés sont…
1. WCF2. OData3. WCF Data Services4. WCF RIA Services
Il n’y aura pas 1 seul gagnant. Tout dépend du contexte de déploiement et d’utilisation de votre application.
7
1. WCF
CaractéristiquesExposition de services métier au sens large (web services) Choix des protocoles et supports de communication (tcp binaire, http, MSMQ, mode sécurisé, SOAP, REST…)Fonctionnalités plus évoluées (Duplex channel, sécurité,…) Choix de l’hébergement (exe, Service, IIS)…
Accès aux données:Ecriture manuelle des méthodes d’accès et de manipulation des données (=métier)
8
Les démos
Toutes les démos se basent sur la même :
• source de données (Data): Base Northwind dans Sql Server
• couche d’accès aux données (DAL) : Entity Framework : table Customer
9
IIS, .exe, service Windows
WCF : Découplage entre le service et sa publication
Customers ICustomers Get() Create() Update Delete()
.config
http
tcp
bina
ry
MSM
Q
…
EndPoints definitions
10
DémoAccès aux données distantes à travers WCF
11
2. WCF dans le contexte de l’accès aux données
Avantages• Maitrise complète des services et données
exposées et de la forme sous laquelle on les expose
Inconvénients• On écrit (et on maintient) tous les services
manuellement• Pas adapté pour de l’accès générique à des
données• Convient mieux à des services métiers, dont les
cas d’utilisation sont plus prédictibles
13
2. OData
CaractéristiquesExposition de données à travers des URI http REST sous la forme de flux Atom ou JSONAccessible par des clients hétérogènes (.Net ou pas)SDK clients (http://www.odata.org)Filtrage à la sourceMéthodes CRUD
14
DémoAccès à des données en OData en http REST avec mon navigateur préféré
15
2. OData
AvantagesFiltrage à la sourceInteropérabilitéSDK et librairies clientes (http://www.odata.org)OData : de plus en plus d’applications publient leurs données en OData (SQL Azure, Sharepoint, …)
(=> Migration des données sous SQL Azure =Accès natif en OData en 0 ligne de code !)
16
3. WCF Data ServicesWCF Data Services est
une implémentation de OData pour .Net
Génération automatique des méthodes d’accès et de manipulation des données
17
DémoAccès aux données distantes avec WCF Data Services
18
3. WCF Data Services
AvantagesAvantages de ODataGénération automatique des méthodes d’accès et de manipulation des donnéesAccélérateurs pour .Net côté client et serveur avec WCF Data Services
19
Data
DAL
WP7 Silverlight .NetHtml 5,
Objective-C, Java, …
LAN, WAN, …
Avec WCF Data Services
WCF Data Services
httpREST
Proxy + LINQ
Proxy + LINQ
Proxy + LINQ
Génération des méthodes d’accès aux données
SDKs clients
20
4. WCF RIA Services
• Technologie permettant de simplifier et d’accélérer le développement de l’accès aux données par un client Silverlight
• Répondre à ce besoin principal : création d’applications RIA d’entreprise avec une architecture n-tiers
• Scénario très vertical
21
Démo5 min pour vous convaincre de la productivité de WCF RIA Services !
23
Data
DAL
WP7Silverlight
.NetHtml 5
LAN, WAN, …
WCF RIA Services et Silverlight
WCF RIA Services
OData (*)(http REST)
SOAP(http)
RIA Specific (http SOAP bin)
• Proxy • LINQ• Masquage
comm. client/serveur
• Validation saisie
• Expérience 1-tiers
• Contrôles de haut niveau
JSON(http REST)
Génération des méthodes d’accès aux données Contrôles des droits d’accès aux méthodes
24
DémoOuverture de WCF RIA Services via endpoint OData
25
Data
DAL
WP7Silverlight
.NetHtml 5
LAN, WAN, …
WCF RIA Services et OData
WCF RIA Services
OData (*)(http REST)
ProxyLINQCUD
SOAP(http)
RIA Specific (http SOAP bin)
ProxyLINQCUD
JSON(http REST)
ProxyLINQCUD
Génération des méthodes d’accès aux données Contrôles des droits d’accès aux méthodes
26
DémoOuverture de WCF RIA Services via endpoint SOAP
27
Data
DAL
WP7Silverlight
.NetHtml 5
WCF RIA Services et SOAP
WCF RIA Services
OData (*)(http REST)
ProxyCRUDLINQ
SOAP(http)
RIA Specific (http SOAP bin)
ProxyCRUDLINQ
JSON(http REST)
Génération des méthodes d’accès aux données Contrôles des droits d’accès aux méthodes
LAN, WAN, …
28
DémoOuverture de WCF RIA Services via endpoint JSON
29
Data
DAL
WP7Silverlight
.NetHtml 5
LAN, WAN, …
Avec WCF RIA Services
WCF RIA Services
OData (*)(http REST)
CRUDProxyLINQ
SOAP(http)
RIA Specific (http SOAP bin)
CRUDProxyLINQ
JSON(http REST)
CRUD
Génération des méthodes d’accès aux données Contrôles des droits d’accès aux méthodes
30
4. WCF RIA Services
AvantagesAccélérateur pour Silverlight surtout si l’on se base sur les technos par défaut (Entity)Permet de s’ouvrir à OData (*), SOAP et JSON pour couvrir d’autres plateformes clientes
Inconvénients Surtout intéressant pour Silverlight(*) EndPoint Odata ne supporte pas les opérations CUD ni filtrage à la source
32
Apports fonctionnels côté client/serveurClient Serveur
2. WCF Génération auto du proxy Ecriture manuelle de l’accès aux données
3. Odata Filtrage à la sourceSDK client Odata
Accessible par clients hétérogènes
4. WCF Data Services Génération ProxyLinq
Génération des services de données
5. WCF RIA Services Clients Silverlight:Masquage comm. client./serveurValidation saisieExpérience 1-tiersContrôles de haut niveauLinq
Clients OData:Pas d’accès CUD
Clients SOAP/JSON: pas de filtrage à la source
Publication des données possible en OData (*), SOAP et JSON
33
Conclusion
• Si vous avez besoin d’exposer des données, il existe 2 frameworks intéressants :• WCF Data Services• WCF RIA Services
• Il n’y a pas de réponse unique, posez vous les bonnes questions et étudiez les limitations de chacun
• WCF est le socle commun des 2 et reste intéressant à utiliser dans certains scénarios (exposition de services métier)
34
Merci et à bientôt !
Blogs:David : http://blogs.msdn.com/davrous Stéphanie : http://blogs.msdn.com/stephe
35
Restons en contact
groupe LinkedIn: Forum des Architectures Applicatives Microsoft
Ce forum regroupe des architectes en informatique qui ont des choix de technologies à faire dans les projets pour lesquels ils travaillent. L’architecte applicatif, en situation de projet, travaille typiquement aux côtés de la direction de projet pour choisir et assumer des choix techniques en fonction des contraintes du projet (fonctionnalités, délais, ressources). Pour effectuer ces choix à bon escient, il doit connaître ce que le marché offre en termes de technologies. Cela peut prend typiquement deux formes : veille technologique continue, recherches dans le cadre du projet.L’architecte applicatif a aussi pour rôle de faire le lien entre les équipes de développement et les équipes d’infrastructure et d’exploitation de la future application. Il doit également veiller à ce que ses choix soient bien mis en œuvre pendant le développement. Ce forum, à l’initiative de Microsoft France, a pour but d’aider les architectes applicatifs - à faciliter la connaissance de l’offre de Microsoft pour les projets en entreprise (envoi de liens vers des présentations, documents, webcasts, conférences, …), mais également - à échanger sur des problématique d’architecture ayant un rapport, même partiel, avec la plateforme Microsoft (est-ce que ADFS V2 fonctionne dans un environnement SAML2, comment se passe la réversibilité d’une application développée pour l’informatique en nuage, quelles sont les implications d’un déploiement sur une ferme Web, …). Cet espace est le vôtre, faites le vivre, nous sommes aussi et surtout là pour vous lire.
http://bit.ly/archiappms