Visual Linq query builder pour Linq to Sql: VLinq


Bonjour à tous,

Après quasiment un an de travail et d’organisation, je suis très heureux de partager avec vous le projet VLinq.

http://code.msdn.microsoft.com/vlinq

Certains d’entre vous en avait déjà vu quelques démonstrations lors du tour de France accès aux données de Paris ou encore durant les Techdays 2008.

Le Visual Linq query builder est un addin pour Visual Studio 2008. C’est un designer qui vous aide à créer des requêtes Linq to Sql pour votre application.

Les projects C# et VB.Net sont supportés.

Comme vous le découvrirez dans ce billet, ce projet développé par des stagiaires est un prototype pour une nouvelle sorte de designer.

N’hésitez pas à nous remonter vos impressions !!!

Historique du project

C’est un projet avant tout académique développé par Microsoft France en collaboration avec Microsoft Corporation.

J’en ai été le manager local ainsi que le responsable technique. J’avais depuis longtemps dans l’idée de me frotter à la création d’un designer pour Visual Studio écrit en WPF et j’ai eu l’idée d’un constructeur de requête visuel pour Linq to Sql. Puis l’opportunité d’organiser tout cela sur un stage de 6 mois avec MS Corp est apparue.

J’ai recruté deux étudiants de talent que je tiens à nouveau à remercier et à féliciter pour leur excellent travail:

Simon Ferquel de SupInfo qui travaille désormais pour la société Winwise. Vous le connaissiez déjà peut-être de l’époque où il était étudiant au travers de son outil pour Vista : myExposé. (non, je ne mettrai pas de photo de lui, bien que j’en ai quelques unes…).

Johanna Piou de l’ISEN Toulon qui termine ses études cette année et qui est également connue pour ses brillantes participations à Imagine Cup dans la catégorie Interface Design. Elle a serré la main de Bill Gates plus souvent que moi…:( !!

Le but de ce projet

Linq to Sql et Linq plus généralement, est une nouvelle technologie principalement basée sur des évolutions du langage. Comme toute nouvelle syntaxe, cela prend toujours un peu de temps pour s’y familiariser.

Le projet VLinq comme tout designer, vous aide à construire graphiquement les requêtes Linq to Sql mais nous avons voulu qu’il reste très proche du code. Ainsi, le but n’a pas été de vouloir masquer le code généré mais au contraire de le rendre visible dans le designer. C’est une sorte de mélange entre un designer classique et un intellisense graphique.

VLinq vous aide également à regrouper vos requêtes à un seul et même endroit, facilitant ainsi leur gestion (edition, ajout, suppression), leur test et leur prévisualisation.

Dernier but: fournir l’intégralité de la solution, source code inclus afin de partager avec vous notre expérience sur l’usage de WPF avec l’extensibilité de Visual Studio.

Que fournissons nous ?

Le projet entier a été développé avec Visual Studio 2008 (bétas puis RTM) et Expression Blend. Nous fournissons la solution complète (binaires + code). La solution contient un projet de Setup pour une installation facile (msi).

Tout est téléchargeable ici: http://code.msdn.microsoft.com/vlinq/ sous l’onglet ‘Releases’ (msi, quick reference guide, user documentation, webcast).

Voici en ligne le ‘Quick Reference Guide’. Il contient plein de previews aussi, je n’ai pas fait l’effort de le traduire :-).

———————————————————————————————————

Quick Reference Guide

