Funcionalidades a nivel del proyecto

ReSharper ofrece un conjunto de funcionalidades que son útiles para aplicar en proyectos o soluciones completas, a diferencia de ayudantes de programación individuales.

Estas funcionalidades incluyen ReSharper Build para optimizar la forma en que MSBuild compila sus proyectos; diagramas que muestran las dependencias entre sus proyectos o tipos, así como una forma de encontrar código específico que implementa estas dependencias; refactorizaciones para optimizar las referencias en los proyectos de su solución y muchas otras funcionalidades.

ReSharper Build

ReSharper build

ReSharper Build es una herramienta de compilación incremental fuera de proceso que puede aprovechar múltiples procesos, muestra el estado de compilación de proyectos de distintos tipos y está optimizada para soluciones de gran tamaño con muchas dependencias.

ReSharper Build sustituye la gestión de compilación de Visual Studio con un sistema que aplica heurísticas para compilar únicamente los proyectos que requieren actualización. Tenga en cuenta que no sustituye a MSBuild y sus proyectos se compilarán de la forma normal.

Gestión de configuraciones de ejecución

Configuraciones de ejecución

ReSharper ofrece nuevas formas de ejecutar código en Visual Studio con Configuraciones de ejecución. Hay tres tipos de configuraciones de ejecución:

  • Project (Proyecto): con este tipo de configuración, puede ejecutar o depurar cualquier proyecto ejecutable de su solución. Esto puede ser útil en una solución de gran tamaño con múltiples proyectos ejecutables.
  • Static method (Método estático): este tipo de configuración le permite ejecutar o depurar cualquier método estático público sin parámetros. ¿Necesita depurar un algoritmo problemático de forma aislada? Tan solo cree un método estático y defina una configuración de ejecución.
  • Executable (Ejecutable): usando este tipo de configuración, puede ejecutar o depurar cualquier archivo ejecutable. Si elige el comando de depuración, ReSharper ejecutará el archivo ejecutable y luego hará que Visual Studio se adjunte a su proceso. Un buen caso de uso para este tipo de configuración es el desarrollo de un complemento para otro programa, en el cual deberá crear una configuración de ejecución compleja.

También puede ejecutar métodos estáticos sin crear una configuración de ejecución permanente: tan solo presione Alt+Intro y use el submenú Debug en la lista de acciones.

Para ejecutar o depurar la configuración activa, que de forma predeterminada es el proyecto de inicio de Visual Studio, presione Ctrl+F5 o F5. Para gestionar las configuraciones de ejecución, presione Ctrl+Mayús+Alt+R o elija ReSharper | Tools | Run Configurations en el menú.

Visor de dependencias del proyecto

Diagrama de dependencias del proyecto

Con ReSharper puede explorar las dependencias del proyecto en su solución usando una representación visual de la arquitectura de la solución. Puede abrir en cualquier momento la Vista de arquitectura (ReSharper | Architecture | Show Project Dependency Diagram) y explorar las dependencias del proyecto sin compilar nada.

En esta misma vista podrá realizar refactorizaciones (tales como Adjust Namespaces o Remove Unused References), acciones de navegación y otros comandos útiles. Además, puede guardar una instantánea de las dependencias y luego compararla con el estado actual de su solución a medida que evoluciona.

Diagrama de dependencias de tipos

Diagrama de dependencias de tipos

ReSharper le permite estudiar visualmente cómo los tipos dependen entre sí en su solución. En el diagrama de dependencias de tipos, puede añadir cualquier cantidad de tipos de distintos proyectos o ensambles compilados y ver los distintos tipos de dependencias entre ellos. Además del comando del menú principal, ReSharper | Architecture | Show Type Dependency Diagram, hay muchas formas de añadir tipos al diagrama: puede agregar todos los tipos desde las ventanas Find Results o Hierarchy, desde cuadros emergentes que muestren resultados de navegación, desde el diagrama de dependencias del proyecto, arrastrar y soltar tipos desde otras ventanas de herramientas, y más.

De forma similar al diagrama de dependencias del proyecto, hay muchas acciones de navegación disponibles desde el diagrama de dependencias de tipos, al igual que la refactorización Move to Folder, que aquí funciona arrastrando y soltando.

Diagrama de dependencia de ensambles

Diagrama de dependencia de ensambles

ReSharper también le permite explorar dependencias entre ensambles compilados. Puede crear un diagrama a partir de cualquier cantidad de ensambles y explorar cómo estos se referencian entre sí.

Puede invocar el diagrama sobre los ensambles seleccionados en el Assembly Explorer (Explorador de ensambles) y explorar las conexiones que se establecen entre los ensambles en función de sus referencias.

Ventana de navegador NuGet en ReSharper

Navegador NuGet

Con ReSharper puede buscar tipos y espacios de nombres en la galería de paquetes NuGet e instalar los paquetes que coinciden con su búsqueda, todo sin salir de Visual Studio. Puede hacer todo esto en la ventana NuGet Browser (ReSharper | Windows | NuGet Browser).

Incluso puede iniciar una búsqueda directamente desde el editor, presione Alt+Intro sobre cualquier tipo o espacio de nombre no resuelto y seleccione Find on nuget.org para encontrar e instalar un paquete NuGet faltante.

Refactorización de Ajuste de espacios de nombres

Adjust Namespaces

Algunas funcionalidades de refactorización de código se pueden aplicar en el ámbito de un proyecto, una carpeta de la solución o en la solución completa.

