Free mag vol1 | Page 96

CHAPTER 1  THE PHILOSOPHY OF .NET Figure 1-6. Many .NET libraries reside in the GAC Depending on the development tool you are using to build your .NET applications, you will have various ways to inform the compiler which assemblies you want to include during the compilation cycle. You’ll examine how to do so in Chapter 2, so I’ll hold off on the details for now.  Note Beginning with .NET 4.0, Microsoft has opted to isolate .NET 4.0 and .NET 4.5 assemblies in a unique location, which is independent from C:\Windows\Assembly. Chapter 14 will address this point in detail. Exploring an Assembly Using ildasm.exe If you are beginning to feel a tad overwhelmed at the thought of gaining mastery over every namespace in the .NET platform, just remember that what makes a namespace unique is that it contains types that are somehow semantically related. Therefore, if you have no need for a user interface beyond a simple Console Application, you can forget all about the desktop and web namespaces (among others). If you are building a painting application, the database namespaces are most likely of little concern. Like any new set of prefabricated code, you learn as you go. The Intermediate Language Disassembler utility (ildasm.exe), which ships with the .NET Framework 4.5 SDK, allows you to load up any .NET assembly and investigate its contents, including the associated manifest, CIL code, and type metadata. This tool allows a programmer to dive deeply into how their C# code maps to CIL, and ultimately helps one understand the inner workings of the .NET platform. While you never need to use ildasm.exe to become a proficient .NET programmer, I highly recommend you fire up this tool from time to time to better understand how your C# code maps to runtime concepts. 28