Cuando estamos usando alguna clase de .NET en nuestro código, a veces tenemos interés o necesidad de ver qué hace por dentro, para lo que nos gustaría tener acceso rápido a su código fuente. Aunque los IDEs modernos disponen en muchos casos de herramientas o extensiones que lo permiten, está bien saber que hay otras fórmulas sencillas para conseguirlo muy rápida y cómodamente.
Hace poco me he topado con una de ellas, que me ha parecido muy útil y quería compartirla con vosotros, por si hay alguien más que aún no la conoce: la página https://source.dot.net.
Source.dot.net es una página podemos buscar elementos dentro del código fuente de .NET, sus frameworks y bibliotecas, y navegar por ellos de forma rápida y sencilla.
Podemos buscar tipos, métodos o propiedades, simplemente tecleando su nombre. Por ejemplo, si en el cuadro de búsqueda introducimos "MapGet", nos aparecerán las distintas sobrecargas de este extensor en Microsoft.AspNetCore.Routing
y pulsando en una de ellas veremos su código fuente completo.
Ojo: Las búsquedas sólo se realizan por prefijo; es decir, si buscamos "Get", no nos aparecerán resultados como el método
MapGet
.
En la cadena de búsqueda es posible utilizar algunas palabras clave especiales para filtrar los resultados. Por ejemplo, si estamos buscando una propiedad, podemos indicar por delante la palabra property
para especificarlo. De esta forma, si buscamos "property ApplicationBuilder" no nos aparecerán en los resultados las clases, campos u otros elementos con ese nombre. De la misma forma, podemos usar las palabras clave assembly
, type
, class
, struct
, interface
, enum
, delegate
, method
, property
, event
, field
y file
para restringir los resultados a un tipo concreto.
También podemos buscar directamente archivos. Por ejemplo, si buscamos ApplicationBuilder.cs
, accederemos al código fuente de la clase ApplicationBuilder
de ASP.NET Core.
Otra posibilidad es buscar directamente ensamblados. Si buscamos por ejemplo "assembly Microsoft.AspNetCore.Routing" podremos acceder al ensamblado Microsoft.AspNetCore.Routing
de ASP.NET Core con todos sus archivos.
Pero no sólo es búsqueda, también navegación...
Aparte de realizar búsquedas y mostrarnos el código fuente de los elementos que nos interesen, esta herramienta todavía aporta utilidades muy interesantes.
Por ejemplo, pulsando sobre un número de línea, se generará un enlace que puede ser útil para compartir referencias ese punto concreto del código en artículos técnicos, revisiones, o donde sea. Como muestra, el siguiente enlace os llevará al código del método Run()
que usamos para poner en marcha nuestras aplicaciones ASP.NET Core:
https://source.dot.net/#Microsoft.AspNetCore/WebApplication.cs,191
También es muy interesante el hecho de que la ventana donde visualizamos el código fuente es interactiva y ofrece herramientas para navegar fácilmente a lo largo y ancho del fuente del framework.
Pulsando sobre un identificador cualquiera iremos directamente al código fuente de su definición. Por ejemplo, si en el siguiente código pulsamos sobre el atributo StringSyntax
, navegaremos directamente hacia StringSyntaxAttribute.cs
:
public void Run([StringSyntax(StringSyntaxAttribute.Uri)] string? url = null)
{
Listen(url);
HostingAbstractionsHostExtensions.Run(this);
}
Pero más aún, cuando estamos ante la definición de un elemento, ya sea una clase, estructura, método, propiedad, campo, etc., si pulsamos sobre su nombre se mostrará en el buscador todos los puntos donde se hace referencia al mismo. Esto es muy útil para conocer rápidamente cómo se usa un elemento concreto en el código fuente del framework.
También, en el pie de cualquier archivo que estemos visualizando, tendremos a mano enlaces hacia el archivo en GitHub, por lo que podremos acceder directamente a la versión más actualizada del código fuente, consultar su historial, últimos cambios, etc.
One more thing...
Antes de terminar, permitidme un último apunte que creo que puede resultar interesante.
La página https://source.dot.net está construida utilizando el proyecto SourceBrowser de Kirill Osenkov, un miembro del equipo de herramientas de desarrollo de Microsoft. Este proyecto es de código abierto y podemos utilizarlo para aplicarlo sobre nuestras propias soluciones y crear herramientas similares de navegación por el código fuente.
De hecho, el propio proyecto dispone de una página web para examinar su código fuente en https://sourcebrowser.azurewebsites.net/.
¡Espero que os resulte útil!
Publicado en Variable not found
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario