At its core, .NET represents Microsoft’s implementation of the Web services concept, which treats software as a set of services accessible over ubiquitous networks using Web-based standards and protocols, although Microsoft has broadly applied the .NET moniker to several independent technologies and initiatives that have little to do with Web services (for example, .NET Enterprise Servers).
As a software infrastructure, .NET consists of two programming models:
• A Web services programming model, which exposes programming interfaces through Internet standards. This loosely coupled model uses HTTP and other Internet protocols as the main underlying transport mechanisms, and also uses XML, SOAP, WSDL and Universal Description, Discovery and Integration. Initially, most of this model will use a request/reply communications style.
• A system programming model designed to supersede Microsoft’s COM and the Windows application programming interfaces over time. This model introduces a new set of fundamental classes and a new runtime environment — the Common Language Runtime — providing an object-oriented class hierarchy structure as part of the application runtime environment. It also provides classes and mechanisms that enable programs to be “wrapped” as Web services, so it can ease — but is not required for — Web services development.