Make the right architectural decisions up front—and improve the quality and reliability of your results. Led by two enterprise programming experts, you’ll learn how to apply the patterns and techniques that help control project complexity—and make systems easier to build, support, and upgrade—right from the start.
Get pragmatic architectural guidance on how to:
Build testability, maintainability, and security into your system early in the design
Expose business logic through a service-oriented interface
Choose the best pattern for organizing business logic and behavior
Review and apply the patterns for separating the UI and presentation logic
Delve deep into the patterns and practices for the data access layer
Tackle the impedance mismatch between objects and data
Minimize development effort and avoid over-engineering—and deliver more robust results
Get code samples on the Web.
Principles
Chapter 1 Architects and Architecture Today
What’s a Software Architecture, Anyway?
Who’s the Architect, Anyway?
Overview of the Software Development Process
Summary
Murphy’s Laws of the Chapter
Chapter 2 UML Essentials
UML at a Glance
UML Diagrams
Summary
Murphy’s Laws of the Chapter
Chapter 3 Design Principles and Patterns
Basic Design Principles
Object-Oriented Design
From Principles to Patterns
Applying Requirements by Design
From Objects to Aspects
Summary
Murphy’s Laws of the Chapter
Design of the System
Chapter 4 The Business Layer
What’s the Business Logic Layer, Anyway?
The Transaction Script Pattern
The Table Module Pattern
The Active Record Pattern
The Domain Model Pattern
Summary
Murphy’s Laws of the Chapter
Chapter 5 The Service Layer
What’s the Service Layer, Anyway?
The Service Layer Pattern in Action
Related Patterns
Service-Oriented Architecture
The Very Special Case of Rich Web Front Ends
Summary
Murphy’s Laws of the Chapter
Chapter 6 The Data Access Layer
What’s the Data Access Layer, Anyway?
Designing Your Own Data Access Layer
Crafting Your Own Data Access Layer
Power to the DAL with an O/RM Tool
To SP or Not to SP
Summary
Murphy’s Laws of the Chapter
Chapter 7 The Presentation Layer
User Interface and Presentation Logic
Evolution of the Presentation Patterns
Design of the Presentation
Idiomatic Presentation Design
Summary
Murphy’s Laws of the Chapter
Appendix Final Thoughts
Mantra #1—It Depends
Mantra #2—Requirements Are Lord Over All
Mantra #3—Program to an Interface
Mantra #4—Keep It Simple but Not Simplistic
Mantra #5—Inheritance Is About Polymorphism, Not Reuse
Mantra #6—Not the DAL? Don’t Touch SQL Then
Mantra #7—Maintainability First
Mantra #8—All User Input Is Evil
Mantra #9—Post-Mortem Optimization
Mantra #10—Security and Testability Are by Design
Appendix The Northwind Starter Kit
Motivation for Creating NSK
What’s in NSK?
Future Evolution of NSK
Appendix About the Authors
Dino Esposito
Andrea Saltarello
Appendix Additional Resources for Developers from Microsoft Press
Visual Basic
Visual C#
Web Development
Data Access
.NET Framework
Other Developer Topics
Appendix More Great Developer Resources
Developer Step by Step
Developer Reference
Focused Topics
Title:
Microsoft® .NET: Architecting Applications for the Enterprise
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.