Formação
Módulo
Comece a aprender sobre o .NET. Compreenda o que é o .NET e como funciona. Crie rapidamente uma aplicação simples num ambiente .NET baseado na Web.
Este browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
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.
Para simplificar, código gerenciado é exatamente isso: código cuja execução é gerenciada por um tempo de execução. 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 pegar o código gerenciado, compilá-lo em código de máquina e, em seguida, executá-lo. Além disso, o tempo de execução fornece vários serviços importantes, como gerenciamento automático de memória, limites de segurança e segurança de tipo.
Compare isso com a maneira como 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 praticamente tudo. O programa real é, essencialmente, um binário que o sistema operacional (SO) carrega na memória e inicia. Todo o resto, desde a gestão da memória até às considerações de segurança, é um fardo para o 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 código escrito nessas linguagens com seu respetivo compilador, você não obtém código de máquina. Você obtém o código da linguagem intermediária que o tempo de execução compila e executa. C++ é a única exceção a essa regra, pois também pode produzir binários nativos não gerenciados que são executados no Windows.
O que é "Intermediate Language" (ou IL)? É um produto de compilação de código escrito em linguagens .NET de alto nível. Depois de compilar seu código escrito em uma dessas linguagens, você obterá um binário que é feito de IL. É importante notar que o IL é independente de qualquer linguagem específica que seja executada em cima do tempo de execução; Há até mesmo uma especificação separada para ele que você pode ler se estiver tão inclinado.
Depois de produzir IL a partir do seu código de alto nível, você provavelmente desejará executá-lo. É aqui que o CLR assume e inicia o processo de compilação Just-In-Time , ou JIT-ing seu código de IL para código de máquina que pode realmente ser executado em uma CPU. Dessa forma, o CLR sabe exatamente o que seu código está fazendo e pode gerenciá-lo de forma eficaz.
A Linguagem Intermediária às vezes também é chamada de Linguagem Intermediária Comum (CIL) ou Linguagem Intermediária Comum (CIL).
É claro que o CLR permite passar os limites entre o mundo gerenciado e o mundo não gerenciado, e há muito código que faz isso, mesmo nas bibliotecas de classes .NET. Isso é chamado de interoperabilidade, ou interoperabilidade para abreviar. Essas disposições permitiriam, por exemplo, embrulhar uma biblioteca não gerenciada e chamá-la. No entanto, é importante notar que, uma vez que você faz isso, quando o código passa os limites do tempo de execução, o gerenciamento real da execução está novamente na mão do código não gerenciado e, portanto, cai sob as mesmas restrições.
Semelhante a isso, C# é uma linguagem que permite que você use construções não gerenciadas, como ponteiros, diretamente no código, utilizando o que é conhecido como contexto inseguro, que designa um pedaço 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:
Formação
Módulo
Comece a aprender sobre o .NET. Compreenda o que é o .NET e como funciona. Crie rapidamente uma aplicação simples num ambiente .NET baseado na Web.