Each of the previously examined distributed APIs can still be used directly within the .NET platform.
However, WCF provides a single unified model to access these previously diverse technologies. WCF
integrates the services of previous distributed technologies (COM+, .NET remoting, XML web services,
MSMQ, P2P, and so on) into a streamlined API. Without WCF, the wide array of distributed technologies
made it difficult to pick the right tool for the job.
The core problem was each API was an island unto itself (different programming models, different
fundamental data types, different ways to define contracts, among other issues). This was further
complicated by the fact that several of these technologies overlapped in the services they provide (i.e.,
providing numerous ways to do the same thing). Even when a .NET developer selected what appear to be the
‘correct’ technologies for the task at hand, maintaining and configuring such an application was complex at
best.
Although new, the WCF API builds on top of the success of previous concepts. As WCF is a SOA-based
system, WCF services look very similar to a traditional XML web service. WCF applications also borrow
several aspects found when building software making use of .NET remoting (*.config files, choice of
transportation layers and data persistence, and so on).
Beyond integration of diverse APIs, WCF provides a rich software fabric that complements the distributed
technologies it exposes, including the following examples:
• Support for strongly typed, as well as untyped, messages. This approach allows .NET
applications to share custom types simply and efficiently, while software created using other
platforms such as Java can consume streams of loosely typed XML.
• Support for several endpoints (raw HTTP, HTTP + SOAP, TCP, MSMQ, and named pipes) to
allow you to choose the most appropriate plumbing to transport data.
• Tracing, messaging, and performance counter APIs.
• Security APIs, including a new security feature named CardSpace (.NET 3.0 and higher).
• Transactional and peer-to-peer (P2P) APIs.
No comments:
Post a Comment