Você está em: Principal › Artigos › ASP.NET › Capítulo 01 : 02
Lição 010 - Capítulo 01 - O Primeiro contato com o Framework .NET
Definir exatamente o que é o Framework .NET não é uma tarefa das mais simples. Como não sou muito afeito a definições formais, vou mostrar qual a proposta do Framework .NET, quais os componentes e qual a função de cada componente.
Em primeiro lugar podemos afirmar que com a iniciativa .NET, a Microsoft está mudando radicalmente o modelo de desenvolvimento e utilização de Software. No livro "Introducing .NET", da editora Wrox (www.wrox.com), encontramos duas afirmações interessantes sobre o Framework .NET:
É uma mudança tão grande ou até maior do que a mudança do DOS para o Windows;
O Framework .NET foi todo projetado já tendo a Internet como objetivo, diferente de outras plataformas que foram adaptadas para a Internet, a medida que a rede mundial crescia de importância.
Apresentando o conceito de serviços – Web Services
Realmente a mudança é bastante grande. Programadores, analistas e gerentes de projeto precisarão de muito estudo e tempo para absorver os conceitos desta nova plataforma. Também é verdade que, desde a sua concepção, o .NET foi projetado para a Internet. Em muitas publicações especializadas aparece a seguinte afirmação: "A iniciativa .NET é a visão da Microsoft de um mundo, onde o Software se transforma em serviços, na verdade pequenos componentes que podem ser utilizados por qualquer aplicação."
Um software de uma empresa brasileira pode utilizar um serviço que está residente em um servidor de uma empresa do Japão, desde que tenha permissões para isso. Este serviço pode oferecer, por exemplo, a funcionalidade para validação de uma transação via Cartão de crédito. Um dispositivo móvel, como um celular WAP ou um Handled pode utilzar um serviço de cotação de ações de um servidor da bolsa de valores de Londres. E como todos estes componentes fazem para se comunicar? Evidentemente que através da Internet. Por isso a Internet como ponto principal do projeto .NET.
Conforme veremos mais adiante, estes serviços que podem ser acessados via Internet ou através de qualquer Intranet, são chamados de "Web Services".
Ao invés de programas monolíticos, em que toda a funcionalidade necessária faz parte do próprio programa, construiremos programas como se fosse um jogo de montar. As diversas funcionalidades necessárias ao programa podem ser oferecidas através do acesso a serviços já implementados. Na Figura 1.1 temos uma pequena ilustração deste conceito.
Figura 1.1 Um programa que utiliza diversos serviços.
No site da empresa www.minhaempresa.com, criamos, por exemplo, uma página ASP.NET para venda de livros. O preço dos livros está em dólares e deve ser convertido, para a moeda do país do cliente, no momento da compra. No exemplo da Figura 1, a página ASP.NET utiliza um Web Service do servidor www.cotacoes.com, para obter a cotação atualizada do dólar em relação a moeda do país do cliente. A página ASP.NET recebe esta informação, faz os cálculos necessários e exibe para o cliente. O próximo passo é efetivar a venda. Agora o cliente digita o número do seu cartão de crédito. Para validar o número do cartão de crédito do cliente, é acessado um outro Web Service, o qual está instalado no servidor www.validacao.com.
Com esta arquitetura, a criação de software fica bastante simplificada, uma vez que podemos agregar ao nosso programa, funcionalidades disponibilizadas através de Web Services que estão instalados em qualquer servidor da Internete. Desta maneira somente precisamos criar o que é específico do nosso programa. Com isso estamos reaproveitando códgio ou como preferem os puristas: reutilizando código.
Como diferentes Web Services, criados por diferentes empresas poderão se comunicar e trocar informações? Esta comunicação é possível, porque todo programa criado para a plataforma .NET, utiliza um padrão para troca de informações. No caso temos dois padrões:
Para o formato dos dados, o Framework .NET utiliza XML – Extensible Markup Language. Conforme veremos mais adiante, o XML vem ganhando força como um padrão para troca de informações na Internet, principalmente para troca de informações entre empresas em sites de Comércio Eletrõnico.
Como protocolo de transporte, o Framework .NET utiliza o SOAP – Single Object Access Protocol. Com SOAP podemos fazer com que toda a comunicação entre diferentes Web Services e demais componentes de um programa seja feita através do protocolo padrão da Internet que é o HTTP. O SOAP não é um protocolo criado pela Microsoft para ser utilizado pelo .NET. O SOAP é um padrão da indústria, sendo utilizado por produtos de diversas empresas, como IBM, Sun e ORACLE.
Pode parecer que não existe nada de novo nesta abordagem, pois tecnologias para criar programas a partir de componentes prontos, já existem a um bom tempo: COM+, CORBA, etc. Porém a grande vantagem dos Web Services, no Framework .NET, é que os mesmos podem ser acessados, facilmente, através da utilização de um protocolo padrão: SOAP e trocando informações em um formato padrão: XML. Esta abordagem torna a criação e utilização dos Web Services uma tarefa muito mais simples do que, por exemplo, a criação de componentes COM+ ou CORBA, os quais utilizam formatos de dados e protocolos de comunicação proprietários.
Falaremos mais sobre Web Services e também aprenderemos a cria-los, mais adiante neste livro.
Apresentando o CLR – Common Language Runtime
O CLR é um ambiente de execução, poderíamos até dizer que é o "Coração do .NET", o qual dá suporte a todas as linguagens de programação habilitadas para o .NET. Ao instalarmos o Microsoft .NET Framework SDK, temos disponíveis as seguintes linguagens:
C# (leia-se C Sharp)
O Runtime (ambiente de execução) é o ambiente que dá suporte a execução das aplicações .NET. Quando um programa .NET é executado, todo o controle do mesmo é feito através do CLR.
Para aplicações anteriores, desenvolvidas utilizando COM/COM+, o programador era responsável por inserir no código do programa, uma série de funções necessárias ao correto funcionamento do mesmo, como por exemplo o Gerenciamento de memória, criação e destruição de objetos. A codificação destas funções não era uma tarefa fácil, o que exigia muito tempo do programador, além de conhecimentos avançados. Com aplicações .NET, todas estas funções são executadas pelo CLR, ou seja, o programador não precisa preocupar-se com as mesmas. Desta forma somente precisamos nos preocupar com a funcionalidade do nosso programa, o que poupa tempo e agiliza o processo de desenvolvimento.
As aplicações criadas em uma das linguagens habilitadas para o .NET (como VB.NET, C# ou ASP.NET), ao serem compiladas, geram um código intermediário conhecido como MSIL – Microsoft Intermediate Language, o qual é abreviado simplesmente como IL – Intermediate Language. Este código é que é executado pelo CRL. Vamos analisar o diagrama apresentado na Figura 1.2:
Figura 1.2 A ambiente de execução do CLR.
A partir da Figura 2 temos algumas observações importantes:
Para que uma linguagem seja habilitada ao .NET, o seu compilador deve ser capaz de gerar código MSIL.
O Código MSIL gerado é executado pelo CRL
A própria Microsoft não nega que a idéia é bastante semelhante ao ambiente de execução para aplicações desenvolvidas em Java, onde temos uma ambiente de execução comum – a Máquina Virtual Java, a qual executa byte code, que é o código gerado pelas aplicações Java..
Todas as linguagens habilitadas ao .NET, tem a sua disposição um rico conjunto de Classes e objetos, os quais fornecem desde conexão com banco de dados, até funções mais específicas, como funções gráficas, de escrita em disco, etc. Este conjunto de Classes e objetos é conhecido como ".NET Framework class library".
Todo código habilitado a rodar no CLR, ou seja, que pode ser compilado para MSIL é conhecido como "managed code" ou código gerenciado. Código antigo, como por exemplo COM ou COM+,os quais não estão habilitados para rodar sob controle do CLR são chamados de "unmanaged code" ou código não gerenciado. Veremos mais detalhe a respeito destas definições no Capítulo 2, onde trataremos o CLR em mais detalhes.
Este é o segundo elemento fundamental do Framework .NET. A .NET Framework class library (biblioteca de classes do Framework .NET), como o próprio nome sugere, é uma coleção de classes ou tipos completamente integrada com o ambiente de execução – CLR. Quando falamos em um conjunto de Classes, estamos utilizando o conceito originado no modelo de Programação Orientado a Objetos. Conforme veremos no decorrer deste livro, o Framework .NET é fortemente baseado nos conceitos de orientação a objetos, principalmente nos conceitos de Classes, Herança e Polimorfismo.
Os programas criados em qualquer linguagem habilitada ao .NET, podem utilizar este conjunto de tipos e classes. Por exemplo, existe uma classe chamada System.Data, a qual oferece uma série de objetos e métodos para acesso as mais variadas fontes de dados. Vamos a um exemplo mais específico: Existe uma classe chamada System.SqlCliente (na versão Beta 1 existia uma classe chamada System.SQL, que foi descontinuada na versão Beta 2), a qual fornece uma série de métodos para acesso nativo aos dados de um servidor Microsoft SQL Server. Podemos utilizar a classe System.SqlCliente em um programa feito em VB.NET, C#, em uma página ASP.NET ou qualquer linguagem que venha a ser habilitada para o .NET.
Ao fornecer um conjunto de Classes e tipos estamos facilitando a vida do programador, uma vez que grande parte da funcionalidade necessária é fornecida diretamente pelo Framework .NET e, o principal, é utilizada de uma maneira padronizada, pois a maneira de utilizar uma classe da biblioteca de classes do .NET é a mesma, independente da linguagem.
Nota! Já existem diversos fabricantes trabalhando para habilitar suas linguagens de desenvolvimento para o Framework .NET.
São muitas as funções disponibilizadas pela biblioteca de classes do .NET, conforme veremos no decorrer deste livro. Apenas a título de exemplo, vamos citar algumas funções disponibilizadas: