Você está na página 1de 8

Criar um novo projeto com o Visual Studio .

NET
Falar sofre os vrios tipos de projetos que so possveis de serem criados usando o
Visual Studio .NET, e falar sobre o nosso objeto de estudo, que no as aplicaes ASP.NET
Adicionando controles e escrevendo cdigo
Quando criamos uma aplicao ASP.NET exibido um novo formulrio no centro
da janela. Voc pode arrastar controles para um formulrio Web, assim como voc faz com
formulrios Windows. (Arrastar um boto e fazer um hello world!)
Para adicionar cdigo para responder a eventos do formulrio Web, d um duplo
clique no controle. A janela de cdigo ser exibida, e voc pode escrever um cdigo
relativo a este evento.
Falar sobre a diferena entre os Webserver Controls e HTML Controls
Dizer que os eventos ocorrem no servidor, e que o Estado preservado (View
State). Alm disso, eles geram cdigo HTML especfico para o Browser que est
visualizando a pgina.
Arquivos de um projeto Web
Ao criar um projeto de aplicao Web, ele cria vrios arquivos
Arquivo
Contedo
Global.asax
Contm os eventos globais de uma
aplicao Web
Web.config
Contm as configuraes que o servidor
Web ir utilizar quando estiver
executando esta aplicao.
WebForm1.aspx
A descrio Visual do Web Form
WebForm1.aspx.cs
O cdigo que responde a eventos do
Webform
PRTICA
Criar uma aplicao, e colocar um controle TextBox, um Label e um Boto.
Visualizar o formulrio no modo HTML. Verifique que para cada controle foi colocado um
atributo STYLE, determinando o posicionamento dos controles.
Execute o formulrio, digite algo na caixa de texto, clique no boto, e verifique que
o valor digitado preservado.
Visualize o cdigo HTML, e verifique que o posicionamento feito utilizando
DHTML.
Volte ao visual Studio, clique com o boto da direita no formulrio, e clique em
propriedades. Altere o Target Schema para IE 3,02
Execute o formulrio novamente, e veja o cdigo fonte. Verifique que o
posicionamento dos controles feito utilizando tabelas HTML.
Clique com o boto da direita no formulrio, e escolha Flow Layout ao invs de
Grid Layout. Adicione um boto ao formulrio. Verifique no HTML View que o boto no
possui um atributo STYLE.
Coloque um controle do tipo calendrio, execute o formulrio, e veja o HTML que
gerado pelo calendrio.

Falar sobre o ciclo de vida de uma aplicao Web


Uma aplicao Web funciona como uma aplicao Cliente/Servidor. A parte
executvel de uma aplicao Web mora no Servidor. O browser o nico software que
precisa estar instalado no cliente. Falar que os Web Forms so criados e destrudos cada vez
que um cliente faz uma requisio.
Falar sobre a ordem em que ocorrem os eventos de Servidor
Tipo
Eventos Post-Back
Eventos Cached

Eventos de Validao

Descrio
So eventos que fazem com que a
pgina seja enviada de volta ao servidor
para ser processada novamente
Estes eventos ficam salvos no View
State das pginas para serem
processados quando um evento de PostBack ocorrer
Estes eventos so manipulados sem que
efetuar Post-Back e sem ficar no Cache

