Visual Studio 2022 está ahora en versión preliminar y se lanzará en noviembre de 2021 junto con .NET 6, que será compatible. Incluye muchas características y mejoras nuevas, como AI IntelliCode que puede autocompletar fragmentos de código por usted.
Usted puede descargar la vista previa desde su sitio web. Si bien todavía es «experimental» y no está listo para producción, sigue siendo Visual Studio, por lo que, a menos que dependa de extensiones que aún no se hayan actualizado, no tenga miedo de intentarlo.
Cubriremos los cambios más importantes a partir de la Vista previa 3, pero si desea leer las notas del parche línea por línea, puede hacerlo desde los documentos de Microsoft. Hay también una hoja de ruta describiendo la dirección general.
Finalmente es de 64 bits
Visual Studio siempre ha sido de 32 bits, lo que significa que se ha limitado a 4 GB de RAM en el proceso principal. Por lo general, no supera este presupuesto para proyectos normales, pero algunos usuarios pueden encontrarse con excepciones de memoria insuficiente con soluciones particularmente grandes.
Con VS 2022, está arreglado y ahora es una aplicación de 64 bits. Microsoft ha probado proyectos con 1600 proyectos y 300k archivos, y funciona bien.
En teoría, 64 bits debería ejecutarse más rápido, y parece ser un poco más rápido en los tiempos de inicio, pero Microsoft también ha estado trabajando en el rendimiento en general, por lo que es difícil saber cuánto lo afecta esto realmente. De cualquier manera, un buen cambio.
Por supuesto, aún puede desarrollar aplicaciones de 32 bits con VS 2022. Esto solo se aplica al editor.
AI IntelliCode es asombroso
Funciones de Visual Studio 2022 una actualización importante de su motor de autocompletado IntelliCode. Es capaz de autocompletar líneas enteras y fragmentos de código, y funciona muy bien.
Es un poco diferente de Copiloto de GitHub, que hace un trabajo similar. Copilot generará fragmentos completos de código y funciona mejor para funciones pequeñas y contenidas con una solución clara. Es genial, pero tiene sus propios problemas, principalmente el hecho de que no se garantiza que el código que genera sea lo que usted desea (y puede extraer código palabra por palabra de repositorios aleatorios de GitHub, que es otro problema).
IntelliCode adopta un enfoque mucho más restringido y simplemente completa una sola línea, teniendo en cuenta algunos de los siguientes factores:
- Nombres y posiciones de variables
- Bibliotecas que estás usando
- Funciones en el código circundante
- La lista desplegable de IntelliSense, que en realidad puede presionar hacia abajo para darle a IntelliCode más sugerencias
Después de usarlo durante dos semanas, es algo que realmente tienes que probar por ti mismo. Es sorprendentemente inteligente, y muchas veces mientras lo usaba me encontré pensando «¡guau, estaba a punto de escribir eso!»
Por ejemplo, escribir una función que toma un número del 1 al 12:
Para comprender y proporcionar este resultado, IntelliCode está haciendo mucho más que completar automáticamente la sintaxis; Entiende que estoy esperando una excepción, bastante obvia dado que estoy escribiendo «lanzar», y puede darse cuenta de que esta excepción solo se lanza si falla una comparación de tamaño entero. Sabe que Width
es un argumento que se está verificando antes de que se ejecute el código, y que estoy lanzando una excepción porque algo está mal con el argumento.
Sabiendo todo esto, toma una conjetura tremendamente precisa sobre mis intenciones y decide que un ArgumentOutOfRangeException
debe ser lo que estoy tratando de escribir, antes de que pueda empezar a escribir «nuevo».
Y, si avanza una página, puede completar los resultados para diferentes opciones. Todavía es un poco inconsistente (decidió codificar «Ancho» y luego usó nameof
) pero, en general, funciona bien.
IntelliCode se ejecuta todo el tiempo, y todo lo que tiene que hacer es presionar tab-tab para aceptarlo; de lo contrario, puede continuar escribiendo. Actualmente, solo funciona para C #, pero más idiomas «llegarán pronto».
Compatibilidad con .NET 6
.NET 6 es la última versión, también en versión preliminar. VS 2022 tendrá soporte integrado para él y todas sus características, y estará predeterminado en .NET 6 para nuevos proyectos.
En particular, VS 2022 tendrá soporte completo para .NET MAUI, o UI de aplicación multiplataforma, el nuevo estándar de Microsoft para el desarrollo de aplicaciones nativas multiplataforma.
Recarga en caliente de .NET
Una de las cosas más molestas de la programación es mirar la pantalla, esperar a que la aplicación se compile, se inicie y se actualice con los últimos cambios. Hot Reloading es una característica de muchos otros lenguajes como JavaScript, y ha sido utilizada por frameworks web como React para realizar cambios rápidos. Sin embargo, hasta ahora, no ha habido una solución estandarizada para .NET.
No es completamente universal y requiere una configuración de proyecto específica, pero VS 2022 incluye recarga en caliente para «WPF, Windows Forms, vistas previas de .NET MAUI, aplicaciones ASP.NET Core con código subyacente, aplicaciones de consola, WinUI 3 y muchas otras». Esto excluye las bibliotecas de clases utilizadas por otra aplicación.
Es posible que ciertos tipos de cambios no se apliquen correctamente, lo que le pedirá que reinicie correctamente. Puedes ver la lista completa de ellos aquí, pero la esencia es:
- Sin modificar firmas de métodos
- No agregar declaraciones de uso
- Sin modificar interfaces
- Sin renombrar miembros de ningún tipo
Básicamente, puede editar el código en cualquier método, pero una vez que comience a tocar la estructura del proyecto, es posible que deba reiniciar.
Está bien integrado en la experiencia de depuración de VS, con un nuevo ícono para «Aplicar cambios de código» que activará la recarga en caliente. También puede utilizar el nuevo dotnet watch
comando para recargar en caliente automáticamente en los cambios de archivo.
Las aplicaciones web de Razor / Blazor actualmente pueden hacer uso de la recarga en caliente, pero Blazor WebAssembly todavía tiene algunas cosas por resolver y actualmente aún no funciona. Sin embargo, se está trabajando en ello y es posible que llegue a la versión final a finales de noviembre.
Prueba remota
VS 2022 incluye una vista previa experimental que le permite ejecutar pruebas en otros entornos, incluidos contenedores de Linux, WSL e incluso a través de SSH.
Tiene un poco de configuración y, por supuesto, deberá asegurarse de que su entorno esté configurado para ejecutar su código correctamente, pero una vez que lo esté, podrá seleccionar diferentes entornos al ejecutar sus pruebas.
Mejoras generales
Hay muchos pequeños cambios en desglosar de las notas del parche, por lo que enumeraremos algunos de los más interesantes aquí.
La depuración ha experimentado algunas mejoras en la calidad de vida, con nuevas opciones de contexto para puntos de interrupción más avanzados, así como «Forzar ejecución al cursor», que ignorará todos los puntos de interrupción existentes y se detendrá en la línea de código que haya seleccionado. Esto puede ser muy útil si desea probar algo sin eliminar todos los puntos de interrupción o omitir todo manualmente nuevamente.
Las integraciones de Git de VS ahora admiten múltiples repositorios por solución, y comprometerse en muchos repositorios ahora es más fácil.
Todos los iconos se han rediseñado para mantener la coherencia.
Los comentarios XML ahora admiten comentarios de varias líneas con espacios en blanco conservados y bloques CDATA.
«Buscar todas las referencias» ya no produce resultados repetidos basura cuando se encuentra en un proyecto de múltiples objetivos.
Razor Pages / Blazor ha obtenido numerosas integraciones de edición y ahora funcionará mejor con IntelliSense, resaltado de sintaxis y mejor formato en bloques @code. Ahora también puede utilizar «Ver código» en los archivos de Razor, que ha sido una limitación molesta durante un tiempo.
Y hay algunas plantillas de proyecto más, incluidas las aplicaciones Angular y React alojadas en ASP.NET Core, que se pueden crear con integraciones de API automáticamente.
Para obtener la lista completa de cambios, puede consultar el Notas del parche VS 2022.