
Learning WCF
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Table of Contents
- Forewords
- Preface
- Who This Book Is For
- How This Book Is Organized
- Chapters Overview
- Labs and Code Samples
- Assumptions About the Reader
- System Requirements
- Your Working Directory
- Conventions Used in This Book
- Comments and Questions
- Safari® Enabled
- Acknowledgments
- Hello Indigo
- Service Oriented Architecture
- From OOP to SOA
- What Is a Service?
- Tenets of SOA
- Service boundaries are explicit
- Services are autonomous
- Clients and services share contracts, not code
- Compatibility is based upon policy
- Big SOA, Little SOA
- WCF Services
- Fundamental WCF Concepts
- Message Serialization
- Services
- Hosting
- Endpoints
- Addresses
- Bindings
- Metadata
- Proxies
- Channels
- Behaviors
- Creating a New Service from Scratch
- Creating a new service
- Hosting a service
- Creating a proxy to invoke a service
- Assembly Allocation
- Defining a Service
- Hosting a Service
- Exposing Service Endpoints
- Addresses
- Bindings
- Contracts
- Creating a Client Proxy
- Generating a Service and Client Proxy
- Using the WCF Service template
- Configuring service endpoints using the Service Configuration Editor
- Generating a proxy with Add Service Reference
- Creating a WCF Service Library
- Generating a proxy using the Service Model Metadata Utility
- Service Templates
- Service Testing Tools
- ServiceModel Metadata Utility
- Service Configuration Editor
- ServiceModel Configuration
- ServiceHost Initialization
- Enabling Metadata Exchange
- Working with Behaviors
- Service behaviors
- Endpoint behaviors
- Proxy Initialization
- Hosting a Service in IIS
- Creating a WCF Service web site
- Browsing service metadata
- Exporting metadata for proxy generation
- Web Site Templates
- @ServiceHost Declarations
- Message-Based Activation
- Browsing and Exporting Metadata
- Browsing metadata
- Exporting metadata
- Exposing Multiple Service Endpoints
- Implementing multiple contracts on a service
- Hosting two services with multiple contracts
- Consuming internal services using shared contracts
- Consuming external services with a generated proxy
- Implementing Multiple Contracts
- Hosting Multiple Services
- Proxy Generation for Multiple Contracts and Endpoints
- Proxy Initialization and Lifetime
- Sharing Service Contracts
- Duplicating Operations
- Summary
- Contracts
- Messaging Protocols
- SOAP
- WS*
- Service Description
- ServiceDescription
- WSDL
- WS-Policy
- WS-MetadataExchange
- WCF Contracts and Serialization
- Service Contracts
- Exploring service contract compatibility
- Customizing message parameters
- Modifying service operations and dealing with version tolerance
- Mapping Services to WSDL
- Designing Service Contracts
- ServiceContractAttribute
- OperationContractAttribute
- MessageParameterAttribute
- Versioning Service Contracts
- Versioning with contract inheritance
- Versioning with separate contracts
- Strict versus non-strict versioning
- Data Contracts
- Creating a data contract
- Customizing data contract serialization
- Consuming data contracts at the client
- Exploring version tolerance
- Mapping Data Contracts to XSD Schema
- Designing Data Contracts
- DataContractAttribute
- DataMemberAttribute
- EnumMemberAttribute
- CollectionDataContractAttribute
- Mapping CLR Namespace to Schema Namespace
- Configuring Known Types
- KnownTypeAttribute
- ServiceKnownTypeAttribute
- Declarative known types
- Versioning Data Contracts
- IExtensibleDataObject
- Explicit versioning
- Versioning flow diagrams
- Data Contracts As Operation Messages
- Message Contracts
- Creating message contracts
- Implementing message contracts in a service
- Using proxies and message contracts
- Message Contracts and SOAP
- Designing Message Contracts
- MessageContractAttribute
- MessageBodyMemberAttribute
- MessageHeaderAttribute
- Client Message Contracts
- Versioning Message Contracts
- Approaches to Serialization
- Types Supporting Serialization
- Serialization Format
- Message Encoding
- DataContractFormatAttribute
- XmlSerializerFormatAttribute
- Applying the XmlSerializer
- Controlling serialization
- Proxy generation and the XmlSerializer
- Applying IXmlSerializable Types
- Implementing IXmlSerializable
- Supplying a schema
- The Message Type
- Using untyped messages in the service contract
- Accessing message headers
- Extending the message type
- Untyped Messages and WSDL
- Working with the Message Type
- Creating messages
- Accessing message headers
- Filtering Messages
- Summary
- Bindings
- How Bindings Work
- Standard Bindings
- Binding Features
- Binding Elements
- Building the Channel Stack
- Web Service Protocols
- Bindings and Metadata
- Constraints on Binding Selection
- Web Service Bindings
- Exposing multiple web service endpoints
- Adding a web reference for the legacy client
- Adding a service reference for the non-legacy client
- Choosing a Web Service Binding
- BasicHttpBinding Features
- BasicHttpBinding defaults
- Customizing BasicHttpBinding
- WSHttpBinding Features
- WSHttpBinding defaults
- Customizing WSHttpBinding
- MessageVersion
- Isolating SOAP 1.1 and SOAP 1.2 Endpoints
- Connection-Oriented Bindings
- Setting up the lab
- Moving from components to services
- Crossing machine boundaries
- Choosing a Connection-Oriented Binding
- NetNamedPipeBinding Features
- NetNamedPipeBinding defaults
- Customizing NetNamedPipeBinding
- NetTcpBinding Features
- NetTcpBinding defaults
- Customizing NetTcpBinding
- Calling Services In-Process
- Distribution of Services
- One-Way and Duplex Communication
- Message Exchange Patterns
- Request-reply
- One-way
- Duplex
- Working with Callbacks
- Duplex proxies
- DuplexChannelFactory&T&
- Callback instance
- Client endpoint
- Designing the callback contract
- Issuing callbacks
- Choosing a duplex-compatible binding
- Implementing the callback contract
- Issuing callbacks over WSDualHttpBinding
- Callbacks and one-way operations
- WSDualHttpBinding Features
- WSDualHttpBinding defaults
- Customizing WSDualHttpBinding
- Services and Callback References
- Callbacks and Concurrency
- Large Message Transfers
- Streaming from the service
- Streaming from the client
- Handling Large Messages
- Controlling payload size
- Reducing memory consumption
- Message Size Quotas
- MTOM Encoding
- Streaming
- Designing a service contract for streaming
- Enabling streaming
- Who closes the stream?
- Alternatives to streaming
- Custom Bindings
- CustomBinding Features
- Creating a CustomBinding
- Binary encoding over HTTP
- SOAP 1.2 without addressing headers
- Summary
- Hosting
- Hosting Features
- ServiceHost
- Initializing the ServiceHost
- Declarative Configuration
- Base Addresses
- ServiceHost and ServiceDescription
- Closing the ServiceHost
- Communication Events
- Self-Hosting
- Console Applications
- Windows Applications
- Windows Services
- Hosting on the UI Thread
- Windows Applications and UI Threads
- Synchronization Context
- ServiceHost Lifetime
- Configuring the ServiceHost
- Opening and closing the ServiceHost
- Calling services on a non-UI thread
- Calling services on the UI thread
- Preventing services from joining the UI thread
- Callbacks and the UI Thread
- UI Hosting Scenarios
- Coupling services to the host user interface
- Exposing a reusable service user interface
- Decoupling services from user interfaces
- Hosting in a Windows Service
- What Are Windows Services?
- Controlling service startup
- Runtime identities
- Recovery
- Creating and Installing Windows Services
- Extending ServiceBase
- Event log access
- Registering the Windows service
- Providing an installer
- Creating a new Windows Service
- Handling start and stop events
- Creating a Windows service installer
- Generating the client proxy
- Considerations for WCF Services
- Windows Service Hosting Scenarios
- Hosting in IIS 6.0
- IIS Service Endpoints
- IIS 6.0 Hosting Architecture
- ASP.NET Compatibility Mode
- IIS 7.0 and Windows Activation Service
- WAS Hosting Architecture
- Installing IIS 7.0, WAS, and WCF Communications
- Configuring IIS 7.0 and WAS
- Hosting WCF Services with WAS
- Choosing the Right Hosting Environment
- Summary
- Instancing and Concurrency
- OperationContext
- Instancing
- PerCall Services
- PerSession Services
- Requiring sessions
- Session identifier
- Session lifetime
- Exception handling
- Singleton Services
- Working with PerCall services
- Working with sessions
- Working with singletons
- Concurrency
- Single Concurrency Mode
- Reentrant Concurrency Mode
- Multiple Concurrency Mode
- Custom Synchronization
- .NET Synchronization Techniques
- Asynchronous Proxies
- Generating an asynchronous proxy
- Allowing concurrent access to the singleton
- Adding manual synchronization with global locks
- Adding more granular synchronization for increased throughput
- Instance Throttling
- Throttling PerCall Services
- Throttling Sessions
- Throttling Singletons
- Load Balancing and Failover
- Summary
- Reliability
- Reliable Sessions
- Configuring Reliable Sessions
- Standard bindings
- Custom bindings
- Requiring ordered delivery
- Client configuration
- How Reliable Sessions Work
- Session identifier
- Session lifetime
- Retry attempts
- Session throttling
- WS-ReliableMessaging Protocol
- Message flow
- CreateSequence
- CreateSequenceResponse
- SequenceAcknowledgement
- LastMessage
- TerminateSequence
- Tracing reliable sessions messages
- Testing reliable session retries
- Transactions
- Transaction Management
- Two-phase commit protocol
- Durable versus volatile resource managers
- TransactionScope
- Lightweight Transaction Manager
- Kernel Transaction Manager
- Distributed Transaction Coordinator
- WS-AtomicTransaction and WS-Coordination protocols
- Enabling WS-AT
- Transactions and System Tiers
- Configuring WCF Transactions
- Enabling transaction flow
- Selecting a transaction protocol
- Transaction flow options
- Service operations and transactions
- Controlling IsolationLevel
- Transaction timeout
- Client configuration
- Transactions and sessions
- Testing service calls without transactions
- Requiring client transactions
- Automating service transactions
- Rejecting client transactions
- Queued Calls
- MSMQ Overview
- Private and public queues
- Transactional queues
- Delivery failure
- Security
- MSMQ management console
- System.Messaging
- NetMsmqBinding Features
- Queued Service Contracts
- Durable Queues
- Transactional Queues
- Exactly once delivery
- Client transactions
- Queue-to-queue transactions
- Queued service transactions
- Transactions and Delivery Failures
- Delivery retries
- Time-to-live
- Poison messages
- Poison message queue
- Dead letter queues
- Security
- MsmqIntegrationBinding
- Exposing an MSMQ endpoint
- Requiring MSMQ
- Testing offline messaging
- Testing exception handling
- Summary
- Security
- WCF Security Overview
- Security Policy
- Binding Security
- Default security settings
- Security mode
- Client credential type
- Advanced dettings
- Supplying Credentials
- Client credentials
- Service credentials
- Message Protection
- Protection level
- Algorithm suite
- Authentication, Authorization, and Identities
- ServiceSecurityContext
- Security tokens and authentication
- Role-based authorization
- Impersonation
- WCF Security Summary
- Securing Intranet Services
- Authenticating with Windows credentials
- Initializing the proxy with Windows credentials
- Applying Windows role-based permission demands
- NetNamedPipeBinding Security Features
- NetTcpBinding Security Features
- Windows Authentication and Authorization
- Windows Role-Based Security
- Windows Client Credentials
- Securing Internet Services
- Creating two service endpoints
- Generating the client proxy
- Configuring binding security
- Initializing proxies with UserName credentials
- Configuring ASP.NET authentication and authorization
- Applying custom role-based permission demands
- BasicHttpBinding Security Features
- WSHttpBinding Security Features
- Negotiation
- Secure Sessions
- ASP.NET Authentication and Authorization
- Configuring ASP.NET providers
- Custom password validators
- Custom Role-Based Security
- UserName Client Credentials
- Working with Certificates
- Understanding Certificates, Digital Signatures, and Encryption
- Signing and Encrypting Messages
- Service Certificates and Negotiation
- Certificate Authentication
- Certificate Authorization
- Building a Claims-Based Security Model
- Security Tokens and Claims
- AuthorizationContext
- Custom Claims
- Custom Authorization Policies
- Implementing IAuthorizationPolicy
- Authorizing custom claims
- Applying custom security extensions
- Exploring Federated Security
- Security Token Services
- SAML Tokens
- Windows CardSpace
- Configuring WSFederationHttpBinding
- Creating an information card in CardSpace
- Evaluating CardSpace claims
- WSFederationHttpBinding Security Features
- Summary
- Exceptions and Faults
- SOAP Faults
- Fault Versions
- Faults and WSDL
- WCF Exception Handling
- Fault Exceptions
- Service Exception Handling
- Client Exception Handling
- Exceptions and Debugging
- Debugging Behavior
- Uncaught Exceptions and SOAP Faults
- Clients and Faulted Channels
- Fault Contracts
- Throwing Faults
- FaultException
- FaultException&T&
- MessageFault
- Declared Faults
- Fault Contracts and Complex Types
- Mapping MessageFault to SOAP Fault
- Creating SOAP 1.1 compliant faults
- Clients and FaultContracts
- IErrorHandler
- Implementing IErrorHandler
- Configuring an error handler
- Using data contracts as fault contracts
- IErrorHandler
- Configuring Error Handlers
- Implementing IServiceBehavior
- Attributes and IServiceBehavior
- Extending ServiceHost
- Summary
- Setup Instructions
- Database Setup
- Choosing a Database Engine
- Installing Database Scripts
- Database Connection Strings
- Database Security
- ASP.NET Provider Model Setup
- Generating ASP.NET Provider Tables
- ASP.NET Provider Connection Strings
- Creating Sample Users and Roles
- Certificate Setup
- Sample Certificates
- Certificates Console
- Importing Certificates
- Certificate Security
- Setting Up an SSL Certificate
- Instructions for IIS 5.1 and 6.0
- Instructions for IIS 7.0
- Generating Certificates
- IIS Application Directories
- Instructions for IIS 5.1 and 6.0
- Instructions for IIS 7.0
- ASP.NET Meets CardSpace
- Information Cards and CardSpace: A Brief Tour
- Identity Metasystem Participants and Browser Flow
- Let's Log In with CardSpace!
- Processing the Token
- Associating Cards with User Accounts
- Creating a Dual Purpose Login Page
- Conclusion
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.