O .NET Framework é um ambiente de execução gerenciado que consiste de dois componentes principais: o Common Language Runtime (CLR) e a .NET Framework Class Library. Sobre o .NET Framework, analise:

I. Em muitas linguagens de programação, os programadores são responsáveis por alocar e liberar memória e por manipular o tempo de vida do objeto. Em aplicativos do .NET Framework, o CLR fornece esses serviços.

II. Em muitas linguagens de programação tradicionais, os tipos básicos são definidos pelo compilador, o que complica a interoperabilidade entre linguagens. No .NET Framework, os tipos básicos são definidos pelo .NET Framework Type System e são comuns a todas as linguagens que o utilizam.

III. O .NET Framework inclui bibliotecas para áreas específicas de desenvolvimento de aplicativos, como o ASP.NET para aplicativos da web, o ADO.NET para acesso a dados e o Windows Communication Foundation para aplicativos orientados a serviços.

IV. Compiladores de linguagens direcionadas ao .NET Framework geram um código intermediário chamado de Common Intermediate Language (CIL), que, por sua vez, é compilado em tempo de execução pelo CLR. Com esse recurso, as rotinas escritas em uma linguagem tornam-se acessíveis a outras linguagens da plataforma .NET.

Está correto o que se afirma em