Microsoft .NET Remoting

James Naftel, Kim Williams

  • 出版商: MicroSoft
  • 出版日期: 2002-10-05
  • 售價: $1,490
  • 貴賓價: 9.5$1,416
  • 語言: 英文
  • 頁數: 336
  • 裝訂: Paperback
  • ISBN: 0735617783
  • ISBN-13: 9780735617780
  • 相關分類: .NET
  • 已過版





A practical, in-depth look at how developers can leverage .NET Remoting to build distributed, Internet-based applications.

This title shows developers how to build Internet-based, distributed applications using Microsoft .NET Remoting, which enables powerful remote interaction among objects. A fundamental understanding of .NET Remoting is crucial as developers shift to developing distributed, Internet-based applications. Until recently, DCOM was the preferred method for developing distributed applications on Microsoft platforms. But as this book demonstrates, the .NET Remoting architecture is much easier to use and extend than DCOM. The book covers all aspects of .NET Remoting, including in-depth coverage of the .NET Remoting architecture plus concrete examples, best practices, and performance tips to show how to extend and customize the framework.

• Provides developers with deep design and implementation guidance to help them build better distributed applications on the Microsoft .NET Framework
• One third of the book introduces readers to the basics of using .NET Remoting to develop distributed application
• Two-thirds of the book covers advanced features of .NET Remoting plus details on how to extend and customize the framework


Table of Contents:

Introduction xi
1  Understanding Distributed Application Development 1
    A Brief History 2
        Distributed Architectures 2
        Distributed Technologies 6
    Distributed Objects—A Welcome Abstraction 7
    Benefits of Distributed Application Development 8
        Fault Tolerance 8
        Scalability 9
        Administration 9
    Challenges of Distributed Application Development 10
        Performance 10
        Security 12
        Interoperability and Wire Formats 12
        The Internet and Firewalls 12
        Configuration 13
        Location Independence 14
        Object Lifetime Management 14
    Using .NET Remoting to Meet the Challenges 14
        Performance 15
        Extending and Customizing Remoting 15
        Configuration 16
        CLR and CTS Benefits 17
        Interoperability 18
        Security 18
        Lifetime Management 20
        Enterprise Services 20
    Summary 21
2  Understanding the .NET Remoting Architecture 23
    Remoting Boundaries 23
        Application Domains 24
        Contexts 24
        Crossing the Boundaries 24
    Object Activation 28
        Server Activated 29
        Client Activated 32
    An Object's Lease on Life 33
        Leases 34
        Lease Manager 35
        Sponsors 36
    Crossing Application Boundaries 37
        Marshaling Remote Object References via an ObjRef 37
        Clients Communicate with Remote Objects via Proxies 39
        Messages Form the Basis of Remoting 41
        Channels Transport Messages Across Remoting Boundaries 42
        Channel Sink Chains Can Act on Messages 43
    Summary 47
3  Building Distributed Applications with .NET Remoting 49
    Designing a Distributed Job Assignment Application 50
    Implementing the JobServer Application 50
        Implementing the JobServer Application Logic 50
        Adding .NET Remoting 55
    Implementing the JobClient Application 63
        Choosing a Client Application Domain 64
        Obtaining the Server's Metadata 72
        Configuring the JobClient Application for .NET Remoting 73
    Exposing the JobServerImpl Class as a Web Service 77
        Changes to the Sample Application 79
        Using the SOAPSuds Tool 81
        Adding Security to the Web Service 83
        Using Role-Based Security with .NET Remoting 85
    Extending the Sample with Client-Activated Objects 88
        The JobNotes Class 88
        JobClient Application Changes 90
        Configuring the Client for .NET Remoting Client-Activated Objects 92
        Configuring the Server for .NET Remoting Client-Activated Objects 94
        Adding a Sponsor to the Lease 95
    Metadata Dependency Issues 98
        Removing the JobServer's Dependency on the JobClient's Metadata 98
        Developing a Stand-In Class to Publish in Place of JobServerImpl Metadata 100
        Remoting the IJobServer Interface 101
    Summary 103
4  SOAP and Message Flows 105
    Simple Object Access Protocol 105
        Why Should We Care About SOAP? 106
        HTTP-Based RPC 107
        SOAP Message Elements 107
        Document/Literal SOAP 110
    Message Flows 110
        The add_JobEvent Request Message 111
        The add_JobEvent Response Message 116
        The GetJobs Request Message 117
        The GetJobs Response Message 117
        The CreateJob Request Message 119
        The CreateJob Response Message 119
        The UpdateJobState Request Message 120
        The UpdateJobState Response Message 120
        The JobNotes Activation Request Message 121
        The JobNotes Activation Response Message 122
        The remove_JobEvent Request Message 124
        The remove_JobEvent Response Message 128
    Summary 129
5  Messages and Proxies 131
    Messages 131
        Construction Call Messages 132
        Method Call Messages 132
        Message Types 133
    Proxies 135
        TransparentProxy 135
        RealProxy 136
        Extending RealProxy 137
        Custom Proxies in Practice 137
    Summary 155
6  Message Sinks and Contexts 157
    Message Sinks 157
        IMessageSink 158
        Synchronous Message Processing 159
        Asynchronous Message Processing 160
    Understanding Contexts 161
        Establishing a Context 162
        Context Attributes and Properties 162
        Contexts and Remoting 165
        Dynamic Context Sinks 167
        Client Context Sink Chain 169
        Server Context Sink Chain 170
        Server Object Sink Chain 178
        Envoy Sink Chain 183
    Summary 193
7  Channels and Channel Sinks 195
    How Channels Are Constructed 195
        Channel Terminology 196
        HttpChannel 196
        HttpServerChannel 199
        HttpServerTransportSink 201
        HttpClientChannel 202
        HttpClientTransportSinkProvider 202
        HttpClientTransportSink 203
    Creating Custom Channels 204
        The Steps for Creating a Custom .NET Remoting Channel 204
        Creating the Custom Channel FileChannel 205
    Implementing a Custom Channel Sink 232
        Creating the AccessTime Custom Sink 233
    Summary 240
8  Serialization Formatters 241
    Object Serialization 241
        Serializable Attribute 242
        Customizing Object Serialization 243
        Object Graph Serialization 246
        Object Graph Deserialization 248
        Serialization Surrogates and Surrogate Selectors 249
    Serialization Formatters 253
        Obtaining a Type's Serializable Members 253
        Traversing an Object Graph 255
        Using the ObjectManager Class 257
        Using the Formatter Class 261
        Implementing a Custom Serialization Formatter 262
    Creating a Formatter Sink 288
        Client Formatter Sink 288
        Server Formatter Sink 293
    Summary 298