LINQPad y la ventana de comandos

Muchas veces necesitamos saber cómo se va a comportar una línea de código o un pequeño método (si va a devolver null o un tipo inicializado por defecto, si va a cumplir una determinada condición o no).  En Microsoft Visual FoxPro (esa magnífica evolución del lenguaje dBase cuyo soporte finalizará en 2015 – v. http://msdn.microsoft.com/es-es/vfoxpro/bb308952) la ventana de comandos cumplía a las mil maravillas esa función puesto que permitía, en tiempo real, crear variables, invocar métodos e, incluso, examinar el comportamiento de las sentencias en el depurador.

Recuerdo que esta era, precisamente, una de las cosas que más echaba de menos cuando en Lusco comencé a usar C# como lenguaje de programación.  Intenté usar la ventana Inmediate del depurador de Microsoft Visual Studio, pero tenía dos inconvenientes.  El primero, que cada vez que se ejecutaba una instrucción se recompilaba la solución que estuviese activa; salvo por los segundos de compilación, este no parece un gran inconveniente.  El segundo era que había que tener cargado en memoria desde una clase los namespaces necesarios; es decir, que fracasará cualquier intento de instanciar una variable System.Data.Sqlclient.SqlConnection desde la ventana Inmediate sin haber hecho previamente un using de System.Data en alguna de las clases de la solución.

Otra de las dificultades derivadas del cambio de lenguaje con las que tuve que enfrentarme fue lo farragoso que se me antojaba el tratamiento de datos con ADO y ADO.Net, acostumbrado, como estaba, al sencillo use de Fox.  Afortunadamente, poco después de mi llegada a C#, la versión 3.0 incorporó LINQ, lo cual suponía un ligero acercamiento (desde el punto de vista del programador) al modo en el que Visual FoxPro maneja los datos que tiene precargados en memoria.  Con el objeto de acumular experiencia con LINQ llegué a una herramienta que me permitía diseñar expresiones LINQ al vuelo (sin intellisense en su versión gratuita) y que me enseñaba la instrucción SQL que esa expresión iba a enviar al servidor, si es que estaba atacando una base de datos de Microsoft SQL Server.  Esa herramienta era LINQPad (http://www.linqpad.net/).

Pero no sólo eso y aquí viene lo mejor.  LINQPad funciona de manera muy similar a la ventana de comandos del viejo Fox, permitiendo escribir una serie de sentencias C# y ejecutarlas, comprobando a continuación el estado de las variables mediante el método Dump() (los resultados de las consultas LINQ o SQL se muestran directamente).  ¿Y los usings?  Pues, al igual que en Visual Studio, podemos invocar un tipo escribiendo su espacio de nombres completo; pero también es posible definir usings específicos para una consulta en las propiedades de esa consulta.

En definitiva, que para todos aquellos que, como yo mismo, echamos de menos la ventana de comandos para una prueba en línea del funcionamiento de una expresión, LINQPad es una herramienta imprescindible.  Su autor, por cierto, es el conocido gurú de C# y .NET Joseph Albahari (http://www.albahari.com/), autor de libros como las Pocket Reference de C# 3 y 4 que yo considero manuales imprescindibles para un programador.

Advertisements

3 Comments on “LINQPad y la ventana de comandos”

  1. […] This post was mentioned on Twitter by bugblog, Paulino Martínez. Paulino Martínez said: LINQPad y la ventana de comandos http://bit.ly/hme6Yg #in […]

  2. […] ejecutamos este código (por ejemplo en LinqPad – véase este post-) obtendremos que la variable objeto presenta un tipo Int32 (entero de 32 […]

  3. cfqüeb says:

    Totalmente de acuerdo..!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s