You are previewing Application Architecture for .NET: Designing Applications and Services.
O'Reilly logo
Application Architecture for .NET: Designing Applications and Services

Book Description

Get expert architectural and design-level guidance for building distributed solutions with the Microsoft® .NET Framework—learning how to synthesize your knowledge of application development, servers, and infrastructure and business requirements.

Table of Contents

  1. Application Architecture for .NET: Designing Applications and Services
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. 1. Introduction
      1. Contents Roadmap
      2. Chapter Contents
      3. Goals of Distributed Application Design
      4. Services and Service Integration
      5. Components and Tiers in Applications and Services
      6. A Sample Scenario
      7. What’s Next?
    3. 2. Designing the Components of an Application or Service
      1. Chapter Contents
      2. Component Types
      3. General Design Recommendations for Applications and Services
      4. Designing Presentation Layers
        1. Designing User Interface Components
          1. User Interface Component Functionality
          2. Windows Desktop User Interfaces
          3. Internet Browser User Interfaces
          4. Mobile Device User Interfaces
            1. Web User Interfaces
            2. Smart Device User Interfaces
          5. Document-based User Interfaces
            1. Working with Documents from the Outside
            2. Working with Documents from the Inside
          6. Accessing Data Access Logic Components from the User Interface
        2. Designing User Process Components
          1. Separating a User Process from the User Interface
          2. User Process Component Functionality
          3. User Process Component Interface Design
          4. General Recommendations for User Process Components
          5. Network Connectivity and Offline Applications
          6. Notification to Users and Business Process-to-User Communication
      5. Designing Business Layers
        1. Business Components and Workflows
          1. Designing Business Components
          2. Implementing Business Components with .NET
          3. When to Use Enterprise Services for Your Business Components
          4. Commonly Used Patterns for Business Components
          5. Implementing Business Workflows with BizTalk Server
          6. BizTalk Server Orchestration Implementation
        2. Designing a Service Interface
          1. Service Interface Characteristics
          2. Using Business Façades with Service Interfaces
          3. Transaction Management in Service Interfaces
        3. Representing Data and Passing It Through Tiers
          1. Representing Data with Custom Business Entity Components
          2. Business Entity Component Interface Design
        4. Recommendations for Business Entity Design
      6. Designing Data Layers
        1. Data Stores
        2. Data Access Logic Components
          1. Data Access Logic Component Functionality
          2. Data Access Logic Component Interface Design
          3. Data Access Logic Component Example
          4. Recommendations for Data Access Logic Component Design
        3. Designing Data Access Helper Components
          1. Accessing Multiple Data Sources
        4. Integrating with Services
          1. Managing Asynchronous Conversations with Services
      7. What’s Next?
    4. 3. Security, Operational Management, and Communications Policies
      1. Chapter Contents
      2. Designing the Security Policy
        1. General Security Principles
        2. Authentication
          1. Flowing Identity Across Tiers
          2. Authenticating with Other Services
          3. Custom Authentication Mechanisms
          4. Authentication in the Presentation Layer
          5. Authentication in Business Components
          6. Authentication in Data Access Components
          7. Authentication in Business Entity Components
        3. Authorization
          1. User Access Security
          2. Code Access Security
          3. Implementing Complex Authorization Checks
          4. Design of Custom Application-Level Authorization Schemes
          5. Users, Roles, and Trusted Applications and Services
          6. Setting Security Context at System Boundaries
          7. Authorization in User Interface Components
          8. Authorization in User Process Components
          9. Authorization in Business Components
          10. Authorization in Service Agents and Service Interfaces
          11. Authorization in Data Access Components
          12. Authorization in Business Entity Components
        4. Secure Communication
          1. Secure Communication in User Interface Components
          2. Secure Communication in Service Agents and Service Interfaces
          3. Secure Communication in Data Access Components
        5. Profile Management
        6. Auditing
          1. Auditing in User Interface and User Process Components
          2. Auditing in Business Process Components
          3. Auditing in Data Access Components
      3. Designing the Operational Management Policy
        1. Exception Management
          1. Catching and Throwing Exceptions
          2. Designing Exception Classes
          3. Flowing Exception Information
          4. Publishing Exception Information
          5. Exception Management in User Interface Components
          6. Exception Management in Business Process Components
          7. Exception Management in Data Access Components
          8. Exception Management in Business Entity Components
        2. Monitoring
          1. Business Monitoring
          2. Monitoring in User Process Components
          3. Monitoring in Business Process Components and Workflows
          4. Monitoring in Data Access Components
        3. Configuration
          1. Configuration in the Presentation Layers
          2. Configuration in Service Agents
          3. Configuration in Data Access Components
        4. Metadata
          1. Metadata in User Interface Components
          2. Metadata in User Process Components
          3. Metadata in Business Components
          4. Metadata in Data Access Components
          5. Metadata in Business Entity Components
        5. Service Location
          1. Locating Local Assemblies
          2. Locating Classes for .NET Remoting
          3. Locating Message Queuing Queues for Asynchronous Messaging
          4. Locating Web Services on the Internet and Within an Organization
      4. Designing the Communications Policy
        1. Choosing the Correct Communication Model
          1. Separating Inter- and Intra-Application Communication
          2. Advantages of Asynchronous Message-Based Communication
          3. Disadvantages of Message-Based Communication
          4. Scenarios for Message-Based Communication
        2. Synchronicity
          1. Choosing Technologies for Asynchronous Communications
            1. Enterprise Services Queued Components
            2. Message Queuing Triggers
            3. Custom Receivers
            4. Alternative Asynchronous Technologies
          2. Choosing Technologies for Synchronous Communications
        3. Recommendations for Communications
          1. Encapsulating Asynchronous Communication in Synchronous Requests
        4. Communication Format, Schema, and Protocol
        5. A Look Ahead
      5. What’s Next?
    5. 4. Physical Deployment and Operational Requirements
      1. Chapter Contents
      2. Deploying Application Components
        1. Physical Deployment Environments
          1. Web Farms
          2. Application Farms
          3. Database Clusters
          4. EAI Clusters
          5. Rich Clients
          6. Thin Clients
        2. Planning the Physical Location of Application Components
          1. Factors Affecting Component Deployment
            1. Security
            2. Management
            3. Performance, Availability, and Scalability
        3. Distribution Boundaries Between Components
          1. Planning User Interface Deployment
          2. Planning Business Component Deployment
          3. Planning Service Interface and Service Agent Deployment
          4. Planning Business Workflow Deployment
          5. Planning Data Access Component Deployment
        4. Partitioning Your Application or Service into Assemblies
        5. Packaging and Distributing Application Components
      3. Common Deployment Patterns
        1. Web-Based User Interface Scenarios
          1. Web Farm with Local Business Logic
          2. Web Farm with Remote Business Logic
        2. Rich Client User Interface Scenarios
          1. Rich Client with Remote Components
          2. Rich Client with Web Service Access
        3. Service Integration Scenarios
          1. Service Agents and Interfaces Deployed with Business Components
          2. Business Components Separated from Service Agents and Interfaces
          3. EAI Clusters and Application Components
          4. Composing Deployment Scenarios
        4. Production, Test, and Staging Environments
      4. Operational Requirements
        1. Scalability
        2. Availability
        3. Maintainability
        4. Security
        5. Manageability
        6. Performance
    6. A. Appendixes
      1. Appendix 1: Layered Architectures
      2. Appendix 2: Glossary
        1. Assembly
        2. Atomic Transaction
        3. Commutativity
        4. Component
        5. Contract
        6. Conversation
        7. CRUD
        8. Demilitarized Zone (DMZ)
        9. Dynamic Data Routing
        10. Emissary
        11. Fiefdom
        12. Firewall
        13. Idempotency
        14. Layer
        15. Long-Running Transaction
        16. Message
        17. Orchestration
        18. Policy
        19. Service
        20. Service Agent
        21. Service Interface
        22. Stateful
        23. Stateless
        24. Two-Phase Commit
        25. Workflow
        26. Zone
    7. B. Feedback and Support
    8. C. Collaborators and Contributors
    9. About the Author
    10. SPECIAL OFFER: Upgrade this ebook with O’Reilly