A big difference between CLR and such runtimes as VBRUN/MSVBVM in Visual Basic or MSVCRT in Visual C++, is that CLR is a unified environment for all of the languages available for .NET. There is no difference if you write code in VB.NET, C#.NET or Perl.NET – your code will still be run in the same environment and have access to the common subset of classes. We can even mix and match code in different programming languages, including full multilingual object-oriented features, such as inheriting objects, created in one language from the code, written in other language. All of this is made available by Common Language Runtime.
Figure 2.1 shows the components of Common Language Runtime.