The .NET Framework comprises all the pieces needed to develop, deploy, and execute Web services, Web applications, and Windows applications. I discuss each of these in more detail later in the chapter. You can think of the .NET Framework as a three-level hierarchy consisting of the following:
Application development technologies
.NET Framework class library
Common language runtime (CLR)
This hierarchy is illustrated in Figure 1-1.
Figure 1-1: The .NET Framework hierarchy
Each of the layers in Figure 1-1 is dependant on the layer beneath it. The CLR lies just above the operating system and insulates the programmer from its intricacies. The .NET Framework is what actually loads, verifies, and executes Web services, Web Form applications, and Windows applications.
The .NET Framework class library is a large number of classes broken up by namespaces containing all the predeveloped functionality of .NET. They contain classes to handle things such as file I/O, database access, security, threading, garbage collection, and so on. As a Managed C++ developer, you will spend many hours perusing and using these classes.
The application development technologies provide a higher layer of abstraction than the class library. Managed C++ developers will use these technologies to build their Web applications, Web services, and Windows applications. Most of the functionality a developer needs can be found at this level of abstraction, but in those cases where more control is needed, the developer can dive down into the class library level.