BT

Windows Communication Foundation: Application Deployment Scenarios

by Boris Lublinsky on May 25, 2008 |

In November of 2006 .NET 3.0 has introduced a new Web Service implementation platform (WCF) simplifying the design, implementation and deployment of services with essential plumbing for scalability, performance, security, reliable message delivery, transactions, multithreading, asynchronous messaging and much more. In November 2007, release of .NET 3.5 introduced additional WCF features, including support for web programming models such as Plain Old XML (POX), Representational State Transfer (REST), JavaScript Object Notation (JSON) and syndication feeds such as Really Simple Syndication (RSS) and ATOM; Support durable, long running services; Seamless integration between WCF and Windows Workflows (WF) allowing for services to be written as workflows and workflows to invoke services, etc.

With this multiplicity of choices, many .NET developers often do not know which features to choose for their implementations what are the best implementation/deployment practices should be followed in each case. An excellent whitepaper by Michele Leroux Bustamante from IDesign provides an excellent summary on these multiple options. It is build around 5 common scenarios:

  • Enterprise Web Services
  • Web 2.0 services
  • Intranet Applications
  • Queued Messages
  • Workflow Service

The whitepaper summarizes WCF features usage and implementation characteristics of each scenario, a summary of important development considerations, and answers to typical questions related to each scenario.

For the case of Enterprise Web Services whitepaper describes support for web services based on SOAP protocol and additional WS* standards. It includes extensive discussion on security implementations and such new features as Secure sessions, Reliable Sessions and Transactions. It also describes when these advance features should be used along with protocol and deployment options for them.

Web 2.0 services section starts with the detailed description of messaging protocols, prevalent in Web 2.0 implementations, including POX, REST, JSON, RSS and Atom and their support in WCF. It then describes deployment options, security support and client programming models for these protocols.

For the classic client-server applications and distribution of services behind the firewall a whitepaper discusses details of WCF support of binary SOAP messaging over TCP/IP and Named Pipes. Similar to the previous section this one provides a wealth of information on security and deployment option for client-server applications, using WCF.

Asynchronous messaging section describes WCF usage for implementation of guaranteed message delivery, asynchronous calls, disconnected calls and publish and subscribe patterns implementation. It includes recommendations on usage of the binary SOAP over Microsoft’s MSMQ transport, discusses recommended queues topology and security and deployment options for MSMQ transport.

Finally, Workflow section describes usage of WF for coordinating service calls using WF runtime and exposing a workflow as a higher level service. A whitepaper also introduces a notion of WF persistence as a way for implementation of long running (durable) stateful services.

The whitepaper is a very useful reference for everyone who is trying to navigate in an extremely rich and powerful WCF framework and is seeking a practical advice on a WCF usage for solving their specific problems.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Proofreading? by Andrew Badera

That's something that happens PRIOR to publishing, right?

cross-platform, cross-language integration with .NET WCF by alexis richardson

Apologies for the advert, but we have found WCF a good environment to work with for queued applications and other integration scenarios - but using RabbitMQ instead of MSMQ. RabbitMQ is a commercially supported open source messaging product that works across multiple programming languages using AMQP wire level integration.


You can download code, and read about user scenarios in the PDF documentation here. Cheers, alexis.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

2 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT