IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Informations générales
        Qu'est-ce que Linq ?
        Qu'est-ce que XLinq et DLinq ?
        Quels langages supportent Linq ?
        Quels types de sources de données peut-on interroger avec Linq ?
        A partir de quelle version du Framework .NET peut-on faire du Linq ?
        A partir de quelle version de Visual Studio peut-on utiliser Linq ?
        Quelles sont les assemblies nécessaires pour utiliser Linq ?
        Pourquoi est-ce que je n'arrive pas à utiliser Linq dans classe ?
        Est-il possible d'utiliser Linq avec Visual Studio 2005 ?



Qu'est-ce que Linq ?
auteur : Jérôme Lambert
Un problème récurent pour tout développeur est l'accès aux données. Prenons le cas d'une base de données, un développeur C# ou VB.NET doit dans un premier temps apprendre un nouveau langage qu'est SQL pour ensuite établir une relation entre son modèle de développement orienté objets et le modèle relationnel de la plupart des bases de données.

Outre le problème des bases de données, il existe bien d'autres sources de données que le développeur a l'habitude d'interroger mais rarement de la même façon. Une source de données provenant d'une base de données sera interrogée bien différemment qu'une source de données d'objets métiers ou d'un fichier XML.

Linq, comme son nom l'indique "Language Integrated Query", a été développé pour permettre d'interroger des sources de données totalement différentes mais avec une approche identique. Cependant, Linq n'est en rien une technologie mais un ensemble d'améliorations aux niveaux des langages de programmation (C # 3.0 et VB.NET 9). De base, Linq offre la possibilité d'interroger vos collections d'objets (Linq to Objects), du XML (Linq to XML), les bases de données SQL Server (Linq to SQL) et vos DataSets (Linq to DataSet). Cependant, Linq est extensible car il fonctionne sur le principe bien connu des providers. Vous êtes donc tout à fait libre de développer votre propre provider Linq pour interroger des sources de données d'un tout autre type.

Linq apporte aussi une syntaxe très particulière au niveau des langages de programmation appelée aussi " Sugar Syntax " car elle est très proche de la syntaxe SQL. Un petit exemple vous fera tout de suite comprendre cela :
Exemple de requête Linq en C#
// Retourne la liste des processus commençant par 'A' triée par ordre alphabétique croissant
var query = from process in System.Diagnostics.Process.GetProcesses()
			where process.ProcessName.StartsWith("A")
			orderby process.ProcessName ascending
			select process;
Exemple de requête Linq en VB.NET
' Retourne la liste des processus commençant par 'A' triée par ordre alphabétique croissant
Dim query = _
   From process In System.Diagnostics.Process.GetProcesses() _
   Where process.ProcessName.StartsWith("A") _
   Order By process.ProcessName Ascending _
   Select process
Au final, on pourrait résumer Linq avec le schéma suivant :

Architecture Linq

Qu'est-ce que XLinq et DLinq ?
auteur : Jérôme Lambert
XLinq est l'ancien nom de Linq to XML permettant d'interroger du XML.

DLinq est l'ancien nom de Linq to SQL permettant d'interroger des bases de données.


Quels langages supportent Linq ?
auteur : Jérôme Lambert
Depuis sa sortie, Linq est supporté par les deux langages de programmation principaux de Microsoft et qui sont C# (en version 3.0) et VB.NET (en version 9).

Cependant, Linq est ouvert afin que d'autres langages puissent le supporter, c'est le cas en partie pour F#, C++/CLI et Delphi Prism.


Quels types de sources de données peut-on interroger avec Linq ?
auteur : Jérôme Lambert
Il est impossible de répondre de manière exhaustive à cette question étant donné que Linq est une technologie extensible. De base, Linq permet d'interroger les sources de données suivantes :

  • Objets en mémoire avec Linq to Objects
  • XML avec Linq to XML
  • Base de données SQL Server avec Linq to SQL
  • DataSets avec Linq to DataSet
  • Modèle Entity avec Linq to Entity
Mais de nouveaux providers Linq développés par des sociétés ou des particuliers apparaissent sans cesse, il est donc difficile de d'établir une liste de tous ces providers. Cependant, nous vous recommandons de vous rendre sur le blog de Charlie Calvert (membre de l'équipe C# de Microsoft) qui propose une liste non exhaustive des providers Linq extistants.

lien : en Blog de Charlie Calvert

A partir de quelle version du Framework .NET peut-on faire du Linq ?
auteur : Jérôme Lambert
Linq est disponible en version finale à partir du Framework 3.5 pour C# et VB.NET.


A partir de quelle version de Visual Studio peut-on utiliser Linq ?
auteur : Jérôme Lambert
Vous pouvez utiliser Linq à partir de Visual Studio 2008 (toutes versions confondues).

Il existe quand même une possibilité pour utiliser en partie Linq avec Visual Studio 2005 : faq Plus d'informations ici.

lien : fr Téléchargez Visual Express 2008
lien : faq Est-il possible d'utiliser Linq avec Visual Studio 2005 ?

Quelles sont les assemblies nécessaires pour utiliser Linq ?
L'ensemble des classes et interfaces nécessaires pour utiliser sont disponible dans un ensemble d'assemblies fournies par le .NET Framework 3.5. Voici la liste des assemblies nécessaires :

  • System.Core.dll qui fournit l'ensemble des classes et interfaces nécessaires pour écrire des requêtes Linq to Objects.
  • System.Data.DataSetExtensions.dll pour Linq to DataSet.
  • System.Data.Linq.dll pour Linq to SQL.
  • System.Data.Entity.dll pour Linq to Entities.
  • System.Xml.Linq.dll pour Linq to XML.
warning Attention que System.Data.Entity.dll n'est disponible qu'avec le Service Pack 1 du .NET Framework 3.5.
lien : fr Téléchargez .NET Framework 3.5 Service Pack 1
lien : fr Téléchargez Visual Studio 2008 Service Pack 1

Pourquoi est-ce que je n'arrive pas à utiliser Linq dans classe ?
auteur : Jérôme Lambert
Si vous n'arrivez pas à utiliser les opérateurs de Linq (Select, OrderBy, Where, etc.), reportez-vous à la question/réponse suivante : faq Comment utiliser Linq to Objects dans vos projets ?

lien : faq Comment utiliser Linq to Objects dans vos projets ?

Est-il possible d'utiliser Linq avec Visual Studio 2005 ?
auteur : Jérôme Lambert
A priori, Linq est uniquement supporté par Visual Studio 2008 grâce au Framework .NET 3.5. Il n'est donc normalement pas possible d'utiliser Linq avec Visual Studio 2005... Et pourtant, ce n'est pas tout à fait vrai.

Si vous ne le savez pas ecnore, le Framework .NET 3.5 n'est qu'une surchouche du Framework 2.0 composé d'un ensemble de nouvelles assemblies. Si on part la dessus, qu'est-ce qui empêche d'utiliser les assemblies System.Core.dll, System.Data.Linq.dll ou encore System.Xml.Linq.dll ? Rien en fait et à partir du moment où vous aurez installé le Framework .NET 3.5 sur votre machine, il vous sera tout à fait possible d'utiliser ces assemblies dans vos projets Visual Studio 2005.

Malgré cela, vous remarquerez très vite qu'il ne vous est pas possible d'utiliser toutes les possiblités de C# 3.0 et de Linq. Typage implicite, objets anonymes, initialiseurs d'objets et collections, expressions lambda et méthodes d'extension, tout cela sera impossible avec Visual Studio 2005. Au même titre, la "sugar syntax" de Linq vous permettant d'écrire des expressions de requête sera impossible aussi. La raison est que Visual Studio 2005 utilise le compilateur du .NET Framework 2.0, même après l'installation du Framework .NET 3.5. Mais à part, vous pourrez utiliser les opérateurs standards de requête sans problème.

Même si complètement déconseillé dans le milieu professionel, une autre alternative est d'installer la CTP (Community Technology Preview) de Linq destiné à Visual Studio 2005. Cette CTP permettait de montrer les nouveautés qui allaient venir avec C# 3.0 version finale. Contrairement à la technique précédente, vous allez pouvoir bénéficier des nouveautés de C# 3.0 mais aussi de la "sugar syntax" de Linq directement dans votre projet Visual Studio 2005.

Pour téléchargez cette CTP de Linq pour Visual Studio 2005, rendez-vous ici.

N'oubliez pas que ceci est une CTP, pas mal de choses ont donc changée depuis la version finale du Framework .NET 3.5.



Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.