Temario del curso
De las habilidades de lenguaje al diseño de soluciones
- Funciones avanzadas de C# y sus implicaciones de diseño.
- Recuperar la intención de diseño del código existente.
Análisis de requisitos y modelado de dominio
- Casos de uso, historias de usuario y criterios de aceptación.
- Modelos de dominio y lenguaje ubícuo.
Principios de diseño de software
- Aplicación de los principios SOLID a las soluciones .NET.
- Acoplamiento, cohesión y dirección de las dependencias.
Patrones de diseño para aplicaciones .NET
- Selección de patrones creacionales, estructurales y de comportamiento.
- Patrones y antipatrones en el código existente.
Estilos arquitectónicos y toma de decisiones técnicas
- Comparación de la arquitectura por capas, hexagonal y limpia (clean architecture).
- Registros de decisiones arquitectónicas y análisis de compromisos.
Planificación de la estructura de la solución
- Organización de soluciones y proyectos para bases de código grandes.
- Monolito modular frente a límites orientados a servicios.
C# moderno para código mantenible
- Correspondencia de patrones, registros (records) y tipos de referencia nula.
- Genéricos, LINQ y composición funcional.
Manejo de excepciones, registro de eventos y observabilidad
- Estrategia de excepciones y contratos de error.
- Registro estructurado, correlación y comprobaciones de salud.
Reflexión, atributos y metaprogramación
- Diseño basado en atributos y casos de uso de la reflexión.
- Generadores de código fuente y generación de código en tiempo de compilación.
Fundamentos de ASP.NET Core
- Modelo de host, inyección de dependencias y configuración.
- tubería de solicitudes, middleware y filtros.
Diseño de API REST
- Modelado de recursos y semántica HTTP.
- Versionado, validación y respuestas de error.
- Contratos de API con OpenAPI.
Protección de aplicaciones .NET
- Autenticación y autorización con OpenID Connect.
- Autorización basada en políticas y gestión de secretos.
Modelado de amenazas y diseño seguro
- Modelado STRIDE y límites de confianza.
- Revisión de diseño seguro antes de la implementación.
Acceso a datos con Entity Framework Core
- Modelado de entidades y relaciones.
- Ciclo de vida de DbContext y estrategia de migraciones.
Rendimiento de consultas y arquitectura de datos
- Estrategias de carga y problemas del carga anticipada (eager loading).
- Transacciones, tokens de concurrencia y el uso de EF Core.
Concurrencia y programación asíncrona
- Tareas, TPL y problemas de async/await.
- Sincronización, cancelación y seguridad de hilos.
Optimización del rendimiento
- Perfilado y pruebas de benchmark con BenchmarkDotNet.
- Memoria, asignaciones y recolección de basura.
- Estrategias de caché y pruebas de carga.
Estrategia de pruebas en las diferentes capas
- Límites de pruebas unitarias, de integración y de extremo a extremo.
- Arquitectura testeable y dobletes de prueba (test doubles).
Implementación y preparación operativa
- Contenedores, configuración y tuberías CI/CD.
- Diagnósticos de producción y seguridad de las liberaciones.
Proyecto final: Revisión de diseño e implementación
- Revisión arquitectónica de una aplicación de caso.
- Implementación y refactorización de una porción de funcionalidad.
Requerimientos
- Experiencia programando en C#
- Conocimiento práctico de la programación orientada a objetos
- Conocimientos básicos de SQL y bases de datos relacionales
Público objetivo
- Desarrolladores .NET
- Ingenieros de software y líderes técnicos
- Desarrolladores que están transicionando a roles de diseño de aplicaciones
Formación Corporativa a Medida
Soluciones de formación diseñadas exclusivamente para empresas.
- Contenido personalizado: Adaptamos el temario y los ejercicios prácticos a los objetivos y necesidades reales del proyecto.
- Calendario flexible: Fechas y horarios adaptados a la agenda de su equipo.
- Modalidad: Online (en directo), In-company (en sus oficinas) o Híbrida.
Precio por grupo privado (formación online) desde 7250 € + IVA*
Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales
Reseñas (4)
Fue una capacitación individual, por lo que se adaptó a mis necesidades específicas. Shane destacó elementos de WPF/C# que podrían ser beneficiosos para mis proyectos de desarrollo.
Warren Nolan - Northrop Grumman
Curso - Programming in WPF
Traducción Automática
Conocimiento, participación y relación del formador
Adam Kuklewski - GE Medical Systems Polska
Curso - Technical Architecture and Patterns
Traducción Automática
Las explicaciones y la interactividad del instructor fueron excelentes; realmente llevó el tema muy bien. Aunque probablemente no tenía suficiente experiencia, ¡aprendí mucho de ello!
Pieter Bruynseels - Spot Buy Center BV
Curso - Design Patterns
Traducción Automática
Agradable y amable. Muy conocedor. Recomendaría a Shane a otros.
Joshua - California State University Bakersfield
Curso - Programming in C# with Visual Studio 2022
Traducción Automática