PRTICA
Criar um WebForm, contendo um TextBox e um Button, e colocar um cdigo
Boto Clicado no boto, e um Texto Alterado no TextBox.
Executar o formulrio, e clicar no boto sem escrever na TextBox. Veremos que
apenas a mensagem do boto mostrada. Se voc escrever algo na caixa de texto, e depois
clicar no boto, voc ver que o evento TextChanged ocorre antes do ButtonClick
Podemos tambm colocar um RequiredFieldValidator, para impedir que a TextBox
seja deixada em branco ao clicar em submit
Mantendo o Estado
Como explicado anteriormente, os Web Forms so criados e destrudos a cada
solicitao de um cliente. Devido a esta caracterstica, as variveis no mantm seus
valores depois que uma pgina exibida. Para resolver este problema, o ASP.NET fornece
estas maneiras de preservar as variveis entre as requisies:
Nvel de Estado
Descrio
Query String
So utilizadas para passar informaes
entre os Requests e Responses, como
parte do endereo. Como so visveis ao
usurio, no devem conter informaes
sobre segurana.
Cookies
So pequenas informaes que so
armazenadas no Cliente. Porm, muitas
vezes os clientes podem bloquear
cookies
View State
O ASP.NET armazenadas os itens do
View State num campo oculto do
WebForm

Session State
Application State

Armazena itens que voc deseja que


sejam locais para a sesso atual
Variveis de aplicao armazenam itens
que ficam disponveis para toda a
aplicao

PRTICA
USANDO QUERY STRINGS - Voc pode criar um Link no modo HTML, como
este: <a href=WebForm2.aspx?Nome=Mario>Exemplo</a>
Para fazer a mesma coisa utilizando o cdigo Server-Side, utilize a diretiva Redirect
no objeto Response: Response.Redirect(WebForm2.aspx?Nome=Mario);
No WebForm2, podemos exibir o contedo da varivel, fazendo:
Response.Write(Request.QueryString[Nome])

USANDO COOKIES Podemos utilizar o seguinte cdigo, para verificarmos se o


Browser suporta Cookies, e ento criarmos um cookie com as preferncias do usurio:
if (!Page.IsPostBack)
{
if(Request.Broser.Cookies)
{
HttpCookie userPrefs = new HttpCookie(Prefs);
userPrefs.Value = English;
Response.Cookies.Add(userPrefs);
}
}

O seguinte cdigo verifica se existe o cookie, e retorna sua informao.


if (!Page.IsPostBack)
{
if (Request.Browser.Cookies)
{
if (Request.Cookies[Prefs] != null)
{
Session[Language] = Request.Cookies[Prefs].Value;
}
}
}
USANDO VIEWSTATE Ao armazenar itens no View State, eles so colocados
num campo oculto no Web Form. Devido a isso, os itens armazenados no View State
devem ser serializveis. Se voc deseja armazenar itens mais complexos no View State,
voc precisa convert-los de e para String.
Crie um formulrio com uma tabela e um boto. No cdigo do boto coloque:
ViewState.Add(ViewState.Count.ToString(), TextBox1.Text);

No PageLoad:
if (IsPostBack)
{
foreach(StateItem stateItem in ViewState.Values)
{
TableRow tr = new TableRow();
TableCell td = new TableCell();
td.Text = stateItem.Value.ToString();
tr.Cells.Add(td);
table1.Rows.Add(tr);
}
}

Validando os Dados
Os controles de validao verificam os dados fornecidos nos controles de Servidor
no cliente, antes de enviar a pgina (Post-Back) para o servidor. Isto importante pois a
maioria dos problemas de validao podem ser corrigidos sem a necessidade de roundtrips
no servidor.
Validador
Descrio
RequiredFieldValidator
Verifica se um controle possui dados
CompareValidator
Verifica se os dados de um item
corresponde com o de outro controle
RangeValidator
Verifica se os dados fornecidos esto
entre dois valores
RegularExpressionsValidator Verifica se os dados fornecidos esto
num formato especfico
CustomValidator
Verifica a validade de um item
utilizando um funo no lado do cliente
(JavaScript) ou no lado do servidor
ValidationSummary
Apresenta os erros de validao
ocorridos
PRATICA
Crie um WebForm com 4 TextBox e um boto. Coloque um RequiredFieldValidator
para o primeiro, um CompareValidator para o segundo, um RangeValidator para o terceiro,
e um RegularExpressionValidator para o quarto. Defina a mensagem de erro que voc quer
mostrar em cada um dos controles, e defina o texto de cada um dos controles (*). Faa o
teste sem o ValidatorSummary, e com o ValidatorSummary.
Ative a opo ShowMessage do ValidatorSummary, e faa o teste novamente.
Devemos combinar controles de validao, pois apenas o controle
RequiredFieldValidator valida se o usurio no forneceu dados no TextBox.
Se tiver tempo, voc pode criar um formulrio de autenticao e armazenar o
usurio em uma varivel de sesso.

