Escolar Documentos
Profissional Documentos
Cultura Documentos
Net
Amauri Soares, Claudio Roberto Silva, Diego Castro Neves
CCET – Centro de Ciências Exatas e Tecnológicas Cx. Postal 126 – CEP 39.401-089
Montes Claros (MG)
Amauras2@yahoo.com.br, claudioemais@gamil.com,
Abstract.
This article describes the .NET platform, an initiative of the company
to Microsoft Java Virtual Machine. He stands as a new paradigm in
software development that this perspective can be made in any language
that .NET be able to interpret it. With the use
of this component becomes more evident as a way to facilitate
processes as a component can be easily used in any programming
language because the CLR that it isthe execution environment for all
components.
Resumo. Este artigo descreve a plataforma .NET, uma iniciativa da empresa
Microsoft a máquina virtual Java. Ele se coloca como um novo paradigma no
desenvolvimento de softwares que nesta ótica podem ser feitos em qualquer
linguagem que o .NET será capaz de interpretá-lo. Com isto o uso de
componentes torna-se mais evidente como uma maneira de facilitar processos
visto que um componente pode ser facilmente usado em qualquer linguagem
de programação graças a CLR que ela é o ambiente de execução para todos
os componentes.
COM+ é um complemento para Component Object Model (COM). Na sua criação ele
propunha um ambiente em tempo de execução que forneceria todos os tipos de serviços
uteis tais como herança entre linguagens e um controle de acesso em tempo de execução
para que lidassem com a orientação a objetos. Depois de algumas versões e várias
correções de problemas identificados a Microsoft lançou o Microsoft Transaction Server
ou COM+ 1.0 e este seria integrado ao Windows 2000. Posteriormente veio a ser
chamado de Microsoft .NET.
No .NET o formato de componentes passou a se chamar CLS e traz diversas
vantagens sobre o formato dos componentes COM.
Ao contrário dos componentes COM, os componentes CLS não estão
diretamente em código de máquina mas sim em um código intermediário, IL, que
precisa ser executado por outro software, o CLR. Assim sendo todos os componentes
CLS rodam dentro de um ambiente controlado, o CLR.
Mas o CLR apenas controla a execução do código IL, não se encarrega de
questões de escalabilidade importantes para um servidor de aplicações. De fato, não
existe um servidor de aplicações exclusivo para componentes CLS. Mas o .NET possui
um namespace chamado EnterpriseServices que permite que os serviços do COM+
sejam utilizados pelos componentes CLS.
Assim sendo, podemos construir nossos componentes no novo formato, o CLS,
e inseri-los dentro do velho COM+ exatamente como temos feito com nossos
componentes COM.
Esta plataforma propõe ser um modelo baseado em componentes que a partir de
um conjunto de serviços do sistema este possa ser um modelo a ser utilizado pelos
desenvolvedores, de forma que seja relativamente fácil criar aplicativos de negócios que
funcionem bem a partir do Microsoft Transaction Server (MTS), no Windows NT ou
sistema superior.
Esta plataforma é vista como uma resposta da empresa Microsoft como o
Enterprise JavaBeans (EJB). Ela dá suporte a alguns serviços como:
Registro de eventos
Enterprise Management Infrastructure (Infra-estrutura de gerenciamento
empresarial).
Interceptação de pedidos do sistema designado para efeito de garantia de
segurança.
Filas de solicitações recebidas de forma assíncrona para um determinado
serviço.
Possibilidade da ocorrência de um evento, o componente que o processou,
notifique outro para a continuidade de outro evento dependente deste resultado.
3. Arquitetura .NET
Pré-JIT: Compila de uma só vez todo o código da aplicação .NET que esta
sendo executada e o armazena no cache para uso posterior.
Econo-JIT: Utilizado em Hand-Helds onde a memória é um recurso precioso.
Sendo assim, o código é compilado sob demanda e a memória alocada que não
esta em uso é liberada quando o dispositivo assim o requer.
Normal-JIT: Compila o código sob demanda e joga o código resultante em
cache, de forma que esse código não precise ser recompilado quando houver
uma nova invocação do mesmo método.
A IL é uma nova linguagem projetada para ser eficientemente convertida em
código nativo em diferentes tipos de dispositivos. Ela é a língua franca do .NET
Framework. O compilador do Visual Basic gera IL, o compilador do C# gera IL, ou
seja, todo compilador que faz parte do .NET Framework gera IL.
A CLR é capaz de executar diferentes linguagens de programação, pelo simples
fato que o código fonte que o programador digita é compilado gerando um código
intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language).
Temos então um texto fonte de alto nível como entrada para um compilador que gera
como saída uma linguagem intermediária também em alto nível. Este novo código fonte
gera um arquivo chamado "Assembly" e a depender do tipo de projeto ele pode gerar as
seguintes extensões de arquivos: .EXE , .DLL , .ASPX – página web , .ASMX – que é o
Web Service . No momento da execução do programa o código é novamente compilado,
desta vez pelo JIT (Just In Time Compiler), ou seja, os programas são compilados 2
vezes. Além disso, com o framework é possível também pré-compilar o código, fazer
engenharia reversa devido a ao fato da arquitetura .NET utilizar a MSIL.
A CLR também define um sistema de tipos padrão para ser usado por todas as
linguagens que a suportam. Isto significa que as linguagens do tipo CLR terão os
integers e longs de mesmo tamanho, e elas terão, todas, o mesmo tipo de string - sem
mais preocupações com BStrs e CStrs! Este sistema padrão de tipos abre as portas para
uma poderosa interoperabilidade entre linguagens. Por exemplo, você pode passar uma
referência de uma classe de um componente para outro, mesmo se estes componentes
sejam escritos em linguagens diferentes. Você também pode derivar uma classe no C#
de uma classe base escrita em VB .NET, ou qualquer outra combinação de linguagens
criadas para a CLR. Não esqueça que COM também tem um conjunto de tipos padrão,
mas são padrões binários. Isto significa que com COM, você tem interoperabilidade de
linguagens em tempo de execução. Com o padrão .NET , você tem interoperabilidade
entre linguagens em tempo de design.
A IL é uma linguagem de nível mais baixo que o VB ou o C#. Para os
programadores mais antigos, ela pode ser considerada uma remanescente da linguagem
assembly, mas em um nível um pouco mais alto de abstração.
Com o CLR instalado no Microsoft SQL Server (a chamada integração CLR), é
possível criar procedimentos armazenados, gatilhos, funções, tipos e agregações
definidas pelo usuário no código gerenciado. Como o código gerenciado é compilado
em código nativo antes da execução, é possível obter aumentos significativos de
desempenho em alguns cenários.
Todo código que é gerado na plataforma .NET é chamado de código gerenciado.
Gerenciado porque ele é controlado pelo CLR (Common Language Runtime) que
fornece os seguintes serviços: integração entre linguagens, segurança, suporte a versões
e coleta de objetos que não estão em uso (Garbage Collection).
Se considerarmos que todas as linguagens encontradas no .NET são compiladas
em IL e a CLR executa a IL, então podemos considerar de que todo código gerenciado
é o mesmo para a CLR independente da linguagem de alto nível que é utilizada. Todas
as linguagens são linguagens de primeiro nível. Toda linguagem .NET tem acesso ao
.NET Framework Class Library. Qualquer desenvolvedor .NET pode reutilizar a IL
compilada criada em qualquer linguagem .NET.
Isso não significa que as linguagens .NET são idênticas. Algumas linguagens
são mais apropriadas para resolver determinados tipos de problemas.
O código gerenciado usa a CAS (segurança de acesso do código) para impedir
que os assemblies executem determinadas operações. O SQL Server utiliza a CAS para
ajudar a proteger o código gerenciado e evitar o comprometimento do sistema
operacional ou do servidor de banco de dados.
Embora o RCW pareça ser um objeto comum para .NET, a sua principal função
é empacotar as chamadas entre um cliente .NET e um objeto COM.
O tempo de execução cria exatamente um RCW para cada objeto COM,
independentemente do número de referências que existem sobre esse objeto. O tempo
de execução mantém um único RCW por processo para cada objeto.
Se você criar um RCW em um domínio de aplicativo e em seguida, passar uma
referência para outro domínio de aplicativo, um proxy para o primeiro objeto será
usado. Como mostra a ilustração da Figura 3, qualquer número de clientes gerenciados
podem conter uma referência para os objetos COM que expõe interfaces INew e
INewer.
7. Conclusão
O principal foco do Microsoft .NET é fazer uma mudança de paradigma, passando de
um ambiente de aplicativos e dispositivos isolados para uma gama muito maior de
computadores, dispositivos, transações e serviços que se conectam diretamente e
trabalham em conjunto na busca de soluções mais amplas e ricas. Isto em um cenário de
uso cada vez maior de componentes sempre focando na possibilidade de reuso destes.
Nesta ótica de desenvolvimento proposto, baseada no uso cada vez maior de
componentes multi-linguagens, onde a linguagem já não é tão determinante, possibilita
o desenvolvimento independente onde um mesmo componente pode ser usado em
varias linguagens que são reconhecidas pela plataforma .NET Framework. E com esta
portabilidade traz se o beneficio da redução de tempo e custo do desenvolvimento.
Além disto, tem-se a tendência de diminuir problemas de implementação, pois um
componente deve ser amplamente testado antes de disponibilizá-lo. Afinal de contas
“ninguém deseja reinventar a roda”.
O .NET embora em desenvolvimento tem um amplo caminho a percorrer, mas
conta com o aval de uma empresa reconhecidamente mestre em fazer apostas bem
sucedidas, ou tem algum de nos que não tenha usado o ambiente gráfico da família
Windows?.
O .NET Framework é um forte concorrente a máquina virtual Java propondo a
adoção de uma plataforma multi-linguagens com gerenciamento de memória, segurança
do código e facilidade de implementação, tudo isto associado a idéia de reusabilidade de
todos os seus componentes.
Esperemos para ver do que o .NET é capaz, com o passar do tempo e com o uso
massificado desta plataforma, descobriremos se ele cumpri ao que tem prometido aos
desenvolvedores de softwares.
Referências:
S. Platt, David- (2002) – Microsoft .NET – Iniciando – editora: Makron Books – São
Paulo – SP.