Blog de Amazon Web Services (AWS)

Transfiera aplicaciones VB.NET antiguas a .NET 6.0 con Porting Assistant para .NET

Por Jignesh Suthar, Arquitecto Senior de soluciones para socios, Microsoft Platform
Con el lanzamiento de .NET 6.0, hay. Esta versión de cuenta con algunas funciones increíbles que seguramente harán que sus aplicaciones sean más rápidas, confiables y fáciles de mantener. Pero, ¿qué sucede si tiene aplicaciones antiguas de Framework que necesita transferir a .NET 6.0 y se quiere aprovechar estas ventajas? No te preocupes, ¡el Asistente de Portación de .NETPorting Assistant for .NET por sus siglas en inglés)  puede ayudarte!

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á:

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:

1.	git clone https://github.com/nopSolutions/nopCommerce.git
2.	git checkout release-3.80  
Bash

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.

  1. Descargue e instale la extensión Code Converter desde Visual Studio Marketplace, como se muestra en la figura 1.

Code Converter ExtensionFigura 1. Extensión de convertidor de código

  1. Haga clic con el botón derecho en la solución nopCommerce y seleccione Convertir a VB, como se muestra en

Convert to VB menu option

Figura 2. Opción de menú Convertir a VB

  1. 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.

  1. 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.

Get Started button to initiate assessment

Figura 3. Botón Comenzar para iniciar la evaluación

  1. Elija Evaluar una nueva solución y seleccione sln en su disco local, como se muestra en la figura 4.

Option to select new solution for assessment

Figura 4. Opción de seleccionar una nueva solución para la evaluación

  1. 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.

Assess option to begin the assessment

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.

Porting Assistant Dashboard

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.

Assessment overview

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.

Various assessment views

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.

Graphical view of projects dependencies

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.

  1. Haga clic en Port Project después de seleccionar la marca de verificación junto a Core, como se muestra en la figura 10.

Assessment overview

Figura 10. Resumen de la evaluación

 

  1. 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.

Select how you want to store the modified solution

Figura 11. Seleccione cómo desea almacenar la solución modificada

  1. 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.

Updated Porting Assistant Dashboard after assessment is done

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:

  1. Eliminó el archivo config, como se muestra en la figura 13.

Deleted packages.config

Figura 13. Packages.config eliminado

  1. Además, ha agregado los paquetes NuGet compatibles al archivo core.vbproj, como se muestra en la figura 14.

Updated project file with the compatible NuGet packages

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 .NETPorting 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.