The Framework is a new member of the family of products based on Windows components. Think of the Framework as a centralized hub with links directed toward other Windows 2000 components, as depicted in Figure 5-1. Each component contains a collection of classes offering specified services and application functionality to clients in a variety of ways. The .NET Framework base classes support both language integration and language independence. Moreover, the Framework is not limited to Windows 2000 and higher. On the server side, ASP.NET, web services, Windows services, and certain other Framework components require Windows 2000 and above. However, the Framework supports client-side applications in Windows 98 and in Windows 98, second edition.
Figure 5-1: .NET Framework system architecture
Traditionally, developers view the .NET architecture as multilayered, with the operating system residing on the bottom layer, the Common Language Runtime sitting on top of the OS, and the Framework base classes layered above the CLR. Microsoft .NET is a collection of components that support application integration. Referring to Figure 5-1, the operating systems component includes Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows Millennium, Windows CE, Windows XP Home, Windows XP Professional, Windows 2000 Datacenter, and the Windows NT family.
The enterprise servers component hosts the Host Integration Server 2000, Application Server 2000, BizTalk Server, Commerce Server 2000, SQL Server 2000, Internet Information Services, Exchange Server 2000, and Windows Server 2003.
As an example of services offered by individual servers, the Host Integration Server enables legacy system access. It works with a wide variety of network protocols and network service types. The Application Server Center 2000 represents Microsoft’s management and deployment tool for web applications.
Microsoft’s database technology facilitates direct access to SQL Server 2000 with ADO.NET’s native data provider, System.Data.SQLClient. ADO.NET divides the classes supporting database services into two separate namespaces. Clients wishing to connect to SQL Server should use the System.Data.SQLClient namespace, whereas clients desiring to connect to non-SQL Server data resources can utilize the System.Data.Oledb namespace. Classes contained in System.Data (the core class) manage data. Additionally, a number of vendors supply fully enabled ADO.NET providers that allow connections to data sources to be made outside of the Oledb namespace.
Commerce Server 2000 is a completely rebuilt version of Site Server, version 3.0, Commerce edition. It enhances fast construction of an e-commerce shopping cart web site, enabling direct user interaction with the server for purchases and other types of business transactions. In fact, all servers facilitate Rapid Application Development (RAD) and shorten the length of time required for building scalable, fast-to-market components for large-scale enterprise applications.
The time-tested COM legacy component of the Framework continues to offer its traditional COM services to developers. COM supports language independence but does not allow language interoperability.
The Framework eliminates the need for writing extra code in order to adhere to COM’s interface requirements. For example, .NET binaries are reusable without writing extra code to facilitate language integration. A .NET-aware compiler offers a unique approach to application development by generating a program executable file called an assembly. The assembly bypasses the need for registering the application binaries in the system registry. It has a manifest (metadata about the assembly) containing all application code in binary format, references to external libraries required to execute the application, and program instructions to the Common Language Runtime.
The application component of the .NET Framework contains desktop applications such as the Office integrated suite of applications (Word, Excel, Access, and PowerPoint).
Finally, the web services component contains classes that provide support for web-enabled applications. Three technology classes residing within this component extend the Framework base classes and support web services, Windows forms, and web forms.
Simply put, the .NET Framework hosts components for the next generation of Windows-based applications. In addition, it places a wrapper around type-safe code developed with the Framework, thereby shielding the code from operating system–level functionality such as I/O operations, string handling, file services, security, and garbage collection.
The next step in understanding the Framework infrastructure is decomposing the Framework into individual modules (the micro view), thereby allowing us to peek under the hood and enhance our perception of the wide range of services offered. Figure 5-2 illustrates the skeletal structure of the Framework.
Figure 5-2: A skeletal view of the Framework