Throughout this book, we emphasize that the C# language must be considered in parallel with the .NET Framework, rather than viewed in isolation. The C# compiler specifically targets .NET, which means that all code written in C# will always run within the .NET Framework. This has two important con.sequences for the C# language:
- The architecture and methodologies of C# reflect the underlying methodologies of .NET.
- In many cases, specific language features of C# actually depend on features of .NET,01 the .NET base classes.
Because of this dependence, it is important to gain some understanding of the architecture and methodology of .NETbefore you begin C# programming. That is the purpose of this chapter. The
following is an outline of what this chapter covers:
This chapter begins by explaining what happens when all code (including C#) that targets .NET is compiled and run.
Once you have this broad overview, you take a more detailed look at the Microsoft Intermediate Language (MSILor simply IL); the assembly language that all compiled code ends up in on .NET.In particular, you see how IL, in partnership .:ith the Common Type System (CTS)and Common Language Specification (CLS),works to give YUll interoperability . between languages that target .NET.This chapter also discusses where common languages
(including Visual Basic and C++) fit into .NET. Q Next, you move on to examine some of the other features of .NET,including assemblies, names paces, and the .NET base classes.
The chapter finishes with a brief look at the kinds of applications you can create as a C# developer.