Lately I finished reading the famous patterns book by Martin Fowler – Patterns of Enterprise Application Architecture. This book introduces and describes design patterns you will usually see when building enterprise applications. There are also examples for patterns and although they are simple and primitive they give you the idea how to implement or use specific patterns. If you are working on enterprise applications every day you will find this book very useful and I’m sure you will use it as manual.
Yes, you can read this book as any other book and you can also use it as manual. In the end of this review you can find table of patterns with links to short introduction for each pattern.
Are these patterns platform specific somehow? No, they are not. It doesn’t matter what platform or language you are using. Of course, you must know your platform well because some of problems solved in this book maybe also already solved on platform you are working on. Don’t try to push all available patterns to your application – use patterns of this book when you face problems that your tools doesn’t solve or that your tools solve poorly. Of course, you can consult with this book if you are not sure how to implement one or another pattern in your application.
My suggestion is to read this book with two other books (of course, there are more recommended books but let’s make a quick start, okay?):
- Domain Driven Design by Eric Evans
- Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson
As the result you have better idea of patterns, domain driven design and how to use them in your .NET projects. Enterprise application patterns and domain driven design are both somehow complex topics and Applying Domain-Driven Design and Patterns gives you some ideas about how to apply this knowledge in practice.
Table of contents
Kinds of Enterprise Application.
Thinking About Performance.
The Structure of the Patterns.
Limitations of These Patterns.
I. THE NARRATIVES.
2. Organizing Domain Logic.
3. Mapping to Relational Databases.
4. Web Presentation.
5. Concurrency (by Martin Fowler and David Rice).
6. Session State.
7. Distribution Strategies.
8. Putting it all Together.
II. THE PATTERNS.
9. Domain Logic Patterns.
10. Data Source Architectural Patterns.
11. Object-Relational Behavioral Patterns.
12. Object-Relational Structural Patterns.
13. Object-Relational Metadata Mapping Patterns.
14. Web Presentation Patterns.
15. Distribution Patterns.
16. Offline Concurrency Patterns.
17. Session State Patterns.
18. Base Patterns.