CONTENTS
Resolving Name Clashes with Aliases.................................................................................................. 506
Creating Nested Namespaces .............................................................................................................. 508
The Default Namespace of Visual Studio.............................................................................................. 509
The Role of .NET Assemblies .........................................................................................510
Assemblies Promote Code Reuse......................................................................................................... 510
Assemblies Establish a Type Boundary ................................................................................................ 510
Assemblies Are Versionable Units ........................................ ................................................................ 510
Assemblies Are Self-Describing ........................................................................................................... 511
Assemblies Are Configurable................................................................................................................ 511
Understanding the Format of a .NET Assembly .............................................................511
The Windows File Header ..................................................................................................................... 512
The CLR File Header ............................................................................................................................. 513
CIL Code, Type Metadata, and the Assembly Manifest......................................................................... 514
Optional Assembly Resources .............................................................................................................. 514
Building and Consuming Custom Class Library .............................................................514
Exploring the Manifest.......................................................................................................................... 518
Exploring the CIL................................................................................................................................... 520
Exploring the Type Metadata................................................................................................................ 521
Building a C# Client Application ........................................................................................................... 522
Building a Visual Basic Client Application ............................................................................................ 524
Cross-Language Inheritance in Action.................................................................................................. 525
Understanding Private Assemblies ................................................................................526
The Identity of a Private Assembly ....................................................................................................... 526
Understanding the Probing Process ..................................................................................................... 526
Configuring Private Assemblies............................................................................................................ 527
The Role of the App.Config File ............................................................................................................ 529
Understanding Shared Assemblies................................................................................531
The Global Assembly Cache ................................................................................................................. 532
xxii