Você está na página 1de 24

Captulo 1 Apresentando a Plataforma .

NET
Introduo A plataforma .NET a fundao sobre a qual a prxima gerao de software ser construda. A Microsoft investiu muito dinheiro no desenvolvimento do .NET e est apostando seriamente na aceitao da plataforma como um novo padro. Uma extensa lista de parceiros da Microsoft tambm anunciaram suporte para as ferramentas e componentes .NET. Esta plataforma muito mais do que uma linguagem, um kit de programao (SDK) ou mesmo um sistema operacional. Ela oferece servios novos e poderosos, um novo formato binrio independente de processador, novas linguagens gerenciadas, extenses de linguagem gerenciada para linguagens existentes e por a a fora. No possvel usar eficientemente essas novas ferramentas sem um forte conhecimento da plataforma que ir habilitar as suas aplicaes. Neste captulo, veremos os vrios componentes da plataforma .NET. No s introduziremos os conceitos e sua tecnologia, mas explicaremos a terminologia usada para descrev-los. Isso permitir que voc tenha uma slida compreenso do funcionamento interno da plataforma .NET e possibilitar extrair todo o proveito das informaes nos captulos posteriores. Apresentando a Plataforma .NET O preceito por trs da plataforma .NET que o mundo da computao est mudando do modelo em que um dos PCs se conecta a servidores atravs de redes como a Internet, para o modelo em que todo tipo de dispositivos inteligentes, computadores e servios operam juntos para fornecer uma experincia mais rica ao usurio. A plataforma .NET simplesmente a soluo da Microsoft para os desafios que essa mudana trar aos desenvolvedores de software. A Plataforma .NET possui vrios componentes entretanto, a resposta ser, provavelmente, afetada pelo informante. Servidores como o BizTalk e SQL Server, bem como servios como Hailstorm e seu primeiro componente visvel, Passport, esto sendo descritos por alguns como partes integrantes da plataforma .NET. Contudo, para muitos de ns, o .NET Framework o que nos vem mente quando pensamos em .NET. Isso inclui o Visual Studio .NET (VS.NET), o Common Language Runtime (CLR) e a Base Class Library (BCL). Os outros componentes podem ser necessrios para aplicaes especficas, mas no so uma parte indispensvel de todas as aplicaes .NET. Arquitetura da Plataforma .NET A Figura 1.1 mostra a arquitetura da plataforma .NET, mais precisamente o .NET Framework. Basicamente, as famlias de linguagens .NET so compiladas em uma linguagem intermediria chamada Intermediate Language (IL), de acordo com a Common Language Specification (CLS). Os dois principais tipos de desenvolvimento de aplicao so Winforms (aplicaes Windows) e WebForms (Aplicaes Web). O Visual Studio .NET no necessrio para desenvolver aplicaes .NET, embora o VS.NET oferea uma extensiva arquitetura que o torna ideal para o desenvolvimento de aplicaes .NET.

VB.NET

C#.NET

C++.NET

Perl.NET

Outras Linguagens .NET

XML Web Services ASP.NET

User Interface

Visual Studio .NET

ADO.NET: Data and XML

Base Class Library

Common Language Runtime

Figura 1 Arquitetura da plataforma .NET

Essa arquitetura oferece inmeras vantagens, sendo a maior delas uma API consistente. Escrevendo para o CLR e usando a BCL, todos os servios de aplicao esto disponveis atravs de um modelo comum de programao, orientado a objetos. Hoje, algumas funes do sistema operacional so acessadas por meio de chamadas DLL usando a API baseada em C e outros recursos so acessados atravs de objetos COM, permitindo que o desenvolvedor construa a base necessria para fazer tudo funcionar de maneira harmoniosa. Esse novo modelo de programao simplifica enormemente os esforos que eram necessrios quando se escreviam aplicaes Win32 e COM. Hoje, o desenvolvedor no precisa mais ser gurus da arquitetura Windows ou COM. Outra grande vantagem para os desenvolvedores .NET o modelo para tratamento de erros atravs de excees. Desenvolver software para a plataforma Windows sempre significou ser atrado para as prprias inconsistncias dessa plataforma, particularmente no modo como os erros eram retornados. No .NET, todos os erros so reportados atravs de excees, o que simplifica ao extremo a escrita, a leitura e a manuteno de cdigo. Desenvolvimento de Multilinguagem Como muitas linguagens visam o CLR, agora muito mais fcil implementar partes de sua aplicao usando a linguagem que melhor se adapta a ela. Os mtodos mais antigos de permitir a interoperao de diferentes linguagens de programao, como COM ou CORBA, faziam isso usando uma Interface Definition Language (IDL). A plataforma .NET permite que as linguagens sejam integradas umas as outras atravs da IL. Embora contenha instrues que parecem a cdigo de assembly, como gerar e remover valores e colocar e tirar variveis de registros, a IL tambm contm instrues para gerenciar objetos e chamar seus mtodos, manipular arrays, gerar e capturar excees. Por que voc deveria se importar com os detalhes da IL? Porque atravs dela que o .NET gerencia muitos dos seus recursos interlinguagens. No necessria nenhuma IDL para permitir funcionalidade de interlinguagem, pois os metadados IL manipulam todo o overhead da traduo. Por exemplo, com um objeto de exceo definido pela IL, o mesmo objeto pode ser capturado independentemente da linguagem .NET usada. Seu componente escrito em C# pode gerar uma exceo que pode ser capturada pela aplicao Fortran que o est usando. No mais preciso se preocupar com diferentes convenes ou tipos de dados, mas apenas com a interoperabilidade integrada.

