The Common Language Infrastructure (CLI) is a specification that allows
several different programming languages to be used together on a given platform
Parts of the Common Language Infrastructure:
Common Intermediate language (CIL) including a common type system (CTS)
Common Language Specification (CLS) - shared by all languages
Virtual Execution System (VES)
Metadata about types, dependent libraries, attributes, and more
MONO and .NET are both implementations of the Common Language Infrastructure
The C# language and the Common Language Infrastructure are standardized by ECMA and ISO