1 / 19

C#3 et le projet Linq

C#3 et le projet Linq. Mitsuru FURUTA Relations techniques développeurs - Microsoft France mitsufu@microsoft.com – http://blogs.microsoft.fr/mitsufu. Pierre LAGARDE Relations techniques développeurs - Microsoft France pierlag@microsoft.com. Agenda. Introduction

malana
Download Presentation

C#3 et le projet Linq

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C#3 et le projet Linq Mitsuru FURUTA Relations techniques développeurs - Microsoft France mitsufu@microsoft.com – http://blogs.microsoft.fr/mitsufu Pierre LAGARDE Relations techniques développeurs - Microsoft France pierlag@microsoft.com

  2. Agenda • Introduction • Rappels sur le framework .Net 2.0 • Linq • C#3 • Pause • XLinq • DLinq

  3. Introduction: .Net Language Integrated Query • Constat: la maturité des langages objets est atteinte dans l’industrie. Le prochain challenge sera de diminuer la complexité d’accès aux données non objet (principalement les bases de données relationnelles et le Xml). • Les technologies actuelles sont multiples: sql, mapping objet-relationnel, DOM, XPath, XQuery, etc… • Linq offre une approche d’accès aux données plus générale en ciblant n’importe quel type de source de données • Linq exploite les dernières évolutions de C#3 pour mettre en place un tel mécanisme. Linq définit ainsi un standard qui pourra être étendu aux autres langages .Net tels que VB.NET.

  4. Rappels sur le framework .Net 2.0 • Générics • Classes partielles • Méthodes anonymes • Délégués simplifiés • Types Nullables • Rappel sur les énumérations: yield return !!!

  5. Rappels framework 2.0 Demo

  6. Dans un avenir procheLinq, DLinq et XLinq • Objectifs • Unifier l’accès aux données quelque soit sa source • Langage de requête objet quelque soit sa provenance • Les technologies • Linq : langage de manipulation de données • XLinq : extension spécifique de Linq pour le formalisme XML • DLinq : extension spécifique de Linq pour les données SQL

  7. Linq • Les évolutions • Query Expression • Possibilité d’exprimer une requête directement dans le code • Type inference • Déduction à la compilation du type d’un objet • Lambda expression • Utilisation d’expression Lambda directement dans le code • Extension methods • Etendre une classe sans en dériver par AOP • Anonymous type • Construction d’objet sans définition de classe • Object initializer • Possibilité d’initialiser des données membres à l’initialisation • Langages concernés • C# v3 et VB.NET v9, mais spécifications ouvertes (C++, Delphi..)

  8. Dans un avenir proche Query expressions var contacts = from c in customers where c.State == "WA" select new { c.Name, c.Phone }; Local variable type inference Lambda expressions var contacts = customers .Where(c => c.State == "WA") .Select(c => new { c.Name, c.Phone }); Extension methods Anonymous types Object initializers

  9. Process démo Demo

  10. C#3 • Déclarations explicites • Initialisations • Types anonymes • Méthodes d’extension • Expressions lambda

  11. Filter démo Demo

  12. Process démo 2ème Extensions de méthode Exécution différée Demo

  13. Sample query Demo

  14. DLinq • L’accès aux données • DataContext • Les requêtes de mise à jour • Les structures de données: • Les objets « entités » • Mapping par attributs • Le générateur, le designer • Les requêtes • L’arborescence d’expressions • Un modèle ouvert et extensible

  15. DLinq Helloworld Entity objects DataContext Mises à jour Relations Demo

  16. Expressions: visualiser l’arborescence Demo

  17. Expressions: créer dynamiquement ses expressions Demo

  18. Nouveautés: Générateur/Designer Demo

  19. Sample query Demo

More Related