Treinamento
Módulo
Comece a aprender sobre o .NET. Entenda o que é o .NET e como ele funciona. Crie rapidamente um pequeno aplicativo em um ambiente .NET baseado na Web.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Ao trabalhar com o .NET, muitas vezes você encontrará o termo "código gerenciado". Este artigo explica o que significa código gerenciado e fornece informações adicionais sobre ele.
Em resumo, código gerenciado é exatamente isso: um código cuja execução é gerenciada por um runtime. Nesse caso, o tempo de execução em questão é chamado de Common Language Runtime ou CLR, independentemente da implementação (por exemplo, Mono, .NET Framework ou .NET Core/.NET 5+). O CLR é responsável por usar o código gerenciado, compilá-lo em código de computador e executá-lo. Além disso, o runtime fornece vários serviços importantes, como gerenciamento automático de memória, limites de segurança e segurança de tipos.
Compare isso à maneira pela qual você executaria um programa C/C++, também chamado de "código não gerenciado". No mundo não gerenciado, o programador é responsável por quase tudo. O programa real é, essencialmente, um binário que o sistema operacional (SO) carrega na memória e inicia. Tudo, desde o gerenciamento da memória até as considerações de segurança, é responsabilidade do programador.
O código gerenciado é escrito em uma das linguagens de alto nível que podem ser executadas sobre o .NET, como C#, Visual Basic, F# e outras. Quando você compila o código gravado nessas linguagens com seu respectivo compilador, não obtém o código do computador. Você obtém o código de Linguagem intermediária que o runtime compila e executa. C++ é a única exceção a essa regra, já que também pode produzir binários nativos e não gerenciados que são executados no Windows.
O que é "Linguagem Intermediária" (ou IL)? É um produto de compilação de código gravado em linguagens .NET de alto nível. Quando você compila o código gravado em uma dessas linguagens, obtém um binário composto de IL. É importante observar que a IL é independente de qualquer linguagem específica executada em runtime; há até mesmo uma especificação separada para que você pode ler se desejar.
Depois de gerar a IL do código de alto nível, execute-o. Aqui, a CLR assume e inicia o processo de compilação Just-In-Time ou colocando em compilação JIT seu código da IL no código do computador, que pode ser executado em uma CPU. Dessa forma, a CLR sabe exatamente o que o código está fazendo e pode, efetivamente, gerenciá-lo.
A Linguagem Intermediária às vezes também é chamada de Common Intermediate Language (CIL).
Naturalmente, o CLR permite ultrapassar os limites entre o mundo gerenciado e o não gerenciado, e há muitos códigos que fazem isso, mesmo nas bibliotecas de classes do .NET. Isso é chamado de interoperabilidade ou apenas interop. Essas condições permitiriam, por exemplo, resumir uma biblioteca não gerenciada e chamá-la. No entanto, é importante observar que quando você faz isso, quando o código passa os limites do runtime, o gerenciamento real da execução está novamente no código não gerenciado e, portanto, se enquadra nas mesmas restrições.
De modo semelhante, o C# é uma linguagem que permite que você use constructos não gerenciados como ponteiros diretamente no código, utilizando o que é conhecido como contexto inseguro que designa um trecho de código para o qual a execução não é gerenciada pelo CLR.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Treinamento
Módulo
Comece a aprender sobre o .NET. Entenda o que é o .NET e como ele funciona. Crie rapidamente um pequeno aplicativo em um ambiente .NET baseado na Web.