Clean Architecture
Clean Architecture en .NET:
Hexagonal, Onion, DDD y Vertical Slice en la práctica
TI Capacitación
Sesiones en vivo a través de Microsoft Teams
Inicia 14 de enero de 2026
Sesiones los Miércoles de 18:30 a 21:30 Hrs UTC-6

Este curso está orientado a desarrolladores C# que desean comprender y aplicar principios de arquitectura de software para construir sistemas de software que sean fáciles de cambiar, probar y mantener. Se trabajará sobre la plataforma .NET para transformar aplicaciones con código acoplado en sistemas que siguen reglas claras de diseño.

A lo largo del curso se construirá un sistema real en .NET que evolucionará progresivamente desde una arquitectura accidental hacia una arquitectura profesional. En este proceso, el participante aprenderá a separar la lógica de negocio del Dominio de los detalles técnicos como bases de datos o interfaces de usuario. Esto se logra aplicando el Principio de Inversión de Dependencias (DIP) como base de todo el diseño.

El curso cubrirá las arquitecturas Hexagonal y Onion para establecer una estructura con capas que protegen el núcleo del sistema, asegurando que las dependencias siempre apunten hacia dentro (Regla de Dependencia). Después, se adoptará Clean Architecture para definir el flujo de control, usando los Casos de Uso como los únicos puntos de orquestación de la aplicación.

Se dedicará una parte esencial a Domain-Driven Design (DDD) para modelar el Dominio de forma precisa. Esto incluye el uso de Agregados, Entidades y Value Objects para hacer que el código refleje exactamente las reglas del negocio. Finalmente, se aplicará Vertical Slice Architecture (VSA) para organizar la solución por funcionalidades (o Features), usando patrones de Comandos y Consultas (CQRS) para lograr un código más simple de mantener y escalar.

El curso proporciona un marco de trabajo sólido para la evaluación, refactorización y diseño de aplicaciones empresariales.

Objetivos

Al finalizar este curso, los participantes serán capaces de:

  • Evaluar los riesgos de la arquitectura accidental y sus limitaciones en aplicaciones reales.
  • Diagnosticar la calidad arquitectónica identificando y evaluando el acoplamiento y las violaciones del Principio de Inversión de Dependencias (DIP) en bases de código existentes.
  • Aplicar el Principio de Inversión de Dependencias utilizando abstracciones para romper dependencias directas de la Infraestructura y proteger la lógica central del sistema.
  • Implementar arquitecturas de aislamiento diseñando y estructurando soluciones .NET con las arquitecturas Hexagonal y Onion, asegurando que el Dominio sea el núcleo inmutable del sistema.
  • Orquestar el flujo de control con Clean Architecture definiendo e implementando Casos de Uso como los orquestadores únicos de la lógica de aplicación, manteniendo la separación entre la interfaz de usuario, la aplicación y el Dominio.
  • Aplicar patrones Domain-Driven Design (DDD) como Agregados, Entidades y Value Objects para construir un modelo de negocio rico y coherente.
  • Reestructurar aplicaciones usando Vertical Slice Architecture (VSA) para la escalabilidad, implementando patrones de Comandos y Consultas (CQRS).
  • Tomar decisiones arquitectónicas fundamentadas en principios, en lugar de depender de modas o plantillas prefabricadas.
  • Diseñar y evolucionar aplicaciones .NET con una arquitectura profesional, clara y sostenible en el tiempo.

Audiencia

Este curso está dirigido a desarrolladores .NET con C# que desean profundizar en el diseño y la arquitectura de aplicaciones, y no limitarse únicamente a que el código “funcione”.

Está orientado a desarrolladores que desean comprender por qué se toman ciertas decisiones arquitectónicas, cómo se relacionan entre sí enfoques como Clean Architecture, Hexagonal u Onion, y qué problemas resuelve cada uno en la práctica.

