CLR e CLI - Qual é a diferença?
-
20-08-2019 - |
Pergunta
Eu quero saber o que exatamente é a diferença entre CLR e CLI? De tudo o que eu li até agora, parece indicar que CLI é um subconjunto do CLR. Mas não é tudo na CLR obrigatório? O que exatamente pode ser deixado de fora da CLR para criar uma CLI?
Outras dicas
CLR é o ambiente de execução em que um aplicativo .NET está hospedado com segurança / run.
Você pode vê-lo como sistema operacional particular de .NET que inicia e cargas pouco antes de uma aplicação .NET é iniciado.
O CLR cuida de certos requisitos essenciais de qualquer aplicativo .NET que de outra forma exigiria muito código deliberado para ser escrito, a fim de implementar; requisitos que são de natureza holística e essencial para qualquer tipo de aplicação para ser executado em um bom, eficiente e segura [por exemplo, alocação de memória alça e liberá-lo quando não é necessário, ponteiros Evitar pendurado, evitar erros de fundição tipo etc.]
CLI, por outro lado é uma especificação / conjunto de orientações que explica como implementar um ambiente de execução do aplicativo e da natureza do código do aplicativo gerado que permite múltiplas linguagens de alto nível para ser usado em diferentes plataformas de computador sem ser reescrito para arquiteturas específicas.
CLI é desenvolvido pela Microsoft e padronizado pela ISO e ECMA.
O CLR é uma aplicação prática do VES do CLI [Execução Virtual System] seção e constitui um dos principais componentes da plataforma MS.NET
Em linguagem de leigo, CLI é uma receita enquanto CLR é a cozinha: -)
O CLR (Common Language Runtime) é a implementação da Microsoft dos VES (Virtual Execution System). Os VES, juntamente com a CTS (Common Type System), o CLS (Common Language Specification) ea especificação de metadados são todos parte do CLI (Common Language Infrastructure) especificação.
O VES é uma especificação de máquina virtual padronizados que devem ser implementadas a fim de carregar e executar CIL (Common Intermediate Language) módulos (DLL e EXE). implementação A VES também fornecem serviços de tempo de execução, tais como a recolha e segurança de lixo.
CLR é o ambiente de execução .net, onde todo o tipo de aplicações .NET são exemplo run.For, quando você escreve seu código com C # ou outra linguagem do ponto de pilha NET as compilações do compilador e converte-lo em módulo gerenciado. Um módulo gerenciado é IL (linguagem intermediária) e metadata.Above tudo, o ponto importante a lembrar é que sempre que você compilar o código fonte, o compilador traduz em módulo gerenciado. Para esclarecer, este não é um código de máquina que o processador irá execute.In verdade, IL é uma linguagem intermediária perto de montagem language.Similarly, também é famoso como objeto orientado linguagem de máquina.
Confira este artigo sobre explicação mais detalhada:
http://alevryustemov.com/programming/common-language-runtime/
CLR é o ambiente completo em que CLI, CTS, CLS obras em integração também incluse coleta de lixo, gerenciamento de memória, segurança, idioma intemediate para código nativo ... CLI é uma especificação para o formato de código executável, e o tempo de execução ambiente que pode executar esse código.