The world we live in is more connected than ever before: each year millions of new people and organizations are connected to the Internet, billions of dollars are devoted to online advertising and commerce, and each year sees new products and services delivered directly over the Internet. Applications, once typically designed as stand-alone, are increasingly being designed to be not only network-aware, but to depend upon connectivity to fully function. This is especially true for enterprise solutions, running on the Internet or local intranet, as exemplified by products such as Microsoft SharePoint Services and portal services, such as Microsoft Live™ services.
This Windows Vista® Developer Story introduces connected solution technologies. Detailed information on the .NET Framework, Internet Information Services and Microsoft Live will be presented in future Stories. Watch the Windows Vista Developer Center (http://msdn.microsoft.com/windowsvista) site for details of upcoming Stories.
Distributed Solution Technologies
Perhaps the most important improvements to the communication infrastructure in Windows Vista is improved support for distributed solutions, as embodied by technologies such as Developer Story Windows Communication Foundation, Internet Information Services (IIS) 7, and related improvements in the .NET Framework version 2.0. Because all of these technologies can be used to directly build distributed applications, the following table contrasts the main Microsoft distributed application technologies:
When to use
Windows Communication Foundation
Next generation, unified programming model for building secure, reliable and transacted distributed services.
Recommended for all future development of distributed applications. Achieves interoperability with a wide range of technologies using WS-* protocols.
ASP.NET Web Services (ASMX)
Web service architecture for standard Web-based applications. WSE 3 adds open WS-* protocol support.
When WCF is not available, use ASMX for applications requiring basic Web services functionality. WSE 3.0 also provides leading-edge WS-* protocol support.
.NET Framework support for traditional distributed objects.
Use for cross-appdomain managed, distributed applications that don't require interoperability.
A set of .NET Framework classes that supply distributed application services based on COM+.
Cross-process and cross-computer communication inside the boundaries of a service.
Distributed extensions to COM for traditional distributed objects.
Native code distributed applications with natural integration with existing Win32 API, C/C++, and COM applications that run on homogenous Windows intranets.
IIS 7 / Http.sys
IIS 7 is Microsoft's new Internet server that provides a reliable, manageable, modular, and scalable Internet application infrastructure
Http.sys is a system component for basic processing of HTTP messages.
Low-level development of customized application servers; seamless application and administration extensions to IIS.
Although Windows Communication Foundation is the future choice for building distributed applications, other Microsoft integration technologies are in widespread use. These other technologies often offer particular benefits; for example ASP.NET is based on dynamic Web pages (ASMX) and DCOM is tightly integrated within the Windows operating system. For more information about distributed application integration, see the article "Understanding Microsoft Integration Technologies - A Guide to Choosing a Solution" in the MSDN library and "Choosing Communication Options in .NET Framework" in the Windows SDK.
Coexistence and Upgrade
WCF represents a modern approach to creating distributed applications in the era of reliable, security-enhanced, and transactional services. A key point to understand, however, is that installing WCF will not break any existing applications. Current code running on ASMX, .NET Remoting, and the other technologies whose functionality is subsumed by WCF will continue to run, so there is no requirement to upgrade to WCF. But for organizations with investments in current Microsoft technologies, an obvious question remains: What happens to existing code written using the technologies that preceded WCF?
For each of the current technologies whose future is deeply affected by the advent of WCF, developers need to understand two things: whether applications built on this technology will interoperate with applications built on WCF, and how much work it will be to port applications from this technology to the WCF environment.
For a complete discussion of Coexistence and Upgrade (including a concrete example of what moving to WCF entails), please see Introducing WCF (http://windowscommunication.net/collateral/pages/Introducing_WCF.htm#_Toc115061991) on the Windows Communication (http://windowscommunication.net) site.
From the user's perspective, improved distributed services, including Web services, result in more powerful, secure, reliable, and better integrated information and functionality available anywhere and at any time. These range from Internet Explorer-hosted Web applications, Web-based smart devices, peer-to-peer communication tools, and network-aware, distributed enterprise solutions. One of the main purposes of all these diverse communication technologies is to eliminate the division between local and remote resources.
These technologies enable the developer to create a broad range of connected applications that interoperate more easily, efficiently, and more securely, resulting in greater synergy and more user value.