Table of Contents
Acknowledgments; Dino’s Credits; Andrea’s Credits; Introduction; What Is Architecture?; Who This Book Is For; Companion Content; Hardware and Software Requirements; Find Additional Content Online; Support for This Book; Part I: Principles; Chapter 1: Architects and Architecture Today; 1.1 What’s a Software Architecture, Anyway?; 1.2 Who’s the Architect, Anyway?; 1.3 Overview of the Software Development Process; 1.4 Summary; 1.5 Murphy’s Laws of the Chapter; Chapter 2: UML Essentials; 2.1 UML at a Glance; 2.2 UML Diagrams; 2.3 Summary; 2.4 Murphy’s Laws of the Chapter; Chapter 3: Design Principles and Patterns; 3.1 Basic Design Principles; 3.2 Object-Oriented Design; 3.3 From Principles to Patterns; 3.4 Applying Requirements by Design; 3.5 From Objects to Aspects; 3.6 Summary; 3.7 Murphy’s Laws of the Chapter; Part II: Design of the System; Chapter 4: The Business Layer; 4.1 What’s the Business Logic Layer, Anyway?; 4.2 The Transaction Script Pattern; 4.3 The Table Module Pattern; 4.4 The Active Record Pattern; 4.5 The Domain Model Pattern; 4.6 Summary; 4.7 Murphy’s Laws of the Chapter; Chapter 5: The Service Layer; 5.1 What’s the Service Layer, Anyway?; 5.2 The Service Layer Pattern in Action; 5.3 Related Patterns; 5.4 Service-Oriented Architecture; 5.5 The Very Special Case of Rich Web Front Ends; 5.6 Summary; 5.7 Murphy’s Laws of the Chapter; Chapter 6: The Data Access Layer; 6.1 What’s the Data Access Layer, Anyway?; 6.2 Designing Your Own Data Access Layer; 6.3 Crafting Your Own Data Access Layer; 6.4 Power to the DAL with an O/RM Tool; 6.5 To SP or Not to SP; 6.6 Summary; 6.7 Murphy’s Laws of the Chapter; Chapter 7: The Presentation Layer; 7.1 User Interface and Presentation Logic; 7.2 Evolution of the Presentation Patterns; 7.3 Design of the Presentation; 7.4 Idiomatic Presentation Design; 7.5 Summary; 7.6 Murphy’s Laws of the Chapter; Final Thoughts; Mantra #1It Depends; Mantra #2Requirements Are Lord Over All; Mantra #3Program to an Interface; Mantra #4Keep It Simple but Not Simplistic; Mantra #5Inheritance Is About Polymorphism, Not Reuse; Mantra #6Not the DAL? Don’t Touch SQL Then; Mantra #7Maintainability First; Mantra #8All User Input Is Evil; Mantra #9Post-Mortem Optimization; Mantra #10Security and Testability Are by Design; The Northwind Starter Kit; Motivation for Creating NSK; What’s in NSK?; Future Evolution of NSK; About the Authors; Dino Esposito; Andrea Saltarello; Additional Resources for Developers from Microsoft Press; Visual Basic; Visual C#; Web Development; Data Access; .NET Framework; Other Developer Topics; More Great Developer Resources; Developer Step by Step; Developer Reference; Focused Topics;
Dino Esposito is a well-known ASP.NET and AJAX expert. He speaks at industry events, including DevConnections and Microsoft TechEd, contributes to MSDN® Magazine and other publications, and has written several popular Microsoft Press books, including Microsoft ASP.NET and AJAX: Architecting Web Applications.