Novedades de Rider 2019.3

Rider 2019.3 ofrece un soporte excepcional para las plantillas T4, un perfilador multiplataforma para .NET Core y cobertura de prueba multiplataforma para Unity. El inicio es más rápido, el depurador es compatible con Docker Compose y la compatibilidad con el control de versiones y Xamarin se han mejorado de forma global.

Compatibilidad con las plantillas T4

Compatibilidad con las plantillas T4

¡La compatibilidad con las plantillas de texto T4 era una de sus peticiones y aquí está! Hemos añadido la compatibilidad con las plantillas T4; se basa en nuestro propio generador y está disponible como un complemento preinstalado. 

Ahora puede ejecutar, procesar y depurar fácilmente todas sus plantillas T4 en Rider. Esperamos que disfrute de la nueva asistencia del editor, que incluye:

  • Compatibilidad con C# con muchas funcionalidades con bloques de código, incluido el resaltado de código, navegación, finalización de código, asistencia de escritura, refactorizaciones, acciones contextuales, inspecciones, formateo y más.
  • Compatibilidad con funcionalidades específicas de T4 como inspecciones, asistente de escritura, plegado y correspondencia de llaves.
  • Amplia compatibilidad con directivas include para hacer que la resolución de código de C# sea lo más correcta posible.
  • Compatibilidad con todo tipo de directivas, incluidas inspecciones, arreglos rápidos, resaltado de código, navegación y más.

Todas estas funcionalidades funcionan en Windows, macOS y Linux.

Perfilador multiplataforma para .NET Core

Perfilador multiplataforma para .NET Core

Rider 2019.1 trajo el perfilador de rendimiento a macOS y Linux, pero solo era compatible con aplicaciones Mono y Unity Mono. Con esta versión, hemos dado un gran paso hacia delante y ahora es posible perfilar aplicaciones .NET Core en Linux y macOS con el complemento integrado de dotTrace. Esto significa que puede perfilar cualquier aplicación .NET en Windows, macOS y Linux.

Tenga en cuenta que son compatibles por completo los proyectos con objetivo .NET Core 3.1. Debido a ciertas limitaciones de .NET Core, la generación de perfiles de proyectos enfocados en .NET Core 3.0 o anterior podría, en casos aislados, provocar que la aplicación perfilada se bloquee o falle.

Cobertura de prueba para Unity

Cobertura de prueba para Unity

Es un auténtico placer intentar mejorar la experiencia de scripts de Unity; nuestro objetivo es ofrecer mejoras increíbles con cada versión. En esta ocasión, presentamos la cobertura de pruebas multiplataforma y las pruebas continuadas para sus pruebas del modo edición de Unity.

Estas son algunas de las nuevas funcionalidades más interesantes:

  • Las pruebas de unidad del modo Play ahora son compatibles con el ejecutor de pruebas de Unit.
  • Rider es compatible con UIElements con resaltado de sintaxis, finalización de código y validación de esquemas de archivos UXML y USS.
  • ¡Vuelve la compatibilidad con los archivos .asmdef!
  • Se muestra el nombre del proyecto para los editores de Unity al enumerar los procesos de depuración.
  • Hemos mejorado el rendimiento al analizar activos cuando se carga inicialmente el proyecto.
  • Compatibilidad de “Clear on play” en la ventana de herramientas del visor de registro de Rider.
  • Se ha corregido el molesto error por el que Rider sugería funcionalidades de C# 8.
  • Hemos solucionado varios casos especiales manteniendo los archivos .meta actualizados durante las refactorizaciones.

Esto son solo los aspectos más destacables. Como siempre, esta versión incluye muchas otras correcciones y funcionalidades. Puede consultar la lista completa en el registro de cambios.

Mejor rendimiento

Mejor rendimiento

Rider 2019.3 incluye automáticamente todas las optimizaciones de rendimiento que añadimos a IntelliJ Platform durante el reciente Quality Marathon. Estas son solo algunas de las mejoras clave: se ha mejorado mucho el rendimiento de la inicialización, el desplazamiento del ratón se ha vuelto más suave y hemos eliminado muchas congelaciones de la interfaz de usuario. Si le interesa, puede leer más información sobre todas las mejoras de rendimiento en el blog de IntelliJ IDEA.

Docker Compose llega al depurador

Docker Compose llega al depurador

En la versión 2018.2, añadimos la compatibilidad con Docker en el depurador para que pudiera depurar los contenedores creados desde un archivo Dockerfile en Rider. Sin embargo, la depuración de contenedores creados con Docker Compose (docker-compose.yml) no se admitía por aquel entonces.

