Temario del curso
Introducción a la plataforma moderna .NET
- Entorno de ejecución, SDK y descripción general de la plataforma unificada de .NET 8.
- Comparación de la evolución de .NET Framework, .NET Core y .NET 8+.
- Estructura del proyecto, marcos objetivo y conceptos básicos de multiobjetivo (multi-targeting).
- Configuración del entorno de desarrollo y herramientas.
C# moderno y prácticas de lenguaje orientadas al futuro
- Registros (records), setters solo de inicialización (init-only) y patrones de inmutabilidad.
- Mejoras en la coincidencia de patrones y expresiones switch.
- Tipos de referencia anulables y seguridad impulsada por el compilador.
- Mejores prácticas de async/await y transmisión eficiente en memoria.
- Matemáticas genéricas, abstracciones estáticas en interfaces y API orientadas al rendimiento.
- Preparación de bases de código para las características C# 12/13 en .NET 8.
Fundamentos de ASP.NET Core y arranque de aplicaciones
\r- Constructor de host, pipeline de middleware y ciclo de vida de la solicitud.
- API mínimas frente a API basadas en controladores: criterios de decisión.
- Fuentes de configuración, ajustes específicos del entorno y gestión de secretos.
- Archivos estáticos, enrutamiento y convenciones de puntos finales.
- Configuración del contenedor de inyección de dependencias y tiempos de vida de los servicios.
Diseño e implementación de API REST
- Modelo de madurez REST, modelado de recursos y diseño URI.
- Métodos HTTP, códigos de estado y negociación de contenido.
- Validación de solicitudes, enlace de modelos e integración con FluentValidation.
- Estrategias de versionado para API públicas e internas.
- Documentación con OpenAPI y Swagger UI.
- Pruebas de integración de API con TestServer y WebApplicationFactory.
Inyección de dependencias empresarial e inversión del control (IoC)
- Inyección por constructor, tiempos de vida de servicios y dependencias cautivas.
- Patrones de decorador y fábrica con el contenedor integrado.
- Integración de Scrutor y bibliotecas DI de terceros.
- Registro modular de servicios y organización basada en características.
- Preocupaciones transversales mediante middleware y filtros.
Registro (Logging), configuración y manejo centralizado de errores
- Registro estructurado con Microsoft.Extensions.Logging y Serilog.
- Niveles de registro, alcances (scopes), enriquecimiento y configuración de sumideros (sinks).
- Middleware de excepciones y pipelines globales de manejo de errores.
- ProblemDetails y respuestas de error compatibles con RFC 7807.
- Comprobaciones de salud, telemetría y ganchos de observabilidad.
- ID de correlación y preparación para rastreo distribuido.
Arquitectura de software para soluciones empresariales .NET
- Principios de arquitectura en capas, hexagonal y limpia (clean architecture).
- Bloques de construcción del diseño centrado en el dominio en .NET.
- Patrones CQRS y mediator con MediatR.
- Patrones Repository y unidad de trabajo con EF Core.
- Arquitectura de segmentos verticales para la cohesión de características.
- Evaluación de compensaciones entre monolito, monolito modular y microservicios.
Seguridad para aplicaciones web y API
- Esquemas de autenticación: JWT, OAuth2, OpenID Connect y flujos basados en cookies.
- Políticas de autorización, acceso basado en reclamaciones (claims) y guardias basados en recursos.
- Aplicación de HTTPS, HSTS y middleware de encabezados seguros.
- Desinfección de entrada, codificación de salida y mitigación de las Top 10 de OWASP.
- Límite de velocidad, políticas CORS y manejo de tokens anti-falsificación.
- Gestión de secretos con Azure Key Vault y rotación impulsada por el entorno.
Calidad del código, mantenibilidad y mejores prácticas
- Estandares de codificación, EditorConfig y dotnet format.
- Análisis estático con analizadores Roslyn e integración con SonarQube.
- Pruebas unitarias con xUnit y simulación (mocking) con Moq o NSubstitute.
- Pruebas de integración y contratos en pipelines CI.
- Técnicas de refactorización para módulos heredados de larga vida útil.
- Documentación, contratos de API y prácticas de intercambio de conocimientos.
Estrategia de modernización: evaluación del código heredado de .NET Framework
- Análisis del portafolio: clasificación de aplicaciones por criticidad, complejidad y valor empresarial.
- Uso de .NET Upgrade Assistant y analizador de compatibilidad.
- Identificación de API obsoletas, dependencias específicas de la plataforma y brechas en componentes de terceros.
- Consideraciones para APIs específicas de Windows y migración de WCF.
- Creación de una hoja de ruta de migración con priorización basada en riesgos.
Técnicas de migración progresiva y coexistencia
- Patrón Strangler Fig: reemplazo incremental de subsistemas heredados.
- Migración primero la API: exposición de dominios .NET Framework a través de fachadas REST.
- Puenteo basado en mensajes con RabbitMQ, Azure Service Bus o Kafka.
- Coexistencia de base de datos compartida y estrategias de versionado de esquemas.
- Ejecución simultánea de .NET Framework y .NET 8 en la misma infraestructura.
- Contenedorización de componentes modernos mientras se deja el sistema heredado en IIS.
Laboratorio práctico de migración y revisión
- Aplicación del Upgrade Assistant a un proyecto heredado representativo.
- Refactorización de un servicio Web Forms o WCF hacia API de ASP.NET Core.
- Implementación de inyección de dependencias, registro y manejo centralizado de errores en la solución migrada.
- Añadido de autenticación y autorización a la nueva superficie de API.
- Verificación de la coexistencia mediante pruebas de integración de extremo a extremo.
- Revisión, preguntas y respuestas, y orientación para la planificación post-formación sobre modernización.
Requerimientos
- Experiencia con programación en C# y principios de diseño orientado a objetos.
- Familiaridad con conceptos de desarrollo web (HTTP, HTML, CSS, nociones básicas de JavaScript).
- Comprensión básica de bases de datos relacionales y SQL.
- Es beneficioso tener exposición previa a .NET Framework o ASP.NET, pero no es obligatorio.
Audiencia objetivo
- Desarrolladores y arquitectos de .NET que se preparan para modernizar aplicaciones heredadas de .NET Framework.
- Ingenieros de software que transicionan hacia roles de desarrollo empresarial en .NET.
- Líderes técnicos responsables de la planificación de migración y coexistencia de plataformas.
- Personal de DevOps e infraestructura que da soporte a los ciclos de vida de aplicaciones .NET.
Testimonios (2)
Interactividad y soluciones de código al momento
Eduard-Emanuel Zaharia - Kruk Italia
Curso - Advanced Blazor
Traducción Automática
oportunidad de trabajar de forma práctica y paciencia del formador
sheena - Te Manawa Taki Trauma System
Curso - Visual Studio 2022 IDE
Traducción Automática