NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Common Language Specification

The primary design challenge in creating a common language specification is choosing the right size subset – large enough that it is properly expressive and small enough that all languages can reasonably accommodate it.

Because the CLS is about language interoperability, its rules apply only to “externally visible” items. The CLS assumes that language interoperability is important only across the assembly boundary – that is, within a single assembly there are no restrictions as to the programming techniques that are used. Thus, the CLS rules apply only to items that are visible (see Visibility of Types) outside of their defining assembly and have public, family, or family-or-assembly accessibility (see Accessibility of Members).

It is useful to define some terminology:

While many things contribute to the decision to exclude a VOS concept from the CLS, one should be explicitly called out: any construct that would make it impossible to rapidly verify code is excluded from the CLS. This allows all CLS-compliant languages to produce verifiable code if they so choose.