Creating a framework that functions in the manner described in this chapter is certainly no easy task. To make it work, the .NET strategy must provide an infrastructure on which Web Services can be built. Fortunately, .NET provides this infrastructure, freeing programmers to concentrate on business logic rather than the programming infrastructure itself. At a basic level, the .NET infrastructure looks at programming components as Web Servicesit takes the best features of Microsoft's Component Object Model (COM) and mixes them with the idea of loosely coupled messaging. Because of these features, the infrastructure exists for the programmer so the programmer can focus on the business needs of development and not on making various components function with each other.
The .NET infrastructure creates the framework on which Web Services can be built. Three components to this framework are introduced in the following sections below. Later chapters examine these components in more detail.
Common Language Runtime
All programming languages have a runtime, a service that functions with the programming language. The Common Language Runtime is a core component of .NET that provides the base on which to build .NET-enabled applications. The Common Language Runtime manages many aspects of the development cycle from a developer's point of view. For example, when working with COM, developers had to worry about memory management, thread initiations and killing, security components, and the like. This caused quite a bit of overhead because developers had to spend their time worrying about these issues. The Common Language Runtime manages all of these problems automatically, freeing developers to focus on business logic. The Common Language Runtime provides a common runtime that can be used across all languages. This component gives .NET its "language-free" status.
Unified Programming Classes
Programming class libraries, or application programming interfaces (APIs) are used by different programming languages. To use different programming languages, developers must learn different sets of class libraries to work with different programming languages. This problem slows application development and makes a developer's job more tedious and time consuming. .NET provides unified programming classes with a common set of APIs for all programming languages. Languages can interact with one another, and the unified programming classes allow developers to choose whatever programming language they would like to use while only using a single API set.
Active Server Pages .NET are used in conjunction with the programming classes that make building Web applications easy for programmers. ASP.NET provides access to common HTML interface widgets that run on the server end but project their image of them through HTML, such as text boxes. The
ASP.NET interface makes the development of Web applications much faster because of these common controls. As a result of the common programming classes and the standard features of ASP.NET, developers spend less time writing new code and more time making use of code that already exists. ASP.NET is used on top of the Common Language Runtime and the unified programming languages to create Web Services, as shown in Figure 12.
Figure 12 .NET components