¡Pero la espera ha terminado! ¡Docker Compose por fin es compatible con el depurador! Ahora puede depurar aplicaciones Docker con varios contenedores con solo un clic.

Edit & Continue es incluso mejor

Edit & Continue mejora todavía más solo en Windows

Edit & Continue ahora puede aplicar cambios a una aplicación en ejecución (no suspendida), y la aplicación no tiene por qué estar detenida en un punto de interrupción. Puede aplicar cambios en cualquier momento haciendo clic en el enlace “Apply Changes”, situado en la descripción emergente de la parte superior de la ventana del editor. Además, puede deshabilitar la aplicación automática de los cambios de Edit & Continue de las acciones “Step”/”Resume”/”Jump to Statement” si accede a “Settings | Build, Execution, Deployment | Debugger | Editing during debug”.

Tenga en cuenta que Edit & Continue sigue siendo compatible solo con Windows.

Mejoras del depurador

Mejoras del depurador

Hemos realizado muchos otros cambios en otras partes del depurador. En primer lugar, el árbol de excepciones de la vista Breakpoints ha recibido una actualización importante:

  • Ahora la búsqueda abarca los nodos contraídos.
  • Las excepciones se agrupan tanto por un tipo (User/System) como por un espacio de nombres.
  • El nodo principal tiene un nuevo nombre, “CLR Exceptions”.

En segundo lugar, la depuración remota ha recibido varias actualizaciones:

  • Ahora hay mejores descripciones y notificaciones de los errores que pueden ocurrir al usarse.
  • Si no se especifica una contraseña o frase de contraseña para la depuración remota, se le solicitará una cuando se conecte a un servidor remoto.

Y, por último:

  • Se han asignado nuevos nombres a muchas acciones del depurador para reflejar mejor su función.
  • La funcionalidad “Pin to top” permite una evaluación recursiva.
  • Ahora está disponible la acción “Jump to Type Source”.
  • La opción “Just my code” para puntos de interrupción de excepción funciona mucho mejor en Mono.
Compatibilidad con VCS mejorada

Compatibilidad con VCS mejorada

Hemos empezado a experimentar para mejorar la interfaz de usuario y la experiencia de usuario al trabajar con sistemas de control de versiones como Git. En esta versión, se abre una nueva vista previa de diff en directo en la pestaña de editor de código para ofrecer una mejor experiencia de usuario.

También hemos introducido una nueva ventana de herramientas Commit, que se muestra a la izquierda de forma predeterminada para que haya más espacio vertical en la pantalla para las listas de cambios, descripciones de confirmaciones, etc.

Si no encuentra la pestaña Version Control al abrir por primera vez Rider 2019.3, no se preocupe. Sigue existiendo, pero tiene un nuevo nombre: Repository.

Además, hemos mejorado la vista “Compare with Current”, hemos rediseñado el cuadro de diálogo Clone y hemos hecho que sea posible hacer push en una rama no activa.

Para obtener más información, consulte la entrada del blog A New Way to Commit! Presentamos la ventana de herramientas Commit and Repository Tool Windows en Rider 2019.3.

El complemento AWS Toolkit llega a Rider

El complemento AWS Toolkit llega a Rider

En este ciclo de lanzamiento, nos hemos centrado mucho en la optimización del complemento AWS Toolkit plugin para desarrolladores .NET y para hacer que sea compatible con Rider.

  • Utilice una plantilla de proyecto predefinida para crear una nueva aplicación AWS sin servidores.
  • Puede crear, ejecutar y depurar una Lambda AWS de forma local y remota. Además, puede hacerlo todo desde el editor, utilizando simplemente los iconos del medianil.
  • Puede desplegar su aplicación sin servidor en AWS.
  • ¡Ya está aquí la compatibilidad con Cloud Debugging! Puede depurar sus aplicaciones .NET Core en la nube que se ejecuten en Amazon ECS con AWS Fargate directamente dentro de un contenedor remoto en una nube, sin emulación local.
  • El complemento está disponible tanto para Rider v2019.2 como v2019.3.

Después de instalar el complemento AWS Toolkit for Rider, tendrá todo lo que necesita para empezar a trabajar de inmediato con sus aplicaciones AWS sin servidor.

Compatibilidad con Xamarin potenciada

Compatibilidad con Xamarin potenciada

