Reflector, chiquito pero poderoso

Reflector es una herramienta que existe desde hace años, y que llega a formar parte de las herramientas básicas de un dev.Net. Voy a mostrar la herramienta, para los que no la conocen aún, y dar otros detalles. Además que piensa usar Reflector en otras entradas.

Primero vemos el siguiente gráfico:

Cada vez que hacemos un Build, lo que hace VS es generar un *.exe en caso de aplicaciones ejecutables, *.ddl en caso de librerías. Pero en si estos ensamblados, no son programas que puedan correr por si solos, ya que están en código MSIL (Microsoft Intermediate Language), y el CLR es quién hace la compilación de MSIL, para llevarlo a lenguaje de máquina.

Esta es la magia por la que puedes construir una libraría en Visual Bascic (es compilado por vbc.exe y llevando a un *.dll en código MSIL), y puedes construir un cliente en C# (es compilado por csc.exe a un *.exe en código MSIL) que consuma esa libraría creada con Visual Bacic. Al final lo que compiles de cualquiera de estos dos lenguajes será llevado MSIL, y el CLR hace el trabajo final.

¿No me creen?, vayamos a la ventana de comandos de Visual Studio, y escribamos: ildasm. Y abrimos una dll o exe de .NET:

Ven?, eso es el código MSIL. Podríamos así examinar las diversos compilados de .NET, y ver el código fuente, pero aún es ilegible entender el código rápidamente.

Pues reflector, lo que haces es desensamblar el código MSIL, y llevarlo a código .NET:

En la imagen estamos usando Reflector, para ver el código fuente del mismo Reflector.exe, aunque el autor, Lutz Roeder’s, se ha tomado la molestia de ofuscar el código.

Los lenguajes soportados actualmente son: C#, Visual Basic, Delphi, MC++, Chrome, y el mismo IL. Y también da la posibilidad de elegir la versión de .Net Framework sobre la cual va a mostrar las librerías del mismo .Net Framework. La navegación entre clases también es bastante buena.

Una excelente herramienta, y que cuando empiecen a usarla, formará parte de sus herramientas de cabecera.

Descarga de Reflector (actualmente en su versión 5.0).

Saludos,

Post cruzado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *