Temario del curso
De las habilidades de lenguaje al diseño de soluciones
- Características avanzadas de C# y sus implicaciones en el diseño.
- Recuperar la intención de diseño a partir de código existente.
Análisis de Requisitos y Modelado del Dominio
- Casos de uso, historias de usuario y criterios de aceptación.
- Modelos de dominio y lenguaje ubicuo.
Principios de Diseño de Software
- Aplicación de los principios SOLID en soluciones .NET.
- Acoplamiento, cohesión y dirección de dependencias.
Patrones de Diseño para Aplicaciones .NET
- Selección de patrones creacionales, estructurales y de comportamiento.
- Patrones y anti-patrones en código existente.
Estilos de Arquitectura y Toma de Decisiones Técnicas
- Comparación entre arquitectura en capas, hexagonal y limpia (clean architecture).
- Registros de decisiones de arquitectura y análisis de compensaciones (trade-offs).
Planificación de la Estructura de la Solución
- Organización de la solución y de proyectos para bases de código extensas.
- Monolito modular frente a límites basados en servicios.
C# Moderno para Código Mantenible
- Correspondencia de patrones (pattern matching), registros (records) y tipos de referencia nulos.
- Genéricos, LINQ y composición funcional.
Manejo de Excepciones, Registros y Observabilidad
- Estrategia de excepciones y contratos de errores.
- Registro estructurado, correlación y verificaciones 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 hospedaje (hosting), inyección de dependencias y configuración.
- Proceso de solicitud (request pipeline), middleware y filtros.
Diseño de APIs REST
- Modelado de recursos y semántica HTTP.
- Versionado, validación y respuestas de error.
- Contratos de API con OpenAPI.
Seguridad 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 (trust boundaries).
- 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 errores comunes en la carga anticipada (eager loading).
- Transacciones, tokens de concurrencia y el uso de EF Core de forma alternativa.
Concurrencia y Programación Asíncrona
- Tareas, TPL (ThreadPool Library) y errores comunes en async/await.
- Sincronización, cancelación y seguridad de hilos.
Optimización de Rendimiento
- Perfiles y pruebas de rendimiento con BenchmarkDotNet.
- Memoria, asignaciones y recolección de basura (garbage collection).
- Estrategias de caché y pruebas de carga.
Estrategia de Pruebas a Través de Capas
- Límites entre pruebas unitarias, de integración y de extremo a extremo.
- Arquitectura testeable y simulacros de pruebas (test doubles).
Implementación y Preparación Operativa
- Contenedores, configuración y pipelines CI/CD.
- Diagnóstico en producción y seguridad de las versiones.
Proyecto Final: Revisión de Diseño e Implementación
- Revisión de la arquitectura de una aplicación de estudio.
- Implementación y refactorización de una parte funcional (feature slice).
Requerimientos
- Experiencia en programación con C#
- Conocimientos prácticos de 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
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