Windows Communication Foundation Essentials

Windows Communication Foundation (WCF) is a platform rich in features necessary for building distributed service-oriented applications. With WCF developers can create services that satisfy a vast number of scenarios for the intranet and Internet including classic client-server applications, services that match the simplicity of ASP.NET web services (ASMX), services that incorporate the latest web service standards (WS*), and services that support advanced security scenarios such as federated security. Designing and implementing services with WCF is not particularly difficult once you know the platform – therein lies the challenge. How can a developer get up to speed on the entire WCF platform quickly in order to be productive implementing WCF services? How can a developer new to WCF get up to speed on only those features they need to implement services that meet their application’s requirements? How can a developer be sure that they have not overlooked an important facet of WCF necessary to implementing their services in the best possible way?

Developers cannot be expected to have full command of the vastness of the WCF platform before designing and implementing services – but they can be expected to consider common scenarios and recommended settings for core features necessary to those scenarios. This whitepaper, broken into a series of topics, is intended to provide developers with concise guidance on WCF to reduce some of the noise created by the sheer number of features. Those new to WCF should read this whitepaper as a quick start guide to the features to at least consider during design and implementation of WCF services, and as specific scenarios are tackled. Those who already have experience with WCF can use this whitepaper as a checklist with recommendations to consider and things not to forget. Both audiences should see this as a way to make sure that sound choices are being made for contract design, hosting, configuration and the employment of extended WCF features.

Articles in this series

Getting Started with WCF

This section will serve as a summary of the steps you will take to design, implement, host and consume WCF services. The purpose is not to explain the details behind each design choice or feature – but to make you aware that these are things you should consider. Later sections of this whitepaper will provide recommendations to narrow the choices you face.

WCF Templates and Tools

This section summarizes the available project templates, when to use each; and discusses the limitations and benefits of the core WCF tools.

Contracts

This section will review core considerations for contract design including designing service contracts, choosing between complex type serialization formats, and when to use the XmlSerializer or message contracts.

Versioning Strategies

This section discusses how WCF contracts support backward compatibility, and explains a few versioning strategies that you might consider for your WCF applications.