Seguimos trabajando para hacer que Rider sea un gran IDE para el desarrollo en Xamarin, y hemos realizado algunas mejoras interesantes tanto para Xamarin Android como para Xamarin iOS:

  • Los dispositivos y los simuladores Apple ahora funcionan mejor en Mac gracias a los componentes de JetBrains AppCode integrados.
  • Puede consultar la lista de dispositivos Apple conectados en la barra de herramientas.
  • Las compilaciones de dispositivos mtouch (compilador Mono para iOS) ahora son compatibles.
  • “Publish Android APK” está disponible para los proyectos Xamarin Android (busque la acción “Archive or Publish” en el menú contextual de un proyecto).
  • Puede editar las propiedades de proyecto específicas de Android en Project Properties.

Además, no nos hemos olvidado de la compatibilidad con Xamarin Forms, que cuenta con un par de correcciones importantes, como la compatibilidad con los atributos x:DataType y Class.

Mejor compatibilidad incluso con C# 8

Mejor compatibilidad incluso con C# 8

La nueva versión de Rider gestiona C# 8 incluso mejor. Ahora incluye:

  • Una mejor comprensión de los tipos de referencias que aceptan valores null, incluida la compatibilidad con restricciones notnull.
  • Expresiones switch de tipo de objetivo.
  • Compatibilidad anticipada con métodos de interfaz predeterminados.
  • Un nuevo consejo, Local function can be static, con un arreglo rápido complementario.
  • Un nuevo arreglo rápido para habilitar los avisos y las anotaciones que aceptan valores null en un archivo, proyecto o todos los proyectos en una solución.
  • Un nuevo arreglo rápido para añadir el atributo EnumeratorCancellation a los parámetros CancellationToken de los iteradores async.

Además, la inspección de código Type or type member is never used se ha dividido en dos opciones independientes, una para tipos (Type is never used) y otra para miembros de tipo (Type member is never used).

Generación de código

Generación de código

La acción Generate sabe más de C# 8 y también le ayuda a aprender con:

  • Un nuevo arreglo rápido Add missing arms para comprobar los valores enum exhaustivamente.
  • Un nuevo arreglo rápido y acciones contextuales para generar patrones de tipo en expresiones switch.
  • Nullability se tiene en cuenta al generar miembros/comparadores de <0>igualdad/relacionales.

Además, hay una nueva opción para utilizar System.HashCode para implementar GetHashCode al generar miembros de igualdad o comparadores de igualdad para C# y VB.NET, lo que le permitirá obtener un código más limpio.

Consejos de nombre de tipo

Consejos de nombre de tipo

Esperamos que le guste los consejos de parámetros de nombre y anotaciones dentro del código que hemos introducido en Rider 2019.1. En esta versión hemos ido más lejos y podemos ofrecerle consejos de nombre de tipo. Están disponibles para:

  • Parámetros de lambda.
  • Todas las ocurrencias de var, incluida la concordancia de patrones y la deconstrucción de tuplas.
  • Variables de rango dentro de declaraciones LINQ.
  • Al final de una línea en una cadena de llamadas de métodos.
Navigation y Find Usages

Navigation y Find Usages

La mayoría de nosotros necesitamos saber dónde se utiliza una referencia en concreto dentro de nuestro código. Durante mucho tiempo, era posible ejecutar la acción Find dependent code en una referencia para encontrar todos los lugares en los que aparecían tipos o miembros de tipo de dicha referencia. Sin embargo, siempre ha habido límites. Con esta versión, hemos eliminado un par de ellos: Find dependent code funciona con las referencias NuGet, y puede ejecutarse para toda una solución, en lugar de para solo un proyecto.

Ahora Rider tiene mucho más que ofrecer:

  • La descripción emergente de la capa Quick definition está disponible para cualquier símbolo en el editor de código, lo que le permite revisar la definición de un símbolo sin salir del contexto actual.
  • Consuming APIs amplía las acciones “Navigate to” y podría resultar útil si quiere enumerar todos los métodos que reciben objetos de un tipo concreto en sus parámetros.
  • La ventana Find results de Find dependent code tiene filtros nuevos.
  • Ahora puede navegar a los recursos externos de los paquetes NuGet que tienen un paquete de símbolos de fuente.
Estilo de código

Estilo de código

En esta versión, hemos implementado una petición más muy esperada. La configuración de nomenclatura C# ahora permite la lectura y la exportación a EditorConfig.

