Programming WCF Services

book cover
Programming WCF Services
By Juval Lowy
Publisher: O'Reilly
Pub Date: February 20, 2007
ISBN-10: 0-596-52699-7
ISBN-13: 978-0-596-52699-3
Pages: 634

Table of Contents  | Index

Written by Microsoft software legend Juval Lowy, Programming WCF Services is the authoritative introduction to Microsoft's new, and some say revolutionary, unified platform for developing service-oriented applications (SOA) on Windows. Relentlessly practical, the book delivers insight, not documentation, to teach developers what they need to know to build the next generation of SOAs.

After explaining the advantages of service-orientation for application design and teaching the basics of how to develop SOAs using WCF, the book shows how you can take advantage of built-in features such as service hosting, instance management, asynchronous calls, synchronization, reliability, transaction management, disconnected queued calls and security to build best in class applications. Programming WCF Services focuses on the rationale behind particular design decisions, often shedding light on poorly-documented and little-understood aspects of SOA development. Developers and architects will learn not only the "how" of WCF programming, but also relevant design guidelines, best practices, and pitfalls. Original techniques and utilities provided by the author throughout the book go well beyond anything that can be found in conventional sources.

Based on experience and insight gained while taking part in the strategic design of WCF and working with the team that implemented it, Programming WCF Services provides experienced working professionals with the definitive work on WCF. Not only will this book make you a WCF expert, it will make you a better software engineer. It's the Rosetta Stone of WCF.

book cover
Programming WCF Services
By Juval Lowy
Publisher: O'Reilly
Pub Date: February 20, 2007
ISBN-10: 0-596-52699-7
ISBN-13: 978-0-596-52699-3
Pages: 634

Table of Contents  | Index

    Chapter 1.  WCF Essentials
      Section 1.1.  What Is WCF?
      Section 1.2.  Services
      Section 1.3.  Addresses
      Section 1.4.  Contracts
      Section 1.5.  Hosting
      Section 1.6.  Bindings
      Section 1.7.  Endpoints
      Section 1.8.  Metadata Exchange
      Section 1.9.  Client-Side Programming
      Section 1.10.  Programmatic Versus Administrative Configuration
      Section 1.11.  WCF Architecture
      Section 1.12.  Working with Channels
      Section 1.13.  Reliability
    Chapter 2.  Service Contracts
      Section 2.1.  Operation Overloading
      Section 2.2.  Contract Inheritance
      Section 2.3.  Service Contracts Factoring and Design
      Section 2.4.  Contract Queries
    Chapter 3.  Data Contracts
      Section 3.1.  Serialization
      Section 3.2.  Data Contract Attributes
      Section 3.3.  Data Contract Hierarchy
      Section 3.4.  Data Contract Equivalence
      Section 3.5.  Versioning
      Section 3.6.  Enumerations
      Section 3.7.  Delegates and Data Contracts
      Section 3.8.  Data Sets and Tables
      Section 3.9.  Generics
      Section 3.10.  Collections
    Chapter 4.  Instance Management
      Section 4.1.  Behaviors
      Section 4.2.  Per-Call Services
      Section 4.3.  Per-Session Services
      Section 4.4.  Singleton Service
      Section 4.5.  Demarcating Operations
      Section 4.6.  Instance Deactivation
      Section 4.7.  Throttling
    Chapter 5.  Operations
      Section 5.1.  Request-Reply Operations
      Section 5.2.  One-Way Operations
      Section 5.3.  Callback Operations
      Section 5.4.  Events
      Section 5.5.  Streaming
    Chapter 6.  Faults
      Section 6.1.  Errors and Exceptions
      Section 6.2.  Fault Contracts
      Section 6.3.  Error-Handling Extensions
    Chapter 7.  Transactions
      Section 7.1.  The Recovery Challenge
      Section 7.2.  Transactions
      Section 7.3.  Transaction Propagation
      Section 7.4.  Transaction Protocols and Managers
      Section 7.5.  The Transaction Class
      Section 7.6.  Transactional Service Programming
      Section 7.7.  Explicit Transaction Programming
      Section 7.8.  Service State Management
      Section 7.9.  Instance Management and Transactions
      Section 7.10.  Callbacks
    Chapter 8.  Concurrency Management
      Section 8.1.  Instance Management and Concurrency
      Section 8.2.  Service Concurrency Mode
      Section 8.3.  Instances and Concurrent Access
      Section 8.4.  Resources and Services
      Section 8.5.  Resource Synchronization Context
      Section 8.6.  Service Synchronization Context
      Section 8.7.  Custom Service Synchronization Context
      Section 8.8.  Callbacks and Client Safety
      Section 8.9.  Callbacks and Synchronization Context
      Section 8.10.  Asynchronous Calls
    Chapter 9.  Queued Services
      Section 9.1.  Disconnected Services and Clients
      Section 9.2.  Queued Calls
      Section 9.3.  Transactions
      Section 9.4.  Instance Management
      Section 9.5.  Concurrency Management
      Section 9.6.  Delivery Failures
      Section 9.7.  Playback Failures
      Section 9.8.  Queued Versus Connected Calls
      Section 9.9.  Response Service
      Section 9.10.  HTTP Bridge
    Chapter 10.  Security
      Section 10.1.  Authentication
      Section 10.2.  Authorization
      Section 10.3.  Transfer Security
      Section 10.4.  Identity Management
      Section 10.5.  Overall Policy
      Section 10.6.  Scenario-Driven Approach
      Section 10.7.  Intranet Application
      Section 10.8.  Internet Application
      Section 10.9.  Business-to-Business Application
      Section 10.10.  Anonymous Application
      Section 10.11.  No Security
      Section 10.12.  Scenarios Summary
      Section 10.13.  Declarative Security Framework
      Section 10.14.  Security Auditing
    Appendix A.  Introduction to Service-Orientation
      Section A.1.  A Brief History of Software Engineering
      Section A.2.  Service-Orientation
      Section A.3.  Tenets and Principles
    Appendix B.  Publish-Subscribe Service
      Section B.1.  The Publish-Subscribe Design Pattern
      Section B.2.  The Publish-Subscribe Framework
    Appendix C.  WCF Coding Standard
      Section C.1.  General Design Guidelines
      Section C.2.  Essentials
      Section C.3.  Service Contracts
      Section C.4.  Data Contracts
      Section C.5.  Instance Management
      Section C.6.  Operations and Calls
      Section C.7.  Faults
      Section C.8.  Transactions
      Section C.9.  Concurrency Management
      Section C.10.  Queued Services
      Section C.11.  Security