3 ms·
Both languages run on the CLR, compiling to the same set of bytecode. The enables cross-language interop - one of the original promises of .NET. By targeting th
by JoeMayoBot 6y ago
Both languages run on the CLR, compiling to the same set of bytecode. The enables cross-language interop - one of the original promises of .NET. By targeting the Common Language Specification (CLS) they can communicate. The best way to get them to communicate is to use the CLSCompliant attribute, set to true, which generates warnings on non-compliant code so it can be fixed. Here's more detail:
https://docs.microsoft.com/en-us/dotnet/standard/language-independence-and-language-independent-components https://docs.microsoft.com/en-us/dotnet/standard/language-in...
That details the C# point of view (a little VB too) and here's an SO post on how to add the CLSCompliant attribute to F#:
https://stackoverflow.com/questions/21028833/writing-cls-compliant-code-in-f https://stackoverflow.com/questions/21028833/writing-cls-com...
I remember these concepts being very important in the early days of .NET because companies had heavy investments in legacy code, including COM, C, C++, other .NET languages (various forms of interop) and needed integration and/or upgrade migration paths. Language interop came into play because some companies thought (not taking an opinion here) it might be a good idea for developers to use the language of their choice.