Sistema de informação
MSIL (Microsoft Intermediate Language),
CLR (Common Language Runtime),
CTS (Common Type System),
CLS (Common Language Specification),
BCL (Base Class Library),
Metadados ou METADATAS,
Assembly,
PE (Portable Executable),
Compilação JIT (Just in Time),
VES (Virtual Execution System),
GC (Garbage Collector)
Antes de começarmos com um mundo de siglas e nomes é muito importante entendermos que a plataforma .NET tem sua complexidade. Mas quando entendida fica fácil de partir para outros assuntos relacionados.
A plataforma .NET tem independência na linguagem de programação: com ela é possível trabalhar com várias linguagens diferentes no mesmo projeto e interagir entre elas.
Isso é possível por termos uma IL (Intermediate Language), ou seja, linguagem intermediária onde todos os fontes compilados pelo CLR (comentado mais a frente) resultam em uma só linguagem.
Não há linguagem melhor ou pior. Há linguagem que você melhor se adapta ou prefere.
Os sistemas desenvolvidos em .NET são auto-explicativos: cada programa compilado contém em si informações necessárias em METATAGS que faz com que o runtime não precise procurar as informações no registro do Windows.
Por exemplo quando criamos um sistema, o mesmo pode ser executado em qualquer máquina (que suporte a .NET) sem necessidade da instalação. Todas as informações necessárias para que o sistema seja executado são encontrados dentro nas METATAGS dentro dele mesmo. Com isso temos um sistema auto-explicativo, pois as informações necessárias estão armazenadas dentro dele e não no registro do sistema operacional.
MSIL (Microsoft Intermediate Language)
MSIL ou IL é a linguagem intermediária dita até agora.
Independentemente da linguagem que você escrever seu programa quando compilado será gerado a IL. Mas repare que não é qualquer linguagem que pode ser compilada em .NET. Ela deve aderir as especificações da CLS e CTS (comentadas mais a frente) e só