A arquitetura e funcionamento da Plataforma .NET

 

O desenvolvimento da Plataforma .NET

O objetivo da Microsoft ao criar essa plataforma era oferecer suporte ao desenvolvimento de diversos tipos de aplicações, que seriam distribuídas para uma grande variedade de dispositivos de uso pessoal e negócios, como celulares, computadores e até servidores corporativos. A plataforma .NET foi desenvolvida sobre padrões WebServices e XML, permite que sistemas novos e antigos conectem-se e realizem transações, independente do dispositivo e sistema operacional o qual foi utilizado em seu desenvolvimento, ou seja, permite que sistemas criados em linguagens diferentes se comuniquem, permitindo a integração de softwares e informações em qualquer localização e dispositivo, de maneira rápida barata e segura.

Observação: Se você tem intenção de programar no visual studio, utilizando as linguagens C#, VB.NET, entre outras, é necessário a instalação do .NET Framework.

Para maiores informações acesse: https://msdn.microsoft.com/pt-br/library/5a4x27ek(v=vs.110).aspx

 

A Arquitetura do .NET Framework 

O .NET é um componente integrado ao windows que dá suporte ao desenvolvimento de aplicações, possuí dois componentes principais:

  • CLR (Common Language Runtime) - Basicamente é o mecanismo responsável pela execução das aplicações .NET, gerencia o código em execução, oferecendo serviços, como gerenciamento da memória. O CLR é frequentemente chamado de máquina virtual. Antigamente tínhamos que lidar com hardware e outras coisas de baixo nível nos computadores, pois um mesmo programa (código) não poderia executar em hardware, arquiteturas de processadores e sistemas operacionais diferentes ao mesmo tempo. Hoje o CLR resolve isso, cuida de todos os detalhes para você, fazendo um tipo de tradução do seu programa para a máquina especifica em que está sendo executado.
  • Class Library (Biblioteca de Classes) - É simplesmente uma biblioteca de classes, interfaces e tipos incluídos no .NET Framework, é aqui que encontramos todas as funcionalidades básicas do sistema, componentes e controles. Ex: WinForms, ADO.NET, System, Web API, etc...

Segue abaixo imagem para melhor entendimento da arquitetura da Plataforma .NET.

 


Compilação

Abaixo demostramos de maneira visual como ocorre o processo de compilação de um código, em seguida descrevemos passo a passo: 

 

  1. Geramos o código na linguagem desejada. Ex: C#, VB.NET, J#, etc...
  2. O código é compilado, lembrando que cada linguagem possui seu compilador especifico.
  3. É gerado um único MSIL (Linguagem Intermediária), o qual inclui introduções para carregar, armazenar, iniciar e executar métodos, assim como instruções para operações aritméticas e lógicas, etc... Além disso os métodos, que serão utilizados pelo CLR são colocados em arquivos de extensão .DLL ou .EXE.
  4. Para ser possível a execução do arquivo de extensão .DLL ou .EXE é chamada a CLR - (Máquina Virtual), que converterá o arquivo para a linguagem de máquina especifica em que o programa será executado. Geralmente as máquinas virtuais utilizam uma estratégia de compilação chamada de JIT (Just in Time Compilation). Esse método faz com que o código da máquina seja gerado diversas vezes durante o processamento de um programa com o objetivo de otimizar os recursos disponíveis em um determinado momento de execução.

 


Outros conceitos importantes

API -  (Application Programming Interface) (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. De modo geral, a API é composta por uma série de funções acessíveis somente por programação, e que permitem utilizar características do software menos evidentes ao utilizador tradicional. Ex: ADO.NET. Somente é utilizada quando necessário. O fluxo de operação do programa fica por conta do programador, que executa a API diretamente.

Framework de Software - Compreende um conjunto de classes implementadas em uma linguagem de programação específica, usadas para auxiliar o desenvolvimento de software. Neste caso o fluxo de operação de um programa é executado pelo Framework, deixando na responsabilidade do programador criar as partes que faltam com o código necessário para o programa. Ex: Uma área exclusiva para usuários cadastrados.  Ex: ASP.NET MVC.

Plataforma de Software - Engloba diversos Frameworks e APIs dentro de sua estrutura forncendo assim o suporte necessário para a execução do programa.

Assembly: É uma unidade básica de agrupamento físico de código. Contêm o código que o CLR executa. Ex: MyAssembly.dll.

Para maiores informações acesse: https://msdn.microsoft.com/pt-br/library/zst29sk2(v=vs.110).aspx

NameSpace: É uma unidade básica de agrupamento lógico de código. Ex: O Assembly MyAssembly.dll pode possuir subdivisões lógicas, que servem para organizar o código, como: MyAssemby.Configuration, MyAssembly.Internal, etc... Essas subdivisões chamamos de NameSpaces.

 

Na maioria das vezes nos concentramos muito em fazer acontecer, ou seja, aprender uma linguagem de programação e sair executando sem nos preocupar em entender como tudo acontece, acredito que através das imagens das camadas da arquitetura e seu funcionamento passo a passo, consegui explicar de maneira simples e objetiva o que ocorre por baixo dos panos ao executarmos um programa dentro da plataforma .NET, espero que a explicação lhe seja útil.


Fontes:

Wikipédia

DEITEL, H. C# Como Programar, Pearson; Ed. 1, janeiro de 2003

LOTAR, Alfredo. Como programar com ASP.NET e C#; Ed. 2,  Novatec Editora, 2010