Enterprise Services with the .NET Framework : Developing Distributed Business Solutions with .NET Enterprise Services

Christian Nagel

  • 出版商: Addison Wesley
  • 出版日期: 2005-06-01
  • 售價: $2,030
  • 貴賓價: 9.5$1,929
  • 語言: 英文
  • 頁數: 576
  • 裝訂: Paperback
  • ISBN: 032124673X
  • ISBN-13: 9780321246738
  • 相關分類: .NET
  • 下單後立即進貨 (約2~4週)




"For anyone involved in the .NET community, it's hard to not have heard of Christian Nagel. Christian is a true heavyweight of .NET in general, and Enterprise Services in particular. By taking a relatively trivial application and architecting it in a way that would allow it to scale without any rework, users will find that using the techniques employed in this book will be of benefit to virtually any company that is running distributed or enterprise applications."

—William G. Ryan, Microsoft MVP, Senior Software Developer, TiBA Soutions, LLC

"Whether you are a seasoned architect or a new developer, distributed application development can be difficult, since it covers such a wide range of complex technologies. Until now there was precious little in the way of guidance—let alone a consolidated reference. Christian has provided that reference and more—going from the individual technologies to the big picture on how to architect and develop scalable distributed applications. Technical goodness through and through!"

—Clayton Burt, Managing Partner, Onzo, LLC

"Making the transition to distributed application architecture introduces many issues in security and deployment and requires a new way of thinking about events, transactions, and messaging. This book shows developers and architects alike how to use .NET Enterprise Services to create robust, secure, and maintainable applications in a distributed environment. This book is an excellent guide to the sometimes overwhelming field of .NET Enterprise Services."

—Brian Davis, Director of Software Development, InfoPro Group, Inc., Co-Creator, KnowDotNet.com

Enterprise Services with the .NET Framework is the only book that experienced .NET developers need to learn how to write distributed, service-oriented applications. Filled with clear examples in C# (with Visual Basic .NET examples available on the Web), this book will quickly get you up to speed on building distributed applications with serviced components. You'll also learn about Indigo, Microsoft's next-generation technology for building distributed applications, and how it compares to Enterprise Services.

Microsoft Regional Director, MVP, and veteran author Christian Nagel introduces and clearly explains the four major services included in Enterprise Services: Automatic Transactions, Queued Components, Loosely Coupled Events, and Role-Based Security. From his in-depth coverage, you'll learn

  • How to create a serviced component, how serviced objects are activated, and how to use the different kinds of object contexts

  • How to manage concurrency and synchronization for serviced components to achieve optimal performance and data integrity

  • How to integrate COM components with the .NET Framework

  • How to use serviced components over a network with DCOM, SOAP Services, and ASP.NET Web services

  • How to use .NET Enterprise Services transactions to achieve Atomicity, Consistency, Isolation, and Durability

  • How to build a compensating resource manager to allow your own resources to participate in Enterprise Services transactions

  • How to maintain application state in a client application, in a serviced component, in shared properties, or in a database

  • How to create and use Loosely Coupled Events using COM+

  • How to secure a distributed solution using authorization, authentication, impersonation, and confidentiality

  • How to deploy and configure Enterprise Services applications


Table of Contents:

About the Author




1. Introducing .NET Enterprise Services.

    Building Applications

      Application Layers

      Logical Tiers and Physical Systems

      Clustering Solutions

      Service-Oriented Architecture

      Smart Clients

    The History of Application Services

      COM and .NET

      Microsoft Transaction Server

      COM+ 1.0

    .NET Enterprise Services

      Applications and Components

      Declarative Programming



    Application Services

      Automatic Transactions

      Queued Components

      Loosely Coupled Events

      Role-Based Security

      New Features with COM+ 1.5


2. Object Activation and Contexts.


      .NET Remoting Contexts

      Contexts with Serviced Components

      Mixing .NET and COM+ Contexts

    Creating a Serviced Component

      Assembly Attributes

      Signing the Assembly

      Global Assembly Cache

      Using Interfaces

      ServicedComponent Class

      Component Registration

    Client Applications


      Library Applications

      Server Applications

    Object Activation

      Construction Strings

      Just-in-Time Activation (JITA)

      JITA and Object Disposing

      Object Pooling

      Private Components

    Application Activation


3. Concurrency.

    Synchronization Overview

      Using Locks

      Interlocked Class

      More Synchronization Options


      Single-Threaded Apartments

      Multithreaded Apartments

      Thread-Neutral Apartments

    .NET Enterprise Services Synchronization


      Configuring Synchronization

      Synchronization Example


      Selecting the Synchronization Option

    Services Without Components

      ServiceDomain Class

      ServiceConfig Class

      Activity Class

      Using a New Activity

      Starting a New Context