Es especialmente útil para quienes buscan fortalecer su criterio arquitectónico, mejorar la calidad y mantenibilidad de sus soluciones, y prepararse para asumir mayores responsabilidades, evolucionando hacia roles de Senior Developer, Tech Lead o posiciones de arquitectura.

Requisitos

El contenido de este curso está basado en .NET 10 y C# 14 utilizando Visual Studio 2026.

Para poder practicar los conceptos y realizar los ejercicios del taller, se recomienda contar con un equipo de desarrollo que cumpla con los siguientes requisitos:

  • Sistema operativo Windows 10 o posterior.
  • Entorno de desarrollo Visual Studio 2026 (puede ser la versión gratuita Visual Studio Community).

Formato del curso

Las sesiones se llevarán a cabo en vivo a través de Microsoft Teams, brindando una experiencia interactiva y enriquecedora.

Durante las sesiones en vivo, los participantes tendrán la oportunidad de interactuar directamente con el instructor y con otros asistentes para resolver dudas y profundizar en los temas abordados.

Además, todas las sesiones serán grabadas y los videos estarán disponibles para su descarga. Esto permitirá a los participantes repasar los contenidos a su propio ritmo o ponerse al día en caso de no poder asistir a alguna sesión.

Instructor

MVP Miguel Muñoz Serafín

Material para el participante

Cada participante recibirá un manual de estudiante en formato PDF con los temas del curso.

Diploma

Al finalizar el entrenamiento los participantes recibirán un certificado digital de participación.

Fecha de inicio

Miércoles 14 de enero de 2026

Horario

Miércoles (una sesión por semana).
18:30 a 21:30 horas UTC-06. Tiempo del centro de México.

Duración

42 horas

Costo

279 USD o 4,550.00 pesos mexicanos.

Costo de apoyo
Para participantes del curso anterior de Clean Architecture y para pagos del 3 al 9 de enero de 2026
244 USD o 3,999.00 pesos mexicanos.

Registro

Realiza el pago en dólares a través de PayPal o en pesos mexicanos mediante transferencia o depósito bancario y envía tu comprobante a logistica@ticapacitacion.com para confirmar tu participación.

NOTA: Para la emisión de facturas en la república mexicana, el pago deberá ser realizado mediante transferencia o depósito bancario.

Enlace para pago en dólares americanos (USD) mediante PayPal

Pago de curso completo (244 USD): https://paypal.me/ticapacitacion/244usd

Datos para pago en pesos mexicanos mediante transferencia o depósito bancario

Nombre: TI Capacitación Investigación y Desarrollo SA de CV
Número de cuenta: 0192095378
CLABE: 012650001920953784
Banco: BBVA-Bancomer-México

Si necesitas más información, escribe a logistica@ticapacitacion.com.

El cupo es limitado.

Contenido
El contenido de este curso está estructurado en 7 lecciones:

Lección 1

La arquitectura accidental

Esta lección marca el inicio del recorrido arquitectónico del curso. En lugar de comenzar con teoría abstracta, partiremos de la realidad de la Deuda Técnica inevitable y el problema más común en los sistemas reales: la arquitectura accidental y sus costosas consecuencias.

Analizaremos una aplicación funcional desarrollada en C# que, aunque cumple con los requerimientos, carece de una estructura clara y sostenible. A través de este análisis identificaremos problemas habituales como el acoplamiento fuerte, la mezcla de responsabilidades, la dependencia directa de la infraestructura y la dificultad para escribir pruebas automatizadas.

Esta solución será el punto de partida del curso y se convertirá en nuestro proyecto de referencia. A lo largo de las siguientes lecciones, iremos evolucionándola paso a paso, aplicando principios y enfoques arquitectónicos hasta transformarla en una arquitectura limpia, mantenible y profesional.

Lección 2

Principio de inversión de dependencias (DIP)

En esta lección abordaremos el principio que da origen a la Arquitectura Limpia: el Principio de Inversión de Dependencias (DIP). Analizaremos el DIP no solo como parte de SOLID, sino como el principio que explica el origen de muchos problemas arquitectónicos y constituye la base de sus soluciones.

