Evolução do .NET Framework – Parte 1
Olá pessoal,
Estava eu montando alguns Mapas Mentais sobre alguns estudos que venho aprofundando nos últimos anos e com certeza a plataforma .net não poderia ficar de fora.
Há um tempo atrás, postei a imagem abaixo no meu blog onde mostra o RoadMap da plataforma .NET nos últimos anos e vale a pena relembrarmos.
Que tal relembrarmos o que a Microsoft Ofereceu a comunidade de desenvolvimento de Software com o lançamento da Versão 1.0 da plataform .NET em 2001.
Modelo de Programação consistente: Diferente de Antigamente, quando algumas instalações de sistema operacional são eram acessadas via funções de biblioteca de vínculo dinâmico (DLL) e outras instalações eram acessadas via objetos COM, todos os serviços de aplicação eram oferecidos por meio de um modelo comum de programação orientada a objetos.
Modelo de programação simplificado: O CRL simplificou significativamente as construções misteriosas e complexas requeridas pelo Win32 e plo COM. O CRL libertou o desenvolvedor de ter que entender conceitos de registro, identificadores únicos globais (Guids), IUnKnown, AddRef, Release, HRSEULTs e outros. O CLR abstraiu estes conceitos para o desenvolvedor, e estes conceitos hoje praticamente não EXISTEM. Embora claro, você possa interoperar com código não .NET.
Executou uma vez, executará sempre: Qualquer desenvolvedor Pré .NET conheceu o que chamávamos de “Inferno das DLLs”. Com a Arquitetura do .NET Framework, ele isola componentes de aplicação, de modo que uma aplicação sempre carrega os componentes com base nos quais foi criada e testada. Se a aplicação for capaz de executar depois da instalação, ela será executada sempre.
Distribuição Simplificada: Para instalarmos nossas aplicações, viviamos rodeados por problemas como interação com o registro do Windows, criação de pacotes de instalações incompletos que não permitiam a execução correta da aplicação. De fato, isntalar a maioria das aplicações em .NET Framework requer não mais do que copiar os arquivos para um diretório e adicionar um atalho ao menu iniciar. Desinstalar a aplicação é tão simples quanto excluir os arquivos.
Amplo alcance da plataforma: Com o conceito de MSIL – Microsot Intermediate Language (Criação de uma linguagem Intermediária), em vez das instruções tradicionais de CPU, o código só é compilado em termpo real para o código de máquina enquanto a aplicação está rodando. Isso signfica que você pode implantar sua aplicação .NET Framework em qualquer máquina que tenha a versão do CLR compatível com ECMA e esteja executando FCL nela.
Integração das linguagens de Programação: A Common Language Specification (CLS) descreve o que os implementadores de compiladores devem fazer a fim de que suas linguagens integrem – se adequadamente com outras linguagens. A própria Microsoft forneced vários compiladores qeu produzem código que tem como alvo o runtime.
Memória e Gerenciamento automático (garbage collector): O CLR monitora automaticamente o uso de recursos, garantindo que sua aplicação impedirá sempre que estes vazem. De fato, não existe uma maneira de “liberar” explicitamente a memória.
Verificação segura de tipos: O CLR pode verificar se todo seu código é seguro para tipos. A Segurança de tipos garante que objetos alocados sempre sejam acessados de maneiras compatíveis. Assim, se um parâmetro de entrada de memória for declarado como aceitando como um valor de 4 bytes, o CLR detectará e interromperá tentativas de acessar o parâmetro como um valor de 8 bytes. De maneira semelhante, se um objeto ocupa 10 bytes na memória, a aplicação não pode fazer a conversão do objeto para uma forma que permita que mais de 10 bytes sejam lidos.
São muitos recursos não é mesmo pessoal? Deixei alguns de fora de propósito para ver se vocês lembram e colocam nos comentários, que tal este desafio? :) Vamos listar nos comentários mais benefícios que foram colocados no .NET Framework na sua versão 1.0. Isto é resgatar da memória muita coisa não é mesmo?
Conto com a colaboração de vocês.
Um forte abraço a todos.
Fonte: Programação aplicada com Microsoft .NET Framework – Bookman – Jeffrey Richter
Evilázaro Alves
MVP, MCTS, MCBMSS, MCP
