Applying Domain-Driven Design and Patterns, Addison-Wesley
Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio
|
Contents |
C# Online.NET Book Review
Domain-driven design (DDD) is not a technology or even a methodology. Rather, it is a discipline—a mindset. This discipline requires an extensive repertoire of design practices, design principles, and techniques. DDD was invented to accelerate development of software projects modeling complex domains. DDD has evolved over the last ten years within the object-oriented community. DDD has two primary tenets:
- Focus on the domain and domain logic;
- Derive complex domain designs from a model.
Whereas the Domain Model pattern is a de facto standard across the Java world for systematizing domain logic, .NET has not made it easy to implement this pattern, focusing instead on simplifying the manipulation of tabular data in memory.
The book is designed to acquaint .NET developers with domain modeling, its advantages and disadvantages. And, the book discusses the implementation of the domain layer using DDD on the .NET Framework.
The book is not about object-oriented principles and design patterns per se;but, it uses them as the language of discourse for evaluating various aspects of design. OOP principles include Dependency-Inversion and Single-Responsibility. Design Patterns include Data Mapper, Identity Field, Identity Map, Lazy Load, Query Object, and Repository. And, the book deals in passing with other topics like refactoring and Test-Driven Development (TDD).
Many books on this topic can—initially—be totally overwhelming. It can be a real chore to struggle through such a book on your own recognizance. On the other hand, this book is very approachable—down-to-earth and pragmatic.
The author's style is charming, disarming, and engaging and—therefore—highly readable. Basically, he takes you on the journey he—himself—took from frustration and disillusionment with DDD to enlightenment. The author was heavily influenced by Patterns of Enterprise Application Architecture (POEAA) by Martin Fowler.
The ideal reader of this book has a working knowledge of design patterns and OOP, of .NET and C#, and of relational databases. It is aimed at .NET architects and developers who are not satisfied with drag-and-drop programming, wanting—instead—to design their own projects according to core principles.
All the source code examples are in the C# language.
Bottom line
Applying Domain-Driven Design and Patterns teaches you how to use DDD, OR mapping, and TDD on .NET projects—painlessly.
From the back cover
Patterns, Domain-Driven Design (DDD), and Test-Driven Development (TDD) enable architects and developers to create systems that are powerful, robust, and maintainable. Now, there’s a comprehensive, practical guide to leveraging all these techniques primarily in Microsoft .NET environments, but the discussions are just as useful for Java developers.
Drawing on seminal work by Martin Fowler (Patterns of Enterprise Application Architecture) and Eric Evans (Domain-Driven Design), Jimmy Nilsson shows how to create real-world architectures for any .NET application. Nilsson illuminates each principle with clear, well-annotated code examples based on C# 1.1 and 2.0. His examples and discussions will be valuable both to C# developers and those working with other .NET languages and any databases–even with other platforms, such as J2EE. Coverage includes
- Quick primers on patterns, TDD, and refactoring
- Using architectural techniques to improve software quality
- Using domain models to support business rules and validation
- Applying enterprise patterns to provide persistence support via NHibernate
- Planning effectively for the presentation layer and UI testing
- Designing for Dependency Injection, Aspect Orientation, and other new paradigms
About the author(s)
Jimmy Nilsson is the owner of the Swedish consulting company JNSK AB. He has been working with system development for more than fourteen years (with VB since version 1.0) and, in recent years, he has specialized in component-based development, mostly in the Microsoft environment. He has also been developing and presenting courses in database design, object-oriented design, etc. at a Swedish university for six years. Jimmy is a frequent speaker at Fawcette and Wrox Conferences and has written numerous technical articles.
Table of Contents (abbreviated)
Preface: Bridging Gaps
Part I: Background
Chapter 1: Values to Value
Chapter 2: A Head Start on Patterns
Chapter 3: TDD and Refactoring
Part II: Applying DDD
Chapter 4: A New Default Architecture
Chapter 5: Moving Further with Domain-Driven Design
Chapter 6: Preparing for Infrastructure
Chapter 7: Let the Rules Rule
Part III: Applying PoEAA
Chapter 8: Infrastructure for Persistence
Chapter 9: Putting NHibernate into Action
Part IV: What’s Next? Chapter 10: Design Techniques to Embrace
Chapter 11: Focus on the UI
Part V: Appendices
Appendix A: Other Domain Model Styles
Appendix B: Catalog of Discussed Patterns
References
Index
Categories: CSharp-Online.NET Reviews | CSharp-Online.NET Book Reviews | Design Patterns Book Reviews