Blog de Amazon Web Services (AWS)
Transfiera aplicaciones VB.NET antiguas a .NET 6.0 con Porting Assistant para .NET
AWS anunció recientemente la compatibilidad con la portabilidad de aplicaciones de .NET Framework escritas en VB.NET a .NET 6.0 con Porting Assistant para .NET. Con esta versión, Porting Assistant for .NET traduce las bibliotecas de clases de VB.NET, las API web y las aplicaciones de consola a .NET Core 3.1, .NET 5 o .NET 6 para simplificar la modernización de las aplicaciones antiguas de .NET Framework escritas en VB.NET. Esta publicación de blog le proporcionará una guía paso a paso sobre cómo portar sus aplicaciones antiguas de VB.Net a la última versión de .NET
Porting Assistant for .NET es una herramienta de análisis de código abierto que reduce el esfuerzo manual y la complejidad que implica la migración de aplicaciones .NET Framework a .NET 6, lo que. Identifica las incompatibilidades con .NET 6.0, genera un informe de evaluación con sugerencias de reemplazo conocidas y ayuda con la portabilidad. Para mayor detalle consulte la documentación y el blog de lanzamiento de Porting Assistant for .NET para familiarizarse con el uso de Porting Assistant para .NET.
Desafíos en la portabilidad de aplicaciones antiguas a la última versión de .NET
Hace unos años, mientras trabajaba como consultor, ayudé a uno de mis clientes empresariales a modernizar su plataforma tecnológica tradicional y a migrarla a AWS. Decidimos adaptar a la última versión de .NET Core. Considero que cualquier profesional de software que haya dedicado tiempo portar una aplicación antigua a la versión más reciente de puede adaptarse a mi experiencia.
Guía paso a paso para portar aplicaciones de VB.NET a .NET 6.0
En este tutorial, debido a su popularidad y familiaridad en la comunidad de desarrolladores, se utiliza la versión 3.80 de la aplicación nopCommerce convertida a localmente.
Prerrequisitos
Para este tutorial, necesitará:
- Máquina de desarrollo con Visual Studio
- Asistente de portación para .NET instalado y configurado.
Paso 1: Descargue la versión 3.80 de la aplicación nopCommerce
Puedes descargar la versión 3.80 de la aplicación nopCommerce localmente con los siguientes comandos de git:
Paso 2: Convierte la solución nopCommerce a VB.NET
La versión 3.80 de la aplicación nopCommerce se implementa en C# utilizando .NET Framework 4.5.1. Primero, deberá convertirlo de C# a VB.NET utilizando la herramienta de conversión de código.
- Descargue e instale la extensión Code Converter desde Visual Studio Marketplace, como se muestra en la figura 1.
Figura 1. Extensión de convertidor de código
- Haga clic con el botón derecho en la solución nopCommerce y seleccione Convertir a VB, como se muestra en
Figura 2. Opción de menú Convertir a VB
- Tardará unos minutos en convertir la solución nopCommerce a NET. Tras una conversión exitosa, Porting Assistant for .NET volverá a cargar la solución con los archivos y proyectos fuente de VB convertidos.
Paso 3: Realizar una evaluación de compatibilidad
A continuación, ejecute una evaluación de compatibilidad en la solución nopCommerce siguiendo los pasos siguientes.
- Inicie el Asistente de portabilidad para .NET y haga clic en Comenzar para ejecutar una evaluación del proyecto de origen, como se muestra en la figura 3.
Figura 3. Botón Comenzar para iniciar la evaluación
- Elija Evaluar una nueva solución y seleccione sln en su disco local, como se muestra en la figura 4.
Figura 4. Opción de seleccionar una nueva solución para la evaluación
- Haga clic en Evaluar para comenzar la evaluación, como se muestra en la figura 5. Debido al tamaño de la solución nopCommerce, tardará unos minutos en completarse.
Figura 5. Evalúe la opción para comenzar la evaluación
Paso 4: Revise los resultados de la evaluación mediante el panel
El panel de control del Asistente de portabilidad para .NET ofrece un resumen rápido de los resultados de la evaluación, incluidos los paquetes y las API incompatibles, además del número de proyectos transferidos hasta ahora si ha empezado a portarlos.
La figura 6 muestra que 0 de los 35 proyectos se han portado hasta ahora. Un total de 52 paquetes de NuGet son incompatibles de un total de 56, y 3289 API son incompatibles de los 7167.
Figura 6. Panel de control del asistente
Paso 5: Desglose de las incompatibilidades por proyecto
Porting Assistant for .NET ofrece una interfaz gráfica detallada para que pueda hacer clic en la solución para examinar el desglose de las incompatibilidades por proyecto, como se muestra en la figura 7.
Figura 7. Resumen de la evaluación
Paso 6: Varios puntos de vista de evaluación
Porting Assistant for .NET ofrece cinco vistas de evaluación diferentes: proyectos, referencias de proyectos, paquetes NuGet, API y archivos fuente, como se muestra en la figura 8. Estas vistas ayudan a los desarrolladores a analizar los resultados de la evaluación desde diferentes perspectivas. La vista de paquetes de NuGet proporciona detalles de las dependencias compatibles e incompatibles y los reemplazos sugeridos, si están disponibles. Del mismo modo, la vista de API muestra las API incompatibles, el paquete en el que se encuentran y el número de veces que se hace referencia a ellas. Por último, puede profundizar en la vista de archivos fuente y navegar hasta la línea fuente exacta a la que se llama la API en particular.
Figura 8. Diversas opiniones de evaluación
Paso 7: Usa la vista de referencias del proyecto para empezar
Mi vista de evaluación favorita es la vista de referencias del proyecto, que ofrece una representación visual de las dependencias del proyecto. Ayuda a los desarrolladores a decidir rápidamente qué proyectos deben empezar a portar para minimizar el esfuerzo general y ver los resultados rápidamente.
Por ejemplo, puede ver en la figura 9 que la mayoría de los proyectos dependen de la biblioteca Nop.Core, por lo que tiene sentido portarla primero. Además, le ayudará a resolver los problemas de máxima compatibilidad en menos tiempo.
Figura 9. Vista gráfica de las dependencias de los proyectos
Paso 8: Portar el proyecto mediante la portabilidad asistida
Si bien puedes seleccionar todos los proyectos en la vista Proyectos con las marcas de verificación que se encuentran a la derecha junto a cada proyecto, por motivos de simplicidad, elige solo Nop.Core y comienza a portarlo.
- Haga clic en Port Project después de seleccionar la marca de verificación junto a Core, como se muestra en la figura 10.
Figura 10. Resumen de la evaluación
- A continuación, se le pedirá que elija la ubicación de transferencia, como se muestra en la figura 11. Tiene la opción de «Modificar la fuente en su lugar» o «Copiar a una nueva ubicación». Si has clonado el repositorio, selecciona la opción «Modificar la fuente en su lugar» para comparar los cambios mediante el sistema de control de versiones de Git.
Figura 11. Seleccione cómo desea almacenar la solución modificada
- Según el tamaño del proyecto y el número de incompatibilidades, la migración puede tardar unos minutos. Una vez que se complete la transferencia, verá la notificación en la parte superior, como se muestra en la figura 12.
Figura 12. Se actualizó el panel de control del asistente de portabilidad
Paso 9: Crea el proyecto y examina los cambios en el código
Una vez hecha la portabilidad, lo primero que debes hacer es compilar y compilar el proyecto para asegurarte de que no recibas ningún error de compilación.
El motor de sugerencias de Porting Assistant for .NET está diseñado para aprender y mejorar los resultados a lo largo del tiempo, ya que los clientes optan por compartir su telemetría. Los modelos de datos detrás del motor, que son el resultado del análisis de cientos de miles de paquetes únicos con millones de versiones de paquetes, están disponibles en GitHub.
Examinemos los cambios de código realizados por el Asistente de Portación para .NET en el proyecto de la biblioteca Nop.Core y los archivos fuente relacionados:
- Eliminó el archivo config, como se muestra en la figura 13.
Figura 13. Packages.config eliminado
- Además, ha agregado los paquetes NuGet compatibles al archivo core.vbproj, como se muestra en la figura 14.
Figura 14. Archivo de proyecto actualizado con los paquetes NuGet compatibles
Paso 10: Actualizaciones manuales para paquetes incompatibles sin sugerencia de reemplazo
Supongamos que no se sugiere ningún reemplazo para una versión de paquete diferente. En ese caso, debes abrir un editor de código fuente y actualizar el código para usar una API o un enfoque diferente para solucionarlo manualmente. Será un proceso iterativo.
Paso 11: Repite el proceso para el resto de los proyectos.
Debe repetir el proceso para el resto de los proyectos para terminar de portar la solución nopCommerce. Puede utilizar la vista gráfica de referencias de proyectos para priorizar qué proyecto debe ser el siguiente puerto en función del número de proyectos que dependen de él.
Conclusión
En este blog de ha mostrado cómo el Asistente de portabilidad para .NET (ó Porting Assistant for .NET por sus siglas en inglés) puede ayudar a los desarrolladores a reducir significativamente el esfuerzo de portar aplicaciones antiguas de .NET Framework escritas en VB.NET a .NET 6.0. Una vez que la aplicación se transfiera a .NET 6.0, los desarrolladores pueden continuar con el proceso de modernización colocándola en contenedores y alojándola en Además, puede pasar de contenedores de Windows a contenedores de Linux y reducir el costo de hospedar aplicaciones.NET en AWS, mejorar el escalado y el rendimiento de las aplicaciones y reducir el gasto en licencias.
Este artículo fue traducido del Blog da AWS en Inglés.
Sobre o autor
Jignesh Suthar es Arquitecto de Soluciones en AWS con más de 20 años de experiencia trabajando con empresas Fortune 500 y Startups, ayudándolas a migrar y modernizar su plataforma tecnológica utilizando tecnologías de nube líderes y alojándolas en nubes públicas siguiendo las mejores prácticas.
Traductor
Victor Jiménez es un arquitecto senior de soluciones de socios principales de AWS con sede en México. Cuenta con experiencia de 15 años en cargas de trabajo de Windows Server principalmente en roles de infraestructura, provisionamiento y automatización. Ha adquirido experiencia en los últimos 4 años en tecnologías en la nube. En AWS, lleva a cabo tareas de apoyo con los socios estratégicos para guiar a los clientes en la adopción de su viaje a la nube y modernización aprovechando las herramientas y servicios optimizados para su negocio.