Programming WCF Services (转Bruce Zhang's Blog 关注中......)
Paperback: 634 pages Publisher: O'Reilly Media, Inc. (February 20, 2007) Language: English Author: Juval Löwy
Chapter 1, WCF Essentials
Starts by explaining what WCF is, and then describes essential WCF concepts and building blocks, such as addresses, contracts, bindings, endpoints, hosting, and clients. The chapter ends with a discussion of the WCF architecture, which is really the linchpin of all that is enabled in the subsequent chapters. This chapter assumes you understand the basic motivation and benefit of service-orientation. If that is not the case, you should first read Appendix A. Even if you are already familiar with the basic concepts of WCF, I recommend you give this chapter at least, cursory reading, not only to ensure you have the solid foundation but also because some of the helper classes and terms introduced here will be used and extended throughout the book.
Chapter 2, Service Contracts
Is dedicated to designing and working with service contracts. You will first learn some useful techniques for service contract overloading and inheritance, and some advanced techniques. The chapter next discusses how to design and factor contracts that cater to reuse, maintainability, and extensibility. The chapter ends by showing you how to interact programmatically at runtime with the metadata of the exposed contracts.
Chapter 3, Data Contracts
Deals with how the client and the service can exchange data without ever actually sharing the data type itself or using the same development technology. You will see how to deal with some interesting real-life issues such as data versioning, and how to pass collections of items.
Chapter 4, Instance Management
Is dedicated to answering which service instance handles which client's request. WCF supports several service instance management, activation, and lifetime management techniques with drastic implications on scalability and performance. This chapter provides the rationale for each of the instance management modes, offers guidelines on when and how to best use them, and also addresses some related topics, such as throttling.
Chapter 5, Operations
Deals with the types of operations clients can invoke on a service and the related design guidelines, such as how to improve and extend the basic offering to support callback setup and teardown, manage callback ports and channels, and provide for type-safe duplex proxies.
Chapter 6, Faults
Is all about how services can report errors and exceptions back to their clients, since constructs such as exceptions and exception handling are technology-specific and should not transcend the service boundary. The chapter discusses the best practices of error handling, enabling you to decouple the client error handling from the service. The chapter also demonstrates how you can extend and improve on the basic error-handling mechanism.
Chapter 7, Transactions
Begins by providing the motivation for transactions in general, and then discusses the many aspects of transactional services: the transaction management architecture, transaction propagation configuration, the declarative transaction support offered by WCF, and how clients can create transactions. The chapter ends by discussing relevant design guidelines such as transactional service state management and instancing modes.
Chapter 8, Concurrency Management
Describes the powerful yet simple declarative way WCF offers for managing concurrency and synchronization, both for the client and the service. The chapter then presents more advanced aspects such as callbacks, reentrancy, thread affinity, and synchronization context and best practices and guidelines for avoiding deadlocks.
Chapter 9, Queued Services
Shows how clients can queue up calls to services, thus enabling asynchronous, disconnected work. The chapter starts by showing how to set up and configure queued services, and then focuses on aspects such as transactions, instance management, and failures and their impact on both the business model of the service and its implementation.
Chapter 10, Security
Demystifies service-oriented security by breaking down this multifaceted task into its basic elements, such as message transfer, authentication, and authorization. The chapter continues to demonstrate how to provide security for key scenarios such as intranet and Internet applications. Finally, you will see my framework for declarative WCF security, designed to automate security setup and to considerably simplify managing security.