Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=c8bf110d-ba0f-4430-b6c5-702aa8133d0a

Un REPL para hacer pruebas rápidas con C#

Aunque Visual Studio es muy potente y nos ayuda mucho a la hora de desarrollar aplicaciones .NET, cuando queremos hacer unas cuantas pruebas simples con código C#, usarlo puede llegar a ser un incordio.

Para empezar hay que tenerlo instalado, algo que puede no sea factible en donde nos encontramos, y además hay que lanzar un entorno pesado, crear un proyecto para la prueba, y luego limpiarlo todo. Aunque lo único que queramos probar sean un par de líneas de código, tenemos que tener una estructura mínima de programa, con al menos una clase y un método main...

En estos casos nos vendría de maravilla disponer de un entorno ligero y rápido en el que probar cualquier código sin necesidad de ceremonias previas. La mayor parte de los lenguajes modernos disponen de un REPL (Read-Eval-Print Loop) que podemos lanzar y empezar a escribir instrucciones de prueba inmediatamente. Este tipo de utilidad nos facilita mucho el aprendizaje del lenguaje y también el poder probar códigos cortos de manera rápida. Por ejemplo: REPL de Nodejs y REPL de Swift.

Sin embargo C# no contaba con una facilidad como esta para probar código... hasta que apareció scriptcs.

Este proyecto Open Source instala en tu equipo un intérprete de C# que usa toda la potencia de Roslyn por debajo y que permite lanzar instrucciones en este lenguaje directamente desde la línea de comandos para ir interpretándolas. Además nos deja ejecutar el código que tengamos dentro de archivos con la extensión .csx, interpretándolos y ejecutándolos de inmediato. Dado que no necesita de una estructura previa de clases o métodos, podemos ejecutar simplemente una línea.

Por ejemplo, tras haberlo instalado (con Chocolatey) podemos abrir una línea de comandos y escribir simplemente scriptcs para poder empezar a lanzar instrucciones:

scriptcs_consola

En este ejemplo hemos mostrado la ayuda, y luego hemos escrito un par de instrucciones (recuadradas en rojo) para comprobar su funcionamiento. Finalmente hemos salido usando la instrucción especial :exit.

Del mismo modo podemos escribir código dentro de un archivo .csx (que no es más que un archivo de texto renombrado) y ejecutarlo todo de golpe con el mismo comando, seguido del nombre del archivo:

scriptcs_consola-csx

Por supuesto es posible indicar qué espacios de nombres queremos usar colocando instrucciones using al principio de nuestro "script", y podemos cargar paquetes dentro del script usando NuGet por debajo si lo indicamos mediante el modificado -install. Por ejemplo:

scriptcs -install EntityFramework

que copiaría el paquete NuGet para Entity Framework dentro de la subcarpeta "scriptcs_packages" de la carpeta actual y estaría listo para ser utilizado desde el código que escribamos dentro de ésta.

Lo cierto es que se parece mucho a lo que hacen los programadores de Nodejs con JavaScript y NPM, solo que en este caso el lenguaje es C# y el gestor de paquetes es NuGet.

Es muy interesante.

Puedes encontrar instrucciones más detalladas y todo el código fuente en la página de GitHub para scriptcs. También hay un montón de ejemplos interesantes para investigar en esta otra página: scriptcs-samples.

Fecha de publicación:
José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Herramientas

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Comentarios (3) -

Visual Studio 2015 ya tiene su propio REPL gracias a Roslyn llamado C# interactive. Puedes abrirlo desde Ver > Otras ventanas > C# interactive.

Responder

José Manuel Alarcón
José Manuel Alarcón

Sí, es cierto, desde la Update 1. De hecho tenemos un post planificado sobre este tema para dentro de un par de semanas. Pero necesitas tener Visual Studio instalado, abrirlo, etc... Si te fijas al principio del post hablo de todos estos inconvenientes y de la necesidad de un REPL "puro" como tienen otros lenguajes.

¡Gracias comentar!

Responder

Gerardo García
Gerardo García

Otra opción más sofisticada pero ligera puede ser LinqPad https://www.linqpad.net/

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.