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?

Foi útil?

Solução

O CLR é a implementação do CLI padrão.

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.

ECMA C # e Padrões Common Language Infrastructure

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top