4. COM Interop.

    .NET Clients Without COM Interop

      Side-by-Side Support

    COM Interoperability

      COM Callable Wrappers and Runtime Callable Wrappers

      Default COM Configuration

      Generated Type Library

    COM Interface Types

      Custom Interfaces

      Dispatch Interfaces

      Dual Interfaces

      ComVisible Attribute





      COMCompatibleVersion Attribute

    Finding Assemblies

      Private and Shared Assemblies

      COM Registry Entries

      COM and .NET Requirements

    Visual Basic 6 Clients

    C++ COM Clients

    Scripting Clients

    Calling a COM Object

      C++ Component

      Runtime Callable Wrapper

      .NET Component


      Client Application


5. Networking.


      DCOM Transport Protocols

      Application Proxies

      Creating an Application Proxy

      Installing the Application Proxy

      Creating a DCOM Client Application

    SOAP Services

      .NET Remoting Overview

      Creating a Serviced Component Using .NET Remoting

      Configuring the Server Application

      Creating a .NET Remoting Client

      Disadvantages of SOAP Services

    Web Services


      Implementing a Web Service with ASP.NET

      Creating a Proxy


6. Data Access.

    ADO.NET Overview

    Sample Database

    Entity Classes

    Database Access

      Database Query



      Calling Stored Procedures


      Filling Datasets

      Updating Datasets


7. Transaction Services.

    Transaction Overview

      ACID Properties

      Distributed Transactions

    Programmatic Transactions

    Automatic Transactions

      Transaction Attributes

      Transaction Streams

      Transaction Outcomes

      ContextUtil Methods

      Automatic Transaction Example

      Setting the Transactional Vote

      AutoComplete Attribute

      Distributed Transactions

    Transactions with Services Without Components

    Transactions Support with ASP.NET

    Transaction Isolation

      Potential Transaction Isolation Problems

      Transaction Isolation Levels

    Monitoring the DTC

    Transactions with .NET 2.0


8. Compensating Resource Management.

    CRM Architecture

    CRM Application Classes

    CRM Application Example

      Application Configuration

      Helper Classes

      Worker Components

      Compensator Components

      Client Applications



9. State Management.

    State Characteristics

    Stateful or Stateless Components

    Databases and Files

      Isolated Storage

      Active Directory

    Shared Property Manager

      Shared Property Group Manager

      Shared Property Group

      Shared Property

      Client Application

      SPM State Characteristics

    ASP.NET State Management



      Accessing ASP.NET State from Within Serviced Components

      ASP.NET State Characteristics

    Client State Management

      SOAP Headers

      .NET Remoting Call Contexts


10. Queued Components.


    Product Versions

      Message Queuing Server

      Message Queuing Client

    Message Queuing Features

      Message Queues


      Administration Tools

    Creating a Queued Component

      Assembly Attributes

      Interface Definition

      The CourseControl Class



    Error Handling

    Transactional Queues

    Returning Data


11. Loosely Coupled Events.

    LCE Overview

      Event Class




    Programming LCEs

      Event Class


      Persistent Subscriber

      Transient Subscriber


      Subscriber Filters

      Publisher Filters

    Using LCEs Across the Network

      LCE Routing

      Event Class Proxies

    LCE and Queued Components

      Event Classes as Queued Components

      Subscribers as Queued Components


12. Security.

    Security Overview

      Windows Security

      SQL Server

      Internet Information Server

      ASP.NET Web Applications

      ASP.NET Web Services

      Enterprise Services



      Enabling Access Checks

      Defining Roles

      Defining Role Access

      Checking Roles Within Methods

    Authentication Levels and Impersonation

      Authentication Levels


      Reading the Identity of the Caller

    Enterprise Services and .NET Remoting


13. Deployment and Configuration.


      Automatic Deployment

      Manual Deployment

      Creating a Custom Installer

      Creating an Installation Package


    Admin Components

      Configuring the Application as a Service


14. The Future of Distributed Applications.

    Web Services Specifications

      Network Communication

      Reliable Messaging




      Hosting Environments

      System Services


      Service Model

      Messaging Services

    Moving from Enterprise Services to Indigo


15. Case Study.

    Use Case-Course Management

    Sample Projects

    CourseManagement.Entities-Entity Classes

    The CourseManagement Database

    CourseManagement.Data-Data Access

    CourseManagement.Control-Serviced Components

    CourseManager-Windows Forms Client

    CourseRegistrationService-Web Services

    CourseRegistrationWeb-Web Application

    CourseRegistration-Queued Component


Final Thoughts.

Further Reading.