Day 1
Service-Oriented Architecture
WCF encourages you to write service oriented applications. But what does this mean? And what are the technical implications of following this design pattern? This first module introduces you to SOA which is the key to understand why WCF works the way it does.
WCF Overview and Architecture
In this module, we learn what a WCF service is. We learn the basics of servicesendpoints, addresses, bindings, contract, hosting, metadata, and proxies.
Design by Contract
Windows Communication Foundation (WCF) offers many means to design our services, operations, messages and data. Having a strict and explicit design is the key to interoperability and contract evolvement. In this module we learn about the recommended ways to design contracts for services, one-way operations, streaming operations. We also learn about the accompanying contracts for messages and data.
Day 2 Errors
Debugging distributed applications is difficult. To facilitate the process, WCF provides various support mechanisms for managing faults and returning errors to clients. We learn how to deal with exceptions, properly return error codes, and even customize the error handling of the framework itself.
Messages
Sometimes contracts and serialization dont provide enough flexibility. WCF offers another program model at a lower level. Here we deal with messages and XML directly to build specialized services like SOAP intermediaries. We cover several samples of commonly needed functionality at the XML programming layer, working with namespaces, XPATH, and LINQ to XML.
Instance, Concurrency, and Session Management
Here we learn to manage instances on the service side. First we look at the built-in modes: per call, singleton, and per session. We examine how these modes interact with concurrent requests and clients. We learn how to use sessions, when they make sense and the big responsibilities for the client and service developers that come with them.
Day 3 Asynchronous Processing
WCF supports asynchronous IO via operation contracts with the common Begin/End pattern. To make this feature understandable, this module differentiates between asynchronous processing and asynchronous IO. Based on this distinction, it explains how to use asynchronous operation contracts on the client was well as the service side.
Hosting
We learn about the different options for hosting a WCF service: IIS/WAS, Windows Services, and Smart Client applications. We discuss the pros and cons of these options for specific scenarios.
Secure Communication and Authorization
We learn to secure the communication between clients and services. We discover when to use transport versus message security. We also learn to secure a binding and specify level of protection, and we learn about the different credential types like user names, certificates, and Windows. Finally, we learn how authorization works in WCF, including impersonation and role-based security.
Day 4 Claims, Federated Security, and CardSpace
We learn about the new identity model introduced in .NET 3.0 and about how it is deeply integrated into WCF. We learn how this enables federated security scenarios and how CardSpace and Security Token Services (STS) integrate with this infrastructure.
Transactions
We learn to use transacted services with the WS-AtomicTransaction specification. We cover how to create a transaction, flow a transaction, vote on the transaction outcome, and get notification of the transaction outcome.
Reliability and Queues
We learn the benefit of queued components: scalability, reliability, load buffering, and balancing. We learn how sessions, transactions, and security are handled when using queues. Finally, we learn to handle failures with poison messages and dead-letter queues.
Day 5 REST
REST is another architectural style for building services often also called Restful services. REST embraces HTTP as an application protocol and URIs to address pieces of functionality in a service. Starting with .NET 3.5, WCF includes the Web Programming Model which allows building Restful services with an easy to use API. We learn the fundamentals of REST as well as why and when Restful services make sense.
Peer to Peer
Traditionally clients talk to servers or server to servers but not clients to clients. The P2P infrastructure that is shipping with Windows XP, Vista and Server 2008 makes this easily possible. WCF includes a special binding for peer to peer communication which allows creating global direct connections or broadcast networks bypassing NATs and firewalls. In this module we will find out wow this works and if this is useful for your applications.
Extensibility
We discover how WCF has been architected for extensibility. We examine the different extensibility points in both the service model layer and channel layer. We learn to write custom behaviors and find that these can be used in the service model layer. We find out what is involved in creating custom channels and bindings.