Datasheet
The programming model also combines many of the earlier technologies, such as the ones mentioned
earlier in the chapter (MSMQ, COM+, WSE, and so on), into a single model.
Scalability
WCF services scale, and they scale in all directions. Not just up or out, but in all directions. They scale
out via routing mechanisms and farms. Remember the book publisher example? The Order Process ser-
vice was scaled out by providing an Order Process router, which routed orders to multiple Order Process
services.
Services scale up by not being tied to a single OS or processor. Services scale up by the pure ability to
deploy them on bigger and better servers and taking advantage of the new processor technologies that
are starting to appear.
Services scale in by way of cross-process transports, meaning on-machine and cross-machine messaging
and Object-RPC.
Services scale down by interfacing and communicating with devices such as printers, scanners, faxes,
and so on.
Interoperability
How sweet is it to be able to build high-class services using a single programming model and at the
same time take advantage of earlier technologies (see “Programming Model”), irrespective of the OS,
environment, or platform? WCF services operate independent of all of these.
WCF services also take advantage of the WS architecture utilizing the already established standards as
far as communication and protocols are concerned.
Enhanced Communication
Services aren’t picky as far as transports, formats, or much else. You as a developer can choose from a
handful of transports, different message formats, and surplus of message patterns.
Along these same lines, WCF is like the country of Switzerland (nice segue, heh?), in that services are
neutral as far as transports and protocols are concerned. A service can use TCP, HTTP, Named Pipes, or
any other protocol to communicate. The same goes for transports. In fact, if you want to build and use
your own, feel free to do so.
The reason it is this way is because, as you hopefully have figured out by now, communication is com-
pletely separate from the service. They are completely independent from one another.
Enterprise Enabled
A lot of times there is a give-and-take relationship when dealing with web services, interoperability, and
other important features geared toward enterprises. As a developer you have to weigh performance ver-
sus security, or reliability. At what cost does adding transactional capabilities add to your solution? Up
until now, having the best of all worlds was a mere pipe dream.
Well, now it is time to wake up and smell the technology because WCF provides the ability to have secu-
rity and reliability without sacrificing performance. And you can throw transactions into the mix as well.
14
Part I: Introduction to Windows Communication Foundation
05_089842 ch01.qxp 3/5/07 7:02 PM Page 14