Microsoft .NET facilitates the development of web-enabled applications for any programming language targeting the .NET Framework. The languages include Visual Basic .NET, Visual C# .NET, Visual J# .NET, ASP.NET, and Visual C++ .NET. Microsoft also provides more than 20 interfaces to the Framework for other programming languages such as COBOL, Python, and Perl.
This chapter focuses on the components of the Framework, first taking a macro view of the overall architecture and then a micro view of the Common Language Runtime (CLR) and its tasks. A perusal of the System.Reflection namespace helps to understand how the CLR uses reflection to examine the manifest, which contains metadata about the executable code every Windows application must have. The program executable (PE) file hosts the application’s Microsoft Intermediate Language (MSIL) code, the manifest, and an assembly. The latter contains all executable code in binary format.
Binary formatted code is not native executable code, but it can be executed by the CLR and is MSIL code.
After examining the PE file, we look at a sample application written in Visual Basic .NET for purposes of learning how to create a class library. The last part of the chapter discusses how the Common Type Specification (CTS) and Common Language Specification (CLS) work in conjunction with the CLR. The final section demonstrates how to make an assembly public by creating a strong name.
Before getting into the technical aspects, let’s take a look at some of the reasons Microsoft created the Framework.