Cuando estamos desarrollando nuestras aplicaciones una pregunta muy común es por donde comenzar.
Yo he encontrado muy valiosa la lectura siguiente:
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson
Si bien existen otras muchas formas de armar un diseño. Suele ser muy útil enfocarnos en el dominio de nuestros clientes. Para describir nuestras aplicaciones.
Si definitivamente los patrones de diseño son un buen punto de partida para plantear la arquitectura de un sistema, es bueno que la comunidad .N et esté conociendo y adoptando cada vez más estas técnicas y prácticas (que en el mundo de Java ya tienen algún tiempo). Siempre hay mucho conocimiento que vale la pena reutilizar en pro de un diseño de software mantenible, flexible y ‘testeable’ (y hasta hermoso por qué no)