En el mundo del desarrollo de software, especialmente en el entorno de Windows, elegir la plataforma .NET adecuada para desarrollar aplicaciones de escritorio puede marcar la diferencia en rendimiento, compatibilidad, mantenimiento y despliegue. Con la evolución de .NET Framework, .NET Core y el actual .NET (moderno, desde .NET 5), es fundamental entender sus diferencias, capacidades actuales y cómo se comportan bajo Windows 11.
1. .NET Framework: el clásico integrado en Windows
El .NET Framework fue lanzado en 2002 y está totalmente ligado al sistema operativo Windows. Es ampliamente usado en aplicaciones de escritorio tradicionales como Windows Forms, WPF, servicios de Windows, integraciones con Office, COM, Active Directory, etc.
Características clave:
- Solo compatible con Windows.
- Muy estable y con gran retrocompatibilidad.
- Incluido por defecto en Windows 11 (v4.8.1).
- Ideal para aplicaciones legadas.
- No se desarrollan nuevas funcionalidades, solo actualizaciones de seguridad.
2. .NET Core: el paso intermedio hacia la modernización
.NET Core apareció en 2016 como una alternativa modular, ligera y multiplataforma (Windows, Linux, macOS). Fue optimizado para entornos modernos como la nube y contenedores Docker.
En desarrollo de escritorio:
- A partir de .NET Core 3.0/3.1, se añadió soporte para WinForms y WPF, aunque limitado solo a Windows.
- Mejor rendimiento y arquitectura más moderna que .NET Framework.
- Fin de soporte en 2022, ya no se recomienda su uso.
3. .NET moderno (desde .NET 5 en adelante)
Desde .NET 5 (2020), Microsoft unificó .NET Framework y .NET Core bajo un único entorno de ejecución. Este nuevo .NET se mantiene en evolución activa, siendo .NET 8 (2023) la última versión LTS y .NET 9 prevista para finales de 2024.
Para escritorio:
- Compatible con WinForms y WPF (solo en Windows).
- Compatible con MAUI, para crear apps de escritorio y móviles desde una sola base de código.
- Soporte completo para ARM64 y arquitecturas modernas.
- Uso de C# 12, últimas APIs, y herramientas modernas (Visual Studio 2022/2025).
Comparativa técnica
Característica | .NET Framework | .NET Core | .NET (5–8) |
---|---|---|---|
Multiplataforma | ❌ Solo Windows | ✅ Parcial | ✅ Sí |
WinForms / WPF | ✅ Sí | ✅ Sí | ✅ Sí (Windows) |
MAUI | ❌ No | ❌ No | ✅ Sí |
Soporte oficial | ✅ Mantenimiento | ❌ Finalizado 2022 | ✅ Activo |
C# moderno | ❌ C# 7.3 máx. | ✅ Sí | ✅ Sí (C# 12) |
Contenedores (Docker) | ❌ No | ✅ Sí | ✅ Sí |
Publicación single file | ❌ No | ✅ Sí | ✅ Sí |
A nivel de ejecutables
.NET Framework:
- Genera .exe dependientes del runtime instalado en el sistema.
- Más pequeños, pero no portables (requieren .NET Framework 4.x).
- No permite publicar como “self-contained”.
.NET Core / .NET moderno:
- Permiten dos tipos de publicación:
-
-
Framework-dependent: el runtime debe estar instalado en el PC.
-
Self-contained: el ejecutable incluye el runtime completo.
-
- También puedes hacer Single File Deployment (un solo .exe que se ejecuta en cualquier Windows compatible).
- Tamaños de ejecutable más grandes (30–100 MB), pero sin dependencias externas.
Ejemplo de publicación:
Compatibilidad con Windows 11
- Windows 11 trae por defecto .NET Framework 4.8.1, por lo que las aplicaciones antiguas funcionan sin instalar nada.
- No incluye .NET 6, 7 ni 8, por lo que si tu aplicación está en .NET moderno:
-
-
Debes indicar al usuario que instale el runtime adecuado, o
-
Publicar como self-contained para evitar problemas.
-
Recomendaciones según escenario
Escenario | Plataforma recomendada |
---|---|
Aplicación interna para empresa | .NET 8, publicación framework-dependent |
Aplicación para distribuir públicamente | .NET 8, self-contained + single file |
Proyecto clásico y muy legado | Mantener en .NET Framework (con actualizaciones) |
Proyecto con visión multiplataforma | .NET 8 + MAUI o WPF según caso |
Proyecto con Crystal Reports, SSRS, o COM | Validar soporte o mantener temporalmente en Framework |
Herramientas útiles
- 🔧 Upgrade Assistant: guía paso a paso para migrar de .NET Framework a .NET moderno.
- 🔄 try-convert: herramienta para convertir automáticamente archivos de proyecto antiguos.
- 🧪 .NET Portability Analyzer: analiza qué APIs son compatibles con .NET moderno.
Conclusión
A día de hoy, para desarrollar aplicaciones de escritorio en Windows:
- .NET Framework sigue siendo válido para proyectos legados, pero su evolución está detenida.
- .NET moderno (8 y en adelante) es el camino a seguir: más rendimiento, mejores herramientas, multiplataforma (en parte), y preparado para el futuro.
- Windows 11 ya incluye .NET Framework, pero para nuevas apps lo ideal es usar .NET moderno + publicación self-contained para evitar problemas de compatibilidad y distribución.