A herana interlinguagem um outro recurso que a IL torna possvel. Agora, voc pode criar novas classes baseadas em componentes escritos em outras linguagens, sem precisar do cdigo-fonte para o componente bsico. Por exemplo, voc poderia criar uma classe C++ que deriva de uma classe implementada com o Visual Basic. O .NET permite isso porque ele define e fornece um sistema de tipo comum a todas as linguagens. Componentes da Arquitetura .NET Como mencionamos anteriormente, existe muita coisa no .NET Framework . Nesta seo, ns identificamos os componentes individuais e descrevemos seus recursos e a maneira como se encaixam dentro do quadro geral. Common Language Runtime (CLR) De conceito similar ao Java Virtual Machine, o CLR um ambiente de runtime que executa cdigo IL. Diferentemente do ambiente Java, que o conceito de linguagens para todos os efeitos, a plataforma .NET suporta mltiplas linguagens de programao. Todo cdigo visando a plataforma .NET chamado de cdigo gerenciado. Isso significa simplesmente que a execuo do cdigo e o seu gerenciamento so gerenciados pelo CLR. Base Class Library (BCL) A BCL uma rica biblioteca de classes que permite ao desenvolvedor extrair todos os recursos da plataforma .NET em tempo de execuo. As classes contidas na BCL esto organizadas em namespaces. Um namespace contem classes bases e fundamentais que definem tipos de dados por valor, tipos de dados por referncia, eventos, interfaces, atributos e processamento de excees. Outras classes oferecem suporte a converso de tipos de dados, mtodos para a manipulao de parmetros, mtodos para a manipulao de operaes matemtica, entre outras. ADO.NET O ADO.NET a tecnologia dentro da plataforma .NET para acesso a diversas fontes de dados. Esta tecnologia oferece suporte a acesso a dados de forma conectada e desconectada, alm de fornecer um rico suporte a XML (Extensible Markup Language). ASP.NET ASP.NET um framework de programao construdo sobre o CLR que permite a construo de poderosas aplicaes Web. Uma aplicao Web construda em ASP.NET baseada em WebForms, facilitando assim a construo de interfaces com os usurios. XML Web Services XML Web Services so componentes Web que podem ser compartilhados por aplicaes dentro de uma Intranet ou atravs da Internet. O .NET Framework fornece ferramentas e classes para a construo, teste e distribuio de XML Web Services.

Assemblies

As assemblies so os meios de empacotar e distribuir aplicaes no .NET. Assim como uma aplicao ou componente compilado de hoje, as assemblies podem ser compostas de arquivos de origem simples ou mltiplos. Uma assembly contem metadados (explicados na prxima seo), usados pela CLR para tudo, desde verificao de segurana de tipo at efetiva chamada dos componentes e mtodos. Metadados Os metadados so um recurso utilizado pela CLR para saber os detalhes sobre um componente especfico. Os metadados para um objeto so mantidos durante a compilao e, ento, consultados em tempo de execuo para que a CLR saiba como instanciar objetos, chamar seus mtodos e acessar suas propriedades. Coleta de Lixo Quando sua aplicao requisita mais memria e o alocador de memria informa que no h mais memria no heap gerenciado, a coleta de lixo chamada. O coletor de lixo comea considerando que tudo na memria lixo e que pode ser descartado. Ele, ento, caminha pela memria de sua aplicao, construindo um grfico de toda a memria que est sendo referenciada pela aplicao no momento. Uma vez construdo o grfico, ele compacta o heap juntando toda memria que realmente em uso no incio do heap de memria livre. Quando isso termina, ele move o ponteiro que o alocador de memria usa para determinar onde comear a alocar memria a partir do alto desse novo heap.

Captulo 2 O Essencial do ASP.NET


