SlideShare une entreprise Scribd logo
1  sur  26
palais des
congrès
Paris




7, 8 et 9
février 2012
De A à Z : Accès aux données avec
Entity Framework 4.2 et publication
en OData (LAN204)
07/02/2012
Stéphanie Hertrich                  Sébastien PERTUS
Relations Techniques Développeurs   MVP SQL Server
Microsoft                           BEWISE
http://blogs.msdn.com/stephe        http://www.dotmim.com
Agenda

  Le besoin métier
  L’architecture retenue
  L’accès aux données (ORM) avec Entity Framework
  La publication des données en OData
  Synthèse
Le besoin
  Notre projet fil rouge de la journée
    Application Cave à Vins

    Téléphone, tablette, Desktop, mult

     i-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
Rappel de l’architecture :
côté données

                                Sql           Sql
     Mapping                   Server        Azure
     Objet/Relationnel
                                             Chaine de connexion

                               Entity Framework                     Serveur
     Publication
     des données
                               WCF Data Services



                WCF Data          WCF Data
                                                     Client OData
                Services          Services
                                                                    Client
                 Silverlight       Silverlight
                                                      iPhone, …
                 pour WP            Desktop
Mapping Objet Relationnel

Entity Framework 4.x
Entity Framework

EF 1
.NET 3.5 SP1
Database First Workflow
ORM plutôt basique …

EF 4
.NET 4 / VS 2010                       Working Horse
Model First Workflow                      Edition
POCO, Lazy Loading, T4 Code-Gen, FKs

EF 4.1 / 4.2 / 4.3
.NET 4 basé sur EF4                    Magic Unicorn
Code First                               Edition
DbContext API

EF 4.5
.Net 4.5                                  vNext
                                         Edition
Entity Framework 4.x


                  Code First




                 Model First



                Database First
Code First avec EF 4.x

   DbContext : Alternative à ObjectContext
   DbSet : 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
DEMO

Entity Framework 4.2
Migration avec EF 4.3

   Jusqu’à Entity Framework 4.2
     DatabaseInitializer

        DropCreateDatabaseAlways



   Avec Code First Migrations (Entity Framework 4.3)
        Avec Magie 

        Ou pas …
Migration avec EF 4.3

     Automatique
     Marquée

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




                code         add-               update-
                change       migration          database
DEMO

Migrations avec EF 4.3
Entity Framework vNext (4.5)

  Enums
  Spatial
  Alternate Keys
  TVF Support (Table Value Function)
  Migrations
  Performance (automatic LINQ Complied queries)
  Designer (Multiple Diagramme)
  LINQ Improvments

  => Basé sur le .NET 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:
               http://odata.netflix.com/v1/Catalog/Titles
      Qui soient adressables facilement
           http://odata.netflix.com/v1/Catalog/Titles('8f4zf')
      GET, POST, PUT, DELETE (CRUD)
http://odata.netflix.com/v1/Catalog/Titles?$filter=substringof('Bond', Name)&$top=5
Requêter

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

  Utiliser un prédicat de recherche
    http://www.../Catalog/Genres(‘ ction Classics')
                                    A
  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
           $count           $select, $filter, $top, $ski
                             p, $count
           $expand
                            Utilisation de la
           $filter
                             compression standard
           $format           HTTP
           $orderby      Limitation des allers-
           $skip         retours
           $top             $expand
WCF Data Services

  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


                                                WCF Data Services


                                     Business Logic/Authentication/Authorization




         Entity Framework Provider               Reflection Provider               Custom Providers


             Entity Framework                 .NET Types + IQueryable




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

WCF Data Services
DEMO

Authentification avec Access Control
Services
Access Control Services + Windows
Phone + OData
                       1 credentials



                               2 token
                                                                           WS-Federation

                                                                                 OpenID

                                                 OAuth Protection
                      3 http Request                modules
                      with token         5 request
                                         + claims             4 request with token

                                                                    6 Compute
                                                                    results or
                                                                    security
                   7 OData results or                               exception
                   security exception        OData Service
NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
Avantages OData/WCF Data Service

  Interopérabilité (OData, REST)
  Manipulation CRUD des données
  Filtrage à la source
  Possibilité d’intercaler des règles métier (interceptors)
  Support des authentifications
  Super simple couplé avec EF
Synthèse

 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
