The .NET Framework Class Library
The second most important piece of the .NET Framework is the .NET Framework class library (FCL). As you've seen, the common language runtime handles the dirty work of actually running the code you write. But to write the code, you need a foundation of available classes to access the resources of the operating system, database server, or file server. The FCL is made up of a hierarchy of namespaces that expose classes, structures, interfaces, enumerations, and delegates that give you access to these resources.The namespaces are logically defined by functionality. For example, the System.Data namespace contains all the functionality available to accessing databases. This namespace is further broken down into System.Data.SqlClient, which exposes functionality specific to SQL Server, and System.Data.OleDb, which exposes specific functionality for accessing OLEDB data sources. The bounds of a namespace aren't necessarily defined by specific assemblies within the FCL; rather, they're focused on functionality and logical grouping. In total, there are more than 20,000 classes in the FCL, all logically grouped in a hierarchical manner. Figure 1.8 shows where the FCL fits into the .NET Framework and the logical grouping of namespaces.
Figure 1.8. The .NET Framework class library.

To use an FCL class in your application, you use the Imports statement in Visual Basic .NET or the using statement in C#. When you reference a namespace in Visual Basic .NET or C#, you also get the convenience of auto-complete and auto-list members when you access the objects' types using Visual Studio .NET. This makes it very easy to determine what types are available for each class in the namespace you're using. As you'll see over the next several weeks, it's very easy to start coding in Visual Studio .NET. The following code adds a reference to the data classes in both Visual Basic .NET and C#.
Imports System
Imports System.Data.SqlClient
Imports System.Data.OleDb
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
On Day 10, "Accessing Data with ADO.NET," you learn more about the common FCL namespaces and assemblies, and how to write applications using them. For now, you can see that without the FCL, the common language runtime and Visual Studio .NET wouldn't be very easy tools to use. The key idea to grasp is that the FCL is 100% available to all .NET languages, so the FCL namespace that implements file I/O capability in C# is the same FCL namespace that's used in Visual Basic .NET, J# .NET, and COBOL .NET.