de a à z: accès aux données avec entity framework 4.2 et publication en odata

26
palais des congrès Paris 7, 8 et 9 février 2012

Upload: microsoft-developpeurs

Post on 04-Dec-2014

786 views

Category:

Technology


8 download

DESCRIPTION

Cette session aborde 2 aspects liés à la couche de données : - le stockage et l’accès aux données côté serveur - la publication des données sous forme de service pour les rendre disponibles aux applications clientes Nous commencerons par le stockage des données et le mapping objet- relationnel avec Sql Server et Entity Framework 4.2 Code First. Puis, grâce à WCF Data Services, nous publierons ces données sous la forme d’un service OData qui offre un format très interopérable. --- Cette session est la 2ème du parcours « En pratique : Concevoir et développer une solution applicative ». Elle peut être suivie de manière totalement indépendante puisque seul le scénario métier sert de fil rouge dans le parcours. La session se déroule en 2 temps : 1. Mise en œuvre basique de la techno 2. Intervention d’un expert de la techno qui va proposer d’améliorer l’application ou l’expérience en utilisant des techniques nouvelles ou plus avancées ou peu connues et pourtant si pratiques.

TRANSCRIPT

Page 1: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

07/02/2012

Stéphanie HertrichRelations Techniques DéveloppeursMicrosofthttp://blogs.msdn.com/stephe

De A à Z : Accès aux données avec Entity Framework 4.2 et publication en OData (LAN204)

Sébastien PERTUSMVP SQL ServerBEWISEhttp://www.dotmim.com

Page 3: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Le besoin métierL’architecture retenueL’accès aux données (ORM) avec Entity FrameworkLa publication des données en ODataSynthèse

Agenda

Page 4: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Notre projet fil rouge de la journée Application Cave à Vins Téléphone, tablette, Desktop,

multi-plateforme

Contraintes côté données : Multi-device donc

Interopérabilité Possibilité d’être dans le

cloud ou non (réversibilité) Authentification pour

accéder aux données des propriétaires de cave

Le besoin

Page 5: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Rappel de l’architecture :côté données

Entity Framework

Sql Serve

r

Sql Azure

WCF Data Services

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur

Chaine de connexion

Mapping Objet/Relationnel

Publication des données

Page 6: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Mapping Objet Relationnel

Entity Framework 4.x

Page 7: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Entity Framework

EF 1.NET 3.5 SP1Database First WorkflowORM plutôt basique …

EF 4.1 / 4.2 / 4.3.NET 4 basé sur EF4Code FirstDbContext API

EF 4.NET 4 / VS 2010Model First WorkflowPOCO, Lazy Loading, T4 Code-Gen, FKs

Working HorseEdition

Magic UnicornEdition

EF 4.5.Net 4.5 vNext

Edition

Page 8: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Entity Framework 4.x

Code First

Model First

Database First

Page 9: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

DbContext : Alternative à ObjectContextDbSet : Alternative à ObjectSet

Ils ne remplacent pas leur prédécesseurs. Ils sont une alternative !

Simplification, Nouvelles méthodes. Méthode Find(Key)

Utilise un cache de données pour éviter de re-requêter

Code First avec EF 4.x

Page 10: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

DEMO

Entity Framework 4.2

Page 11: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Jusqu’à Entity Framework 4.2 DatabaseInitializer

DropCreateDatabaseAlways

Avec Code First Migrations (Entity Framework 4.3) Avec Magie Ou pas …

Migration avec EF 4.3

Page 12: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

AutomatiqueMarquée

Migration avec EF 4.3

• Event• Id: int• Name: max• Description: max• When: datetime

codechange

update-database

add-migration

• Event• Id:int• Name: 128• Description:

max• When: datetime

Page 13: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

DEMO

Migrations avec EF 4.3

Page 14: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

EnumsSpatialAlternate KeysTVF Support (Table Value Function)Migrations Performance (automatic LINQ Complied queries)Designer (Multiple Diagramme)LINQ Improvments

=> Basé sur le .NET 4.5

Entity Framework vNext (4.5)

Page 15: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Publication des données

ODATA / WCF Data Services

Page 16: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

OData en 1 slide