Acessando Dados com ADO.NET


Quando voc for utilizar o ADO.NET, voc precisa importar o Namespace
System.Data. Se voc estiver trabalhando com dados do SQL Server 2000, voc deve
importar o System.Data.SqlClient.
Os componentes bsicos do ADO.NET so:
Componente
Descrio
Connection
Fornece a conectividade com a fonte de
dados
Command
Fornece acesso aos comando da base de
dados
DataReader
Fornece um Data Streaming da fonte de
dados
DataAdapter
Utiliza o Connection para fornecer um
link entre o DataSet e a fonte de dados.
O que um DataSet?
O DataSet o principal objeto do ADO.NET. Ele armazena as informaes em um
ambiente disconectado. Depois de estabeler uma conexo com a base de dados, voc pode
acessar seus dados. O DataSet armazena os dados em um ou mais objetos do tipo
DataTable. Cada DataTable pode ser populado com os dados provenientes de uma nica
fonte de dados.
PRATICA: Conectando com a fonte de dados
Podemos utilizar o Server Explorer para nos conectarmos com uma fonte de dados,
utilizando o Visual Studio. Abra o Server Explorer, clique na opo Connect to Database
Selecione o tipo de base de dados que voc deseja se conectar, especifique as propriedades
da conexo.
Clique com o boto da direita no objeto DataAdapter, e selecione a opo Generate
DataSet.
Para visualizarmos os dados do DataSet, podemos utilizar o controle DataGrid.
Arraste o DataGrid para o WebForm. Defina a opo DataSource com o nome do DataSet,
e o DataMember com o nome do DataTable do DataSet. Selecione a propriedade Columns
e defina as colunas que sero exibidas no DataSet.
Coloque no Page_Load do seu Webform o seguinte cdigo:
sqlDataAdapter.Fill(DataSet1);
DataGrid1.DataBind();

Controles List-Bound
So controles que se conectam a fonte de dados e mostram os dados provenientes da
fonte de dados. Exemplos de List-Bound Contols so: CheckBoxList, DataGrid, DataList,
DropDownList, ListBox, RadioButtonList, Repeater.
Para mostrar um DataSet em um controle List-Bound, voc deve definir as seguintes
propriedades do controle:
Propriedade
Descrio
DataSource
Especifica o DataSet contendo os dados

DataMember
DataTextField
DataValueField

Especifica o dataTable do DataSet


Especifica o campo do DataTable que
fornecer os dados que sero
apresentados na lista
Especifica o campo que ir fornecer o
valor do item selecionado da lista.

PRATICA
Crie um novo formulrio, coloque um DropDownList. Arraste os objetos de
Connection, crie um DataTable se necessrio. Utilize um DataSet ou crie um novo. Popule
o DropDownList com o DataSet, execute o formulrio. Visualize o cdigo fonte, e veja o
que est sendo mostrado no DataTextField e DataValueField.
PRATICA Um pouco mais de DataGrid
Crie um DataGrid da mesma maneira que fizemos anteriormente. Clique com o
boto da direita sobre o DataGrid, e selecione a opo Property Builder.
Selecione a aba Paging, e defina as seguintes opes:
Allow Paging: true
Page size: 5
Show navigation buttons: true
Position: Bottom
Mode: Page numbers
Numeric Buttons: 10
Crie uma procedure para o evento PageIndexChange, e adicione o seguinte cdigo:
Dg.CurrentPageIndex = e.NewPageIndex;
sqlDataAdapter.Fill(DataSet1);
dg.DataBind();
Build and Browse.
Clique com o boto da direita no DataGrid, e selcione a opo Property Builder
Selecione a aba Columns, e adicione uma coluna SELECT
Defina o Header Text como sendo Selecionar
Build and Browse.
Podemos at fazer um Update utilizando o DataSet e o DataAdapter, da seguinte
forma:
Crie um TextBox e um Button no mesmo formulrio. Crie um evento para o
SelectIndexChanged, e devina o Text da TextBox como sendo o
dataGrid.SelectedItem.Cels[xxx].Text

