Tarde o temprano nos encontraremos con la migración de frameworks/tecnologías y .NET no iba a ser una excepción. Utilizaremos la herramienta .NET Portability Analyzer para un primer vistazo a nuestras librerías y aplicaciones teniendo como objetivo aplicaciones multiplataforma, microservicios, dockers… en la nube.

Debemos tener claro antes de empezar, la recomendación general de Microsoft actualmente es utilizar .NET Core si tenemos que añadir nuevas funcionalidades en background, por el momento .NET Framework y .NET Core son complementarias. La mayor parte de las API de .NET Core se comparten con .NET Framework

Aclarado esto, con la extensión para Visual Studio 2019 instalada ya podemos iniciar el análisis que nos ayudará a identificar las dependencias externas. Dentro de la configuración de la extensión podemos fijar nuestro objetivo. Todas las acciones tienen su equivalente en línea de comandos.

Con el botón derecho sobre el proyecto o solución iniciamos el análisis, con el resultado (en excel en este caso):

Obtenemos los porcentajes de las API de .NET Framework que estarán disponibles en cada plataforma que tengamos seleccionada:

Para revisar en profundidad, en la pestaña «Detalles» podemos ver las librerías/ensamblados no soportados para cada versión:

Los ensamblados que faltan y no han podido ser analizados en esta ejecución, deberemos incluirlos o buscar la versión más reciente:

En cualquier caso y previo a este trabajo siempre es bueno revisar las Métricas de código del proyecto propias de Visual Studio o de terceros:

  • Índice de mantenimiento
  • Complejidad ciclomática
  • Profundidad de herencia
  • Acoplamiento de clases