La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

C#3 et le projet Linq Mitsuru FURUTA

Présentations similaires


Présentation au sujet: "C#3 et le projet Linq Mitsuru FURUTA"— Transcription de la présentation:

1 C#3 et le projet Linq Mitsuru FURUTA
Relations techniques développeurs - Microsoft France Pierre LAGARDE Relations techniques développeurs - Microsoft France

2 Rappels sur le framework .Net 2.0 Linq C#3 Pause XLinq DLinq
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 Demo Rappels framework 2.0

6 Dans un avenir proche Linq, 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 Local variable type inference
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 Demo Process démo

10 Déclarations explicites Initialisations Types anonymes
Méthodes d’extension Expressions lambda

11 Demo Filter démo

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

13 Demo Sample query

14 DLinq L’accès aux données Les structures de données: Les requêtes
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 DLinq Helloworld Entity objects DataContext Mises à jour Relations

16 Expressions: visualiser l’arborescence
Demo Expressions: visualiser l’arborescence

17 Expressions: créer dynamiquement ses expressions
Demo Expressions: créer dynamiquement ses expressions

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

19 Demo Sample query


Télécharger ppt "C#3 et le projet Linq Mitsuru FURUTA"

Présentations similaires


Annonces Google