The .NET Framework sits on top of the operating system, which can be any recently released version of Windows, including Windows 2000, Windows XP, or Windows Server 2003. Currently, the .NET Framework consists of:
Compilers for five official languages (C#, Visual Basic, Managed C++, J#, and the Jscript scripting language).
The Common Language Runtime (CLR), the object-oriented engine at the heart of the Framework that translates the intermediate code generated by the language compilers into the native code required to execute the application.
The .NET Framework is an integral part of Windows Server 2003 but must be downloaded and installed to run on Windows 2000 or Windows XP.
Because the CLR translates all code to a common interactive language that is later complied to native code, .NET can, in principle, be implemented on Unix, Linux, Mac OS X, or any other operating system.
Figure 1-1 breaks down the .NET Framework into its architectural components.
The CLR executes your program on your web server. The CLR activates objects, performs security checks on them, lays them out in memory, executes them, and handles garbage collection.
In Figure 1-1, the layer on top of the CLR is a set of framework base classes, followed by an additional layer of data and XML classes, plus another layer of classes intended for web services, web sites, and Windows forms. Collectively, these classes are known as the FCL. With more than 5,000 classes, the FCL facilitates rapid development of ASP.NET applications.
This same class library is used for all .NET applications, including console, desktop, and mobile devices, as well as ASP.NET.
The .NET Framework supports a Common Language Specification (CLS) , which allows you to choose the syntax with which you are most comfortable. You can write classes in C# and derive from them in Visual Basic 2005 (VB2005). You can throw an exception in VB2005 and catch it in a C# class. Suddenly the choice of language is a personal preference rather than a limiting factor in your application's development.
The set of Framework base classes supports rudimentary input and output, string manipulation, security management, network communication, thread management, text manipulation, reflection, and collections functionality , and so on.
Above the base class level are classes that support data management and XML manipulation. The data classes support persistent management of data that are maintained on backend databases. These classes include the Structured Query Language (SQL) classes to let you manipulate persistent data stores through a standard SQL interface. Additionally, a set of classes called ADO.NET allows you to manipulate persistent data. There are classes optimized for the Microsoft SQL Server relational database, and there are generic classes for interacting with OLE DB compliant databases. The .NET Framework also supports a number of classes to let you manipulate XML data and perform XML searching and translations. Chapter 10 discuss the data-handling aspects of the .NET Framework.
Beyond the Framework base classes and the data and XML classes is yet another tier of classes geared to support three types of application:
Facilitates the development of Windows desktop and Smart Client applications with rich and flexible user interfaces. These "traditional" desktop applications can interact with other computers on the local network or over the Internet through the use of web services. Windows application are not the subject of this book.
Supports the development of robust, scalable web pages and web sites, especially ASP.NET applications. Server controls enable many new features, such as validation, event-driven programmatic manipulation of the web pages, state maintenance, and more. Chapters 6 through 8 discuss web sites in detail.
Supports the development of applications that can process RPC-style method calls or XML messages over the Internet. Web services include a number of classes that support the development of lightweight distributed components, which will work even in the face of firewalls and Network Address Translation (NAT) software. Because web services employ standard Hypertext Transfer Protocol (HTTP) and SOAP as underlying communications protocols, these components support plug-and-play across cyberspace. Chapters 15 and 16 discuss web services specifically.