Pour aller plus loin

                                                       Prochaines sessions des Dev Camps
  Chaque semaine, les DevCamps                         10 février    Live     Open Data - Développer des applications riches avec le
  ALM, Azure, Windows Phone, HTML5, OpenData             2012       Meeting   protocole Open Data

  http://msdn.microsoft.com/fr-fr/devcamp              16 février    Live     Azure series - Développer des applications sociales sur la
                                                         2012       Meeting   plateforme Windows Azure

                                                       17 février    Live
                                                                              Comprendre le canvas avec Galactic et la librairie three.js

  Téléchargement, ressources et
                                                         2012       Meeting

                                                       21 février    Live
                                                                              La production automatisée de code avec CodeFluent Entities
                                                         2012       Meeting

  toolkits : RdV sur MSDN                               2 mars
                                                         2012
                                                                     Live
                                                                    Meeting
                                                                              Comprendre et mettre en oeuvre le toolkit Azure pour Windows
                                                                              Phone 7, iOS et Android
  http://msdn.microsoft.com/fr-fr/
                                                        6 mars       Live
                                                                              Nuget et ALM
                                                         2012       Meeting


  Les offres à connaître
                                                        9 mars       Live
                                                                              Kinect - Bien gérer la vie de son capteur
                                                         2012       Meeting

                                                       13 mars       Live
          90 jours d’essai gratuit de Windows Azure     2012        Meeting
                                                                              Sharepoint series - Automatisation des tests


            www.windowsazure.fr                        14 mars
                                                        2012
                                                                     Live
                                                                    Meeting
                                                                              TFS Health Check - vérifier la bonne santé de votre plateforme
                                                                              de développement

                                                       15 mars       Live     Azure series - Développer pour les téléphones, les tablettes et
          Jusqu’à 35% de réduction sur Visual Studio    2012        Meeting   le cloud avec Visual Studio 2010

          Pro, avec l’abonnement MSDN                  16 mars
                                                        2012
                                                                     Live
                                                                    Meeting
                                                                              Applications METRO design - Désossage en règle d'un template
                                                                              METRO javascript
            www.visualstudio.fr                        20 mars       Live     Retour d'expérience LightSwitch, Optimisation de l'accès aux
                                                        2012        Meeting   données, Intégration Silverlight

                                                       23 mars       Live     OAuth - la clé de l'utilisation des réseaux sociaux dans votre
                                                        2012        Meeting   application

Contenu connexe

Tendances

Objet Direct Formation JPA Hibernate
Objet Direct Formation JPA HibernateObjet Direct Formation JPA Hibernate
Objet Direct Formation JPA Hibernateformationobjetdirect
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frBen Abdallah Helmi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemeStéphane Traumat
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 

Tendances (20)

Java RMI
Java RMIJava RMI
Java RMI
 
Objet Direct Formation JPA Hibernate
Objet Direct Formation JPA HibernateObjet Direct Formation JPA Hibernate
Objet Direct Formation JPA Hibernate
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Ejb 3
Ejb 3Ejb 3
Ejb 3
 
Presentation JPA
Presentation JPAPresentation JPA
Presentation JPA
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans fr
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
J2 ee
J2 eeJ2 ee
J2 ee
 
J2ee
J2eeJ2ee
J2ee
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
2
22
2
 

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

De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureMicrosoft
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudMicrosoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNukeMicrosoft
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012Cyril P
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkMSDEVMTL
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Microsoft
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Techdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft SpeechTechdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft Speechsputier
 
Eclipse day paris
Eclipse day parisEclipse day paris
Eclipse day parisLeTesteur
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Microsoft Décideurs IT
 
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Microsoft
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...Microsoft
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisationSébastien Letélié
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Microsoft
 

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

De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
 
Framework .net overview
Framework .net overviewFramework .net overview
Framework .net overview
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le Cloud
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity framework
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Techdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft SpeechTechdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft Speech
 
Eclipse day paris
Eclipse day parisEclipse day paris
Eclipse day paris
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 

Plus de 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
 