A partir de la aplicación analizada en la lección anterior, identificaremos cómo las dependencias directas hacia detalles técnicos (bases de datos, frameworks, servicios externos) afectan la estabilidad, la mantenibilidad y la capacidad de evolución del sistema. Veremos por qué el acoplamiento a la infraestructura es uno de los principales obstáculos para construir software sostenible.

Introduciremos el concepto de abstracciones como mecanismo para invertir dependencias y desacoplar el núcleo del sistema de sus detalles de implementación. Aplicaremos estos conceptos directamente sobre el código existente, realizando las primeras refactorizaciones conscientes orientadas a separar reglas de negocio de aspectos técnicos.

Al finalizar esta lección, el participante comprenderá el DIP no solo como parte de SOLID, sino como el fundamento que permite que arquitecturas como Hexagonal, Onion y Clean puedan existir y aportar valor real en aplicaciones .NET.

Lección 3

Hexagonal Architecture (Ports & Adapters)

En esta lección introduciremos la Arquitectura Hexagonal como el mecanismo principal que permite aplicar de forma efectiva la Inversión de Dependencias mediante puertos y adaptadores. Analizaremos el diagrama de la Arquitectura Hexagonal, entendiendo por qué se le conoce como “Ports and Adapters”.

A partir del sistema que hemos venido evolucionando, identificaremos los límites del núcleo de la aplicación y definiremos explícitamente los puertos que representan las necesidades del dominio y los casos de uso. Posteriormente, implementaremos adaptadores que conectan ese núcleo con detalles externos como bases de datos, frameworks web o servicios de infraestructura, sin comprometer su independencia.

Analizaremos el flujo de control característico de la Arquitectura Hexagonal, entendiendo cómo las dependencias se invierten y cómo el núcleo permanece ajeno a los mecanismos técnicos. Aplicaremos estos conceptos directamente sobre la solución existente, introduciendo por primera vez una separación clara entre lógica de negocio y detalles de infraestructura.

Al finalizar esta lección, el participante será capaz de identificar, diseñar e implementar puertos y adaptadores en aplicaciones .NET, comprendiendo cómo Hexagonal Architecture hace tangible la inversión de dependencias y sienta las bases para una arquitectura limpia, flexible y evolutiva.

Lección 4

Onion Architecture

En esta lección presentaremos Onion Architecture como una forma clara y natural de estructurar una aplicación .NET a partir de los principios y mecanismos ya estudiados. Veremos Onion Architecture como una organización estructural de capas concéntricas (la cebolla) que refleja de manera explícita la Inversión de Dependencias y la centralidad absoluta del Dominio como el núcleo inmutable del sistema.

A partir de la arquitectura Hexagonal implementada en la lección anterior, reorganizaremos la solución en capas bien definidas. Analizaremos el rol de cada capa, sus responsabilidades y, crucialmente, la Regla de Dependencia: cómo las referencias solo pueden apuntar hacia las capas internas, asegurando que los cambios externos no afecten al núcleo.

Traduciremos estos conceptos a una estructura concreta de proyectos y referencias en .NET, entendiendo por qué esta organización resulta especialmente natural en el ecosistema .NET. Veremos cómo los puertos definidos previamente encajan dentro de esta nueva estructura y cómo los adaptadores de infraestructura se ubican en las capas más externas sin comprometer el núcleo.

Al finalizar esta lección, el participante comprenderá cómo utilizar Onion Architecture como un modelo estructural para aplicaciones .NET.

Lección 5

Clean Architecture

En esta lección finalizaremos la evolución arquitectónica introduciendo Clean Architecture. Propuesta por Robert C. Martin ("Uncle Bob"), veremos que Clean Architecture no es una arquitectura nueva, sino una síntesis magistral de Hexagonal y Onion, que añade un enfoque crítico en la orquestación de la lógica de aplicación.

Analizaremos el diagrama de Clean Architecture con sus cuatro anillos, identificando la relación y las diferencias clave con la estructura Onion ya implementada.

