I've just ended reading of Microsoft .NET: Architecting Applications for the Enterprise (PRO-Developer) from MS Press. It's very valued book for .NET developers and architects.
In the first part book describes fundamental design princiles for design of object oriented software:
- separation of concerns
- open/closed principle
- Liskov's substitution principle
- dependency inversion principle
In the second part the book describes how to apply design patterns to architect layers of enterprise systems:
- business layer
- service layer
- data access layer
- presentation layer
As for design patterns this book widely refers on the Patterns of Enterprise Application Architecture from Martin Fowler. In the business layer chapter I expected some detailed description how to design solutions with Windows Workflow Foundation, but this technology is poorly covered in this book. Except for some point outs I think it is good decision to invest your time to the reading of this book.