.NET 8
.NET 8 provoca una amplia reflexión sobre cuánto ha avanzado la plataforma: los desarrolladores elogian sus mejoras de rendimiento, la compilación Native AOT, las nuevas características de C# 12 (como las expresiones de colección y los interceptores) y las incorporaciones orientadas a la nube como .NET Aspire. Al mismo tiempo, muchos consideran que la experiencia multiplataforma de GUI y las herramientas en sistemas que no son Windows siguen rezagadas, y siguen preocupados por la fragmentación del ecosistema (.NET Framework vs .NET Core vs “solo .NET”), la rotación de frameworks de UI y la monetización de Microsoft en torno a IDEs y extensiones. En general, los participantes ven el .NET moderno como una opción rápida, capaz y bien equipada para trabajo de back-end y cloud-native, pero menos claramente posicionado como una opción de primera para UIs de escritorio y móviles multiplataforma.
Cambios del lenguaje en C# 12
- Nuevas expresiones de colección (
[1, 2, ..others]) y la sintaxis de expansión reutilizan la forma existente de pattern matching..para lograr simetría entre construcción y deconstrucción. - Debate sobre
..frente a...; la elección fue en parte reservar...para posibles características futuras. - Los constructores primarios para clases dividen opiniones: algunos los ven como una conveniencia potente, mientras que otros los consideran potencialmente confusos.
- Los interceptores mediante generadores de código fuente se ven como “herramientas poderosas” de nicho para frameworks de DI/AOP más que para la lógica de negocio cotidiana.
Native AOT, rendimiento y huella
- Native AOT recibe elogios por sus binarios pequeños e independientes y por un despliegue al estilo Go, aunque muchos señalan lagunas en el ecosistema (código muy dependiente de reflexión, patrones antiguos de ASP.NET, GUIs).
- Algunos lo comparan más con la imagen nativa de Java/Graal: potente, pero solo un subconjunto de bibliotecas funciona con fluidez.
- Dynamic PGO ahora está activado por defecto; se espera que beneficie especialmente al código con muchas abstracciones.
Aspire, Dapr, Orleans y cloud-native
- Aspire genera tanto interés como sospecha; algunos lo ven como una integración útil para .NET cloud-native, mientras que otros temen “demasiada magia” y solapamiento con Dapr.
- Hay preguntas sobre el compromiso a largo plazo con Dapr y Orleans; los mantenedores informan de trabajo activo (workflows de Orleans, almacenamiento, integración con Aspire).
Herramientas, coste y plataformas
- Visual Studio (Windows), VS Code con extensiones de C#, y Rider son las principales opciones; muchos elogian Rider en macOS/ARM.
- Hay fricción para lograr herramientas realmente gratuitas y abiertas a “escala empresarial” y en plataformas no Windows, aunque la CLI + VS Code funciona.
- La licencia de VS / DevKit para empresas grandes genera preocupaciones sobre una futura monetización; otros argumentan que el runtime es MIT y se puede bifurcar.
Historia multiplataforma y de GUI
- Existe un fuerte consenso en que el uso multiplataforma sin GUI para servidor/CLI es sólido y agradable.
- La GUI de escritorio/móvil se considera fragmentada: MAUI (con backend nativo), Avalonia/Uno (estilo Skia), Blazor (web/WASM), opciones de terceros (Eto, Godot).
- Algunos temen que Blazor repita los inconvenientes de WebForms; otros están entusiasmados con su modelo unificado de componentes y sus nuevas características de streaming/servidor.
Versionado, Mono y compatibilidad
- Se repite la explicación: el antiguo .NET Framework solo para Windows frente al moderno .NET 5–8 multiplataforma; .NET Standard sirve principalmente para compartir bibliotecas heredadas.
- Mono quedó en gran parte absorbido en el repositorio principal, pero aún se usa en Unity, MAUI móvil y algunas plataformas de nicho.
- Muchos elogian la compatibilidad hacia atrás de .NET; algunos responden que Java sigue siendo incluso más estricto.
Otros lenguajes y adopción
- Se anunció F# 8 junto con C# 12, con mejoras de rendimiento e interoperabilidad; a la comunidad le preocupa su visibilidad marginal.
- Hay varios hilos sobre por qué/cuándo elegir .NET frente a Go/Java: herramientas sólidas, LINQ, el modelo async y mejoras incrementales anuales.