Coloque o seguinte cdigo no boto:


dataSet1.tabela.Rows[dataGrid.SelectedIndex][campo] =
TextBox1.Text;
dataAdapter.Update(dataSet1);

dataGrid.DataBind();

Mostrar como fazer um Update utilizando o objeto Command


Capturando Excees
Gere um erro, como, por exemplo, fazer um Dispose em algum objeto e depois
acessar alguma propriedade dele.
Como programadores, somos responsveis em antecipar a ocorrncia dessas
situaes dentro do cdigo, antes que elas ocorram.
O processo de lidar com essas situaes conhecido com exception handling (ou
manipulao de excees)
Para lidar com estes problemas, coloque blocos de manipulao de erros no seu
cdigo.
PRATICA Criando um servio de File Upload
Crie um novo WebForm, coloque um controle de File, um Button e um Label.
Coloque um Run as Server control no controle File. Escreva o seguindo cdigo para o
boto:
import System.IO;
string strFileName = fileUpload.PostedFile.FileName;
strFileName = Path.GetFileName(strFileName);
try
{
if (fileUpload.PostedFile.ContentLenght == 0)
{
throw FileNotFoundException();
}
fileUpload.PostedFile.SaveAs(Request.MapPath(Request.ApplicationPa
th)) + \\ + strFileName;
label1.Text = Arquivo enviado: + strFileName;
}
catch (Exception ex)
{
label1.Text = Ocorreu um erro:<br> + ex.Message;
}
finally
{
fileUpload.Value = ;
}

Podemos ainda melhorar este cdigo, capturando mais tipos de excees:


catch (IOException ex)
{
label1.Text = O arquivo no existe;
}
catch (System.Net.WebException ex)

{
label1.Text = Ocorreu um erro de Internet ao enviar o
arquivo.;
}
catch (Exception ex)
{
label1.Text = Ocorreu um erro:<br> + ex.Message;
}

Como os blocos de Catch so executados em seqncia, voc precisa coloc-los em


ordem, das excees mais especificas para as mais genricas.
PRATICA: Enviando e-mails
imports System.Web.Mail;
MailMessage msg = new MailMessage();
msg.From = someone@microsoft.com;
msg.To = admin@contoso.com;
msg.Subject = Assunto do e-mail;
msg.Body = Este o corpo do e-mail;
SmtpMail.Send(msg);
Se tiver conexo com a Internet, deixar o pessoal aprimorar o exemplo, colocando
TextBoxes para os campos DE, PARA, ASSUNTO e CORPO
Criando um XML Web Service
XML Web Services so componentes desisgnados a interagir diretamente com a
aplicao atravs da Internet. Como resultado disso, os Web Services no possuem
Interface.
PRATICA: Criando e consumindo um Web Service
Crie uma nova soluo, e adicione um novo projeto de Web Service. O Visual
Studio j ir criar as pastas e os arquivos necessrios para execuo do Web Service.
Descomente o mtodo contendo o Hello World. Build and Browse.
Podemos arrastar os objetos de conexo, criarmos um DataSet, e um Webmethod
para retornar este DataSet. Visualize o Webservice com Build and Browse.
Consuma o Webservice na aplicao Web, Coloque um DataGrid, e popule o
DataGrid com o DataSet programaticamente.

Você também pode gostar