I just cant seem to understand these pillars of .NET.
CTS (Common Type System) So you can say CTS describes how types are declared, used and managed in the runtime and facilitates cross-language integration, type safety, and high performance code execution.
CLS (Common Language Specification) The Common Language Specification (CLS) is an agreement among language designers and class library designers to use a common subset of basic language features that all languages have to follow.
As you can see in the image CLS is a subset of CTS
alt text http://www.microsoft.com/taiwan/msdn/columns/DoNet/images/NET_CTS1.gif