- Windows Communication Foundation
-
The Windows Communication Foundation (or WCF) is an application programming interface (API) in the .NET Framework for building connected, service-oriented applications.[1][2]
Contents
The architectures
WCF is meant for designing and deploying distributed applications under service-oriented architecture (SOA) implementation.
WCF is designed using service oriented architecture principles to support distributed computing where services have remote consumers. Clients can consume multiple services; services can be consumed by multiple clients. Services are loosely coupled to each other. Services typically have a WSDL interface (Web Services Description Language) that any WCF client can use to consume the service, regardless 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. With the release of .NET Framework 4.0, WCF also provides RSS Syndication Services, WS-Discovery, routing and better support for REST services.
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[disambiguation needed ] / 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.[3] This allows WCF service endpoints to service requests from AJAX-powered Web pages.
Behaviors
Behaviors are types that modify or extend service or client functionality. Behaviors allow the developer to create custom processing, transformation, or inspection that is applied to messages as they are sent or received. Some examples of uses for behaviors are:
- Controlling whether metadata is published with a service
- Adding security features to a service, such as impersonation, authorization, or managing tokens
- Recording information about messages, such as tracking, tracing, or logging
- Message or parameter validation
- Invoking all additional operations when messages are received--such as notifying users when certain messages arrive
Behaviors implement the
IServiceBehavior
interface for service extensions, theIEndpointBehavior
for endpoints, theIContractBehavior
interface for service contracts, or theIOperationBehavior
for operations. Service behaviors are used for message processing across a service, rather than processing that would be specific to a single operation.Interoperability
WCF supports interoperability with WCF applications running on the same Windows machine or WCF running on a different Windows machines or standard Web services built on platforms such as Java running on Windows or other operating systems. WCF does not only support SOAP messages, it can also be configured to support standard XML data that is not wrapped in SOAP, or can even be used to support formats such as RSS, or JSON that makes WCF flexible for current requirements and future changes.[4]
See also
References
- ^ Michele Leroux Bustamante. "Hosting WCF Services". CODE Magazine. http://www.code-magazine.com/articleprint.aspx?quickid=0701041&printmode=true.
- ^ "Deploying an Internet Information Services-Hosted WCF Service". Microsoft Developer Network (MSDN). http://msdn.microsoft.com/en-us/library/aa751792.aspx.
- ^ "AJAX Integration and JSON Support". Microsoft. http://msdn2.microsoft.com/en-us/library/bb412173.aspx. Retrieved 2008-04-24.
- ^ "Introducing Windows Communication Foundation in .NET Framework 4". Microsoft. http://msdn.microsoft.com/library/ee958158.aspx. Retrieved 2011-07-17.
- "What Is Windows Communication Foundation". MSDN. Microsoft. http://msdn.microsoft.com/en-us/library/ms731082.aspx.
- "Windows Communication Foundation Architecture". MSDN. Microsoft. http://msdn.microsoft.com/en-us/library/ms733128.aspx.
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
- Andrew Zhu: Microsoft Windows Workflow Foundation 4.0 Cookbook:Chapter 3, Packt Publishing, September 2010, ISBN 978-1-849680-78-3
External links
- Windows Communication Foundation, MSDN Windows Communication Foundation portal.
- MSDN Library: Windows Communication Foundation
- 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.
- Getting Started with WCF RIA Services - part
- Microsoft Most Valuable Professional Connected Developer System WCF - Evilázaro Alves
1 of the series articles on WCF RIA Services
.NET Framework Architecture CLI Languages Common1Other2Components - ADO.NET
- ASP.NET
- Language Integrated Query
- CardSpace
- ClickOnce
- Communication Foundation
- Dynamic Language Runtime
- Forms
- Presentation Foundation
- Remoting
- Workflow Foundation
- XAML
- Parallel Extensions
- Managed Extensibility Framework
Other implementations Comparisons Upcoming - "Jasper"
- "Roslyn"
Past - "Acropolis"
Tools 1 Languages that had been supported, is supported, or will be supported, in Visual Studio or .Net Framework.
2 Non-academic or research languages with relatively large user-bases.Microsoft APIs and frameworks Graphics Audio Multimedia Web Data access Networking Communication Administration and
managementComponent model Libraries Device drivers Windows Driver Model · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture · VxDSecurity .NET Software factories IPC Accessibility Text and multilingual
support
Template:DationCategories:- Microsoft development tools
- Windows communication and services
- Microsoft application programming interfaces
- Windows Server 2008
- Windows Vista
- Web services
- Service-oriented architecture related products
- .NET framework
Wikimedia Foundation. 2010.