Compartir a través de


Cuándo elegir .NET Framework para contenedores de Docker

Sugerencia

Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico 'Arquitectura de microservicios de .NET para aplicaciones .NET contenedorizadas'.

Aunque .NET 8 ofrece ventajas significativas para las nuevas aplicaciones y patrones de aplicación, .NET Framework seguirá siendo una buena opción para muchos escenarios existentes.

Migración de aplicaciones existentes directamente a un contenedor de Windows Server

Es posible que quiera usar contenedores de Docker solo para simplificar la implementación, aunque no cree microservicios. Por ejemplo, quizás quiera mejorar el flujo de trabajo de DevOps con Docker: los contenedores pueden proporcionar entornos de prueba aislados mejores y también pueden eliminar los problemas de implementación causados por dependencias que faltan al pasar a un entorno de producción. En casos como estos, incluso si va a implementar una aplicación monolítica, tiene sentido usar Contenedores de Docker y Windows para las aplicaciones actuales de .NET Framework.

En la mayoría de los casos de este escenario, no tendrá que migrar las aplicaciones existentes a .NET 8; Puede usar contenedores de Docker que incluyan .NET Framework tradicional. Sin embargo, un enfoque recomendado es usar .NET 8 a medida que extiende una aplicación existente, como escribir un nuevo servicio en ASP.NET Core.

Uso de bibliotecas de .NET de terceros o paquetes NuGet no disponibles para .NET 8

Las bibliotecas de terceros adoptan rápidamente .NET Standard, lo que permite el uso compartido de código en todos los tipos de .NET, incluido .NET 8. Con .NET Standard 2.0 y versiones posteriores, la compatibilidad de la superficie de API en diferentes marcos se ha vuelto significativamente mayor. Además, las aplicaciones .NET Core 2.x y más recientes también pueden hacer referencia directamente a las bibliotecas existentes de .NET Framework (consulte .NET Framework 4.6.1 que admite .NET Standard 2.0).

Además, el paquete de compatibilidad de Windows amplía la superficie de API disponible para .NET Standard 2.0 en Windows. Este paquete permite volver a compilar el código existente en .NET Standard 2.x con poca o ninguna modificación, para ejecutarse en Windows.

Sin embargo, incluso con esa progresión excepcional desde .NET Standard 2.0 y .NET Core 2.1 o posterior, puede haber casos en los que determinados paquetes NuGet necesitan Windows para ejecutarse y es posible que no admitan .NET Core o posterior. Si esos paquetes son críticos para la aplicación, deberá usar .NET Framework en contenedores de Windows.

Uso de tecnologías de .NET no disponibles para .NET 8

Algunas tecnologías de .NET Framework no están disponibles en .NET 8. Algunos de ellos podrían estar disponibles en versiones posteriores, pero otros no se ajustan a los nuevos patrones de aplicación destinados a .NET Core y es posible que nunca estén disponibles.

En la lista siguiente se muestran la mayoría de las tecnologías que no están disponibles en .NET 8:

  • ASP.NET Formularios web. Esta tecnología solo está disponible en .NET Framework. Actualmente no hay planes para llevar ASP.NET Web Forms a .NET o posterior.

  • Servicios relacionados con el flujo de trabajo. Windows Workflow Foundation (WF), Workflow Services (WCF + WF en un solo servicio) y WCF Data Services (anteriormente conocido como ADO.NET Data Services) solo están disponibles en .NET Framework. Actualmente no hay planes para traerlos a .NET 8.

Además de las tecnologías enumeradas en la hoja de ruta oficial de .NET, se pueden migrar otras características a la nueva plataforma unificada de .NET. Es posible que considere la posibilidad de participar en las discusiones en GitHub para que su voz se pueda escuchar. Y si cree que falta algo, abra un nuevo problema en el repositorio dotnet/runtime de GitHub.

Uso de una plataforma o API que no admite .NET 8

Algunas plataformas de Microsoft y de terceros no admiten .NET 8. Por ejemplo, algunos servicios de Azure proporcionan un SDK que aún no está disponible para su consumo en .NET 8. La mayoría del SDK de Azure se deben migrar finalmente a .NET 8/.NET Standard, pero es posible que algunos no por varias razones. Puede ver los SDK de Azure disponibles en la página Versiones más recientes del SDK de Azure .

Mientras tanto, si alguna plataforma o servicio de Azure todavía no admite .NET 8 con su API de cliente, puede usar la API REST equivalente desde el servicio de Azure o el SDK de cliente en .NET Framework.

Migración de una aplicación de ASP.NET existente a .NET 8

.NET Core es un revolucionario paso adelante de .NET Framework. Ofrece una serie de ventajas sobre .NET Framework a lo largo de todo el panel, desde la productividad hasta el rendimiento, y desde el soporte multiplataforma hasta la satisfacción del desarrollador.

Recursos adicionales