The language-neutrality of the .NET platform results in several benefits to developers:
In the past, developers often had problems sharing code, because some developers on a team would work in C++ and some would work in other languages, such as Visual Basic. Depending upon how the C++ code was written, it may or may not have been accessible by Visual Basic developers. .NET does away with this problem, because now any .NET-compatible language can call any .NET class, and it can even extend that class for its own purposes. Reusing code now becomes automatic.
The same set of base classes is available for programmers, irrespective of the coding language they use.
A class or component written in one language can be extended in another language.
Traditionally, a language's error-handling model relied on either the language's unique way of detecting errors and locating handlers for them, or on the error-handling mechanism provided by the operating system. In the .NET platform, the Common Language Runtime (CLR) greatly assists the design of error-tolerant software by providing a platform for uniform error handling. CLR handles exceptions for all .NET-compatible languages. It doesn't matter which language was used to generate the exception or which language will be called upon to handle the exception.
Supported Languages