Windows Communication Foundation

File:DotNet3.0.svg
The **Windows Communication Foundation** (or **WCF**) is an application programming interface in the .NET Framework for building connected,  service-oriented applications.

## The architectures

WCF is designed in accordance with service oriented architecture principles to support distributed computing where services are consumed by consumers. Clients can consume multiple services and services can be consumed by multiple clients. Services are loosely coupled to each other. Services typically have a WSDL interface (Web Services Description Language) which any WCF client can use to consume the service, irrespective of which platform the service is hosted on. WCF implements many advanced web services (WS) standards such as WS-Addressing, WS-ReliableMessaging and WS-Security.

### Endpoints

A WCF client connects to a WCF service via an Endpoint.
Each service exposes its contract via one or more endpoints. An endpoint has an address, which is a URL specifying where the endpoint can be accessed, and binding properties that specify how the data will be transferred.

The mnemonic "ABC" can be used to remember Address / Binding / Contract. Binding specifies what communication protocols are used to access the service, whether security mechanisms are to be used, and the like. WCF includes predefined bindings for most common communication protocols such as SOAP over HTTP, SOAP over TCP, and SOAP over Message Queues, etc. Interaction between WCF endpoint and client is done using a SOAP envelope. SOAP envelopes are in simple XML form that makes WCF platform independent.

When a client wants to access the service via an endpoint, it not only needs to know the contract, but it also has to adhere to the binding specified by the endpoint. Thus, both client and server must have compatible endpoints.

With the release of the .NET Framework 3.5 in November 2007, Microsoft released an encoder that added support for the JSON serialization format to WCF. This allows WCF service endpoints to service requests from AJAX-powered web pages.

## References

1. ↑ "AJAX Integration and JSON Support". Microsoft. http://msdn2.microsoft.com/en-us/library/bb412173.aspx. Retrieved 2008-04-24.

## See also

* .NET Framework
* Windows Vista
* Microsoft Connected Services Framework
* Web Services Enhancements

## Additional Resources about WCF

* Craig McMurtry, Marc Mercuri, and Nigel Watling: *Microsoft Windows Communication Foundation: Hands-On*, SAMS Publishing, May 26 2006, ISBN 0-672-32877-1
* Steve Resnick, Richard Crane, Chris Bowen: *Essential Windows Communication Foundation (WCF): For .NET Framework 3.5*, Addison-Wesley, February 11 2008, ISBN 0-321-44006-4
* Craig McMurtry, Marc Mercuri, Nigel Watling, Matt Winkler: *Windows Communication Foundation Unleashed (WCF)*, Sams Publishing, March 6 2007, ISBN 0-672-32948-4
* Juval Löwy: *Programming WCF Services*, O'Reilly Media, Inc., February 20, 2007, ISBN 0-596-526997
* Pablo Cibraro, Kurt Claeys, Fabio Cozzolino, Johann Grabner: *Professional WCF 4: Windows Communication Foundation with .NET 4*, Wrox, June 15 2010, ISBN 0-470-56314-1

## External links

* Windows Communication Foundation, MSDN Windows Communication Foundation portal.
* Microsoft samples in MSDN, Microsoft's WCF samples web site.
* WCF Security Guide, Microsoft Patterns & Practices - Improving Web Services Security: Scenarios and Implementation Guidance for WCF. Released Aug 1, 2008.
* Understanding WCF Services in Silverlight 2 - In depth explanation of WCF services for Silverlight clients.
* David Chappell: "Introduction to WCF" and "Dealing with Diversity", two papers covering WCF. November 2007.
* A Lap Around the Windows Communication Foundation presentation

1. REDIRECT Template:.NET

ar:ويندوز كوميونيكاشن فاونداشن
de:Windows Communication Foundation
es:Windows Communication Foundation
fr:Windows Communication Foundation
ko:윈도 커뮤니케이션 파운데이션
it:Windows Communication Foundation
nl:Windows Communication Foundation
ja:Windows Communication Foundation
pl:Windows Communication Foundation
pt:Windows Communication Foundation
ro:Windows Communication Foundation
ru:Windows Communication Foundation
fi:Windows Communication Foundation
sv:Windows Communication Foundation
tr:Windows Communication Foundation
uk:Windows Communication Foundation
zh:Windows Communication Foundation