Rider 2020.1 ahora ejecuta el backend en el tiempo de ejecución .NET Core de forma predeterminada en macOS y Linux y entrega Xamarin Hot Reload y Dynamic Program Analysis. Introduce un modo sencillo de configurar la severidad del editor, y añade un análisis del flujo de datos para valores enteros y una finalización de código más rápida. Se ha rediseñado la ventana Debug, y ahora están disponibles la refactorización Extract Class y Coverage Filters.
¡Dele la bienvenida a la editión .NET Core de Rider! El backend por fin se ejecuta en tiempo de ejecución .NET Core de forma predeterminada en macOS y Linux, en vez del tiempo de ejecución Mono. Notará al instante lo siguiente:
A propósito, la versión actual de .NET Core es la nueva y estupenda 3.1, que incluye muchas mejoras de rendimiento en comparación con la versión 3.0.
Tenga en cuenta que por ahora no es compatible con Windows, solo con macOS y Linux. Planeamos añadir la compatibilidad con Windows próximamente este año.
¿Quiere obtener más información acerca de la transición de Mono a .NET Core y ver los gráficos de rendimiento? ¡Eche un vistazo a esta publicación del blog!
Si está experimentando algún problema con el backend de Rider al ejecutarlo en .NET Core y quiere volver al tiempo de ejecución Mono, seleccione Help | Switch IDE runtime to Mono. Y si sufre cualquier problema, no dude en contárnoslo.
¡Ya está aquí la compatibilidad inicial con Xamarin Hot Reload! Ahora Rider aplica automáticamente los cambios realizados en Xamarin Forms XAML a la aplicación en depuración en un dispositivo o simulador, sin tener que volver a compilar y desplegar toda la aplicación.
Tenga en cuenta que existe una limitación: Si un ordenador portátil/de escritorio con Rider y un dispositivo iOS no están en la misma red Wi-Fi, Hot Reload no funcionará, ni siquiera aunque el dispositivo iOS esté conectado al ordenador portátil/de escritorio mediante USB.
Aparte de eso, hay una corrección importante en la compatibilidad con Xamarin: ya no aparecerá el error “Invalid target architecture 'arm64e'” al ejecutar proyectos Xamarin.iOS en un dispositivo iPhone XS Max.
Eche un vistazo a la publicación del blog para saber más sobre las novedades.
Estamos muy contentos de introducir Dynamic Program Analysis. Cada vez que ejecute su proyecto en Rider, DPA empezará a recopilar datos de la memoria asignada. Una vez que cierre la aplicación, DPA le mostrará una lista de los problemas detectados: clausuras y asignaciones a los montones de objetos grandes y pequeños. Lo mejor de esto es que no necesita empezar ninguna “sesión de perfilado” y obtener instantáneas. Solo tiene que trabajar como siempre y todos los datos se recopilarán en segundo plano, con prácticamente cero sobrecarga. La prueba de DPA en diferentes soluciones reales ha demostrado una ralentización de solo entre un 0 y un 2 por ciento.
Atención: DPA solo está disponible en Windows y no necesita una licencia distinta para activarlo.
Más información: Problemas en la memoria de autodetección en su aplicación con Dynamic Program Analysis
Esta versión de of Rider introduce un nuevo tipo de análisis del código para hacer un seguimiento de la utilización de valores enteros en su aplicación. Este nuevo tipo de análisis hace un seguimiento de la variación de los valores de todas las variables locales int
, y comprueba la exactitud de todas las operaciones comunes en dichas variables para detectar trozos de código inútiles o que puedan ser erróneos. En concreto, le avisa de lo siguiente:
true
o false
. switch
inalcanzables heurísticamente que comprueban valores int
.1
, la suma de 0
, etc. int
.0
.Para mejorar la precisión del análisis, también hemos añadido dos nuevos atributos de JetBrains.Annotations para utilizarlos con miembros de tipo y parámetros del tipo int
: [NonNegativeValue]
y [ValueRange(from, to)]
. Estos atributos especifican cómo pueden variar los valores de los miembros int
concretos.
ScriptableObjects
y los valores de campos en serie. Boo.Lang.List
o System.Diagnostics.Debug
en su finalización de código para proyectos de Unity. Seguimos mejorando nuestra compatibilidad con funcionalidades del lenguaje C# 8. Hemos refactorizado muchos aspectos de la compatibilidad con el lenguaje C# para preparar el análisis del código y otras funcionalidades, como las refactorizaciones y ReSharper Build, con el fin de admitir tipos de referencias que aceptan valores null (NRT). En Rider 2020.1, el análisis del código informa de las advertencias de compilación relacionadas con los tipos de referencias que aceptan valores null y proporcionan arreglos rápidos para la mayoría de ellas.
También hay varias nuevas inspecciones y arreglos rápidos:
asincrónicas
de métodos cuando estén disponibles en lugar de sobrecargas sincronizadas
. nameof
en lugar de utilizar la construcción typeof(SomeType).Name para obtener el nombre del tipo actual. Durante el año pasado, recibimos informes que decían que la ventana emergente de finalización de código tardaba demasiado en aparecer. Nos lo hemos tomado en serio y ahora la ventana emergente de finalización de código se muestra mucho más rápido una vez que empieza a escribir, especialmente en soluciones grandes.
Otra funcionalidad muy útil que llega con esta versión es que ahora es posible ocultar a los miembros marcados como Obsolete de la finalización de código si no quiere verlos.
Por último, al finalizar un elemento desde la ventana emergente de finalización de código ahora se mantiene su configuración de estilo de código.
Hemos rediseñado completamente la interfaz de usuario de la ventana de herramientas Debug para que tenga el aspecto más limpio y ordenado posible. Cuando solo se está ejecutando una sesión de depuración, el diseño de pestañas se ha simplificado, y todas las pestañas aparecen en un solo nivel. Los títulos de las pestañas ocupan menos espacio, por lo que cabe más contenido del depurador. Y cuando hay varias sesiones, se añade una capa de pestañas adicional para separar las sesiones.
Al mismo tiempo, hemos combinado las vistas Threads y Frames. Si no necesita la vista Threads en el momento, puede ocultarla haciendo clic en el icono “Hide threads view”.
También hemos actualizado el motor del depurador para mejorar aún más su experiencia en la depuración:
Esta nueva funcionalidad le permite cambiar fácilmente los niveles de resaltado del editor. Con solo un clic en una ventana emergente, puede habilitar o deshabilitar Code Vision, Parameter Hints, Unity Performance Hints, Errors, Warnings, Suggestions, Context actions y otros elementos. Busque el icono de lápices en la esquina inferior derecha de la pestaña del editor de código.
Hemos modificado las barras de herramientas de las ventanas Unit Test Session y Unit Test Explorer.
Además, hemos añadido tres funcionalidades importantes:
Más información: Actualizaciones del ejecutor de pruebas en Rider 2020.1
En Rider 2019.3, hemos añadido un cliente de TFS experimental que proporciona una mejora espectacular en la velocidad de la acción "Checking for changes". En el ciclo de lanzamiento actual, seguimos haciendo grandes esfuerzos por el cliente.
Finalmente, nuestro cliente de TFS lanza su primera versión y aporta numerosas mejoras. Mencionemos las dos más significativas. En primer lugar, la activación de Version Control Integration ahora funciona para los espacios de trabajo de TFS creados de manera local con Visual Studio. Esto significa que ya no necesita volver a crear un espacio de trabajo local desde cero en Rider. En segundo lugar, hemos aumentado considerablemente el rendimiento de las operaciones Delete y Rollback.
Para empezar a utilizar el cliente de TFS, vaya a Settings | Version Control | TFVC y habilítelo.
Rider, como todos los IDE de JetBrains, ahora emplea JetBrains Mono como fuente predeterminada en todos los temas. ¡Esperamos que le guste!
También se añade por fin otra funcionalidad de ReSharper que faltaba en Rider: los espacios de nombres se pueden importar automáticamente cuando se pega el código desde un archivo en la solución.
Si edita archivos asociados a NuGet manualmente, creemos que le gustará obtener asistencia de Rider, ya que ahora ofrece una compatibilidad inicial con la edición de archivos NuGet.Config, packages.config y *.nuspec, incluidas la finalización de código, la validación de sintaxis y la ventana emergente de documentación rápida.
También merece la pena mencionar estas mejoras más pequeñas:
Una refactorización muy demandada y esperada disponible en ReSharper por fin llega también a Rider: Extract Class.
¿Se pregunta para qué la necesita? Imagínese que tiene una clase que hace un trabajo que realmente deberían hacer dos clases distintas. La utilización de esta refactorización es el modo más seguro y eficaz de descomponer esa clase compleja en dos clases de una sola responsabilidad. Extract Class le ayudará a elegir métodos y campos para pasar de la clase antigua a la nueva. También le advertirá sobre cualquier dependencia rota y problemas de accesibilidad, y sugerirá opciones de resolución de conflicto.
La vista Solution Explorer introduce dos nuevas y útiles carpetas que le proporcionan más información sobre su proyecto: Implicit references, como subcarpeta de la carpeta Assemblies, y MSBuild import targets.
Además, hay muchas actualizaciones menores:
Para ofrecerle un mayor control de los resultados de cobertura de las pruebas de unidad que obtiene en Rider, hemos añadido los filtros de cobertura. Puede especificarlos en Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering.
Si realiza el perfilado de rendimiento en Linux o macOS, tenemos buenas noticias para usted: las aplicaciones .NET Core por fin se pueden perfilar en el modo Tracing en estos sistemas operativos. Además, ahora puede integrar el perfilador en aplicaciones .NET Core en Linux.
Hemos añadido varias nuevas funcionalidades al decompilador de Rider e IL Viewer:
Con el fin de mejorar la compatibilidad con F# en Rider, hemos realizado multitud de mejoras y correcciones que le ayudarán en su rutina diaria:
this.Property
) y las expresiones indexadoras ("foo".[1]
). ()
.Para obtener más detalles sobre las actualizaciones y correcciones, consulte el repositorio de GitHub.