Ponte en Contacto
 Duración 35 horas

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

Número de participantes


Precio por participante

Reseñas (4)

Próximos cursos

Categorías Relacionadas