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: PrincipalTutoriaisAlmirrivas : Vbdotnet001
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


.NET Framework e CLR – Visão Geral

 

Objetivos:

 

Visão geral do .NET Framework e do CLR.

 

Pré-requisitos:

 

Noções de programação.

 

Nota: Este tutorial faz parte do Curso: VB. NET – Desenvolvimento básico.

 

O .NET Framework e a CLR (Common Language Runtime)

 

O Microsoft .NET Framework é um ambiente integrado e gerenciado para desenvolvimento e execução de seu código.

 

Visão geral do .NET Framework

 

O .Net Framework é um ambiente  fortemente tipado para desenvolvimento e execução de aplicações. O .NET Framework gerencia todos os aspectos  de execução de um programa . Ele aloca memória para armazenar dados e instruções, gerencia permissões para execução dos programas. O .NET Framework consistem em dois componentes mestres.

 

A Common Language Runtime e a .NET Framework Class Library.

 

O CLR (Common Language Runtime) pode ser ainda o ambiente que gerencia a execução do código. Ele fornece os serviços core como compilação de código, alocação de memória, gerenciamento de thread e coleta de lixo. O CTS (Common Type System) força a tipagem de variáveis e garante que o código é executado em um ambiente seguro e também com segurança ao acesso ao código.

 

A biblioteca de classes do .NET Framework fornece uma coleção de tipos úteis e reutilizáveis que foram desenvolvidos para interagir com a Common Language Runtime.

 

Estes tipos fornecidos pelo .NET Framework são orientadas à objetos e altamente extensíveis e permitem ser integradas a sua aplicação com o .NET Framework.

 

Linguagens e .NET Framework

 

O .NET Framework foi desenvolvido para ser compatível com diversas linguagens, isto significa, que os componentes .NET podem interagir com outros componentes escritos em qualquer  um das linguagens  suportadas por ele. Então uma aplicação escrita em Microsoft Visual Basic .NET pode referenciar uma DLL escrita em Microsoft Visual C# que por sua vez pode acessar recursos escrito em Microsoft Visual C++ ou em qualquer outra linguagem .NET.

 

Esta interoperabilidade e extensível a toda orientação a objetos. O Visual Basic .Net pode derivar classes de uma classe C#, por exemplo.

 

Este nível de compatibilidade entre linguagens só é possível devido a CLR.

 