Une façon uniforme de représenter des données structurées: Atom, JSON

Des conventions d’URL pour: La Navigation, les filtres, le tri, la pagination

etc...

Des opérations uniformes: Qui soient adressables facilement GET, POST, PUT, DELETE (CRUD)

http://odata.netflix.com/v1/Catalog/Titles?$filter=substringof('Bond', Name)&$top=5

http://odata.netflix.com/v1/Catalog/Titles

http://odata.netflix.com/v1/Catalog/Titles('8f4zf')

Page 17: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Requêter

Accéder à une collection: http://www..../Catalog/Genres

Utiliser un prédicat de recherche http://www.../Catalog/Genres(‘Action Classics')

Utiliser des fonctions http://www..../Catalog/Genres?

$filter=substringof('Action',Name) http://www..../Catalog/Genres?

$filter=substringof('Action',Name)&$top=10

Page 18: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Antisèche OData ! ;-)

Syntaxe des options Limitation de la bande passante utilisée $select, $filter,

$top, $skip, $count Utilisation de la

compression standard HTTP

Limitation des allers-retours $expand

Page 19: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

OData, c’est… …Une spécification d’un modèle de données

exposé sur le Web et consommable par des messages simples HTTP

WCF Data Services, c’est…. …Un SDK et l’implémentation de la spécification

OData par Microsoft pour .NET

WCF Data Services

Page 20: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Interfaçage avec n’importe quelle source de donnée locale ou distante (via l’implémentation d’IEnumerable ou d’IQueryable

WCF Data Services

WCF Data Services

Business Logic/Authentication/Authorization

Entity Framework Provider

HTTP

Reflection Provider Custom Providers

Entity Framework .NET Types + IQueryable

Page 21: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

DEMO

WCF Data Services

Page 22: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

DEMO

Authentification avec Access Control Services

Page 23: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Access Control Services + Windows Phone + OData

NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD

1 credentials

2 token

OData Service

3 http Requestwith token

4 request with token5 request + claims

7 OData results or security exception

6 Compute results or security exception

OAuth Protection modules

WS-Federation

OpenID

Page 24: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Interopérabilité (OData, REST)Manipulation CRUD des donnéesFiltrage à la sourcePossibilité d’intercaler des règles métier (interceptors)Support des authentificationsSuper simple couplé avec EF

Avantages OData/WCF Data Service

Page 25: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Par rapport aux contraintes du projet Cave à Vin

Interopérabilité avec WCF Data Services (OData)Dans SQL Azure ou SQL Server en fonction du fichier de configuration (facilite la réversibilité)Authentification fédérée (ACS) interceptée dans WCF Data Services

Synthèse

Page 26: De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData

Chaque semaine, les DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp

Téléchargement, ressources et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/

Les offres à connaître90 jours d’essai gratuit de Windows Azure www.windowsazure.fr

Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN www.visualstudio.fr

Pour aller plus loin

10 février 2012

Live Meeting

Open Data - Développer des applications riches avec le protocole Open Data

16 février 2012

Live Meeting

Azure series - Développer des applications sociales sur la plateforme Windows Azure

17 février 2012

Live Meeting

Comprendre le canvas avec Galactic et la librairie three.js

21 février 2012

Live Meeting

La production automatisée de code avec CodeFluent Entities

2 mars 2012

Live Meeting

Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android

6 mars 2012

Live Meeting

Nuget et ALM

9 mars 2012

Live Meeting

Kinect - Bien gérer la vie de son capteur

13 mars 2012

Live Meeting

Sharepoint series - Automatisation des tests

14 mars 2012

Live Meeting

TFS Health Check - vérifier la bonne santé de votre plateforme de développement

15 mars 2012

Live Meeting

Azure series - Développer pour les téléphones, les tablettes et le cloud avec Visual Studio 2010

16 mars 2012

Live Meeting

Applications METRO design - Désossage en règle d'un template METRO javascript

20 mars 2012

Live Meeting

Retour d'expérience LightSwitch, Optimisation de l'accès aux données, Intégration Silverlight

23 mars 2012

Live Meeting

OAuth - la clé de l'utilisation des réseaux sociaux dans votre application

Prochaines sessions des Dev Camps