Please read my previous article
WCF supports the following features:
·
Service Orientation
One consequence of using WS standards is that WCF enables you to create
service oriented applications. Service-oriented
architecture (SOA) is the reliance on Web services to send and receive data. The
services have the general advantage of being loosely-coupled instead of
hard-coded from one application to another. A loosely-coupled relationship
implies that any client created on any platform can connect to any service as
long as the essential contracts are met.
·
Interoperability
WCF implements modern industry standards for Web service interoperability. For
more information about the supported standards, see
Interoperability and Integration.
·
Multiple Message Patterns
Messages are exchanged in one of several patterns. The most common pattern is
the request/reply pattern, where one endpoint requests data from a second
endpoint. The second endpoint replies. There are other patterns such as a
one-way message in which a single endpoint sends a message without any
expectation of a reply. A more complex pattern is the duplex exchange pattern
where two endpoints establish a connection and send data back and forth, similar
to an instant messaging program. For more information about how to implement
different message exchange patterns using WCF see
Contracts.
·
Service Metadata
WCF supports publishing service metadata using formats specified in industry
standards such as WSDL, XML Schema and WS-Policy. This metadata can be used to
automatically generate and configure clients for accessing WCF services.
Metadata can be published over HTTP and HTTPS or using the Web Service Metadata
Exchange standard. For more information, see
Metadata.
·
Data Contracts
Because WCF is built using the .NET Framework, it also includes code-friendly
methods of supplying the contracts you want to enforce. One of the universal
types of contracts is the data contract. In essence, as you code your service
using Visual C# or Visual Basic, the easiest way to handle data is by creating
classes that represent a data entity with properties that belong to the data
entity. WCF includes a comprehensive system for working with data in this easy
manner. Once you have created the classes that represent data, your service
automatically generates the metadata that allows clients to comply with the data
types you have designed. For more information, see
Using
Data Contracts
·
Security
Messages can be encrypted to protect privacy and you can require users to
authenticate themselves before being allowed to receive messages. Security can
be implemented using well-known standards such as SSL or WS-SecureConversation.
For more information, see
Windows Communication Foundation Security.
·
Multiple Transports and Encodings
Messages can be sent on any of several built-in transport protocols and
encodings. The most common protocol and encoding is to send text encoded SOAP
messages using is the HyperText Transfer Protocol (HTTP) for use on the World
Wide Web. Alternatively, WCF allows you to send messages over TCP, named pipes,
or MSMQ. These messages can be encoded as text or using an optimized binary
format. Binary data can be sent efficiently using the MTOM standard. If none of
the provided transports or encodings suit your needs you can create your own
custom transport or encoding. For more information about transports and
encodings supported by WCF see
Transports in Windows Communication Foundation.
·
Reliable and Queued Messages
WCF supports reliable message exchange using reliable sessions implemented over
WS-Reliable Messaging and using MSMQ. For more information about reliable and
queued messaging support in WCF see
Queues and Reliable Sessions.
·
Durable Messages
A durable message is one that is never lost due to a disruption in the
communication. The messages in a durable message pattern are always saved to a
database. If a disruption occurs, the database allows you to resume the message
exchange when the connection is restored. You can also create a durable message
using the Windows Workflow Foundation (WF). For more information, see
Workflow Services.
·
Transactions
WCF also supports transactions using one of three transaction models:
WS-AtomicTtransactions, the APIs in the
System.Transactions namespace, and Microsoft Distributed Transaction
Coordinator. For more information about transaction support in WCF see
Transactions [from BPUEDev11].
·
AJAX and REST Support
REST is an example of an evolving Web 2.0 technology. WCF can be configured to
process "plain" XML data that is not wrapped in a SOAP envelope. WCF can also be
extended to support specific XML formats, such as ATOM (a popular RSS standard),
and even non-XML formats, such as JavaScript Object Notation (JSON).
·
Extensibility
The WCF architecture has a number of extensibility points. If extra capability
is required, there are a number of entry points that allow you to customize the
behavior of a service. For more information about available extensibility