ASP.NET uma plataforma de desenvolvimento usada para a construo de aplicaes Web e Web Services que sero executados no servidor IIS (Internet Information Service). ASP.NET no apenas uma tecnologia de construo de aplicaes, mas um conjunto especial de ferramentas que permitem a integrao com servidores Microsoft, acesso a dados e ferramentas de segurana. Vantagens do ASP.NET ASP.NET possui muitas vantagens em relao a outras plataformas de desenvolvimento de aplicaes Web. Dentre as muitas vantagens existentes, duas se destacam: total integrao com servidores Windows e ferramentas de programao. Aplicaes Web criadas com ASP.NET so fceis de criar e distribuir, pois todas essas tarefas so automatizadas com o Visual Studio.NET. A seguir, outras vantagens do ASP.NET em relao a outras plataformas de desenvolvimento de aplicaes Web: Cdigo compilado; Distribuio da aplicao sem a necessidade de se reiniciar o servidor; Acesso ao .NET Framework, que simplifica em muitos aspectos a programao para Windows; Integrao com o ADO.NET para acesso a banco de dados e criao de banco de dados dentro do Visual Studio.NET; Suporte total a XML, CSS e outros padres;

Partes de Uma Aplicao ASP.NET Uma aplicao ASP.NET constituda de trs partes: contedo, lgica e configurao. A tabela 2-1 mostra cada uma dessas partes. Parte Contedo Lgica Configurao Tipos de Arquivos Descrio Web forms, HTML, imagens, Arquivos de contedo determinam a aparncia udio, vdeo e outros dados. de uma aplicao Web. Arquivos executveis e scripts. Determina como a aplicao responder a aes dos usurios. Aplicaes ASP.NET tem um arquivo .dll que executado no servidor. Web.Config e CSS. Os arquivos de configuraes determinam como uma aplicao ser executada no servidor, quem ter cesso e outros detalhes.
Tabela 2.1 Partes de Uma Aplicao ASP.NET

O Web form o elemento chave de uma aplicao ASP.NET. Em uma aplicao Web completa, a parte executvel de um Web form armazenado em um assembly (.dll), sendo executado no servidor sob controle do worker process (aspnet_wp.exe) do ASP.NET, o qual funciona em conjunto com o IIS. O contedo de um Web armazenado em um diretrio no servidor Web, como mostra a Figura 2.

Figura 2 Partes de uma aplicao Web no servidor.

Quando um usurio acessa um Web form no seu navegador, ocorrem os seguintes passos no servidor: 1. IIS inicia a execuo do ASP.NET (asp_wp.exe) se este no estiver em execuo. Este processo carrega o assembly associado ao Web form; 2. O assembly constri uma resposta ao usurio baseado no contedo solicitado pelo usurio; 3. IIS envia uma resposta ao usurio no formato HTML; Aps o usurio receber a resposta do servidor no seu navegador, ele pode entrar com dados, selecionar opes, clicar em botes e usar outros controles exibidos na pgina. Alguns controles, como botes, causam o reenvio da pgina ao servidor para processamento de eventos, conforme a Figura 3.

Figura 3 Como as partes de uma aplicao Web interagem entre si.

Este ciclo repete-se a cada vez que a pgina enviada ao servidor.

Componentes de um Web Form Web forms podem conter diferentes tipos de componentes, conforme a tabela abaixo: Tipo de Componente Server Controls HTML Controls Data Controls Exemplos TextBox, Label, Button Descrio Estes controles respondem a eventos executados no servidor. Text Area, Table, Image Estes representam os elementos padro fornecidos no HTML. SqlConnection, SqlCommand, Controles de dados fornecem OleDbConnection, mecanismos para conexo, OleDbCommand, DataSet persistncia de dados e recuperao de dados de bancos de dados SQL, OleDb e arquivos de dados XML. EventoLog, Message Queue, Estes componentes fornecem acesso FileSystemWatcher a eventos do sistema que ocorrem no servidor.
Tabela 2.2 Componentes de um Web form.

System Components

Controles do tipo servidor e HTML so usados na criao de interfaces com o usurio em um Web form. Controles de dados e componentes do sistema aparecem apenas em tempo de design para o desenvolvedor selecionar propriedades e eventos necessrios a realizao de uma tarefa. ASP.NET no .NET Framework ASP.NET uma parte importante do .NET Framework, mas esta no simplesmente uma parte da plataforma. Entender os recursos que esta plataforma oferece ajudara voc a construir aplicaes ASP.NET de forma eficiente e evitar a escrita de cdigo para realizar tarefas que j esto implementadas no .NET Framework. Aplicaes ASP.NET no so executadas da mesma forma como as aplicaes Windows tradicionais. Em vez de um arquivo executvel compilado em cdigo nativo, o cdigo escrito em linguagens .NET so compilados em IL, sendo este armazenado em um arquivo chamado assembly. Em tempo de execuo, o assembly ento compilado compilado para o estado final atravs da CLR.

Figura 4 Fluxo de execuo de aplicaes ASP.NET

Enquanto a aplicao executada, a CLR fornece gerenciamento de memria, checagem de tipo dados segura, entre outras. Arquivos de um Projeto Web Application A tabela abaixo exibe a relao dos principais arquivos encontrados em um projeto do tipo Web Application. Nome do Arquivo Global.asax Descrio Contm a relao de todos os eventos que ocorrem na Web Application, como por exemplo, Application_Start e Application_End. Cada projeto Web Application pode conter apenas um arquivo Global.asax e deve ser armazenado na pasta root do seu projeto. Web.config Armazena as configuraes usadas pelo servidor web durante o processamento do projeto. Estas configuraes especificam como os erros so reportados, que tipo de autenticao utilizada no projeto, entre outras. WebForm1.aspx a descrio visual de um Web form. WebForm1.aspx.cs Contm o cdigo escrito em C# que responde aos eventos do Web form.
Tabela 2.3 Arquivos de Uma Aplicao ASP.NET

