Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La actualización de una aplicación de ASP.NET Framework a ASP.NET Core no es trivial para la mayoría de las aplicaciones de producción. Estas aplicaciones suelen incorporar nuevas tecnologías a medida que están disponibles y a menudo se componen de muchas decisiones heredadas. En esta guía se proporcionan enfoques y herramientas prácticos para actualizar aplicaciones de ASP.NET Framework a ASP.NET Core con el menor cambio posible.
Por qué la migración es difícil
La migración de ASP.NET Framework a ASP.NET Core implica varios desafíos complejos que dificultan la reescritura completa y corren el riesgo de la mayoría de las aplicaciones de producción:
Acumulación de deuda técnica
Las aplicaciones de producción suelen acumular deuda técnica a lo largo de años de desarrollo:
- Dependencias de System.Web - El uso generalizado de HttpContext y los tipos asociados a lo largo de una base de código.
- Dependencias de paquetes obsoletas que podrían no tener equivalentes compatibles modernos.
- Herramientas de compilación heredadas y configuraciones de proyecto que no son compatibles con .NET modernas.
- Uso de API en desuso que debe reemplazarse por alternativas modernas.
- Advertencias del compilador y problemas de calidad del código que complican la migración.
Intereses transversales
Muchas aplicaciones tienen preocupaciones transversales que abarcan varias capas y necesitan una coordinación cuidadosa durante la migración:
- Administración de estado de sesión: ASP.NET Framework y ASP.NET Core tienen comportamientos y API de sesión fundamentalesmente diferentes.
- Autenticación y autorización : diferentes modelos de autenticación y API entre marcos.
- Registro y supervisión : es necesario mantener un registro coherente en ambas aplicaciones durante la migración.
- Estrategias de almacenamiento en caché : el almacenamiento en caché en memoria, distribuido o de salida debe mantenerse de forma coherente.
- Control de errores: establecimiento de patrones de control de errores coherentes en ambas aplicaciones.
- Administración de configuración : administración de opciones que deben compartirse o sincronizarse entre aplicaciones.
- Inyección de dependencias - Migración de varios contenedores de DI al contenedor integrado de ASP.NET Core.
El patrón de host genérico puede ayudar a abordar varios de estos problemas al incorporar la infraestructura moderna de .NET a las aplicaciones de ASP.NET Framework. Para obtener más información, consulte Host genérico de .NET en ASP.NET Framework.
Cadenas de dependencias de biblioteca
Las bibliotecas auxiliares suelen tener relaciones de dependencia complejas que requieren un orden de actualización cuidadoso:
- Complejidad del árbol de dependencias: debe actualizar las bibliotecas siguiendo el orden de búsqueda en profundidad en orden post.
- Requisitos de compatibilidad múltiple : las bibliotecas deben admitir todas las versiones del marco de trabajo dirigidas a la aplicación.
- Compatibilidad de API : garantizar que las bibliotecas funcionen con ambas versiones del marco durante el período de migración.
- Complejidad de las pruebas : cada actualización de biblioteca requiere pruebas exhaustivas para garantizar la compatibilidad.
Diferencias en la arquitectura de la aplicación
Las diferencias fundamentales entre ASP.NET Framework y ASP.NET Core crean desafíos adicionales:
- Modelos de hospedaje : diferentes enfoques para el hospedaje de aplicaciones y la administración del ciclo de vida
- Canalización de Middleware: pasar de módulos y controladores HTTP a middleware
- Procesamiento de solicitudes : diferentes modelos y contextos de procesamiento de solicitudes
- Características de rendimiento : diferentes patrones de uso de memoria y perfiles de rendimiento
Estos desafíos hacen que la migración incremental sea el enfoque preferido para la mayoría de las aplicaciones de producción. Este enfoque permite a los equipos abordar estos problemas gradualmente mientras se mantiene una aplicación de trabajo en producción.
Para obtener documentación sobre las áreas importantes que han cambiado, consulte los temas asociados disponibles en Escenarios de migración complejos: áreas de análisis en profundidad.
Comience aquí: Elija la ruta de migración.
Puede migrar con éxito su aplicación de ASP.NET Framework a ASP.NET Core. La clave es elegir el enfoque adecuado para su situación específica.
Tip
Independientemente de la ruta de acceso que elija, el agente de modernización de GitHub aplicación Copilot puede evaluar la solución, generar un plan de actualización y automatizar muchos de los pasos de migración. Para obtener más información, consulte Aprenda a actualizar de ASP.NET MVC, API web y Formularios web a ASP.NET Core.
Guía de decisión rápida
Responda a estas preguntas para elegir su enfoque:
¿Cuál es la escala de tiempo y la tolerancia al riesgo?
- Necesidad de permanecer en producción durante la migración → migración incremental
- Puede permitirse una reescritura completa → Migración in situ
¿Qué tamaño tiene la aplicación?
- Aplicaciones pequeñas a medianas → Migración local
- Las aplicaciones de producción de gran tamaño → la migración incremental es más segura
¿Tiene dependencias complejas?
- Dependencias desconocidas o obsoletas → migración incremental
- Uso intensivo de System.Web → migración incremental
- Dependencias mínimas → Migración local
Migración incremental
La migración incremental es una implementación del patrón Strangler Fig. Es mejor para proyectos más grandes o para proyectos que deban permanecer en producción durante una migración. Para empezar a migrar una aplicación de forma incremental, consulte Introducción a la migración incremental de ASP.NET a ASP.NET Core.
Migración in situ
La migración local puede funcionar para aplicaciones suficientemente pequeñas. Si es posible, este enfoque permite un reemplazo rápido de la aplicación. Sin embargo, los problemas pequeños pueden complicarse si decide realizar una migración local. Para obtener información sobre las opciones de herramientas de migración, consulte Learn to upgrade from ASP.NET MVC, Web API and Web Forms to ASP.NET Core (Aprender a actualizar de ASP.NET MVC, WEB API y Web Forms a ASP.NET Core).