El foco principal de esta lección será el rol del Caso de Uso (Use Case / Interactor). Entenderemos cómo el Caso de Uso actúa como el único orquestador de la aplicación, definiendo el flujo de datos y manipulando las entidades del dominio para cumplir con un requisito funcional específico.

Implementaremos la estructura de los Casos de Uso, incluyendo la definición de DTOs (Data Transfer Objects) de entrada y salida, asegurando que la lógica de aplicación se mantenga completamente aislada de los adaptadores de infraestructura y de presentación.

Al finalizar esta lección, el participante dominará Clean Architecture como el conjunto de principios que guían el diseño de sistemas verdaderamente mantenibles y evolutivos. Contará con un marco de trabajo claro para evaluar y refactorizar la arquitectura de cualquier aplicación .NET real, y estará listo para aplicar los patrones de modelado avanzado de Domain-Driven Design (DDD) en la capa de Dominio.

Lección 6

Domain-Driven Design (DDD)

En esta lección incorporaremos Domain-Driven Design (DDD) como el enfoque que da significado y valor al corazón de la aplicación. Una vez establecidas las reglas de dependencia, los mecanismos de desacoplamiento y la estructura del sistema, DDD nos permitirá modelar de forma rica y explícita el dominio y sus complejas reglas de negocio.

Analizaremos cómo identificar los conceptos centrales del negocio y expresarlos en el código mediante Entidades, Value Objects, Agregados (Aggregates) y Servicios de Dominio. Veremos la importancia de construir un modelo con comportamiento (evitando dominios anémicos) y cómo trasladar la lógica de negocio al lugar que le corresponde dentro de la arquitectura.

Aplicaremos estos conceptos directamente sobre el núcleo de la solución, refactorizando el modelo existente y alineándolo con el lenguaje del negocio. Introduciremos el uso del Lenguaje Ubicuo como herramienta para mejorar la comunicación entre el código, los desarrolladores y el dominio que representa.

Al finalizar esta lección, el participante comprenderá cómo Domain-Driven Design complementa a Clean, Hexagonal y Onion, aportando un modelo de dominio claro, expresivo y coherentemente protegido, que se convierte en el verdadero motor de una aplicación .NET bien diseñada.

Lección 7

Vertical Slice Architecture

En esta lección presentaremos Vertical Slice Architecture como una estrategia de organización del código orientada a funcionalidades, no a capas técnicas. Veremos cómo este enfoque permite trabajar sobre una arquitectura limpia ya establecida, mejorando la claridad, la escalabilidad y la evolución del sistema a medida que crece.

A partir de la solución estructurada con Clean Architecture, Hexagonal, Onion y DDD, reorganizaremos la aplicación por casos de uso o Features. Agruparemos en un mismo lugar todo lo necesario para una funcionalidad específica, desde el controlador hasta la persistencia. Analizaremos cómo este enfoque reduce drásticamente el acoplamiento accidental entre funcionalidades y facilita que un desarrollador pueda abordar una Feature completa sin tener que saltar entre múltiples proyectos y carpetas.

Estudiaremos cómo Vertical Slice Architecture convive naturalmente con los principios ya aplicados, sin violar las reglas de dependencia ni comprometer el dominio. Veremos patrones comunes como la segregación de responsabilidades mediante Comandos (para modificar el estado) y Consultas (para leer datos), y cómo cada slice puede evolucionar, probarse y desplegarse de forma más independiente dentro de una misma solución.

Al finalizar esta lección, el participante comprenderá cómo aplicar VSA para organizar la complejidad de una aplicación Clean/Onion a medida que escala, logrando un código más mantenible, enfocado y eficiente para el equipo de desarrollo. Con esto, habrá completado la transformación del sistema, dominando el ciclo completo que va desde los principios de diseño (DIP) hasta la organización del código moderno (VSA), sentando una base sólida para el desarrollo de software empresarial duradero y de alta calidad en .NET.