Completando as informaes contidas na tabela 2.3, um projeto Web Application pode conter diferentes tipos de arquivos. Estes arquivos so listados na Tabela 2.4. Extenso .aspx Item Projeto Web form do Descrio

.htm .vb .ascx .asmx

Cada Web form constitui uma pgina Web na aplicao ASP.NET. Uma aplicao pode conter um ou vrios Web forms. Web forms possem arquivos de cdigos associados com eles e estes arquivos possuem a extenso .vb (Visual Basic). Pgina HTML Pgina Web que no contm cdigo executado no servidor. Classe ou Cdigos que definem objetos so armazenados em classes. Mdulo Web User Arquivo que contm um User Control. Control Web Service Web Services que expe classes para acesso remoto.
Tabela 2.4 Extenses dos Principais Arquivos de uma Web Application.

Eventos no Ciclo de Vida de uma Web Application Uma Web Application vive ao longo em que suas sesses so ativadas. A vida de uma Web Application inicia quando um navegador Web faz uma requisio sua pgina inicial da Web Application (veja a Figura 5). A partir deste ponto, o servidor Web entra em ao, executando o assemply (DLL). O executvel da aplicao cria uma instncia do Web form requisitado, gera o HTML e o envia ao navegador como reposta requisio. Depois disso, a instncia do Web form ento destruda.

Figura 5 Processamento de Pginas ASP.NET.

Quando um navegador Web recebe a resposta do servidor, o usurio pode interagir com a pgina, realizado tarefas bsicas como um click no boto, disparando um evento postback. Um evento postback faz com que o navegador Web envie a pgina de dados (view state) de volta ao servidor Web para processamento. Quando o servidor recebe o view state, este cria uma nova instncia do Web form e processa todos os eventos que ocorrerem (veja a Figura 6).

Figura 6 Processamento de Eventos Postback.

Assim que o processamento do servidor termina, este ento gera o HTML e o envia ao navegador, destruindo em seguida a instncia do Web form. Quando o usurio para de usar a aplicao por um perodo de tempo (o default de 20 minutos), a sesso do usurio expira, conforme ilustrado na Figura 7. Se outra sesso no for iniciada pelo usurio, a aplicao termina. Mas, isso no acontece sempre dessa forma. A Common Language Runtime (CLR) controla a memria usando o Garbage Collector. Quando este encontra algum objeto na memria que no esteja sendo referenciado por um tempo, ele o libera da memria. Desta forma, voc no sabe quando o evento Application_End ocorrer.

Captulo 3 Criando Aplicaes ASP.NET Usando o Visual Studio .NET


O Visual Studio .NET 2005 possui mais de 400 novos recursos em relao a sua verso anterior. Esta ferramenta proporciona ao desenvolvedor maior produtividade no desenvolvimento de qualquer tipo de aplicao (desktop, Web, mobile, etc). Alm disso, esta possui integrao total com toda a linha de servidores da plataforma Windows. Criando Uma Nova Aplicao Web Usando o Visual Studio.NET O primeiro passo para a criao de uma aplicao ASP.NET criar um novo projeto no Visual Studio.NET. O Visual Studio.NET fornece templates para cada tipo de aplicao que voc pode criar. O template para uma aplicao Web chamado ASP.NET Web Application. Quando voc cria um novo projeto usando este template, o Visual Studio.NET cria um arquivo para o projeto, um Web form em branco e outros arquivos de suporte para sua aplicao. Para criar um projeto de uma aplicao Web no Visual Studio.NET, siga estas etapas: 1. Inicie o Visual Studio.NET. Na Start Page, clique em Create: Web Site, como mostra a Figura 5.

Figura 7 Criando um novo Web site com o Visual Studio.NET.

2. Aparecer a janela New Web Site conforme a Figura 6. Clique no template ASP.NET Web Site. Escolha a localizao, nome e linguagem do Web Site e clique no boto OK.

Figura 8 A janela New Web Site.

O Visual Studio.NET cria uma pasta com o mesmo nome do projeto e a coloca dentro da pasta raiz do Web site default. A localizao da pasta raiz exibida em Location na janela New Web Site, como http://localhost/website. O IDE do Visual Studio .NET 2005 A fim de facilitar a vida do desenvolvedor, a Microsoft criou um ambiente de desenvolvimento integrado, tambm conhecido como IDE (Integrated Development Enviroment). O objetivo desse ambiente apresentar uma interface comum para todas as linguagens de programao suportadas pelo Visual Studio .NET que, alm do C# propriamente dito, tambm inclui o Visual Basic, o C++ e o J#. Na Figura 9 mostrada a janela principal do Visual Studio .NET para o desenvolvimento de aplicaes ASP.NET.

