Plantilla de solución Clean Architecture para ASP.NET Core, con proyectos separados para Core, Use Cases, Infrastructure y Web.
evolutionary-architecture/evolutionary-architecture-by-example
Repositorio de ejemplo paso a paso en .NET 9 que muestra cómo un sistema para un gimnasio evoluciona de un monolito simple a un monolito modular, microservicios y DDD táctico.
- Estrellas
- 3,577
- Forks
- 550
- Issues abiertos
- 15
- Último commit
- hace 12 días
¿Qué es?
Evolutionary Architecture by Example es un repositorio didáctico sobre arquitectura de software en .NET. A lo largo de cuatro capítulos, sigue la evolución de Fitnet, una aplicación ficticia para un gimnasio: comienza como un único proyecto bien organizado, separa los módulos en proyectos diseñados para ese fin, extrae el primer microservicio con una cola de mensajes real y, por último, aplica conceptos de Domain-Driven Design táctico, como objetos de valor, agregados y eventos de dominio.
El repositorio también aborda el aspecto estratégico del trabajo: descomponer el dominio en subdominios mediante Event Storming y Domain Storytelling, definir contextos delimitados y decidir cuánta arquitectura necesita cada módulo. Cada capítulo tiene su propia guía y diagramas interactivos, y las decisiones de arquitectura se registran en un registro de decisiones.
El código está escrito en C# sobre .NET 9, usa minimal APIs y bibliotecas como MediatR, Dapper, Entity Framework, FluentValidation, .NET Aspire y Testcontainers. La elección del frontend, el registro de logs y las pruebas de contratos quedan a criterio del lector.
Funciones clave
- 01Recorre cuatro capítulos que transforman una base de código: de un único proyecto a microservicios
- 02Muestra cómo separar los módulos según su complejidad, en lugar de aplicar la misma arquitectura en todas partes
- 03Aborda la descomposición del dominio con Event Storming y el diseño de contextos delimitados
- 04Demuestra conceptos de DDD táctico, incluidos objetos de valor, agregados y eventos de dominio
- 05Desarrollado con C# y .NET 9, usa minimal APIs y MediatR
Casos de uso
- Aprender cuándo pasar de un monolito a un monolito modular o a microservicios
- Estudiar cómo aplicar DDD de forma incremental en una base de código .NET existente
- Preparar conversaciones sobre arquitectura con un ejemplo concreto que evoluciona
- Explorar cómo introducir una cola de mensajes entre módulos
Antes de usarlo
- El frontend no está incluido; el README deja en manos del lector la elección de la tecnología para el frontend.
- El logging y las pruebas de contrato quedan a cargo del lector; se sugieren Serilog y Pact Net, pero no se incluyen.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es evolutionary-architecture-by-example?
- Repositorio de ejemplo paso a paso en .NET 9 que muestra cómo un sistema para un gimnasio evoluciona de un monolito simple a un monolito modular, microservicios y DDD táctico. Evolutionary Architecture by Example es un repositorio didáctico sobre arquitectura de software en .NET. A lo largo de cuatro capítulos, sigue la evolución de Fitnet, una aplicación ficticia para un gimnasio: comienza como un único proyecto bien organizado, separa los módulos en proyectos diseñados para ese fin, extrae el primer microservicio con una cola de mensajes real y, por último, aplica conceptos de Domain-Driven Design táctico, como objetos de valor, agregados y eventos de dominio.
- ¿evolutionary-architecture-by-example es gratuito? ¿Qué licencia tiene?
- evolutionary-architecture-by-example es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿evolutionary-architecture-by-example sigue mantenido?
- Mantenimiento activo. El último commit de evolutionary-architecture-by-example fue el 26 oct 2026.
- ¿Para qué puedo usar evolutionary-architecture-by-example?
- Aprender cuándo pasar de un monolito a un monolito modular o a microservicios Estudiar cómo aplicar DDD de forma incremental en una base de código .NET existente Preparar conversaciones sobre arquitectura con un ejemplo concreto que evoluciona Explorar cómo introducir una cola de mensajes entre módulos
- ¿Dónde consigo evolutionary-architecture-by-example?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/evolutionary-architecture/evolutionary-architecture-by-example
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework de aplicaciones de código abierto y con una arquitectura definida sobre ASP.NET Core para crear software empresarial con DDD, modularidad y multi-tenancy.
Herramienta de documentación de arquitectura de software que cataloga dominios, servicios, eventos, mensajes y esquemas para equipos y agentes de IA.
Aplicación Android de referencia en Kotlin que muestra Clean Architecture, diseño modular por funcionalidades, Jetpack Compose y plugins de convenciones de Gradle.
Biblioteca de macros del modelo C4 para PlantUML que permite crear diagramas de arquitectura de software con código de texto plano.
Una skill para que las herramientas de programación con IA representen la arquitectura, las restricciones y el alcance de los cambios del proyecto en un mapa HTML, y esperen la confirmación antes de editar código.