Professional ASP.NET Design Patterns by Scott Millett is all about showing you how to use the power of design patterns and core design principles in real ASP.NET applications. The goal of this book is to educate developers on the fundamentals of object-oriented programming, design patterns, principles, and methodologies. Each chapter contains an enterprise application in asp.net to show using patterns in real-world applications. Design patterns and principles enable loosely coupled and highly cohesive code, which will improve your code’s readability, flexibility, and maintenance. Each chapter addresses a layer in an enterprise ASP.NET application and shows how proven patterns, principles, and best practices can be leveraged to solve problems and improve the design of your code.
Professional ASP.NET Design Patterns is for ASP.NET developers who are comfortable with the .NET framework but are looking to improve how they code and understand why design patterns, design principles, and best practices will make their code more maintainable and adaptable. Readers who have had experience with design patterns before may wish to skip Part 1 of the book, which acts as an introduction to the Gang of Four design patterns and common design principles, including the S.O.L.I.D. principles and Martin Fowler’s enterprise patterns. All code samples are written in C# but the concepts can be applied very easily to VB.NET.
Book's content in nutshell:
- The origins of the Gang of Four design patterns, their relevance in today’s world, and their decoupling from specific programming languages.
- An overview of some common design principles and the S.O.L.I.D. design principles follows, and the chapter ends with a description of Fowler’s enterprise patterns.
- Layering Your Application and Separating Your Concerns
- A description of the Transaction Script pattern followed by the Active Record, with an exercise to demonstrate the pattern using the Castle Windsor project.
- The Domain Model pattern demonstrated in an exercise with NHibernate and a review of the domain-driven design (DDD) methodology
- Patterns and principles that can be used construct your objects and how to make sure that you are building your application for scalability and maintainability: Factory, Decorator, Template, State, Strategy, Composite, Specification and Layer Supertype.
- Design principles that can improve your code’s maintainability and flexibility; these include Dependency Injection, Interface Segregation, and Liskov Substitution Principle
- Service Oriented Architecture, the Facade design pattern, messaging patterns such as Document Message, Request-Response, Reservation, and the Idempotent pattern
- The Data Access Layer: Two data access strategies are demonstrated to help organize your persistence layer: Repository and Data Access Objects. Enterprise patterns and principles that will help you fulfill your data access requirement needs elegantly, including Lazy Loading, Identity Map, Unit of Work, and the Query Object.
- An introduction to Object Relational Mappers and the problems they solve.
- An enterprise Domain Driven exercise with POCO business entities utilizing both NHibernate and the MS Entity Framework.
- The Presentation Layer: how you can tie your loosely coupled code together Structure Map and an Inversion of Control container.
- Presentation patterns, including letting the view be in charge with the Model-View-Presenter pattern and ASP.NET web forms, the Front Controller presentation pattern utilizing the Command and Chain of Responsibility patterns, as well as the Model-View-Controller Pattern, implemented with the ASP.NET MVC framework and Windsor’s Castle Monorail framework. The final presentation pattern covered is PageController as used in ASP.NET web forms.
- A pattern that can be used with organizational patterns, namely the ViewModel pattern and how to automate domain entities to ViewModel mapping with AutoMapper
- An end-to-end e-commerce store case study with ASP.NET MVC, NHibernate, jQuery, JSON, AutoMapper, ASP.NET membership provider and a second 3rd party authentication method, and PayPal as a payment merchant
I dare say this is the best book I've ever read about computer science! I really enjoy with it, although I've read it for twice I want to read it another time. You can purchase the book on http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470292784.html