Table of Contents
Preface
Chapter 1: Introduction to Architecture and Design
Chapter 2: 1-Tier 1-Layer Architecture in ASP.NET
Chapter 3: ER Diagrams, Domain Model, and N-Layer Architecture
Chapter 4: N-Tier Architecture
Chapter 5: Model View Controller
Chapter 6: Design Patterns
Chapter 7: SOA and WCF
Chapter 8: Database Design
Chapter 9: Localization
Index
- Chapter 1: Introduction to Architecture and Design
- Software Architecture
- Software Design
- Architectural Styles
- Architecture and Design in ASP.NET
- Technology and Art
- Architecture: First Steps
- Design Patterns
- Project Life Cycle
- Project Initiation
- Project Planning and Prototyping
- Project Plan
- Use Case Design
- Prototyping
- Class Model
- Database Model
- Project Construction: Programming and Development
- Project Transition and Release
- Tiers and Layers
- Physical Separation
- Logical Separation
- Single Tier—Single Layer Model
- Single Tier—Two Layer Model
- Single Tier—Three Layer Model
- Two Tier Model
- Two Tier—Two Layer Model
- Three Tier Model
- Summary
- Chapter 2: 1-Tier 1-Layer Architecture in ASP.NET
- Default N-Tier Nature of Web Applications
- Classic ASP Style: Inline Coding
- Sample Project using Inline Code
- Code-Behind Model: The Second UI Layer
- Sample Project using Code-Behind
- Limitations of Coding in the UI Layer
- Data Source Controls
- A Sample Project using inbuilt Data Source Controls
- Summary
- Chapter 3: ER Diagrams, Domain Model, and N-Layer Architecture
- Entity-Relationship Diagram
- Degree and Cardinality of a Relationship
- OMS Project using 2-Layer
- Sample Project
- Entity-Relationship Diagram
- Domain Model using UML
- Class Diagram
- UML Relationships
- Dependency Relationship
- Association Relationship
- Generalization Relationship
- Realization Relationship
- Multiplicity
- 1-tier 3-layer Architecture using a Domain Model
- Layer 1: Data Access Layer (DAL)
- Layer 2: Business Layer (BL)
- Layer 3: The UI Layer
- Object Data Source Controls
- Summary
- Chapter 4: N-Tier Architecture
- Why N-Tier?
- Performance
- Scalability
- Re-usability
- Loose-Coupling
- Plug and Play
- A 4-Tier Approach
- 5-Tier Architecture
- Data Transfer Objects
- Lazy Loading
- Updating Business Objects
- GUI Tier
- Generics and Custom Collections
- Summary
- Why N-Tier?
- Chapter 5: Model View Controller
- Page Controller Pattern in ASP.NET
- Problems with Page Controller Design
- GUI Unit Testing
- MVC Design: A Front Controller based Approach
- Front Controller Design
- Basics of MVC
- REST: Representation State Transfer
- MVC and REST
- ASP.NET MVC Framework
- Sample Project
- URL Routing Engine
- The Controller
- The View
- The Model
- Wiring Controller, Model, and View
- Unit Testing and ASP.NET MVC
- Summary
- Page Controller Pattern in ASP.NET
- Chapter 6: Design Patterns
- Understanding Design Patterns
- History of Patterns
- Singleton Pattern
- Understanding Singleton with Code Example
- Factory Method
- Core Principle: Programming to an Interface instead of an Implementation
- The Need for Factory Design
- Dependency Injection
- Basic Approach
- Command Design Pattern
- Decoupling the GUI completely from the BL
- Creating the Command Interface
- Creating the Value Objects
- Creating the Command Factory
- Tying it all up with the GUI
- Summary
- Understanding Design Patterns
- Chapter 7: SOA and WCF
- Understanding Application Size, Scope, and Granularity
- Small Applications Versus Big Applications
- Tight and Fine-Grained Domain Model
- Coarse-Grained Model
- What is SOA?
- Why SOA?
- Service Orientation
- XML Web Services and SOAP Messages
- Sample Project
- Building a Service Interface
- Consuming Services
- Windows Communication Foundation
- Sample Project using WCF
- Summary
- Understanding Application Size, Scope, and Granularity
- Chapter 8: Database Design
- The Importance of a Database
- Selecting the Right Database
- Database Architecture and Design
- Database Plan
- Logical Design
- An Example of a Logical Model
- The Need for a Logical Data Model
- The Domain Model Versus the Logical Data Model
- Physical Data Model
- Data Integrity
- Normalization
- Data Modeling using MS Visio
- Creating Physical Tables
- Creating Relationships
- Summary
- The Importance of a Database
- Chapter 9: Localization
- Globalization and Localization
- Browser Settings
- Basic Steps for Globalizing an ASP.NET Website
- Culture and Locale
- How do we Define or Change the Current Culture?
- Switching Locale
- Resource Files
- Global Versus Local Resources
- Creating Global Resources
- Creating Local Resources
- Choosing between Global and Local Resources
- Satellite Assemblies
- Implicit Versus Explicit Localization
- Culture and Locale
- Incorporating Globalization
- Setting the Culture of the Thread Based on User Selection
- dir Attribute for Language Direction
- Editing Resource Files after publishing in ASP.NET 3.5
- Entering Foreign Language Characters: Input Method Editor (IME)
- Using a Database for Localization
- Custom Resource-Provider-Model in ASP.NET
- Summary
- Globalization and Localization