Figura 9 IDE do Visual Studio .NET.

Agora, vamos conhecer as principais deste ambiente. Barra de Menus Esta barra contm os menus que do acesso aos diversos comandos do Visual Studio .NET, como as operaes de arquivos, edio, ferramentas de depurao, entre outras funes. Esta barra est ilustrada na Figura 10.

Figura 10 Barra de Menus.

Web Form A Figura 11 mostra a janela que representa o Web form. nesta janela que voc adicionar controles (como botes, caixas de textos, rtulos, entre outros) para a interao do usurio com a pgina exibida no navegador Web. Os arquivos Web forms so identificados pela extenso .aspx.

Figura 11 O Web Form.

A Janela de Cdigo No .NET, o cdigo da aplicao escrito em qualquer linguagem do .NET (parte lgica) separado do HTML. A isso chamamos de Code Behind. Este cdigo fica armazenado em uma classe. Cada Web form possui uma classe associada a ele. A Figura 12 ilustra a classe gerada para o WebForm1.aspx.

Figura 12 A Janela de Cdigo.

Solution Explorer Podemos imaginar esta janela como uma grande caixa na qual ficam armazenados os componentes de nossa soluo, como os vrios aplicativos que a compem (desenvolvidos em C#, VB, C++, etc). Esta janela est ilustrada na Figura 13.

Figura 13 A Janela Solution Explorer.

Properties A janela de propriedades (veja a Figura 14) , sem dvida nenhuma, uma das janelas do IDE do Visual Studio .NET mais utilizadas. por meio desta janela que ajustamos as propriedades do Web form e de todos os controles contidos nele, fazendo com que esses componentes assumam a aparncia e as caractersticas que desejamos.

Figura 14 A Janela de Propriedades.

Toolbox A caixa de ferramentas exibe os controles disponveis para a criao de seus aplicativos. Os controles so os objetos que so forma e funo s suas aplicaes, como botes de comando, caixas de listagem, caixas de texto, etc. A Figura 15 mostra a Toolbox do Visual Studio .NET.

Figura 15 A Toolbox do Visual Studio .NET.

Adicionando Controles e Escrevendo Cdigo Quando o Visual Studio.NET cria uma nova aplicao Web, este cria um Web form no centro da janela, conforme a Figura 7. Para adicionar um controle ao Web forma, basta arrast-lo da Toolbox para qualquer parte do Web form.

Figura 9 Adicionando um controle ao Web form.

Para adicionar cdigo para responder a um evento, d um duplo clique sobre o boto. O Visual Studio.NET exibir a janela de cdigo. Digite o cdigo abaixo.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Response.Write("Hello, Web!") End Sub

Pressione Ctrl + F5 para compilar e executar a pgina. O cdigo acima exibir a mensagem Hello, Web no Internet Explorer quando voc clicar no boto, conforme a figura 8. Para encerrar a aplicao, basta fechar a janela do navegador.

Figura 10 Aplicao Web em execuo.

Como voc pode ver neste exemplo, aplicaes Web forms so similares s aplicaes Windows. Entretanto, este tipo de aplicao possui diferenas significantes: Ferramentas: Web forms no suportam controles padro Windows. Em substituio destes, eles utilizam server controls, HTML controls, user controls ou controles criados especialmente para Web forms; Interface com o Usurio: a aparncia de um Web form determinada pelo navegador que a executar. Sua aplicao Web pode aparecer no Internet Explorer, Netscape Communicator ou qualquer outro navegador. Cada navegador suporta diferentes

caractersticas do HTML, podendo modificar a aparncia e o comportamento de sua aplicao. Tempo de Vida: Windows forms so instanciados, existem ao longo da necessidade do usurio e depois so destrudos. Web forms aparentemente comportam-se desta maneira. Mas, na realidade, eles so instanciados, enviados ao navegador e ento, usualmente, so descartados. Isto significa que todas as variveis e objetos declarados no Web form no esto disponveis aps a exibio da pgina no Web form ( possvel conservar variveis e objetos aps a exibio da pgina, mas isso no uma pratica de programao comum).

Master Page Com o Visual Studio 2005, ASP.NET agora suporta herana de pginas visuais. Este recurso similar a herana de formulrios utilizada em aplicaes Windows. Com o ASP.NET 2.0, voc pode criar uma pgina master contendo todos os principais elementos usados pelas pginas de seu Web site. Para criar uma Master Page, proceda da seguinte forma: 1. Na janela Solution Explorer, clique com o boto direito do mouse e acione a opo Add New Item; 2. Na janela Add New Item, selecione o item Master Page; 3. D um nome para a pgina e clique no boto Add; Na Master Page inserida em seu projeto, aparecer um controle chamado ContentPlaceHolder. Este controle usado para encapsular a pgina que herdar da Master Page. Criando Um Web Form Herdando da Master Page. Para criar um Web form que herdado de uma Master Page, proceda da seguinte maneira: 1. No Solution Explorer, clique com o boto direito no nome do seu projeto, marcando a opo Add New Item; 2. Escolha um novo Web form; 3. Marque o checkbox Select master page e clique no boto Add; Trabalhando com User Controls Podemos definir User Control como um controle que pode ser desenvolvido e editado por um desenvolvedor, assim como um Web form. Trata-se da forma mais simples de se criar novos controles. Para aqueles que trabalham com o ASP3, podem comparar os User Controls aos includes, porm, tendo em mente que temos muito mais poderes com o uso desses controles. Um User Control possui a extenso "ascx" e pode ou no trabalhar com Code-Behide (para quem utiliza o Visual Studio .NET, todos os cdigos j ficam por padro em Code-Behide, ou seja, em um arquivo separado do HTML). Os mesmos cdigos que voc utiliza em suas pginas ASP.NET podem ser utilizados nos User Controls, podendo at mesmo repetir eventos (como por exemplo, fazer o uso do Page_Load com as aes desejadas em uma ASP.NET e inserir este mesmo evento

ao User Control) e deixando todo o processo de compilao da pgina ASP.NET solicitada executar os dois eventos. Para inserir um User Control em um Web form, necessrio registrar uma nova tag com prefixo e nome que correspondam ao seu controle. Esta operao deve ser realizada no topo de sua pgina da seguinte maneira:
<%@ Register TagPrefix="Prefixo" TagName="Nome" src="arquivo.ascx" %>

O atributo TagPrefix define o Namespace ao qual corresponde seu User Control, TagName corresponde ao nome do controle. Por exemplo:
<asp:TextBox>

Neste caso, "asp" o namespace e "TextBox" o nome do controle. Vamos a um exemplo prtico. Primeiramente criaremos um User Control que exibir a data e a hora atual do sistema. Para isto utilizaremos um Label denominado lblDataHora. No evento Page_Load definiremos o valor deste label. Criando um User Control Para criar o User Control descrito acima, proceda da seguinte maneira: 1. No Solution Explorer, adicione um novo item; 2. Escolha o item Web User Control; 3. D o nome para o controle de Banner.ascx e clique no boto Add; Neste momento, insira um controle Image no User Control e configure a propriedade ImageUrl para uma imagem qualquer. Pronto! O seu User Control est pronto para ser utilizado em qualquer pgina da sua aplicao. Inserindo um User Control em um Web Form Para inserir um User Control em um Web form uma tarefa muito simples. V at o Solution Explorer e insira um novo Web form. D a este formulrio o nome Principal.aspx. Este Web form ser a pgina principal da nossa aplicao. Vamos iniciar o processo de formatao da nossa pgina principal. Insira uma tabela (menu Layout/Insert Table) com uma coluna e trs linhas, aplicando uma borda simples de tamanho um (a borda ser aplicada apenas para facilitar o posicionamento dos controles que sero inseridos nas clulas da tabela). A Figura 11 mostra a tabela inserida no Web form com o User Control. Neste ponto, devemos posicionar a tabela de forma que a mesma fique alinhada ao topo e a esquerda da pgina. Para fazer isso, sega os passos descritos abaixo: 1. 2. 3. 4. Pressione a tecla F4 para exibir a janela Properties; Na combo que exibe o objecto selecionado, selecione Document; Acione a propriedade Style (...); Aparecer a janela Style Builder. Nesta janela, selecione a guia Edges. Na opo Margins, digite zero para os itens Top e Left. Isso far com que a sua tabela fique alinhada ao topo e a esquerda da pgina. As opes Height e Width (Altura e largura, respectivamente) ficam a seu critrio. 5. Clique no boto OK;

Na primeira linha da tabela, ficar o nosso User Control. Para inseri-lo, v at o Solution Explorer e arraste o arquivo Banner.ascx para a primeira linha da tabela. Agora, na terceira linha da tabela, Digite Curso de ASP.NET 2.0 e aplique uma formatao nesta linha.

Figura 11 Pgina Principal com um User Control.

Neste momento, o nosso componente pode ser inserido em qualquer pgina inserida em nosso projeto. Voc pode criar quantos componentes forem necessrios. Lembrando que voc pode adicionar funcionalidades em tempo de execuo como, por exemplo, acessar um banco de dados e exibir as informaes recuperadas em um componente. SiteMap, SiteMapPath e Menu Na verso 2.0 do ASP.NET foram inseridos novos controles para facilitar a navegao dentro de um Web site. Agora, temos um controle de menu nativo, um controle para mostrar a navegao entre as pginas em um arquivo XML chamado SiteMap que serve de fonte de dados para o Menu e SiteMapPath. No seu projeto, adicione um SiteMap, clicando em Add New Item no Solution Explorer. Ser adicionado ao seu projeto um arquivo Web.sitemap que nada mais do que um arquivo XML com a estrutura de navegao da sua aplicao. Altere o arquivo XML conforme o cdigo abaixo.
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="Principal.aspx" title="Home Page" description=""> <!-- Este primeiro bloco corresponte ao menu Cadastro --> <siteMapNode url="" title="Cadastro"> <!-- Este elemento chamar a pgina Clientes.aspx --> <siteMapNode url="Cliente.aspx" title="Clientes" /> <!-- Este elemento chamar a pgina Produtos.aspx --> <siteMapNode url="Produtos.aspx" title="Produtos" /> </siteMapNode> <!-- Este segundo bloco corresponte ao menu Cadastro --> <siteMapNode url="" title="Pesquisa"> <!-- Este elemento chamar a pgina PesquisaCliente.aspx --> <siteMapNode url="PesquisaCliente.aspx" title="Clientes Por Nome" /> <!-- Este elemento chamar a pgina PesquisaProduto.aspx --> <siteMapNode url="PesquisaProduto.aspx" title="Produtos Por Fornecedor" /> </siteMapNode> </siteMapNode> </siteMap>

Vamos analisar o cdigo acima. Na primeira linha temos a verso do XML e o formato do arquivo. Na segunda linha, a declarao do schema utilizado. Na terceira linha temos o n principal da estrutura do nosso Web site. Quando o usurio clicar neste n (que ser identificado como Home Page) ser exibida a pgina Principal.aspx. A quinta linha do arquivo XML cria um n secundrio chamado Cadastro. Veja que no especificamos uma pgina na propriedade url desta linha. Com isso, se o usurio clicar neste n, nenhuma pgina ser exibida. Na stima linha, temos um elemento chamado Clientes que, quando for clicado pelo usurio, redirecionar a aplicao para a pgina Cliente.aspx. Isso acontecer porque informamos na propriedade url deste n o nome de uma pgina (no caso Cliente.aspx). Este raciocnio aplicado nos demais ns. A partir deste ponto, podemos inserir os controles Menu e SiteMapPath para exibir os dados do arquivo XML. Insira no seu projeto uma nova pgina chamada Menu.aspx e adicione um controle Menu (localizado na ToolBox, guia Navigation). Aplique uma formatao ao controle (utilize a opo Auto Format na Smart Tag). Agora, associaremos o controle Menu ao SiteMap (veja a Figura 12). Para isso, exiba a Smart Tag do controle menu e configure um novo Data Source (Figura 13), sendo que a fonte de dados ser um SiteMap (Figura 14).

Figura 12 Aplicando uma Auto Formatao ao Controle Menu Atravs da Smart Tag.

Figura 13 Configurando um Data Source ao Controle Menu.

Figura 14 - Associando o Controle Menu ao SiteMap.

Voc pode modificar a propriedade Orientation do controle Menu para Vertical ou Horizontal conforme a sua necessidade. Agora, clique com o boto direito do mouse sobre a pgina Menu.aspx no Solution Explorer e acione a opo Set As Start Page. Esta opo torna a pgina selecionada como a pgina principal da aplicao. Pronto! Voc j pode testar o menu da sua pgina. Pressione Ctrl + F5 e veja o resultado conforme a Figura 15.

Figura 15 O Controle Menu em Funcionamento.

Ainda na pgina Menu.aspx, adicione um controle um controle SiteMapPath, localizado na guia Navigation da ToolBox. Aplique uma auto formao da mesma forma que voc aplicou no controle Menu. Vamos agora adicionar um novo Web form chamado Cliente.aspx para testarmos o nosso menu. Neste Web form, arraste o nosso componente para o topo da pgina e, logo abaixo deste, insira um controle Label (guia Stardard da ToolBox). Altere as propriedades Text para Cadastro de Clientes e Fonte para Verdana tamanho Large Bold. Feito isso, pressione Ctrl + F5 para ver o resultado no navegador. Compare o resultado com a Figura 16.

Figura 16 Os Controles Menu e SiteMapPath Funcionado em Conjunto.

Captulo 4 Trabalhando com Controles DataBounds


Neste captulo sero apresentados os controles GridView, FormView, DataList. E todo o processo de configurao de acesso a dados sem digitar uma linha se quer de cdigo. O Visual Studio.NET proporciona ao desenvolvedor maior agilidade para realizar tarefas simples que envolve dados como, por exemplo, um cadastro. GridView O controle GridView a evoluo do controle DataGrid encontrado nas verses anteriores do Visual Studio.NET. Esta uma verso contm uma srie de vantagens, principalmente no que diz respeito agilidade no desenvolvimento, ganhando assim uma enorme produtividade. As melhorias vo desde as formas de carregarmos o GridView at funcionalidades inexistentes nas verses anteriores, as quais necessitvamos escrever muito cdigo para atender algo mais especfico. Grandes melhorias foram criadas, como por exemplo: novos tipos de colunas, ordenao e paginao de registros sem a escrita de nenhuma linha de cdigo, entre outras. Vamos ver o potencial deste controle na prtica. Insira um controle GridView no Web form (na ToolBox, guia Data). Agora, vamos definir uma fonte de dados para o GridView. Para fazer isso, utilize a Smart Tag do GridView (veja a Figura 17).

Figura 17 Smart Tag do Controle GridView.

Vamos configurar uma fonte de dados para o GridView. Na Smart Tag, selecione a opo New data source na combo Choose Data Source. Aparecer a janela Data Source Configuration Wizard selecione a opo Database como a fonte de dados (veja a Figura 18). Alm disso, ser criado um controle chamado SqlDataSource1.

Figura 18 Selecionando uma Fonte de Dados.

Este controle responsvel por encapsular manipulao dos dados de uma base de dados SQL Server. Temos nele propriedades essencias, como por exemplo, os comandos SelectCommand, InsertCommand, DeleteCommand e UpdateCommand, que onde definimos os comandos (queries ou stored procedures) que sero executadas para cada ao. Prosseguindo com o assistente, clique no boto OK. A prxima etapa destina ao estabelecimento da conexo com o banco de dados (veja a Figura 19). Como a primeira vez que estamos realizando a conexo com o banco de dados, devemos estabelecer a string de conexo. Para fazer isso, clique no boto New Connection.

Figura 19 Criando uma String de Conexo.

Conforme a Figura 20, aparecer a janela Add Connection para voc informar os parmetros da conexo. Informe os valores dos parmetros e clique no boto OK. A prxima etapa destina-se a gravao da string de conexo no arquivo Web.config (veja a Figura 21). D um nome para a sua string de conexo e clique no boto Next. Como estamos acessando o banco de dados Northwind do SQL Server, aparecer a janela para voc especificar uma declarao SQL ou uma tabela deste banco de dados (veja a Figura 22). Selecione a tabela Products e os seguintes campos: ProductId, ProductName, UnitPrice e UnitsInStick. Aps a seleo dos campos, clique no boto Next. Voc pode testar a sua consulta clicando no boto Test Query (veja a Figura 23). Por fim, clique no boto Finish.

Figura 20 Criando Uma Nova Conexo com o Banco de Dados.

Figura 21 Armazenando a String de Conexo no Arquivo Web.config.

Figura 22 Selecionando Campos da Tabela Products.

Figura 23 Testando os Dados.

Ainda na Smart Tag, aplique uma auto formatao no GridView para que o mesmo tenha uma melhor aparncia. Consultando Dados Utilizando Parmetros No exemplo a seguir, vamos realizar uma consulta ao banco de dados utilizando um critrio de pesquisa. Vamos consultar a tabela de Employees (Empregados) do banco de dados Northwind, sendo que o usurio informar uma parte do primeiro nome do empregado e o resultado da pesquisa ser exibido no GridView. Primeiramente, insira um novo Web form no seu projeto e d o nome de GridPesquisa.aspx. Em seguida, insira os controles e configure as suas propriedades conforme a tabela abaixo.

Controle Label TextBox Button GridView abaixo:

Propriedade Text ID ID Text --

Valor Digite o nome: txtNome btnPesquisar Pesquisar --

Em seguida, configure um novo data source para o GridView conforme as instrues 1. Na Smart Tag, configure um novo data source; 2. Selecione como fonte de dados um Database; 3. Nesta etapa, selecione a string de conexo criada anteriormente (o boto New Connection s utilizado quando voc for realizar a primeira conexo com o banco de dados em seu projeto); 4. Selecione a tabela Employees e marque os seguintes campos: EmployeeID, FirnstName, LastName, BirthDate e HareDate. Em seguida, clique no boto Where; 5. Conforme a Figura 24, Voc deve selecionar o campo da tabela que ser aplicado o critrio. Selecione na combo Column o campo FirstName. Em Operator, selecione LIKE e em Source selecione Control. Em Control ID, selecione TextBox1 e clique no boto Add e depois em OK; 6. Clique no boto Next e depois em Finish; Explicando o procedimento acima: na instruo 4 voc clicou no boto Where para adicionar um critrio a sua consulta. O critrio simples: o resultado da consulta ser todos os empregados que contenham em seu primeiro nome (campo FirstName) o texto informado pelo usurio. Assim, foi criado um parmetro chamado @FistName que receber o valor do TextBox. Pronto! Agora, pressione Ctrl + F5 para compilar a sua pgina e veja o resultado.

Figura 24 Adicionando Critrio a uma consulta.

Como voc pode observar, acessar um banco de dados, efetuar uma pesquisa e ainda adicionar critrios s consultas so tarefas extremamente simples usando o ASP.NET 2.0. FormView O FormView um controle bastante interessante e ideal para realizar operaes ao banco de dados como insero, atualizao e excluso de dados. Este controle est localizado na guia Data da ToolBox do Visual Studio.NET.

Você também pode gostar