Professional Documents
Culture Documents
NET
3.5: Acesso a Dados e
Recursos Avanados
MDULO II
Ateno: O material deste mdulo est disponvel apenas como parmetro de estudos para
este Programa de Educao Continuada. proibida qualquer forma de comercializao do
mesmo. Os crditos do contedo aqui contido so dados aos seus respectivos autores
descritos na Bibliografia Consultada.
MDULO II
Caching
Aplicaes Web que exigem alta escalabilidade tem de ser pensadas sob o ponto
de vista de desempenho desde a sua concepo. Caching um recurso importante no
desenvolvimento de aplicaes de alto desempenho. Ns, que trabalhamos com TI,
sabemos que recuperar informaes da memria uma operao muito mais rpida do
que a leitura em disco, mesmo que esta leitura seja oriunda de um super banco de dados
altamente otimizado. Agora imagine e seguinte situao: uma loja virtual coloca um
produto em promoo, o que pode causar dezenas de milhares de acessos por minuto
pgina do produto. Normalmente, a cada requisio, ou seja, a cada vez que um usurio
solicitar a pgina, o ASP.NET vai executar uma consulta ao banco de dados, processar e
renderizar a pgina e submet-la ao navegador que efetuou a requisio. Este processo
passa ento a ser executado dezenas de milhares de vezes por minuto. No seria mais
inteligente colocar isso tudo na memria, para que a cada requisio o ASP.NET
entregasse ao navegador esta verso?
Felizmente isto possvel. O recurso de caching permite o instanciamento de
objetos em memria. Funciona mais ou menos assim: o objeto colocado em memria,
podendo ser determinado o tempo de expirao. Quando o tempo expira, o objeto
retirado da memria. Na prxima vez que o objeto for solicitado ao cache, verifica-se a
existncia do objeto em memria, existindo, ele simplesmente utilizado, caso contrrio,
efetuada uma nova alocao.
Podemos utilizar caching diretamente em uma Web Form ou em um User Control,
ou de forma declarativa, onde armazenamos e recuperamos objetos do cache de acordo
com nossa necessidade. No podemos utilizar caching em Master Pages. Programar
caching manualmente bastante simples, e se assemelha ao uso de variveis de sesso
e aplicao que estudamos no primeiro curso. A maneira mais simples e eficiente de
entender o mecanismo de caching utilizando uma varivel de data e hora, j que a
informao, quando armazenada, se torna esttica. Para executar o exemplo abaixo crie
47
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
um Web Form e adicione um controle Label, depois digite o cdigo abaixo no evento
OnLoad da pgina. O cdigo verifica se o cache est nulo, e neste caso armazena um
valor. Ao final do bloco, o valor do cache exibido em um controle label. Execute a
pgina, atualizando a mesma diversas vezes. Note que o valor de data e hora no mais
atualizado, pois na primeira execuo da pgina o valor foi adicionado ao cach. Nas
demais execues, a rotina simplesmente l o valor armazenado e exibe no controle
label:
Label1.Text = Cache("hora")
End Sub
Para atualizar o valor em cache, basta ler o novo valor da varivel. Para deslocar
a varivel basta chamar o mtodo remove. No exemplo abaixo um boto desloca o
caching. Isto significa que na prxima execuo do evento OnLoad da pgina a data ser
atualizada:
Protected Sub Button1_Click(ByVal sender As Object, ByVal
e As System.EventArgs) Handles Button1.Click
Cache.Remove("hora")
End Sub
48
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Podemos utilizar o cache tambm atravs do mtodo insert. No exemplo abaixo o
primeiro parmetro o nome da varivel, o segundo, o valor a ser armazenado:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Cache("hora") Is Nothing Then
Cache.Insert("hora", DateTime.Now)
End If
Label1.Text = Cache("hora")
End Sub
49
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
protected void Page_Load(object sender, EventArgs e)
{
if (Cache["hora"] == null)
{
Cache.Insert("hora", DateTime.Now, null,
DateTime.MaxValue, TimeSpan.FromSeconds(5));
}
Label1.Text = Convert.ToString( Cache["hora"]);
}
Output Caching
50
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
permite criar diferentes verses de cach para a pgina de acordo com parmetros.
VaryByParam vamos estudar a seguir, por isso, neste exemplo o valor deve ser none,
para no haver variao por parmetro:
<%@ Page Language="VB" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ OutputCache Duration="5" VaryByParam="none" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
51
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
como none no nosso primeiro exemplo tem esta funo: criar uma verso diferente de
cache para cada valor diferente do parmetro passado na query string, tudo a fazer
preencher o atributo com o nome da varivel da query string. Vamos prtica: crie uma
nova aplicao ASP.NET contendo dois Web Forms: Default.aspx e Default2.aspx. Em
Default.aspx adicione dois controles HyperLink e defina a propriedade NavigateURL,
como ~/Default2.aspx?Versao=1 e ~/Default2.aspx?Versao=2 respectivamente, como
na imagem abaixo:
52
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
<%@ Page Language="VB" AutoEventWireup="false"
CodeFile="Default2.aspx.vb" Inherits="Default2" %>
<%@ OutputCache Duration="30" VaryByParam="Versao" %>
O ltimo passo , mais uma vez, atribuir o valor de data e hora ao label:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Label1.Text = DateTime.Now.ToString
End Sub
53
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
E se a pgina tiver mais de um parmetro? Sem problema, voc pode informar
mais de um valor de varivel em VaryByParam. Basta separ-los por ponto e vrgula.
Porm aqui deve ficar registrado um cuidado: o objetivo do recurso de caching otimizar
a aplicao. Se voc colocar em cache muitos parmetros de uma mesma pgina, com
uma grande variao de valores, as quantidades de verses que tero que ser alocados
em memria e consequentemente os recursos que sero consumidos podem, ao invs de
beneficiar, derrubar a aplicao.
Web Parts
54
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Na parte superior voc escolhe o contedo que coloca na pgina, mas abaixo,
voc arrasta os contedos entre as regies, podendo tambm fech-los ou minimiz-los.
um tipo de aplicao em que o usurio gerencia seu contedo, a seu gosto, em tempo
de execuo. A funcionalidade do iGoogle no VS denominada Web Parts. O recurso
est disponvel nativamente no ASP.NET 3.5, e, ao contrrio do que voc pode imaginar,
muito fcil e intuito de usar: o VS traz quase tudo pronto, tudo a fazer configurar
controles, com pouca necessidade de escrita de cdigo. Examine, no VS, o guia Web
Parts da barra de ferramentas:
55
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Vamos ver Web Parts na prtica. Crie uma nova aplicao ASP.NET e adicione
pgina um controle WebPartManager. Este controle no traz qualquer funcionalidade para
a pgina e visualmente, em tempo de execuo no produz qualquer efeito, porm
fundamental para o funcionamento de Web Parts. Agora adicione sobre o Web Form dois
controles WebPartZone. Um WebPartZone um container de contedo, so as regies
onde o usurio poder adicionar os itens que deseja. Voc pode aplicar uma formatao
para o controle, acessando a opo Auto format na smart tag dos controles.
Coloque dentro do primeiro WebPartZone um controle Button e um controle
DropDownList e no segundo um controle TextBox e um controle ListBox. Se voc fez tudo
certo seu Web Form deve estar semelhante imagem abaixo:
56
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Note que o controle assume o layout do WebPartZone, e que agora exibido
dentro de um frame, para que oferea suporte a operaes de arrastar e soltar, minimizar
e maximizar. O WebPartManeger deve ser sempre primeiro controle da pgina. Rode a
aplicao. Neste ponto j possvel minimizar e restaurar um controle. Tambm
possvel fech-los, porm ainda no h suporte para reabrir um controle fechado. Voc
tambm no vai conseguir arrastar controles entre as zonas.
57
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Antes de fechar a aplicao, minimize dois controles, feche a aplicao e rode
novamente. Note que os controles permanecem na mesma condio que voc os deixou
antes de fechar o navegador! Como isso possvel? Em cursos de ASP.NET, quando
peo sugestes do que o ASP.NET fez para manter o estado dos controles, a resposta
sempre cookies. Na verdade no, o mesmo mecanismo utilizado na funcionalidade de
Membership e Roles: um banco de dados do SQL Server, inclusive, com o mesmo
schema. Alis, se voc utilizar ambos os recursos na aplicao, eles iro compartilhar o
banco de dados. Note na imagem abaixo a visualizao do banco de dados, lembre-se de
atualizar a pasta para que o mesmo seja exibido:
58
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Antes de adicionarmos mais funcionalidade a nossa aplicao, vamos entender o
funcionamento dos modos do Web Parts. Os modos definem que tipo controle o usurio
ter sobre o contedo do Web Parts. No modo Browse, que o padro e tambm o
modo que nosso exemplo se encontra, oferecida pouca interatividade: o usurio apenas
pode minimizar, restaurar ou fechar um contedo disponvel em uma zona. No modo
catalog, as possibilidades so maiores: o usurio pode fechar e restaurar contedo e
mesmo mud-los de uma zona para outra. No modo design possvel ao usurio
gerenciar as zonas da pgina, inclusive com operaes de arrastar e soltar, e, por ltimo,
no modo Edit, pode-se alterar as zonas, personalizando-as completamente.
CatalogZone e PageCatalogPart
59
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Se voc executar a aplicao neste momento, notar que no existe qualquer
diferena, ainda no possvel gerenciar o contedo das zonas, o controle Page Catalog
sequer visvel em tempo de execuo. Isto porque necessrio alterar o modo do Web
Parts, e isto requer um pouco de cdigo:
60
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
protected void Page_Load(object sender, EventArgs e)
{
WebPartManager WebPart =
WebPartManager.GetCurrentWebPartManager(Page);
WebPart.DisplayMode =
WebPart.SupportedDisplayModes["Catalog"];
O cdigo acima declara uma varivel do tipo WebPartManager, que recebe por
referncia o WebPartManager da pgina. Em seguida, seu modo alterado para Catalog.
Rode a aplicao agora, note que os controles Catalog Zone e Page Catalog agora esto
visveis. Faa alguns testes, feche um controle de uma zona, veja que ele adicionado ao
Page Catalog. Para restaurar o controle na zona original, ou em outra zona, basta marc-
lo, escolher a zona em Add to e clicar em Add. Imediatamente o controle adicionado
zona selecionada.
61
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Mas o mais interessante a possibilidade de arrastar os controles entre as zonas.
Para isso, basta clicar sobre o ttulo do controle, arrast-lo at a zona desejada e soltar o
boto do mouse:
Outro modo o Design, onde voc tem todas as operaes que os modos
Browse e Catalog, porm o Catalog Zone e consequentemente o Page Catalog no
exibido. Para colocar a aplicao em mode de Design, basta mudar o parmetro da
propriedade SupportedDisplayModes:
62
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim WebPart As WebPartManager =
WebPartManager.GetCurrentWebPartManager(Page)
WebPart.DisplayMode =
WebPart.SupportedDisplayModes("Design")
End Sub
Modo Edit
O ltimo e mais completo modo que vamos estudar o Edit. Neste modo o
usurio tem total poder de personalizar o contedo das zonas. As funcionalidades so
muitas, por isso, vamos test-las em partes. Inicialmente adicione um controle EditorZone.
Este controle tambm um container para controles de edio, sendo eles
ApperanceEditorPart, que permite personalizar a aparncia, BehaviorEditorPart, que
admite personalizar o comportamento, LayoutEditorPart que aceita personalizar o
comportamento e finalmente, PropertyEditorPart, que comporta a personalizao de
propriedades.
ApperanceEditorPart
63
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Para que o modo de edio funcione preciso um pouco mais de configuraes e
cdigo. Inicialmente devemos ver se possvel a mudana de modo, em seguida
devemos mudar o modo:
64
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
WebPartManager1.Personalization.ToggleScope()
End If
Pronto, agora voc j pode executar a aplicao. Note que cada controle ganhou
um novo item de menu, Editar:
65
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Ao clicar em Editar, o controle, e apenas o controle onde clicamos Editar, entra
em modo de edio de Aparncia, atravs do controle AppearenceEditor. Altere
informaes como Ttulo e Altura, clique em Aplicar:
66
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Veja imediatamente o resultado no controle que colocamos em modo de edio:
BehaviorEditorPart
67
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Adicionei um link para imagem do cone do ttulo no exemplo. Veja o resultado:
68
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
LayoutEditorPart
69
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
A alterao de zona produz o mesmo efeito do CatalogZone e PageCatalogPar.
ASP.NET Ajax
Em nosso primeiro curso falamos de Web 2.0 e Ajax. Nesta seo vamos
recordar alguns conceitos. Para o usurio, Ajax significa uma experincia de uso da
aplicao melhor: o navegador dar respostas mais rpidas, estar ativo entre um post
back e outro e a tela estar sempre visvel. Em termos tcnicos, o Ajax significa
processamento mais veloz, menor utilizao de recursos e processamento assncrono.
Para entender mais, releia a parte de Ajax e Web 2.0 em nosso primeiro curso.
Do ponto de vista do desenvolvedor, existem dois grupos de recursos para
utilizao do Ajax no ASP.NET 3.5: o primeiro so os controles Ajax Extensions, que j
esto instalados no ambiente do VS 2008.O segundo grupo de recursos se chamam
ASP.NET AJAX Control Toolkit: trata-se de um conjunto de controles com funes mais
especficas que tem que ser instalado parte no VS.
AJAX Extensions
70
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Vamos ver qual a funo de cada controle:
71
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
UpdateProgress: Este controle permite dar um feedback ao usurio durante o
processamento da requisio. Normalmente, ao clicar em um boto, o usurio fica
sem saber realmente o que est acontecendo.
Vamos prtica. Crie uma nova aplicao ASP.NET sobre o Web Form criado,
adicione um controle ScriptManager e, em seguida, um controle UpdatePanel. Dentro do
UpdatePanel adicione um controle DropDownList e um controle Label.
72
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Adicione, porm fora do UpdatePanel, outro controle DropDownList e outro
controle Label. Defina os mesmos itens para este novo DropDownList, e tambm marque
o mesmo como AutoPostBack:
73
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Clique em ok e d um duplo clique sobre o DropDownList que se encontra dentro
do UpdatePanel. No manipulador de evento criado digite o seguinte cdigo:
Protected Sub DropDownList1_SelectedIndexChanged(ByVal
sender As Object, ByVal e As System.EventArgs)
System.Threading.Thread.Sleep(5000)
Label1.Text = DropDownList1.SelectedItem.Text
End Sub
74
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Protected Sub DropDownList2_SelectedIndexChanged(ByVal
sender As Object, ByVal e As System.EventArgs) Handles
DropDownList2.SelectedIndexChanged
System.Threading.Thread.Sleep(5000)
Label2.Text = DropDownList2.SelectedItem.Text
End Sub
75
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
UpdateProgress
76
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Como dito, voc pode colocar o que quiser dentro do UpdateProgress. No meu
exemplo eu simplesmente coloquei um label com um texto e uma fonte diferenciada. D
um duplo clique sobre o boto, o cdigo desta vez apenas causa um atraso simulando um
processamento:
77
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Rode a aplicao, clique no Button, observe que durante o processamento de
servidor, o contedo do UpdateProgress exibido, ao final do processamento ele se torna
invisvel:
78
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Timer
Nos exemplos anteriores, tnhamos sempre um post back causado por uma
interveno de um usurio, iniciando-se ento o processamento assncrono no servidor.
Porm, para resolver alguns problemas do dia-a-dia pode ser necessrio que este post
back seja causado automaticamente, durante determinado intervalo de tempo. Com esta
funo, temos o controle Timer.
Sua utilizao tambm simples: ele deve ser colocado no container do
UpdatePanel, e o cdigo de servidor a ser disparado deve ser atribudo ao seu evento
Tick. Vamos a um exemplo. Crie uma aplicao ASP.NET, adicione um controle
ScriptManager e um controle UpdatePanel na pgina. No Update Panel adicione um
controle Label e um Controle Timer, como na imagem abaixo:
79
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
D um duplo clique sobre o controle Timer para abrir o seu manipulador de evento
Tick, adicione o cdigo abaixo para que, a cada intervalo, o horrio seja atualizado no
controle Label:
Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e
As System.EventArgs) Handles Timer1.Tick
Label1.Text = DateTime.Now.ToString
End Sub
80
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Triggers
81
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
D um duplo clique sobre o controle Button para criar o manipulador de evento
OnClique, e adicione o seguinte cdigo para atualizar o controle label com a hora atual:
Protected Sub Button1_Click(ByVal sender As Object, ByVal
e As System.EventArgs) Handles Button1.Click
Label1.Text = DateTime.Now.ToString
End Sub
82
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Clique no boto de reticncias, no UpdatePanelTrigger Collection Editor clique em
Add, selecione AsyncrPostBackTrigger. Em ControlID selecione Button1 e em EventName
escolha Click:
83
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Rode a aplicao.
Vamos agora falar do ASP.NET AJAX Control Toolkit. O ASP.NET AJAX Control
Toolkit, embora no seja um produto oficial da Microsoft, suportado por esta. Voc pode
encontrar informaes, tutoriais, exemplos e downloads do Toolkit em
http://www.asp.net/ajax/ajaxcontroltoolkit/. Tambm pode achar o ToolKit na seo de
downloads do site. Existem diversas opes, baixe inicialmente AjaxControlToolkit-
Framework3.5SP1-NoSource.zip, que contm os exemplos de utilizao. Em outro
momento, voc pode querer baixar AjaxControlToolkit-Framework3.5SP1.zip, que possui
todo o pacote, inclusive com os cdigos fonte, ou ainda AjaxControlToolkit-
Framework3.5SP1-DllOnly.zip, que tem apenas o assembly com os controles, til para
voc empregar em suas aplicaes. Tudo a fazer colocar o assembly na pasta Bin da
aplicao, adicionar os controles sua barra de ferramentas e utiliz-los.
84
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Depois de baixar o arquivo AjaxControlToolkit-Framework3.5SP1-NoSource.zip,
descompacte-o em algum diretrio qualquer. No VS, acesse o menu File, opo Open
Web Site, selecione a opo File System, selecione a pasta que foi descompactada e
clique em Open:
aberta uma aplicao ASP.NET com mais uma dezena de pastas. Cada uma
possui um exemplo de utilizao de um controle do ToolKit:
85
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Abra a pasta Bin, veja que dentro temos o AjaxControlToolkit.dll, como dito acima.
Este assembly possui todos os controles, ele tudo que voc vai precisar em outras
aplicaes que utilize o ToolKit. Antes de rodar a aplicao, vamos ver como adicionar os
controles sua caixa de ferramentas. Com os controles na Toolbox fica mais fcil utiliz-
los, basta arrast-los para o formulrio. Clique com o boto direito sobre o Toolbox e
selecione Add tab:
86
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
No cursor aberto acima, digite AJAX Control Toolkit:
Clique novamente com o boto direito sobre a Tookbox, selecione Choose Items:
87
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Clique em Browse. Voc deve navegar at encontrar a pasta Bin de sua aplicao
ASP.NET que baixou e abriu no VS. Encontrando a pasta selecione AjaxControlToolkit.dll
e clique em Open. Voc est de volta janela anterior. Observe, rolando a barra de
rolagem, que todos os controles marcados em azul sero adicionados barra de
ferramentas:
88
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Clique em Ok. Uma grande quantidade de controles adicionada guia Ajax
Control Toolkit de sua barra de ferramentas:
89
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
90
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Lembre-se que adicionamos os controles a uma aplicao que j possui exemplos
de utilizao de todos os controles. Isto porque no vamos estudar neste curso a
utilizao de cada uma dessas dezenas de controles, o que seria invivel. O importante
que voc agora tem acesso a implementao de cada um deles e j sabe como adicionar
os controles barra de ferramentas em seus projetos. Vamos agora observar alguns dos
exemplos prontos.
Um dos controles mais interessantes, e que j encontramos diversos sites que
utilizam recurso semelhante, o autocomplete, que capaz de sugerir opes enquanto
digitamos o texto. Rode a aplicao, no menu lateral clique em AutoComplete. No campo
digite algumas palavras e veja que a pgina apresenta algumas sugestes. Neste
exemplo, as sugestes so puramente aleatrias, mas, na vida real, voc pode, por
exemplo, programar o controle para fazer uma busca em um banco de dados trazendo,
por exemplo, nome de clientes.
91
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Observe tambm que em cada pgina de exemplos existem instrues de como
usar o controle, suas principais propriedades e configuraes.
Para test-la, crie uma aplicao nova, em que no tenham ocorrido alteraes
de configurao. Vamos ver um exemplo prtico do uso da ferramenta para a uma
configurao que j utilizamos: autenticao por formulrios, por isso logo que criar a
aplicao verifique no web.config que a autenticao (elemento authentication) tem seu
modo definido como Windows. Ao clicar em ASP.NET Configurator a ferramenta aberta
em um navegador:
92
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
As opes de configurao so divididas em trs grupos: Segurana,
configurao do aplicativo e Configurao do Provedor. Clique em Segurana, veja que
em Usurios o configurador informa que a autenticao atual Windows. Clique em
Selecionar tipo de autenticao:
93
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Na prxima etapa, voc pode optar por da internet ou de uma rede local. Veja
que o texto explica que na opo da Internet ser utilizada autenticao para os
formulrios, por isso, selecione esta opo e clique em Concludo.
94
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Abra o web.config e veja que a autenticao mudou para Forms.
95
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Distribuindo sua Aplicao
Depois de muito trabalho, sua aplicao ficou pronta: hora de colocar para
funcionar. Distribuir uma aplicao Web bastante diferente do que distribuir uma
aplicao Windows Forms. Nesta ltima criado um instalador, que disseminado para
todos os usurios. Estes executam o instalador e esto prontos para operar o sistema.
Numa aplicao Web, a instalao e configurao so feita apenas no servidor, a partir
da ela est pronta para qualquer usurio que tiver um navegador e um acesso ao
servidor por uma rede local ou pela internet.
96
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Aplicaes Web so executadas em servidores de internet, que nada mais do
que uma aplicao na forma de servio, que escuta uma determinada porta, esperando
requisies. Quando estas requisies so recebidas, o servidor de internet as processa e
devolve o resultado do processamento a quem fez a requisio. Aplicaes ASP.NET
devem rodar em servidores de internet IIS, em um sistema Operacional Microsoft. Existem
projetos, como o Mono, que portam aplicaes .NET para plataformas no Microsoft,
porm nesta situao existe uma srie de limitaes e restries. Os clientes das
aplicaes podem ser qualquer equipamento, mesmo com sistemas operacionais ou
navegadores no ligados Microsoft.
A publicao da aplicao consiste de duas partes principais: a publicao em si,
quando so preparados os arquivos para que sejam hospedados em um ambiente de
produo, e posteriormente a preparao do servidor. A publicao consiste em gerar os
arquivos necessrios para que a aplicao seja executada no servidor, onde voc vai
copi-los para o servidor (atravs de um servio de FTP por exemplo), ou ainda gerar um
instalador que dever ser executado no servidor, podendo este ser capaz de fazer as
configuraes necessrias. A configurao do servidor consiste em tarefas como preparar
a Internet Information Service, o servidor de internet da Microsoft, instalar e configurar o
servidor de banco de dados entre outras.
97
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Uma informao importante antes de continuarmos. Durante o desenvolvimento
de uma aplicao, precisamos depurar a mesma, que o processo de avaliar o cdigo
em tempo de execuo, checar valor de variveis, adicionar pontos de parada no cdigo
etc. Para que a depurao seja possvel, o ASP.NET insere diversos smbolos dentro da
aplicao. Estes smbolos consomem recursos de processamento e memria, recursos
estes que no so poucos.
A configurao para incluso dos smbolos de depurao feita atravs do
web.config. Por padro, a depurao est desabilitada. Toda vez que executamos uma
aplicao clicando em Start Debugging (a seta verde) ou teclamos F5, o ASP.NET inicia a
aplicao em modo de depurao. Se o valor para a depurao estiver definida com o
valor padro no web.config, ou seja, false, voc ver esta caixa de dilogo:
98
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Isto um alerta que a depurao est desabilitada. Se deixarmos a primeira
opo marcada, o web.config ser alterado pelo VS e a aplicao ir rodar em modo de
depurao. Note que logo abaixo da opo existe um alerta de que esta opo no deve
ser utilizada em ambientes de produo. Na verdade, durante todo o ciclo de
desenvolvimento da aplicao voc vai precisar da depurao. Porm, quando a
aplicao for para o ambiente de produo, importante que ela seja desabilitada. Voc
tambm pode alterar manualmente o modo de depurao, basta para isto alterar o
web.config. Isto feito no elemento compilation, atributo debug:
Vamos agora continuar com a publicao de nossa aplicao. Clique com o boto
direito sobre o projeto e escolha a opo Publish Web Site:
99
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Voc ver a caixa de dilogo Publish Web Site:
100
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Clique no boto reticncias ao final do campo Target Location. Veja que o Visual
Studio lhe d diversas opes de publicao:
File System: simplesmente copia os arquivos para um diretrio no sistema de
arquivos;
Local IIS: publica a aplicao no IIS local, ou seja, em sua prpria mquina;
FTP Site: publica os arquivos em um servidor FTP, o que comumente utilizado
quando estamos hospedando em servidores comerciais de terceiros.
Remote Site: publica em um site Remoto.
Clique na Opo Local IIS, em seguida clique no boto Create New Virtual
Directory. Informe um alias, que o nome pelo qual a aplicao vai ser acessada pelo IIS,
101
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
e em Folder informe o local fsico onde voc quer que a aplicao seja publicada. Se a
pasta no existir, exibida uma mensagem perguntando se voc deseja criar a pasta.
Clique em Ok, confirme as prximas janelas at que voc veja na barra de status
do Visual Studio a mensagem: Publish succeeded:
Neste ponto voc deve ser capaz de acessar a publicao pelo IIS:
102
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Muitas coisas podem dar errado, porem o IIS uma aplicao fcil e intuitiva,
voc poder facilmente configur-lo. Para abrir o IIS acesse o painel de controle,
ferramentas administrativas, Internet Information Services. Localize o Web Site Ola
Mundo, clique com o boto direito em propriedades:
103
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Na guia, certifique-se de ter Default.aspx, que a pagina inicial de nossa
aplicao, como documento padro. Se ele no se encontra na lista, voc pode facilmente
adicion-lo. Isto necessrio para que o IIS tenha um ponto de referncia para iniciar a
aplicao quando ela acessada pelo alias.
104
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Na guia ASP.NET, certifique-se de estar definindo 2.0 em ASP.NET version. Voc
pode estar se perguntando: mas eu no fiz a aplicao em ASP.NET 3.5!. Certo, porm
o ASP.NET 3.5 roda sobre o servio do ASP.NET 2.0.
105
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Estes podem ser os problemas principais relacionados ao IIS. Aproveite e d uma
navegada nas demais opes de configurao de seu Web Site. Outro erro comum que
pode ocorrer o da imagem abaixo:
106
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Este erro pode ocorrer pelo fato de que o IIS no est configurado para trabalhar
com o ASP.NET. Normalmente ocorre se o IIS foi instalado depois do .NET. Para resolver
isto, basta executar o seguinte texto na prompt de comando do Windows:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe
/i
107
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Se voc manteve esta opo marcada durante a publicao e abrir a pgina
Default.aspx, j publicada, ver que o contedo da mesma exatamente igual ao seu
contedo em tempo de projeto. J o seu arquivo Default.vb ou Default.cs no est mais
disponvel na publicao: seu contedo foi compilado dentro de um assembly: abra a
pasta Bin dentro da publicao, o assembly um arquivo com nome estranho e extenso
DLL. Faa agora um teste. Crie uma nova publicao, porm agora desmarque a opo
Alow this precompiled site to be updatable. Quando a publicao estiver pronta, abra
novamente o arquivo Default.aspx. Veja que agora, em vez do contedo do arquivo, voc
tem uma mensagem:
This is a marker file generated by the precompilation tool, and
should not be deleted!
108
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
o cdigo de servidor. No modelo anterior era possvel alterar o layout da aplicao sem a
necessidade de pr-compilao. Neste modelo, preciso uma nova compilao.
Outra forma de publicar sua aplicao ASP.NET atravs do Copy Web Site, que
pode ser encontrado no Solution Explorer, no penltimo boto da barra de ferramentas,
que na imagem abaixo aparece assinalado em vermelho:
109
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Voc inicialmente deve clicar em Connect. As opes de conexo so
semelhantes opo de Publish Web Site:
110
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Depois de conectado, clique com o boto direito sobre a rea esquerda, e
selecione Copy Site to Remote. Os arquivos so ento publicados no local remoto. O
mais interessante desta ferramenta que, quando voc alterar sua aplicao, o utilitrio
mostra quais arquivos esto com verses diferentes da publicada remotamente.
111
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Note na imagem acima que Default.aspx est sinalizado com uma seta azul, e
seu Status changed, indicando que o arquivo foi modificado. A comandar Syncronize, o
VS envia para a publicao remota apenas os arquivos alterados.
Gerao de Instaladores
112
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Localize e expanda o n Other Project Types, em Templates, selecione Web
Setup Project e clique em ok:
113
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
O Visual Studio cria um projeto de instalao. Observe a barra de ferramentas do
Solution Explorer com o projeto de Instalao Selecionado:
114
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Na janela Add Project Outuput Group, selecione o projeto ASP.NET que deseja
instalar em Project, selecione Content Files e clique em Ok:
115
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Agora, com o projeto de instalao ainda selecionado no Solution Explorer,
localize na Janela de Propriedades a opo Localization. Encontre e altere para
portugus. Uma mensagem do VS alerta que em tempo de design o idioma continuar
sendo em ingls, j que a incluso dos pacotes de traduo ser includa na compilao.
116
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Observe que nesta janela voc deve preencher diversas informaes sobre a
aplicao, como produtor, autor, descrio etc. Para gerar o instalador, clique com o
boto direito sobre o projeto de instalao e selecione Build. Aguarde a mensagem Build
Succeed na barra de status e clique novamente com o boto direito sobre o projeto de
instalao. Desta vez selecione a opo Install:
117
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores
Para alterar as janelas do instalar, podendo incluir, excluir ou personalizar etapas,
utilize o User Interface Editor. O instalador fisicamente gerado dentro da pasta do
projeto.
118
Este material deve ser utilizado apenas como parmetro de estudo deste Programa. Os crditos deste contedo so dados aos seus respectivos autores