CLS is a guideline intended for component developers as well as compiler-compilers. He points out what is allowed and what is not allowed to create components, and create language support so that they are portable and fully compatible for consumption / interaction with all CLS friendly languages โโthat can run in the CLR .
While the CLR has specifications that are exposed and implemented by the implementation. CLS is just a guideline. You can still write components that break the CLS but work fine in the CLR . But in this case, they may not interact with certain languages.
Obviously, CLS very important for compiler and language designers. But even as a component developer, itโs important to stay within the CLS strings if you strive for complete interchangeability.
source share