I would like to get book(s) that will really give me a complete view of modern ASP.NET development using C#, TDD, ASP.NET MVC, DDD and Design Patterns such as the Repository pattern. I'm very competent with C# and ASP.NET MVC, but want to fill in the gaps.
If you've had a good experience with a book or two that covers these topics could you please share them?
I'm currently interested in how to architecture good .NET applications and I'm reading or have currently read some of the following books:
- Design Patterns Explained: A New Perspective on Object-Oriented Design
- Patterns of Enterprise Application Architecture
- Microsoft .NET: Architecting Applications for the Enterprise
- Microsoft ASP.NET and AJAX: Architecting Web Applications
Those two Microsoft books really explain how to design .NET applications with high testability using Inversion Of Control and such.
And to be clear, yes they all use design patterns common in TDD, DDD, Dependency Injection, ans so on...
Guess the scope of topics you have asked is vast to be covered in a single book
Try this One Agile Principles, Patterns, and Practices in C# By Martin and Martin
Book talks mostly about Design Principles, Design Patters, UML Diagrams, Documentation, Refactoring. It doesn't cover ASP.NET and MVC though. YOu need to refer some other books for those.
For your needs I would recommend starting with:
Like the title says; it's basically a book on how to to DDD and TDD in a .NET environment.
Try Applying Domain Driven Design and Patterns By Jimmy Nillson. It covers DDD and it's patterns in .NET
Pro ASP.NET MVC Framework by Steve Sanderson includes the obvious ASP.NET MVC topic with C# as well as TDD, the Repository pattern, and domain modeling. Good overview of all of these topics in one book.
For deeper coverage of DDD, i agree with Arnis L to get the bible ("Domain Driven Design: Tackling Complexity in the Heart of Software" ) by Eric Evans, and for a .NET specific view, I agree with Per Noalt on Applying Domain-Driven Design and Patterns: With Examples in C# and .NET.