LINQPad (Partie 2)

logo

LINQPad

Dans l'article précédent, nous avons présenté ce que c'est LINQPad et montré à travers des exemples comment il peut nous être très utile pour le développement et le test des requêtes LINQ.

LINQPad est utilisé pour interroger les bases de données SQL pour MySQL, Oracle ou SQLite et d'autres sources de données telles que OData ou WCF Data Services en utilisant LINQ.

L'exemple suivant constitue la suite des exemples précédents.

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.

Un framework qui se veut très efficace : CakePHP

Cake PHP est un framework qui permet de développer rapidement et simplement des applications PHP. CakePHP possède une architecture de type MVC avec des contraintes sur le nommage des classes et sur l'arborescence.
Cela permet à CakePHP de faire tous les liens entre les éléments sans avoir à les spécifier manuellement et à un développeur de rapidement prendre en main la suite des développements de l'application.
En effet, en suivant le MVC, une vue est associée à chaque action du contrôleur sur le modèle correspondant. CakePHP va directement rechercher les classes selon leur nom et retourner des erreurs ciblées si une classe est absente.

Performances SQL d’une application .NET, et contextes d’exécution

Vous avez une application .NET qui fonctionne en production sur un environnement avec une charge conséquente, et vous observez des problèmes de performance qui semblent “apparaître” à certains moments seulement. Par exemple, des procédures stockées qui semblent partir en vrille à l’exécution, mais seulement à certains moments.

Armé d’une version récente de SQL Management Studio, vous tentez de reproduire le problème, dans le but d’analyser le plan d’exécution. Et là, c’est la surprise totale! La requête qui s’exécute en plusieurs secondes, voire plusieurs minutes dans votre application s’exécute maintenant presque instantanément ! Et ce, alors que celle-ci peine lorsqu’appelée de l’application !
Et vous vous dites : Mais ça n’a pas de sens, pourquoi l’exécution est-elle si lente dans mon logiciel .NET et là c’est instantané, et ce au même moment, dans les mêmes conditions ? Eh bien, c’est tout simple, vous pourriez être l’une des nombreuses victimes de la différence de contexte entre toute application .NET et Management Studio ! Mais ne vous découragez pas, cet article vous expliquera le pourquoi de la chose !

Développer en .NET/SQLServer à distance à l’aide de tunnels SSH

Je travaille actuellement à distance sur de nombreux projets développés en .Net couplés à la technologie SQL Server comme moteur de Base de données. La problématique que j’ai rencontrée a été de pouvoir me connecter aux différentes ressources nécessaires au bon fonctionnement d’une application .NET (SQL Server, Reporting Services etc …) mais aussi au processus livraison sur un serveur distant (Prise en main à distance d’un Windows Server)

Pour répondre à cette problématique j’ai utilisé le tunneling SSH pour pouvoir me connecter à ces différentes ressources à distance. Dans un premier temps nous verrons comment créer un tunnel SSH à l’aide du logiciel Putty et de son interface graphique puis avec l’outil Plink utilisé en CLI (Command Line Interface).

Ensuite nous verrons comment nous connecter à ces différentes ressources dans un environnement de développement.