Once Visual Linq Query Builder is installed, you can create a new project or open an existing project (C# or VB.Net). From this designer you will be able to create, modify and delete queries. When editing a query, the query designer will appear and let you build your query visually. At each time the designer is saved, the corresponding code (C# or VB.Net) will be generated. Then the queries are ready to be used by your project. The following steps are for the first time users of Visual Linq Query Builder.

– Create a new project

If you installed Visual LINQ Query Builder, you can create a new project or open an existing project (C# or VB) in Visual Studio.

clip_image002

– Add a LINQ to SQL class

Once a project is created, a LINQ to SQL class should be added to the project.

clip_image004

– Add connection to SQL database

If Linq to SQL class is added, a .dbml file is added to the project. You open the .dbml and can set the connection to SQL database by clicking “Server Explorer” and “Add Connection”

clip_image006

To work with LINQ to SQL and Visual LINQ Query Builder in Visual Studio 2008, you will need a database that you can query. If you already had a database, you can set the connection to the database by clicking “Server Explorer”.

Otherwise, you can access the copy of the Northwind database that accompanies the C# samples that ship with Visual Studio 2008. You can also download the latest C# samples from http://msdn2.microsoft.com/en-us/bb330936.aspx. The Northwind.mdf will be found in the directory, CSharpSamples\LinqSamples\Data.

The setup guideline for the SQL database can also be found in Charlie Carvert’s bolg.

You can set the connection to the copy of Northwind.mdf or your database.

clip_image008

Once connection is added, you can navigate to the objects in the database and select a table you want to query.

– Add the designer to the project

Add a new item, “VLinq queries” to the project. When opening the new .vlinq file added to your project, the query bag designer will appear.

clip_image010
– Set the connection to VLINQ

In the Properties of the vlinq, set Connection String to the database you want to query. Select “Visual studio Connection” and the database.

clip_image012

– Create a new query

If you open the .vlinq file added to the project, you can see query bag designer. In the query bag designer, you can create a query using the query bag designer by clicking an icon “Create a new query”.

clip_image014

– Edit the query in the query bag designer

clip_image016

– Query in collapsed mode
clip_image018

– Preview the query result

Once you edit the query and “save” the .vlinq file, the code is generated. If you click “Preview”, you can see the query result in the below.

clip_image020

– View the generated code

Query designer code is generated if you save the query. You can build the project using the code.

clip_image022

Have Fun !

Mitsuru FURUTA – Microsoft France

Comments (29)

  1. Bidou says:

    Bonjour, j’avais été énormément séduit par cet outil lors de la conférence aux Techdays 2008, et me suis jetté sur le programme d’installation. Seulement, le template n’est pas disponible sous VS2008 après installation. Je ne peux donc pas créer d’item VLinq Queries…Avez-vous eu d’autres cas identiques ?

  2. mitsu says:

    Bonjour Bidou,

    Quelle est ta configuration ? (version de VS, langue de l’OS, langue de VS, etc)

  3. Bidou says:

    Bonjour Mitsu,

    Je travail avec Visual Studio Team System 2008 (version anglaise), sur Vista SP1 (en fr). J’ai vérifié les templates ne sont pas installés dans les dossiers de VS et j’ai aussi essayer d’exécuter le script vbs qui exporte les templates dans Visual Studio (C:ProgrammesMicrosoft VLinqoubliélenom.vbs)

    Merci d’avance.

    Bidou

  4. Simon says:

    Cocorico !!!

    Ca fait plaisir de le voir enfin sorti 🙂

  5. Bidou says:

    Re bonjour,

    J’ai peut-être une piste. Il se trouve que j’ai VS2005 Professionnel et VS2008 Team System qui cohabitent sur ma machine. Lors de l’exécution du script "installtemplates.vbs" dont je parlais dans mon commentaire précédent, c’est devenv.exe qui est exécuté mais celui de Visual Studio 2005.

    J’ai une idée en tête.

    Je te tiens au courant.

    Bidou

  6. Bidou says:

    Problème résolu !

    Pour celles et ceux qui comme moi ont plusieurs versions de Visual Studio qui cohabitent, et qui ne voient pas le template VLinq queries dans Visual Studio, il suffit tout simplement de lancer l’invite de commande Visual Studio 2008 et de taper la commande :

    devenv.exe /installvstemplates

    Et là ça fonctionne parfaitement !

    J’essaye le tout ce soir pour voir si ça fonctionne correctement !

    Bidou

  7. mitsu says:

    Super, merci Bidou. Il semblerait également que certaines machines rencontrent des problèmes si le setup n’est pas lancé "as admin".

  8. Bidou says:

    Bonsoir,

    C’est possible, j’ai personnellement désactiver le contrôle de compte utilisateur sous Vista, donc je n’ai pas rencontré de problème de ce côté là…

    En tout cas, j’ai commencé à m’amuser un peu avec le designer ce soir, c’est vraiment très simple et très bien pensé. J’aime beaucoup l’aspect pédagogique que tu as souligné lors des Techdays 08, lorsque l’on réduit toutes les sections et que la requête apparaît !

  9. Julien Ellie says:

    Hey Mitsu,

    ca dechire ton truc 🙂 vraiment super sympa! Bonne continuation et a bientot a Corp…

    Julien.

  10. J’ai VS2005 et 2008 (en français). J’ai donc du passer

    par l’invite de commande avec "devenv.exe /installvstemplates", et depuis, plus AUCUN modèle installé !

    Help me please !!!

  11. Bidou says:

    Es-tu bien passé par l’invite de commande Visual Studio 2008 ? Et pas 2005 ou même Invite de commande Windows ?

  12. oui oui: via "démarrer / Tous les programmes / Microsoft Visual Studio 2008 / Visual Studio Tools / Invite de commandes de Visual Studio 2008".

    Ai relancé la commande; après 2 redémarrage de VS, les templates ré-apparaissent (sans VLinq…).

    La manip est répétable: lancement commande = disparition templates ! retour templates après ‘n’ redémarrages VS.

  13. Bidou says:

    Loïc,

    Regarde le commentaire de Simon Ferquel (Apr 5 at 3:28 PM) sur cette page : http://code.msdn.microsoft.com/vlinq/

    ça peut peut-être t’aider.

  14. Blaise Braye says:

    beau challenge que vous avez relevé là, je me réjouis de jeter un oeuil à vos méthodes.

    Bonne soirée.

  15. Richard says:

    Bonjour,

    Je suis en train de tester LinQ avec VS2008.

    J’aimerais bien savoir comment faire pour créer une requête avec une instruction IN ou NOT IN tel que :

    SELECT IdtPers, Name

    FROM Table_Personne

    WHERE Name (NOT) IN (‘Julien’, ‘Maxime’)

    Merci Beaucoup.

  16. mitsu says:

    Le setup est désormais patché. Désolé pour la première version un peu boiteuse.

    http://code.msdn.microsoft.com/vlinq

    N’hésitez pas à continuer à poster vos commentaires ici, surtout si vous rencontrez d’autres soucis.

    Bonne installation à tous.

  17. Hot Topics says:

    Thanks to Roger Jennings for highlighting the Visual LINQ Query Builder project that is now on MSDN Code

  18. 江南白衣 says:

    Visual LINQ Query Builder is an add-in to Visual Studio 2008 Designer that helps you visually build LINQ to SQL queries. Functionally it provides the same experience as, for instance the Microsoft Access Query Builder, but in the LINQ domain. The entire

  19. SO says:

    "Error 1001. A part of the path c:Program FilesMicrosoft Visual Studio 9.0Common7IDEItemTemplatesCSharp1033VLinq queries.zip could not be found." lors de l’installation de VLinq (pourtant j’ai pris la derniere version).

    Pour info:

    – VS2008 fr

    – OS: 2003 (en)

  20. Jeff says:

    Ne fonctionne sous version Française !

    Quelqu’un à réussi ?

    Merci…

  21. Topper says:

    Bonjour

    J’utilise VLINQ depuis quelques semaines maintenant mais je me heurte a un probleme particulierement desagreable : je perd l’action du clavier dans les champs de VLINQ!

    Je m’explique,

    Quand je manipule VLINQ pour la premiere fois je peux "taper" dans un champ preremplis "s.Id"

    Sauf que apres avoir fait ma premiere requete, quand j’en recree une, je n’ai plus la possibilite de taper une lettre dans les champs de VLINQ…

    Ca vient peut etre de WPF mais me semble bizarre.

    Si quelqu’un a une idee, merci de votre aide

  22. Tom says:

    Bonjour,

    impossible d’installer Visual Linq query builder sur ma machine: XP sp2; VS 2005 (fr) & VS 2008 (fr) qui cohabitent.

    j’ai la même et sempiternelle erreur "1001".

    Quelqu’un a-t-il une solution pour pallier ce problème?

    (ou au moins une direction ou chercher !)

    merci d’avance.

  23. UoLad says:

    Bonjour,

    G eu un mal fou à installer VLINQ. Après quelque bidouille je trouve enfin l’item VLINQ Queries.

    Par contre, lorsque je veux l’ouvrir, un message d’erreur m’indique qu’il ne trouve pas la ressource "VlinqBagDesigner.XAML".

    Je tourne sous XP SP2, VS 2008 RTM

    Merci pour votre aide.

  24. Oliv says:

    Dans ma base, mes key et foreign key sont des uniqueidentifier. Visual linq semble refuser de me faire des jointures avec ces types. y a-t-il une solution ?

  25. Patrick says:

    Bonjour Mitsou!

    Moi j’ai une simple question: est ce que Visual LINQ Query Builder marche avec VS2005. Moi je n’ai pas VS2008.

    Merci de répondre!

    Salut

  26. mitsu says:

    Désolé pour les erreurs d’installation, c’est trop complexe pour nous de tester toutes les configs.

    Patrick, VLinq ne fonctionne pas avec VS2005 qui de toute façon ne supporte pas la technologie Linq…

  27. Patrick says:

    Merci de répondre Mitsou!

    Une autre question: Est-ce que Vlinq va marcher avec VS 2008 express edition?

    Et puis comment on résoud cette erreur qui dit:"error 1001: object reference not set to an instance" qui apparaît lorsque j’essaies d’installer Vlinq.

    Merci!

  28. reda says:

    bonjour

    jai moi aussi un travail concernant une application pour faire des requete en mode graphique,mai jai du mal a faire la conception du projet vu kan ma donné juste les fenetre a devloper en vb.net,ni information sur cke veu lutilisateur ni donée ni rien si quelk1 peut m’aider j’en serai ravi

  29. Bibi says:

    Hi, I'm a new c# developer .I 'm developing something like this a simple linq query builder. i don't need to establish connections or any thing. I can't find in net any thing to help me do it.any body have any ideas. thanks.