Además de este gran cambio, también hay varios cambios más pequeños que le ofrecen más control sobre el estilo de su código:

  • Para quienes prefieran utilizar "var" en lugar de tipos explícitos solo cuando el tipo de expresión de inicializador es evidente, ReSharper ahora puede detectar los casos más evidentes. También hay un modo de “compatibilidad” que replica el comportamiento de Roslyn.
  • Hay una nueva opción de estilo de código, que es compatible con StyleCop y Roslyn, para añadir paréntesis que aclaren la precedencia solo para un grupo de operadores anidados con otros del mismo grupo. Por ejemplo, si no puede recordar si && o || tiene precedencia, esta opción le ayudará a aclararlo con paréntesis.
  • Comment Code ahora añade una sangría a un comentario de manera predeterminada. Hay un nuevo ajuste en “Place comments at first column when commenting out code” para desactivarlo si lo desea.
  • Las páginas de opciones para configurar las sangrías ahora muestra la notificación adecuada cuando el ajuste Autodetect indent size and value está activado.

También hay una descripción emergente de notificación que explica las funcionalidades Configure formatting y Autodetect formatting en las páginas de opciones del formateador de C#.

Mejoras en el modelo de proyectos

El modelo de proyectos de Rider ahora amplía las refactorizaciones que efectúe en sus archivos de lenguaje web, como archivos TypeScript, a todos sus archivos de proyecto. Por ejemplo, “mover una clase TS a un archivo distinto” actualiza el correspondiente archivo .csproj con el cambio. También hemos mejorado el UX para el estado de proyecto “Not Built” en Solution Explorer.

Tenga en cuenta que hemos dejado de prestar asistencia a .NET Core 1.* SDK, puesto que estas versiones han llegado a su fecha de fin de asistencia.

Soporte inicial de MongoDB

Rider ha incorporado algo de soporte inicial para MongoDB (más información). Además, hemos ampliado la compatibilidad con bases de datos de Rider al depurador de Oracle PL/SQL, y hemos añadido nuevas inspecciones y advertencias, un indicador de progreso de consultas integradas y un modo sencillo de googlear un error de conexión.

Para obtener más información, lea la página Novedades de DataGrip 2019.3.

Desarrollo web

Desarrollo web

Como siempre, hay un montón de bonitas sorpresas para los desarrolladores web:

  • Mejoras significativas en la finalización de código para Vue.js.
  • Documentación rápida en proyectos de Vue.js.
  • Mejor compatibilidad con accesorios en componentes de React sin propTypes.
  • Mejoras en la compatibilidad con Angular.
  • Compatibilidad con TypeScript 3.7 y otras mejoras en la compatibilidad con JavaScript/TypeScript.
  • Varias actualizaciones en la compatibilidad con CSS/SASS.
  • Compatibilidad con la próxima versión de Yarn 2.

Para obtener más información, eche un vistazo a Novedades de WebStorm 2019.3.

Otras funcionalidades

Otras funcionalidades

  • Hemos mejorado la compatiblidad de Rider con archivos de proyecto (como archivos.csproj) mostrándole a la finalización de código varios elementos de MSBuild. También puede utilizar una inspección y un arreglo rápido para la validación de <TargetFramework>/<TargetFrameworks>.
  • Ahora generamos la configuración de ejecución predefinida de un modo más inteligente, para que pueda ejecutarla sin movimientos ni ajustes adicionales. También cuenta con un nombre autogenerado apropiado, en lugar del aburrido “Default”.
  • Ahora cuenta con una mejor compatibilidad con las propiedades de MSBuild especificadas en un archivo launchSettings.json, como $(ProjectDir).
  • La ventana emergente Parameter Info está disponible para tuplas.
  • Los asistentes de escritura para eliminar nuevas líneas y para hacer retroceso antes de una nueva línea ahora dejan un espacio para separar tokens o cuando lo requieren las reglas de formateo.
Más funcionalidades

Más funcionalidades

  • Se ha renovado completamente el resaltado de identificadores con una página por separado para C#, colores distintos para directivas de preprocesadores, métodos estáticos, campos, etc.
  • Las nuevas NUnit inspections cubren las pruebas de unidades combinatorias y parámetros individuales de pruebas de unidades parametrizadas.
  • El botón de Ampliar todas ha vuelto a la barra de herramientas de la izquierda.
  • Se ha lanzado un nuevo cliente de TFS reactivo en un modo experimental. Para habilitarlo, solo tiene que abrir Settings | Version Control | TFVC y situarlo en al posición ON. Esto ofrece una enorme mejora de velocidad para la acción "Checking for changes" (nuestras pruebas demuestran que ahora es entre 100 y 1000 veces más rápida). Muchas operaciones, como las acciones Confirmación e Historial, se efectuarán en el nuevo cliente tras el lanzamiento inicial.