NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosASP.NET › Capítulo 02 : 02
Quer receber novidades e e-books gratuitos?
  « Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
ASP.NET - CURSO COMPLETO
Autor: Júlio Battisti

Lição 018 - Capítulo 02 - CLR - Common Language Runtime

No Capítulo 1 falamos, rapidamente sobre o CLR. Agora chegou o momento de apresentarmos mais alguns detalhes sobre este, que com certeza, é o principal elemento do Framework .NET.

O CLR é o ambiente de execução do Framework .NET. O CLR gerencia a execução de qualquer aplicativo .NET, além de fornecer uma série de serviços que facilitam e agilizam o desenvolvimento de aplicações. Conforme discutido no Capítulo 1, o maior benefício do CLR é que o mesmo fornece uma série de serviços e funcionalidades, que nos modelos de desenvolvimento anteriores ao .NET tinham que ser codificados na própria aplicação. Ao fornecer este conjunto de serviços e funcionalidades, estamos evitando que o programador tenha que se preocupar com a maneira com a aplicação vai ser executada, com a alocação de memória, com liberação de memória e tantos outros aspectos que dificultavam o desenvolvimento de aplicações. Com o suporte fornecido pelo CLR, o programador somente precisa se preocupar com a lógica da sua aplicação e não com a infraestrutura necessária para a mesma funcionar.

O Código que é executado sob o controle do CLR é chamado de “Managed Code”, vamos arriscar uma tradução: Código Gerenciado. Este gerenciado significa: “Sob o controle do CLR”.Em contrapartida código que não for executado sob o controle do CLR, no caso de programas não .NET é chamado de “non Managed Code”, que traduziremos por Código não gerenciado.

Os programas criados com linguagens habilitadas ao .NET e, portanto, executados sob o comando do CLR, podem se beneficiar das seguintes vantagens:

  • Fácil integração e interoperabilidade entre programas criados em diferentes linguagens.
  • Fácil implementação e controle da segurança da aplicação.
  • Utilizar a biblioteca de classes do Framework .NET.
  • Melhor gerenciamento das diferentes versões de um mesmo componente, inclusive com a possibilidade de execução simultânea de diferentes versões do mesmo componente, o que é conhecido por: “Syde-by-syde execution”.
  • Gerenciamento automático da alocação e liberação da memória.

Compilar ou não compilar, eis a questão?

Outro ponto importante a esclarecer é se os programas .NET são compilados ou interpretados. Confesso que na opinião deste autor, pouca importância tem se é compilado ou interpretado, desde que o desempenho final seja satisfatório. Mas como todo programador que se preza é um pouco teimoso, e apaixonado por uma discussão acalorada, vamos esclarecer este assunto antes que os ânimos se exaltem.

Ao criarmos um programa, utilizando uma linguagem habilitada ao .NET, como por exemplo o VB.NET ou o C#, o código fonte do programa, ao ser compilado gera código MSIL – Microsoft Intermediate Language. Senhores! Com calma. Ainda não é hora de começar a malhar o .NET. O CLR, que será responsável pela execução e controle do código MSIL gerado, COMPILA o código MSIL para código nativo. Com isso, o código que é executado pelo CLR é código nativo da plataforma onde está instalado o Framework .NET. Até o momento, a única plataforma compatível é a dobradinha Windows/Intel. Porém a Microsoft está tornando disponível, publicamente, as especificações para CLR e MSIL, o que possibilita que outras empresas desenvolvam um Framework .NET para outras plataformas, como por exemplo, o UNIX.

Nos veremos mais adiante, que mesmo uma página ASP.NET, é compilada no servidor Web, antes de ser enviada para o Navegador do cliente. Em resumo, todo e qualquer código executado pelo CLR, é código compilado nativo. Agora sim. Fiquem a vontade para discutir, dizer que não é bem assim, que esse tal de MSIL não tem nada a ver, mais um chope e assim por diante.

O papel dos meta dados (Metadata).

Para que o CLR possa fornecer uma série de serviços ao “managed code”, os compiladores das linguagens habilitadas ao .NET devem ser capazes de criar meta dados. Os meta dados contém informações sobre os tipos, membros e referências contidas no código do programa. Os meta dados são gravados com o próprio código do programa. Desta maneira toda a informação necessária para que o programa funcione está contida no seu próprio código, o que faz com que não seja necessário o registro do mesmo, diferente do que acontecia com os componentes COM/COM+. O CLR utiliza meta dados para localizar e carregar programas ou componentes, organizar as várias instâncias de um mesmo componente na memória, resolver a chamada de métodos, gerar código nativo, garantir a segurança de acesso e definir os limites para o contexto de execução de um componente ou programa.

O CLR automaticamente gerencia a alocação de objetos na memória, bem como as referências aos objetos. Quando não houver mais nenhuma referência ao objeto, o que significa que o mesmo não está mais sendo utilizado, o CLR automaticamente remove o objeto, liberando mais memória para o sistema. Com isso os tradicionais problemas de “memory leaks” - programas que alocam recursos de memória e não liberam, fazendo com que a quantidade de memória disponível fique reduzida, até o ponto de fazer com que o próprio sistema operacional fique instável e a máquina tenha que ser reinicializada – deixam de existir. Vejam o quanto fica simplificada a tarefa de desenvolvimento, uma vez que o programador não precisa preocupar-se com alocação e liberação de memória, apenas com a lógica do seu programa.  

Integração entre deferentes linguagens: Promessa ou realidade?

Com o CLR fica fácil a criação de componentes e aplicações nas quais os objetos sejam capazes de interagir, mesmo que codificados em diferentes linguagens. Por exemplo, podemos criar uma Classe chamada Clientes, em VB.NET. Podemos criar uma classe Clientes Especiais, em C#, herdada da classe Clientes. Com isso a nossa classe Clientes Especiais irá herdar todas as propriedades e métodos da classe Clientes.

No final do capítulo apresentaremos os principais conceitos de orientação a objetos, como por exemplo: classes e herança.

Essa integração entre diferentes linguagens é possível, pois todos as linguagens habilitadas ao .NET, tem acesso a um sistema de tipos comuns CTS – Common Type System. Falaremos um pouco mais sobre o CTS mais adiante, neste capítulo. Além disso cada componente ou aplicativo possui informações, na forma de meta dados, sobre a sua estrutura, sobre os métodos e propriedades que o mesmo possui e que podem ser acessados por outros componentes.

  « Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2024 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI