Day 1
Service-based Applications
WCF encourages you to write service-based applications. But what does this mean? And what are the technical implications of following this practice and design pattern? This first module introduces you to service orientation which is the key to understand why WCF works the way it does.
WCF Architecture
This module introduces you to the basic architecture of WCF itself. You learn the concepts of messages, services, consumers, endpoints, addresses, bindings, contract, hosting, metadata, and behaviors.
Design by Contract
WCF offers many means to design your services. Having a strict and explicit design for services, messages and data is the key to service stability, contract evolvement and interoperability. In this module you learn about the recommended ways to design contracts depending on given requirements.
Day 2
Faults & Error Handling
Debugging distributed applications is difficult. To facilitate the process, WCF provides various support mechanisms for managing faults, error handling and tracing. You will learn how to deal with exceptions, properly return fault messages, and even customize the error handling of the framework itself.
Instancing, Concurrency and Sessions
WCF has a quite a number of options when it comes to state management, instancing and how these instances handle concurrent requests. It totally depends on the type of service you are building which of these out of the box options will make sense for you. Furthermore, WCF has a built-in throttling engine to control the load on your services as well as support for stateful services. You'll learn when which option is recommended for which situations and how this will effect scalability and throughput.
Asynchronous Clients & Services
WCF provides a number of opportunities for asynchronous processing. This ranges from asynchronous client proxies to asynchronous service operations. On the client side there are some special considerations when it comes to graphical user interfaces - on the services side you have to make a distinction between async computation and IO operations. These options have the potential to increase scalability and perceived performance - but they can also make thing worse.
Day 3
Hosting
There exist multiple ways to host WCF services. Here you learn about the different options like self hosting, IIS/WAS, and Windows Server AppFabric. Learn the pros and cons of each option for specific scenarios.
REST
REST is a different architectural style for building services. REST embraces HTTP as an application protocol and URIs to address resources. You will learn the fundamentals of REST as well as how to leverage WCF's web programming model to implement Rest-ful ideas in an efficient way - including serialization, content negotiation, and caching.
Secure Communication, Authentication & Authorization
WCF is all about communication - and secure communication is a heavily needed feature. Fortunately WCF features an extremely powerful and extensible (and complex) security subsystem. In this module you'll learn the basics of WCF secure communication to enable you to choose between the various modes, credential types and protocols. Furthermore you'll explore the authorization system in WCF which includes the service authorization manager, impersonation and role-based security.
Day 4
Claims-based Identity, Access Control & Federation
Microsoft made heavy investments in unifying the representation of identity, authorization and personalization with the new released Windows Identity Foundation (WIF) library. This library neatly integrates with WCF out of the box and provides features like claims-based identity, federation and identity delegation. You’ll learn how to take advantage of this new approach and the interesting new possibilities this opens up.
Messaging
WCF's low-level programming model deals with messages and XML. In this module you will learn how to program with messages and leverage their power to implement advanced services scenarios like routing. You will get familiar with XML, but not necessarily with angle brackets.
Reliability & Queuing
Sometimes things go wrong. In service-based applications built with WCF there are different ways to increase the reliability of the end-to-end communication. In this module you learn which options are available and when to use them how. In addition, you may cross situations where you need to have explicit queued, asynchronous messaging in place. Here you see and apply WCF’s ability to implement queued messaging over MSMQ.