.NET Framework

 Nota: Para outros significados, veja .net (desambiguação).
.NET Framework
Logótipo
.NET Framework
Desenvolvedor Microsoft
Plataforma IA-32, x86-64, e ARM
Lançamento 13 de fevereiro de 2002 (22 anos)
Versão final 4.8.1 (9 de agosto de 2022; há 2 anos[1])
Sistema operacional Windows 98 ou posterior, Windows NT 4.0 ou posterior
Gênero(s) Framework
Licença Várias
Estado do desenvolvimento Descontinuado
Página oficial dotnet.microsoft.com
Cronologia
.NET

O .NET Framework (pronuncia-se: dótnét) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET pode ser executado em qualquer dispositivo que possua um framework de tal plataforma. Com ideia semelhante à plataforma Java, o programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET. Aplicações escritas para ele funcionam em um ambiente de software controlado, em oposição a um ambiente de hardware, através de uma máquina virtual de aplicação.

O .NET Framework consiste de dois componentes principais, é executada sobre uma Common Language Runtime - CLR (Ambiente de Execução Independente de Linguagem) interagindo com um Framework Class Library - FCL (Conjunto de Bibliotecas Unificadas). Ele permite executar diversas linguagens permitindo grande interoperabilidade entre elas. O CLR fornece gerenciamento de memória, controle de exceção, interoperabilidade, manipulação de processamento paralelo e concorrente, reflexão, segurança, serviços de compilação para a arquitetura específica, entre outros. A FCL oferece APIs para UI de console, acesso a dados, conectividade com banco de dados, redes, web, criptografia, acesso aos serviços do sistema operacional, estruturas de dados e algoritmos diversos, facilidades para a linguagem e muito mais.

Primeiramente, só era disponível no Windows, como uma plataforma de código fechado, mas o código fonte foi liberado. Em 2014, o desenvolvimento começou no .NET Core, uma plataforma aberta do .NET que poderia rodar em Linux e MacOS. Existem várias variações da plataforma, como .NET Compact Framework, .NET Micro Framework e Silverlight. Em novembro de 2020, o .NET Core foi renomeado para simplesmente .NET, porém o .NET[2] Framework terá suporte permanente no Windows 10.[3]

Arquitetura

Esta CLR é capaz de executar através da Common Language Infrastructure, uma grande quantidade de linguagens de programação, interagindo entre si como se fossem uma única linguagem.

Algumas linguagens são:

Esta plataforma permite a execução, construção e desenvolvimento de Web Services (Aplicações Web) de forma integrada e unificada.

Originalmente a plataforma .NET baseia-se em um dos princípios utilizados na tecnologia Java (Just In Time Compiler - JIT), os programas desenvolvidos para ela são compilados duas vezes, uma na distribuição (gerando um código que é conhecido como "bytecodes") e outra na execução.

Um programa é escrito em qualquer das linguagens de programação disponíveis para a plataforma, o código-fonte gerado pelo programador é então compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada CIL (Common Intermediate Language).

Este novo código fonte gera um arquivo assembly, de acordo com o tipo de projeto:

  • EXE - Arquivos Executáveis, Programas
  • DLL - Biblioteca de Funções
  • ASPX - Página Web
  • ASMX - Web Service
    Diagrama de funcionamento da infraestrutura do .Net

No momento da execução do programa ele é novamente compilado, desta vez pelo compilador JIT, de acordo com a utilização do programa, por exemplo: Temos um Web Site desenvolvido em ASP.NET, ao entrar pela primeira vez em uma página o JIT irá compila-la, nas outras vezes que algum outro usuário acessar esta página, ele usará esta compilação.

Também é possível, através de ferramentas específicas, "pré-compilar" o código para que não se tenha o custo da compilação JIT durante a execução.

O fato desta arquitetura utilizar a CIL gera uma possibilidade pouco desejada entre os criadores de software que é a de fazer a "engenharia reversa", ou seja, a partir de um código compilado, recuperar o código original. Isto não é uma ideia agradável para as empresas que sobrevivem da venda de softwares produzidos nesta plataforma.

Por causa disso, existem ferramentas que "ofuscam" o código CIL, trocando nomes de variáveis, métodos, interfaces e etc para dificultar o trabalho de quem tentar uma engenharia reversa no mesmo.

Para melhorar a performance de execução é possível gerar um código nativo após instalado com o NGEN (Gerador de Imagem Nativa). Este NGEN é uma ferramenta que melhora o desempenho de aplicativos gerenciados. Ngen.exe cria imagens nativas, que são arquivos que contém o código de máquina específico do processamento compilado e as instala no cache de imagem nativa do computador local. O tempo de execução pode usar imagens nativas do cache em vez de usar o compilador JIT (Just-In-Time) para compilar o assembly original.

Hoje, através do .NET Native, é possível gerar um executável diretamente para a arquitetura e plataforma que irá rodar obtendo o melhor dela.

Versões