Por ejemplo, la refactorización Adjust Namespaces (Ajustar espacios de nombres) le ayuda a sincronizar espacios de nombres a la estructura de carpetas en cualquier ámbito, incluso en toda la solución. Es decir, si en cierto archivo del código un espacio de nombres no se corresponde con la ubicación del archivo en la estructura del proyecto, el espacio de nombres cambia su nombre para coincidir con la ubicación del archivo. Todas las directivas "using" que hacen referencia a los nombres de espacios modificados se actualizan en consecuencia.

Eliminación de referencias no utilizadas

Eliminación de referencias no utilizadas

Otra refactorización a nivel del proyecto, Remove Unused References, le ayuda a detectar y eliminar referencias redundantes de sus proyectos para limpiar su solución.

También hay una forma de marcar referencias como usadas en tiempo de ejecución, lo que es importante si utiliza marcos de trabajo de inyección de dependencias.

Al marcar las referencias que se cargan implícitamente, puede ejecutar con seguridad los comandos Optimize References y Remove Unused References de ReSharper sin romper las referencias que son necesarias en tiempo de ejecución.

Buscar código referenciado con ReSharper

Find Referenced/Dependent Code

Find Dependent Code (Buscar código dependiente) le permite encontrar código que depende de un proyecto seleccionado. Find Referenced Code (Buscar código referenciado) funciona en sentido inverso, permitiéndole buscar cualquier referencia saliente que se encuentra dentro de cierto ámbito (que puede ser tan reducido como un método o tan amplio como un proyecto).

Los resultados de búsqueda para ambas funcionalidades se muestran en la ventana Buscar resultados o, si se encuentra una única utilización, el signo de intercalación se mueve a la ubicación correspondiente.

Para encontrar código dependiente o referenciado, seleccione un nodo en el Explorador de soluciones o coloque el signo de intercalación en un contenedor en el editor de texto, y seleccione ReSharper | Find | Find Code Dependent on Module o ReSharper | Find | Find Symbols External to Scope.

Explorador de ensambles

Explorador de ensambles

Esta sencilla ventana le ayuda a abrir agrupaciones compiladas y luego usar comandos de navegación y búsqueda para recorrerlas y explorarlas como si estuviera trabajando con código fuente. Expandir un nodo de ensamble lista los espacios de nombres pertenecientes al ensamble, los que se pueden expandir a su vez a tipos y miembros de tipos, así como a referencias de ensambles.

Si le interesa un ensamble en particular, el Explorador de ensambles le ayudará a exportarlo a un proyecto de Visual Studio para que pueda explorar el código fuente, compilarlo, ejecutarlo y depurarlo.

Contraer Todo en el Explorador de soluciones

ReSharper ayuda a Visual Studio en la gestión del estado de los nodos en el Explorador de soluciones. Cuando contrae un proyecto u otro nodo de alto nivel en el Explorador de soluciones, Visual Studio básico no contrae los nodos que lo contienen. Como resultado, cuando expanda el proyecto posteriormente, encontrará que revela una estructura expandida esporádicamente.

Con ReSharper, puede simplemente hacer clic derecho sobre un nodo del Explorador de soluciones y seleccionar Collapse All (Contraer Todo) en el menú contextual. El nodo seleccionado se contraerá junto con todos sus nodos hijos.

Collapse All es una pareja perfecta para otra pequeña función útil de ReSharper: Locate in Solution Explorer (Encontrar en Explorador de soluciones). Por ejemplo, puede comenzar contrayendo el proyecto y luego usar Locate in Solution Explorer para expandir los nodos que realmente necesita.

Locate in Solution Explorer

Esta útil función de navegación, a la que puede acceder con Mayús+Alt+L, le permite resaltar un nodo correspondiente en el Explorador de soluciones para cualquier archivo que está abierto actualmente en el editor de texto. ReSharper resalta el nodo y se desplaza automáticamente en el Explorador de soluciones, permitiéndole ver el nodo resaltado.

Es particularmente útil cuando tiene una solución de gran tamaño con decenas o miles de archivos, o un área de pantalla limitada que lo obliga a achicar la ventana del Explorador de soluciones a su límite. Además, la funcionalidad trabaja bien en conjunto con Collapse All in Solution Explorer.

Guardar los ajustes de ReSharper a varias capas de ajuste

Almacenamiento distribuido de los ajustes de ReSharper

Los ajustes de ReSharper se guardan usando un modelo de almacenamiento distribuido, lo que significa que cualquier ajuste o grupo de ajustes se puede guardar de forma separada y ReSharper los combinará y aplicará todos a medida que se ejecuta.

Entre los beneficios de este modelo se encuentra el tener distintos ajustes para distintas soluciones, compartir ajustes fácilmente, importar y exportar ajustes y más. Puede ser especialmente útil para compartir ajustes que deberían ser iguales para todo el equipo de trabajo: ajustes de estilo de código, plantillas de código, patrones de buscar y sustituir estructural.

De forma predeterminada hay tres capas de ajustes: para todas las soluciones en la computadora local, para la solución actual y para la solución compartida. Puede crear, gestionar y compartir nuevas capas fácilmente, p. ej. para ajustes globales para toda la empresa.

Nota acerca de los accesos directos

Todos los acceso directo de teclado de esta página están disponibles en el mapa de teclas Visual Studio predeterminado de ReSharper. Para más información sobre los dos mapas de teclas de ReSharper, consulte la documentación de ReSharper.