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

Post on 04-Dec-2014

786 Views

Category:

Technology

8 Downloads

Preview:

Click to see full reader

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

palais des congrès Paris

7, 8 et 9 février 2012

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

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

Agenda

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

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

Mapping Objet Relationnel

Entity Framework 4.x

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

Entity Framework 4.x

Code First

Model First

Database First

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

DEMO

Entity Framework 4.2

Jusqu’à Entity Framework 4.2 DatabaseInitializer

DropCreateDatabaseAlways

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

Migration avec EF 4.3

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

DEMO

Migrations avec EF 4.3

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)

Publication des données

ODATA / WCF Data Services

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')

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

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

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

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

DEMO

WCF Data Services

DEMO

Authentification avec Access Control Services

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

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

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

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

top related