LINQPad (Partie 1)

logo

LINQPad

 

Présentation

LINQPad est un outil de développement .NET pour exécuter et tester des requêtes LINQ avec les langages qui supportent LINQ à savoir SQL, VB 9, F# 1.1.8.1 ou C# 3. Il permet aussi d’interroger les bases de données en SQL et les sources de données comme OData ou les WCF data services.

Il existe aussi un forum d’utilisateurs de LINQPad http://forum.linqpad.net/

LINQPad existe en plusieurs versions disponibles sur ce lien https://www.linqpad.net/Purchase.aspx : Free, Pro, Developer et Premium. Dans l’ordre, chaque version offre plus de fonctionnalités que les précédentes . La version gratuite est basique et offre peu de fonctionnalités. Seule la version Premium offre un debugger avec la pile d'appels, threads, variables locales / fenêtres de surveillance et points d'arrêt. L’IntelliSense, elle, est disponible qu’à partir de la version Pro.

L’intérêt d'utiliser cet outil est de pouvoir tester et déboguer le code sans avoir besoin d'un IDE tel que Visual Studio.

LINQ, c’est quoi déjà ?

Pour rappel, LINQ (Language Integrated Query) est un ensemble de fonctionnalités telles que les lambdas, des méthodes d'extension, et compréhensions de requête qui permettent aux compilateurs de comprendre et de mettre en œuvre la logique de requête sur les collections en mémoire des objets.

Nous allons voir à travers les exemples, quelques requêtes LINQ.

Installation et fonctionnement

LINQPad est disponible sur www.linqpad.net

Une fois téléchargé et installé, on commence par créer notre première requête File → new Query (Ctrl + N).

new_query

Exemple 1 : C# Expression

Par défaut, C# expression est sélectionné. Dans l'onglet Samples, on trouve quelques exemples basiques prédéfinis tel que le fameux "Hello Word".

Choose_program

Exemple 2 : C# Statement

Dans la liste déroulante "Language", changer à C# Statement .

L'exemple suivant illustre une simple requête LINQ qui sélectionne les nombres impairs contenus dans un tableau.

La méthode extension "Dump()" nous permet d'écrire le résultat comme la méthode Console.WriteLine dans une application Console. Elle peut prendre en paramètre le texte à afficher avant le résultat. Afin de compiler le code cliquer sur Execute (F5).

Csharp_Statement

Il est à noter que LINQPad nous offre aussi la possibilité de faire un export du résultat sous format Word, Html ou Excel avec et sans formatage.

Une autre façon d'écrire un code C# Statement et de commencer par écrire les scripts LINQPad en début de la page et ensuite écrire les classes et les méthodes nécessaires.

Attention, LINQPad exige de rajouter une accolade fermante juste après les Scripts et avant le bloc des classes et méthodes et de l'enlever dans la dernière classe ou méthode. C'est absurde mais c'est nécessaire pour que ça marche. L'exemple suivant illustre ça :

Csharp_Statement_with_classes_and_methods

Exemple 3 : C# Program

On peut aussi transformer le code en un programme en passant de C# Statement à C# Program. LINQPad va encapsuler le code dans une méthode main() comme suit :

Statement_to_program

On peut rajouter des classes et des méthodes dans la même requête comme dans un programme classique :

Csharp_Program

Dans les onglets My Queries et My extensions, il est possible aussi de définir des classes et des méthodes qui seront accessibles par toutes les requêtes.

Nuget Package Manager

LINQPad nous offre aussi la possibilité d’ajouter des références et des packages Nuget, il possède un "Nuget Package Manager" intégré. Pour cela, appuyer sur la touche F4.

Le simple clique sur Add To Query va charger le package nuget dans le Local Package Cache qui est initialement vide et devient donc accessible pour toutes les requêtes.

F4 Add referencesNuget_Manager

Dans l'article suivant, nous allons voir d'autres exemples d'utilisation de LINQPad.

2 commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.