Resumo histórico de versões do .NET Framework[4][5]
Versão Versão
CLR
Data
lançamento
Visual Studio Incluso no Substitui
Windows Windows Server
1.0 1.0 2002-02-13 Visual Studio .NET[6] XP[a]
1.1 1.1 2003-04-24 Visual Studio .NET 2003[6] 2003 1.0[7]
2.0 2.0 2005-11-07 Visual Studio 2005[8] 2003, 2003 R2,[9] 2008 SP2, 2008 R2 SP1
3.0 2.0 2006-11-06 Expression Blend[10][b] Vista 2008 SP2, 2008 R2 SP1 2.0
3.5 2.0 2007-11-19 Visual Studio 2008[11] 7, 8[c], 8.1[c], 10[c] 2008 R2 SP1 2.0, 3.0
4.0 4 2010-04-12 Visual Studio 2010[12]
4.5 4 2012-08-15 Visual Studio 2012[13] 8 2012 4.0
4.5.1 4 2013-10-17 Visual Studio 2013[14] 8.1 2012 R2 4.0, 4.5
4.5.2 4 2014-05-05 4.0–4.5.1
4.6 4 2015-07-20 Visual Studio 2015[15] 10 4.0–4.5.2
4.6.1 4 2015-11-30[16] Visual Studio 2015 Update 1 10 v1511 4.0–4.6
4.6.2 4 2016-08-02[17] 10 v1607 4.0–4.6.1
4.7 4 2017-04-05[18] Visual Studio 2017 10 v1703 N/A 4.0-4.6.2
4.8 4 2019-04-18[19] Visual Studio 2019 10 v1903 2019, 2016, 2012, 2012 R2, 2008 R2 SP1 4.0-4.7

.NET Framework 4

O .NET Framework 4 melhorou, alguns pontos do Framework anterior, como por exemplo:

  • Aplicações legadas podem continuar rodando no release anterior do Framework, para não haver problemas de compatibilidade
  • Possui Background Garbage Collection
  • Tem suporte para aplicações Multitouch
  • Consegue fazer uso das novas funcionalidades do Windows 7

Para desenvolvedores web, algumas das melhorias que são encontradas na nova versão do Framework:

  • Pré-carregamento da sua aplicação
  • A utilização de Routing no ASP.NET para Web Forms
  • Controle/Redução de ViewState
  • A utilização do padrão MVC

Ver também

Referências

  1. «Download .NET Framework 4.8 Offline Installer». Microsoft. Consultado em 15 de agosto de 2019. Cópia arquivada em 15 de agosto de 2019 
  2. «Microsoft .NET e .NET Core». Microsoft. Consultado em 8 de junho de 2021 
  3. «Perguntas frequentes sobre ciclo de vida ‒ .NET Framework». Microsoft. 18 de julho de 2016. Consultado em 8 de junho de 2021 
  4. «.NET Framework Versions and Dependencies». MSDN. Microsoft. Consultado em 17 de janeiro de 2014 
  5. Stebner, Aaron (14 de março de 2007). «Mailbag: What version of the .NET Framework is included in what version of the OS?». Aaron Stebner's WebLog. Microsoft 
  6. a b «What's New in Visual Studio .NET 2003». MSDN. Microsoft. Consultado em 1 de setembro de 2014. Visual Studio .NET 2002 shipped with the Microsoft .NET Framework SDK version 1.0. Visual Studio .NET 2003 ships with .NET Framework SDK version 1.1. 
  7. «.NET Framework Developer Center – Frequently Asked Questions». Consultado em 27 de novembro de 2016. Cópia arquivada em 24 de julho de 2012 
  8. «What's New in Visual Studio 2005». MSDN. Microsoft. Consultado em 1 de setembro de 2014 
  9. «What's New in Windows Server 2003 R2». TechNet. Microsoft. 22 de agosto de 2005. Consultado em 5 de janeiro de 2015 
  10. Chinnathambi, Kirupa (4 de dezembro de 2006). «Expression Blend -- What Is That?». Expression Blend and Design. Microsoft. Consultado em 1 de setembro de 2014 
  11. Guthrie, Scott (19 de novembro de 2007). «Visual Studio 2008 and .NET 3.5 Released». Scott Gu's Blog. Microsoft. Consultado em 1 de setembro de 2014 
  12. «What's New in Visual Studio 2010». MSDN. Microsoft. Consultado em 1 de setembro de 2014 
  13. «What's New in Visual Studio 2012». MSDN. Microsoft. Consultado em 1 de setembro de 2014 
  14. «What's New in Visual Studio 2013». MSDN. Microsoft. Consultado em 1 de setembro de 2014 
  15. Somasegar, S (29 de junho de 2015). «Save the Date: Visual Studio 2015 RTM on July 20th». Somasegar’s blog. Microsoft 
  16. «.NET Framework 4.6.1 is now available!». .NET Blog. Microsoft. 30 de novembro de 2015 
  17. Haffner, Stacey (3 de agosto de 2016). «Announcing .NET Framework 4.6.2». .NET Blog. Microsoft 
  18. Haffner, Stacey (5 de abril de 2017). «Announcing the .NET Framework 4.7» (em inglês). Consultado em 11 de setembro de 2017 
  19. «Announcing the .NET Framework 4.8». .NET Blog (em inglês). 18 de abril de 2019. Consultado em 21 de maio de 2019 

Ligações externas