![Page 1: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/1.jpg)
Rencontres accès aux données 2007
Mitsuru FURUTARelations techniques développeursMicrosoft Francehttp://blogs.msdn.com/mitsuhttp://blogs.msdn.com/mitsufu
![Page 2: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/2.jpg)
Agenda
Accueil Introduction Apprendre Linq to Sql Comprendre Linq to Sql Bonus ? Conclusion
![Page 3: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/3.jpg)
Introduction
.Net et l’accès aux données aujourd’hui ADO.Net Les DataSets Les outils de mapping O/R Les frameworks « maison »
Doit-on encore connaître le Sql ? Pourquoi chercher à ne plus
manipuler de Sql ?
![Page 4: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/4.jpg)
Introduction
Pourquoi chercher à ne plus manipuler de Sql ? Ne manipuler qu’un seul langage (le
code). Bénéficier de l’intellisense, du débogage
et de la vérification à la compilation. Ne pas apprendre sa (ses) syntaxe(s). Rechercher l’indépendance de la base de
données.
![Page 5: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/5.jpg)
Introduction
Demain: Linq to Sql V1 Mapper des classes .Net sur un schéma relationnel. Exprimer des requêtes Sql avec des requêtes Linq. Interception des changements et génération d’insert,
update, delete. Accès physique entièrement basé sur ADO.NET Supportera les bases de données Sql Server (2005, 2000
et Compact) “Post-Orcas direction will depend on customer feedback
but no promises can be made about specific features” Après demain: Linq to Entities
Framework de mapping objet relationnel. Support de la technologie Linq pour requêter le modèle. Provider ouvert Rdv aux TechDays
![Page 6: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/6.jpg)
Que recherchons nous vraiment ?
Automatisation de la couche d’accès aux données
Performance Consommation mémoire Productivité Outil de conception Abstraction de la base Gestion du changement
??Constat• Nous avons tous des attentes différentes• Nous savons que cette couche est déterminante• Beaucoup de solutions et beaucoup de polémiques
Constat• Nous avons tous des attentes différentes• Nous savons que cette couche est déterminante• Beaucoup de solutions et beaucoup de polémiques
![Page 7: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/7.jpg)
Introduction: rappels
Mode connecté vs déconnecté Sql dynamique vs procédures
stockées DataSet vs objets
![Page 8: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/8.jpg)
Qu’est-ce que Linq ?
Objects
<book> <title/> <author/> <price/></book>
XMLRelational
LINQ enabled data sources
LINQ To Objects
LINQ To XML
LINQ enabled ADO.NET
LINQ To Entities
LINQ To SQL
LINQ To Datasets
.NET Language Integrated Query (LINQ)
![Page 9: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/9.jpg)
Apprendre Linq to Sql
Une nouvelle technologie de requêtage principalement basée sur les évolutions des langages .Net. (C# 3 et VB 9)
Une API simple assurant les scénarii classiques d’un modèle déconnecté tel que le fait le DataSet.
Un modèle laissant un maximum de liberté aux entités (attributs, pas de classe de base, pas de collections)
![Page 10: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/10.jpg)
Linq to Sql: le mapping
Attribut Table et Column Le designer Linq to Sql classes
SqlMetal Mapping externe
![Page 11: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/11.jpg)
Démo
Le mapping
![Page 12: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/12.jpg)
Linq to Sql: le requêtage
dataContext.Log Projection: select Contraintes: where Agrégations: count, sum, min, max,
avg Jointures Tris Ensembles: unions, intersections,
exclusions, concaténations, distinct Pagination: top
![Page 13: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/13.jpg)
Démo
Différentes démos sur le requêtage
![Page 14: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/14.jpg)
Linq to Sql: le requêtage
Groupements: group by Contraintes: having Tris
Existence: exist, in, any, all Nullité Fonctions: chaines et dates
![Page 15: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/15.jpg)
Démo
Différentes démos sur le requêtage
![Page 16: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/16.jpg)
Linq to Sql: conversions
ToArray, ToList, ToDictionary Linq to object: les mêmes
fonctionnalités côté client. Mixer Linq to Sql et Linq to object:
Projections particulières Appel de méthodes locales
![Page 17: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/17.jpg)
Démo
Les conversions Les projections
![Page 18: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/18.jpg)
Linq to Sql: DataContext
Encapsulation d’ADO.NET (connexion, transaction, commandes, curseurs).
Mises à jour: Gestion d’un cache parallèle au cycle de vie des
entités:▪ Valeurs des propriétés pour les updates▪ Ajouts et suppressions dans les collections pour les
insert/delete▪ Accès au cache
Insert, update, delete:▪ Mise à jour optimiste▪ Transactions implicites et explicites▪ Résolutions des conflits, rafraichissement forcé
![Page 19: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/19.jpg)
Démo
Les mises à jour Simples Conflictuelles
![Page 20: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/20.jpg)
Linq to Sql: DataContext
Support des procédures stockées Cohabitation avec ADO.NET:
Partage de connexion Partage de transaction
Sql direct
![Page 21: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/21.jpg)
Démo
Procédures stockées
![Page 22: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/22.jpg)
Linq to Sql: les relations
1-1: EntityRef 1-N: EntitySet Deferred loading Delay loading Requêtage Schéma de chargement:
DataLoadOptions LoadWith AssociateWith
![Page 23: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/23.jpg)
Linq to Sql: les relations
customer.Orders[]order.Customer
![Page 24: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/24.jpg)
Démo
Les relations Le Deferred Loading Le Delay Loading Schémas de chargement
![Page 25: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/25.jpg)
Linq to Sql: fonctions avancées
Combiner les requêtes entre elles Héritage:
Collections hétérogènes Contraintes: is, as, cast Insert
Databinding Designer Linq to Sql: classes et méthodes
partielles Personnalisation du DataContext typé Personnalisation des entités
Requêtes précompilées: CompiledQuery
![Page 26: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/26.jpg)
Démo
Combiner les requêtes entre elles Héritage Databinding Méthodes partielles CompiledQuery
![Page 27: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/27.jpg)
Comprendre Linq to Sql
Quand les requêtes Sql sont-elles donc exécutées ? Notion de chargement différé Chaînage des requêtes
Qu’est-ce qu’une énumération ? Introduction aux expressions de Linq
![Page 28: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/28.jpg)
Démo
De .Net à Linq to Sql
![Page 29: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/29.jpg)
Bonus
Construction de requête dynamique Relations N-N Linq to DataSet
![Page 30: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/30.jpg)
Conclusion
Productivité Designer/générateur Typé: intellisense
Fiabilité Modèle compilé Générisation: intensivement basé sur les génériques, Linq to
Sql n’apporte que très peu de classes et rend notre code très ‘generic’.
Maintenance de code Modèle compilé Gestion du changement facilitée
Conception ouverte (modèle très libre) Combinaison des requêtes Débogage
![Page 31: Mitsuru FURUTA Relations techniques développeurs Microsoft France](https://reader036.vdocuments.pub/reader036/viewer/2022070309/551d9d95497959293b8cc99a/html5/thumbnails/31.jpg)
Le projet « Visual Linq »
Query Builder visuel pour Linq