Power Builder
Resenha: Power Builder. Pesquise 862.000+ trabalhos acadêmicosPor: danielsilva02 • 7/5/2013 • Resenha • 1.275 Palavras (6 Páginas) • 554 Visualizações
Power Builder, por exemplo, ou então Delphi, que tem a sua própria biblioteca
de componentes reutilizáveis. O que equivale a dizer que essas bibliotecas não
podem ser usadas a partir de qualquer linguagem de programação, o que torna o
reaproveitamento de código ainda mais difícil.
Mesmo tecnologias comoCOMe CORBA sempre apresentam os mesmos problemas
de dificuldade de aprendizado por causa de sua complexidade; ou então,
mesmo quando oferecem um modelo de objetos comum a ser usado por outras linguagens
que nãoVBouC++,acabam esbarrando no fato de que cada linguagem de
programação implementa os tipos de uma forma diferente. E finalmente, quando
achamos que conseguimos resolver o problemas dos tipos, somos barrados porque
não conseguimos implementar relações de herança entre linguagens diferentes.
Paralelamente às iniciativas da Microsoft, em 1995 surge a linguagem JAVA
(na verdade, mais que uma linguagem, é uma plataforma de desenvolvimento) e,
apesar de oferecer há mais de cinco anos a proposta de portabilidade de código
executável, (leia-se, “compile uma vez e rode em qualquer plataforma”), tem ficado
restrita ao desenvolvimento de sistemas de middleware, de páginas da Web
dinâmicas JSP e applets. E mais ainda, é “JAVA-cêntrica”, o que obriga o programador
a aprender uma nova linguagem se realmente quiser usufruir os recursos
que ela oferece. Mas você pode perguntar: “e .NET não nos obriga a aprender
C#?” A resposta é não e saberemos mais adiante como isso é feito.
A abordagem .NET
Citaremos a seguir algumas das características de .NET que visam a resolver os
problemas citados acima:
Independência de linguagem de programação: o que permite a implementação
do mecanismo de herança, controle de exceções e depuração entre
linguagens de programação diferentes.
Reutilização de código legado: o que implica em reaproveitamento de código
escrito usando outras tecnologias comoCOM,COM+,ATL, DLLs e
outras bibliotecas existentes.
Tempo de execução compartilhado: o “runtime” de .NET é compartilhado
entre as diversas linguagens que a suportam, o que quer dizer que não
existeumruntime diferente para cada linguagem que implementa .NET.
Sistemas auto-explicativos e controle de versões: cada peça de código
.NET contém em si mesma a informação necessária e suficiente de forma
que o runtime não precise procurar no registro do Windows mais informações
sobre o programa que está sendo executado. O runtime encontra
essas informações no próprio sistema em questão e sabe qual a versão a ser
executada, sem acusar aqueles velhos conflitos de incompatibilidade ao
registrar DLLs no Windows.
Simplicidade na resolução de problemas complexos. 7
A Arquitetura .NET
Para melhor entendermos tudo o que temos dito até aqui, vamos falar um pouco
da arquitetura de .NET e os seus principais componentes.
CLR (Commom Language Runtime)
O CLR, ou tempo de execução compartilhado, é o ambiente de execução das
aplicações .NET. Como o leitor já deve ter atentado, as aplicações .NET não são
aplicações Win32 propriamente ditas (apesar de executarem no ambiente Windows),
razão pela qual o runtime Win32 não sabe como executá-las. O Win32,
ao identificar uma aplicação .NET, dispara o runtime .NET que, a partir desse
momento, assume o controle da aplicação no sentido mais amplo da palavra,
porque, dentre outras coisas, é ele quem vai cuidar do gerenciamento da memória
via um mecanismo de gerenciamento de memória chamado Garbage Collector
(GC) ou coletor de lixo, acerca do qual falaremos mais tarde. Esse gerenciamento
da memória torna os programas menos susceptíveis a erros. Mais ainda, o
CLR como seu próprio nome o diz, é compartilhado e, portanto, não temos um
runtime para VB.NET, outro para C# etc. É o mesmo para todo mundo.
CTS (Common Type System)
OCTS, ou Sistema Comum de Tipos, que também faz parte do CLR, define os tipos
suportados por .NET e as suas características. Cada linguagem que suporta
.NET tem de, necessariamente, suportar esses tipos. Apesar de que a especificação
não demanda que todos os tipos definidos no CTS sejam suportados pela linguagem,
esses tipos podem ser um subconjunto do CTS, ou ainda um superconjunto.
No Capítulo 2 falaremos mais a respeito dos diferentes tipos especificados
no CTS. Um conjunto de classes básicas que define todos os tipos é implementado
na CTS. Por exemplo: um tipo Enum deve derivar da classe System.Enum e
todas as linguagens devem implementar o tipo Enum dessa
...