Plus de 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
 

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

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. De A à Z : Accès aux données avec Entity Framework 4.2 et publication en OData (LAN204) 07/02/2012 Stéphanie Hertrich Sébastien PERTUS Relations Techniques Développeurs MVP SQL Server Microsoft BEWISE http://blogs.msdn.com/stephe http://www.dotmim.com
  • 3. Agenda Le besoin métier L’architecture retenue L’accès aux données (ORM) avec Entity Framework La publication des données en OData Synthèse
  • 4. Le besoin Notre projet fil rouge de la journée  Application Cave à Vins  Téléphone, tablette, Desktop, mult i-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
  • 5. Rappel de l’architecture : côté données Sql Sql Mapping Server Azure Objet/Relationnel Chaine de connexion Entity Framework Serveur Publication des données WCF Data Services WCF Data WCF Data Client OData Services Services Client Silverlight Silverlight iPhone, … pour WP Desktop
  • 7. Entity Framework EF 1 .NET 3.5 SP1 Database First Workflow ORM plutôt basique … EF 4 .NET 4 / VS 2010 Working Horse Model First Workflow Edition POCO, Lazy Loading, T4 Code-Gen, FKs EF 4.1 / 4.2 / 4.3 .NET 4 basé sur EF4 Magic Unicorn Code First Edition DbContext API EF 4.5 .Net 4.5 vNext Edition
  • 8. Entity Framework 4.x Code First Model First Database First
  • 9. Code First avec EF 4.x DbContext : Alternative à ObjectContext DbSet : 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
  • 11. Migration avec EF 4.3 Jusqu’à Entity Framework 4.2  DatabaseInitializer  DropCreateDatabaseAlways Avec Code First Migrations (Entity Framework 4.3)  Avec Magie   Ou pas …
  • 12. Migration avec EF 4.3 Automatique Marquée • Event • Event • Id: int • Id:int • Name: max • Name: 128 • Description: max • Description: max • When: datetime • When: datetime code add- update- change migration database
  • 14. Entity Framework vNext (4.5) Enums Spatial Alternate Keys TVF Support (Table Value Function) Migrations Performance (automatic LINQ Complied queries) Designer (Multiple Diagramme) LINQ Improvments => Basé sur le .NET 4.5
  • 15. Publication des données ODATA / WCF Data Services
  • 16. 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: http://odata.netflix.com/v1/Catalog/Titles  Qui soient adressables facilement http://odata.netflix.com/v1/Catalog/Titles('8f4zf')  GET, POST, PUT, DELETE (CRUD) http://odata.netflix.com/v1/Catalog/Titles?$filter=substringof('Bond', Name)&$top=5
  • 17. Requêter Accéder à une collection:  http://www..../Catalog/Genres Utiliser un prédicat de recherche  http://www.../Catalog/Genres(‘ ction Classics') A Utiliser des fonctions  http://www..../Catalog/Genres?$filter=substringof('Action', Name)  http://www..../Catalog/Genres?$filter=substringof('Action', Name)&$top=10
  • 18. Antisèche OData ! ;-) Syntaxe des options Limitation de la bande passante utilisée $count  $select, $filter, $top, $ski p, $count $expand  Utilisation de la $filter compression standard $format HTTP $orderby Limitation des allers- $skip retours $top  $expand
  • 19. WCF Data Services 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
  • 20. WCF Data Services WCF Data Services Business Logic/Authentication/Authorization Entity Framework Provider Reflection Provider Custom Providers Entity Framework .NET Types + IQueryable Interfaçage avec n’importe quelle source de donnée locale ou distante (via l’implémentation d’IEnumerable ou d’IQueryable
  • 23. Access Control Services + Windows Phone + OData 1 credentials 2 token WS-Federation OpenID OAuth Protection 3 http Request modules with token 5 request + claims 4 request with token 6 Compute results or security 7 OData results or exception security exception OData Service NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
  • 24. Avantages OData/WCF Data Service Interopérabilité (OData, REST) Manipulation CRUD des données Filtrage à la source Possibilité d’intercaler des règles métier (interceptors) Support des authentifications Super simple couplé avec EF
  • 25. Synthèse 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
  • 26. Pour aller plus loin Prochaines sessions des Dev Camps Chaque semaine, les DevCamps 10 février Live Open Data - Développer des applications riches avec le ALM, Azure, Windows Phone, HTML5, OpenData 2012 Meeting protocole Open Data http://msdn.microsoft.com/fr-fr/devcamp 16 février Live Azure series - Développer des applications sociales sur la 2012 Meeting plateforme Windows Azure 17 février Live Comprendre le canvas avec Galactic et la librairie three.js Téléchargement, ressources et 2012 Meeting 21 février Live La production automatisée de code avec CodeFluent Entities 2012 Meeting toolkits : RdV sur MSDN 2 mars 2012 Live Meeting Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android http://msdn.microsoft.com/fr-fr/ 6 mars Live Nuget et ALM 2012 Meeting Les offres à connaître 9 mars Live Kinect - Bien gérer la vie de son capteur 2012 Meeting 13 mars Live 90 jours d’essai gratuit de Windows Azure 2012 Meeting Sharepoint series - Automatisation des tests www.windowsazure.fr 14 mars 2012 Live Meeting TFS Health Check - vérifier la bonne santé de votre plateforme de développement 15 mars Live Azure series - Développer pour les téléphones, les tablettes et Jusqu’à 35% de réduction sur Visual Studio 2012 Meeting le cloud avec Visual Studio 2010 Pro, avec l’abonnement MSDN 16 mars 2012 Live Meeting Applications METRO design - Désossage en règle d'un template METRO javascript www.visualstudio.fr 20 mars Live Retour d'expérience LightSwitch, Optimisation de l'accès aux 2012 Meeting données, Intégration Silverlight 23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans votre 2012 Meeting application