Currently, I am reading about the CLR (common language runtime), and I will briefly describe it.
CLR ease the programming process for all languages that target CLR. Languages like Visual Basic, Visual C#, Visual F#, et cetera, targets CLR. Actually, these languages are only a subset of those possibilities that are available in CLR. That means that you might not be available to express your programming ideas through only one language, or, that others won’t be able to use your work, simply because of that. For example, if you’ve created a dynamic link library in the language C#, which is case-sensitive, where the functions can be so similar that one capital letter will separate them, i.e., “static void Hello”, “static void hello” or “static void HELLO” (c#-static. vb- shared member) it will work fine inside the C# environment. But outside, ex, when the function is to be called outside that environment, for example through Visual Basic, it may cause an exception. Note, that is also because of that the member is set to static/shared. If the member would be private or only accessible inside that assembly, everything would work fine. A great tip for all .NET developers is to always write in CLS (common language specification). Just include this peace of code in your assembly:
[assembly:CLSCompliant(true)]
That will always check your code and it will report when it does not follow the CLS.