¿Qué es “Roslyn” de Microsoft?

Muchos meses llevamos escuchando el nombre de “Roslyn” los que nos dedicamos a .net, pero, exactamente, ¿Qué es Roslyn?

Estoy plenamente convenido que todos los programadores de software queremos escribir el mejor código posible, participar en proyectos dónde todo este muy bien definido, donde existan las pruebas unitarias y dónde tengamos diferentes entornos para realizar nuestras pruebas cómo es debido. Los proyectos de este tipo, cuentan con arquitecturas y estándares que los programadores debemos seguir.

Existen herramientas en Visual Studio, como Code Analysis, que pueden analizar el código e informar de posibles code smells que no huelan demasiado bien. Desafortunadamente, este, no se ejecuta hasta que tenemos el código compilado y esto es poco productivo pues deberíamos saber como esta nuestro código al mismo momento que escribimos.

Una de las mejores herramientas que tenemos a nuestro abasto es nuestro compilador y este sabe analizar nuestro código, tratarlo, ejecutarlo y convertir lo que hemos escrito en algo tangible basado en nuestro código. El compilador realiza esto por nosotros pero este no tiene o no puede tener todo el conocimiento que pueden tener los programadores según el proyecto, entorno u otros. Roslyn es un conjunto de API de compilador que nos dan acceso a todos los pasos de la compilación. La siguiente imagen nos muestra una imagen de cómo actúa el compilador desde que pulsamos F6 si usamos Visual Studio.

Roslyn

Esta plataforma de compiladores para C# y Visual Basic es de código abierto y podemos acceder a él completamente en GitHub para poder ver cómo es y cómo actúa el nuevo compilador pudiendo compilar herramientas de análisis de código, entre otros aspectos mas complejos, con las API que el propio Visual Studio esta implementado.

Cuando Roslyn analiza nuestro código, devuelve un árbol de sintaxis. Este contiene todo lo relacionado con nuestro código, incluido aspectos simples como espacios, tabuladores, corchetes, paréntesis u cualquier otros símbolo escrito en la sintaxis de nuestro código.

Mediante .NET Compiler Platform Syntax Visualizer y con Visual Studio 2015 Preview instalado, podemos ver justo nuestro árbol de sintaxis si lo instalamos. Para ello deberemos ir a Ver > Otras Ventanas > Roslyn Syntax Visualizer y nos mostrará esta nueva ventana que nos analizará el código,

Roslyn_Syntax

Si nos basamos en algo tan simple cómo un “using System;” veremos, en la parte izquierda que todo comienza con una CompilationUnit del carácter 0 al 261, sigue con un UsingDirective que tiene un espacio en blanco entre using y System identificado cóm un IdentifierName con su IdentifierToken y finalmente un SemicolonToken que es un EndOfLineTrivia. Todo esto, es lo que Roslyn nos informa que va a hacer por debajo y nosotros, al ser de código abierto, lo podremos modificar.

Con Roslyn tendremos un compilador dinámico, simple y fácil de manejar con un lenguaje orientado a objetos y de alto nivel dejando de ser una caja negra para todos nosotros.

Esto no termina aquí, en próximos capítulos veremos que incorpora Roslyn en nuestro Visual Studio 2015 y en C# 6.0. Recordar que Visual Studio 2015 y todo lo que le acompaña, incluyendo Roslyn esta en Preview y que por lo tanto, puede ir evolucionando. Mantendré el post actualizado a medida que se vaya avanzando, este, y todos los que tengo preparados.

En las próximas entregas hablaré del las mejoras del entorno Visual Stuido 2015 y de C# 6.0. En la última de ellas, de ASP.NET vNext.

Happy coding! 😉