The .NET Framework is the culmination of the combined efforts of several teams at Microsoft, who have worked together to create a platform for rapidly building and deploying XML Web services and applications. The vision for the .NET Framework platform is to combine a simple-to-use programming paradigm with the scalable, open protocols of the Internet. To achieve this vision several intermediate goals had to be delivered.
To enable communication between business partners, customers, geographically separated divisions, and even future applications, development solutions need to offer both support for open Internet standards and deep, transparent integration with these standards—without forcing the developer to learn this underlying infrastructure.
The largest, most scalable systems in the world are built on message-based asynchronous architectures. But building applications on such an architecture is complex, and the tools are often less rich than those of more tightly coupled, n-tier application development environments. The .NET Framework was built to bring together the productivity advantages of tightly coupled architectures with the scalability and interoperability advantages of loosely coupled architectures.
Developers use different languages because the languages are good at particular things: Some languages are particularly appropriate for mathematical manipulation; some have particularly rich financial functions, and so on. Rather than forcing everyone to learn a single programming language, the .NET Framework enables applications written in many different programming languages to integrate deeply with each other. As a result, the .NET Framework enables companies to take advantage of their current development skills without the need for retraining, and allows developers to program in the language of their choice.
Enhancing Developer Productivity
With the worldwide shortage of application developers, every developer hour must be turned to productive work. The .NET Framework development team focused on eliminating as much programming plumbing as possible, leaving the developer free to focus on writing business logic. For example, the .NET Framework includes time-saving features, such as easy-to-use automatic transactions, automatic memory management, and a rich set of controls that encapsulate many common development tasks.
One of the largest concerns with the Internet today is security, and an Internet development solution needs to have security implemented as an integral component, not layered on top. The security architecture of the .NET Framework is designed from the ground up to ensure that data and applications are protected through a fine-grained, evidence-based security model.
Utilizing Operating System Services
Windows provides the richest services available with any platform, including comprehensive data access, integrated security, interactive user interfaces, mature component object model, transaction processing monitors, and world-class message queuing. The .NET Framework needed to take advantage of this richness and expose it in an easy-to-use way.
XML Web services are at the core of solving the challenges of application integration and delivering software as a service. XML Web services provide a simple, flexible, standards-based model for binding applications together over existing Internet infrastructure. Web applications can be easily assembled with new or existing services, irrespective of the platform, development language, or object model used to implement any of the constituent services or applications.
The key to making XML Web services work across the Web and its heterogeneous infrastructure is to have applications agree on simple data description formats, based on XML. These formats, along with what they do, are described below:
Extensible Markup Language (XML)
Example of XML being returned from an XML Web service.
s the major building block for XML Web services, XML’s largest strength is its flexibility to carry any type of data in a platform-independent way. Sample XML being returned from an XML Web service can be seen at left.
Simple Object Access Protocol (SOAP)
At the lowest level, systems need to speak the same language. In particular, communicating applications need to have a set of rules for how they are going to represent different data types (for example, integers and arrays) and how they are going to represent commands (for example, what should be done with the data). Also, the applications need a way to extend this language if they have to. The Simple Object Access Protocol (SOAP), an XML grammar, represents one common set of rules for representing and extending data and commands. SOAP has been accepted by the World Wide Web Consortium (W3C) for standardization.
Web Services Description Language (WSDL)
Once applications have general rules for how they will represent data types and commands, they need a way to describe the specific data and commands they accept. It is not enough for an application to say that it accepts integers; somehow, there must be a way to deterministically say that, if you give it two integers, it will multiply them. The Web Services Description Language (WSDL) is an XML grammar that developers and development tools can use to represent the capabilities of an XML Web service.
SOAP Discovery (Disco)
Beyond WSDL, you need a set of rules for locating an XML Web service’s description—where does a tool look to discover an XML Web service’s capabilities? The SOAP Discovery specification provides a set of rules for automatically discovering the WSDL description files on a particular Web site.
Universal Description, Discovery, and Integration (UDDI)
View of accessing an XML Web service.
DDI is a directory, like a library card catalog, that provides a way to locate all kinds of XML Web services. There are three parts to the UDDI specification:
White pages, which provide business contact information.
Yellow pages, which organize XML Web services into categories (for example, "Credit card authorization services").
Green pages, which provide detailed technical information about individual services.
The UDDI Business Registry is an implementation of the UDDI specification and is itself an XML Web service that uses SOAP over HTTP as its messaging protocol. For more information, see http://www.uddi.org/.
The .NET Framework implements all of these XML Web services standards.
For more information on XML and SOAP, see http://www.w3.org/XML/Activity.html.