Quando uma aplicação .NET é compilada ela é convertida de sua linguagem escrita (Visual Basic .NET, C# ou outra compatível) para a Microsoft Intermediate Language (MSIL). MSIL é uma linguagem de baixo-nível que a CLR (Common Language Runtime) pode ler e entender. Porque todos os executáveis e DLLs existem como MSIL podem ser interoperalizados livremente. A Common Language Specification (CLS) define os padrões mínimos que os compiladores das linguagens precisam estar em conformidade. Com isso a CLS assegura que qualquer código fonte compilado nos padrões CLS pode ser interoperado pelo .NET Framework.

 

A CTS (Common Type Specification) garante compatibilidade entre os componentes .NET. Todas as aplicações .NET são convertidas para IL antes de serem executadas . Todos os tipos primitivos de uma linguagem compatível com o .NET são tipos primitivos do .NET. Então um integer do Visual Basic .NET e um int do C# são representados da mesma forma em IL, como System.Int32.  Porque ambas as linguagens usam o CTS é possível transferir dados entre os componentes evitando assim erros de conversão de tipo.

 

O Visual Studio . NET trabalha com linguagens como o Visual Basic .NET , Visual C# e Visual C++ assim como o JScript. Você também pode escrever o código gerenciado para o .NET Framework em outras linguagens. Outros compiladores e ferramentas existentes para Fortran, Cobol, Perl entre outras linguagens.

 

A estrutura de uma aplicação .NET

 

Para entender como o CLR gerencia a execução do código, você precisa examinar a estrutura de uma aplicação .NET. A unidade primária de uma aplicação .NET é o assembly. Assembly  é uma coleção de código auto-descritivo, recursos e metadados.

 

O manifesto do assembly contém informações sobre o que esta contido no assembly. O manifesto do assembly fornece:

 

» Informações da identidade do assembly. Como nome e número de versão.

» A lista de todos os tipos utilizados pelo assembly.

» A lista de outros assemblies necessários ara a execução do assembly.

» A lista de instruções relacionadas à segurança, incluindo as permissões necessárias pelo assembly e restrições do assembly.

 

Cada assembly tem um e somente um manifesto e ele contém todas as informações do assembly. Entretanto o manifesto do assembly pode estar contido no mesmo arquivo do ou em um módulo do assembly.

 

Um assembly pode conter um ou mais módulos. Um módulo contém um código que define sua aplicação ou biblioteca e contém também metadados que descrevem este código. Quando você compila um projeto o seu código é convertido de um código de alto nível para a IL. Porque todos os códigos são convertidos em código IL. As aplicações escritas em diferentes linguagens interagem facilmente. Por exemplo, o desenvolvedor pode escrever uma aplicação em C# que acessa uma DLL em VB .NET. Ambos os recursos são convertidos em módulos IL antes de ser executados desta maneira evita-se a incompatibilidade entre as linguagens.

 

Cada módulo contém um determinado número de tipos. Tipos são moldes que descrevem um conjunto de dados encapsulados com funcionalidades. Há duas espécies de tipos: tipos por referência (classes) e tipos por valores (estruturas). Cada tipo é descrito para a CLR no manifesto do assembly. Um tipo contém campos, propriedades e métodos cada um relacionado com uma funcionalidade comum. Por exemplo, você pode ter uma classe que representa um banco. Um campo pode armazenar o nome do proprietário da conta. Propriedades são similares aos campos. As propriedades realizam algum tipo de validação quando os dados são definidos ou recuperados. Uma propriedade pode representar o  saldo de uma conta. Quando se trata de tentar mudar o valor a propriedade  pode checar se a mudança de valor extrapola o limite da conta.

 

Se o valor é maior que o limite a propriedade não permite a alteração. Métodos representam comportamentos como as ações que alteram os dados das propriedades.

 

Continuando com o exemplo do banco o método transferência retira o valor de uma conta e colocar o valor em uma outra conta ou ainda, pode existir um método que avisa quando uma conta bancária alcança seu limite.

 

Compilação e execução de uma aplicação .NET

 

Quando você compila uma aplicação .NET você não a compila para o código nativo da máquina e sim para IL. Esta é a forma que sua aplicação é publicada em um ou mais assemblies compostos por DLLs e executáveis. Um desses assemblies deve conter um executável designado como ponto de entrada da aplicação.

 

Quando a execução do programa começa, o primeiro assembly é carregado para a memória. Neste ponto a CLR examina o manifesto do assembly e determina os requisitos do programa. Ele examina as permissões de segurança requisitadas  pelo assembly e compara com as políticas de segurança do sistema. Se as políticas de segurança do sistema não fornecem as permissões requisitadas pelo programa a aplicação não será executada. Se a aplicação passa pela checagem de segurança do sistema o CLR executa o código. Ele cria um processo para a aplicação e inicia sua execução. Quando a execução inicia, a primeira porção de código necessário para a execução ocorrer e carregado na memória e compilado para o código nativo da máquina pelo JIT (Just-in-time compiler). Quando o programa tenta usar parte do código que ainda não foi compilado o JIT compila este código e o coloca na memória em código nativo. Desta forma o  desempenho da aplicação é maximizado porque apenas as partes executadas são compiladas.

 

A biblioteca básica de classes do .NET

 

A biblioteca básica de classes do .NET é uma coleção de interfaces  e tipos orientados a objetos e que fornecem modelos de objetos e serviços para diversas tarefas complexas de programação  que você precisa. A grande maioria dos tipos fornecidos pela biblioteca básica de classes do .NET são extensíveis, permitindo que você crie tipos e incorpore sua próprias funcionalidades  a eles.

 

A .NET Framework Class Library (biblioteca básica de classes do .NET) contém classes que fornecem serviços e objetos que você precisa para escrever suas aplicações.

 

A biblioteca é organizada em namespaces. Os namespaces são agrupamentos lógicos de tipos que realizam funções relacionadas. Por exemplo, o namespace System.Windows.Forms  contém todos os tipos que trabalham com janelas, formulários e controles utilizados dentro de um formulário.

 

Namespaces são grupos de classes relacionadas. Os namespaces na .NET Framework Class Library são organizados hierarquicamente. A raiz dos namespaces do .NET Framework  é o namespace System. Outros namespaces podem ser acessados através do operador . (ponto). Uma construção típica de um namespace aparece a seguir:

 

System

System.Data

System.Data.SQLClient

 

A primeira linha se refere ao namespace System. A segunda linha se refere ao namespace System.Data e a terceira linha se refere ao namespace System.Data.SQLClient.

 

A tabela a seguir mostra alguns dos principais namespaces da .NET Framework Class Library.

 

 

O nome do namespace são auto-descritivos. Nomes diretos e claros fazem as bibliotecas do .NET Framework tornarem-se fáceis para uso e permitem que você se familiarize rapidamente com o seu conteúdo.

 

Tipos por referência e tipos por valores

 

Tipos no .NET Framework são de duas variedades: Por referência e por valores.

 

A diferença primária entre ambos é a forma como o dado é acessado. Para que você entenda esta iremos esclarecer alguns conceitos e formas da memória operar.

 

A memória de uma aplicação é divida em dois componentes básicos  a stack e a heap. Stack é análogo a uma pilha de pratos.  Pratos são colocados em uma pilha de pratos uns sobre os outros. Sempre o último prato a ser colocado na pilha é o primeiro a ser removido da pilha. Isto acontece com as variáveis dos programas. Quando uma função é chamada todas as variáveis da função são colocadas (empilhadas) na stack. Se esta função chama outra função as variáveis da função chamada também são empilhadas sobre as variáveis da função anterior. Quando a função mais recentemente chamada termina todas as suas variáveis são retiradas da pilha. A memória consumida pelas variáveis volta a ficar disponível para o sistema.

 

A heap é uma área separada de memória reservada para a criação de objetos reutilizáveis. O CLR gerencia a alocação da heap para objetos e controles que reclamam memória de objetos não mais usados através da coleta de lixo (garbage collection).

 

Todos os dados associados a um tipo por valor são armazenados ns stack.

 

Quando uma variável de tipo por valor encerra seu trabalho ela é destruída e a memória liberada. Já uma variável de um tipo por referência exige dois espaços na memória. Os dados do objeto atual são alocados na heap e uma variável contendo o ponteiro (endereço) para os dados do objeto atual é alocada na stack. Quando esta variável é chamada por uma função ela retorna o endereço do objeto que ela referencia.

 

Quando estas variáveis terminam seus trabalhos a referência é destruída mas o objeto não.  Se uma outra referência a este objeto existir o objeto permanece intacto.

 

Se não existir nenhuma referência a este objeto quando houver a coleta de lixo este objeto será removido da memória.

 

Exemplos de valores por tipo incluem os tipos primitivos como Integer (Int), Boolena (bool), Char (Char) e alguns tipos definidos pelo usuário como estruturas (Structure – struct) e enumerações (Enumeration – Enum). Classes representam a grande maioria dos tipos por referência. Outros tipos por referência incluem interfaces, delegates e tipos array.

 

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