Clique aqui para instalar o Silverlight*
BrasilAlterar|Todos os sites da Microsoft
MSDN
|Developer Centers|Biblioteca|Downloads|Assinaturas MSDN
Pesquisa rápida


Treinamento em ASP.NET (Parte I)

por Renato Haddad

Para ler todas as matérias da MSDN Magazine, assine a revista no endereço www.neoficio.com.br/msdn

O objetivo deste treinamento é mostrar a você, leitor, como criar aplicações para Internet por meio dos controles mais utilizados no dia-a-dia de uma página. A linguagem utilizada será o Visual Basic .NET, mas nada impede que se utilize o C#, pois a diferença é somente uma questão de sintaxe. A única ferramenta que você precisa é o Visual Studio .NET, na qual é possível criar desde o banco de dados até Componentes, Classes e Web Services. O ASP.NET vem conquistando enorme espaço entre os desenvolvedores devido a sua facilidade de uso, manutenção e performance. O processamento das páginas ocorre no servidor, o que significa dizer que, quando o internauta navega nas páginas, estas são requisitadas ao servidor, que verifica a solicitação, realiza o Parse das páginas, monta um HTML e as envia para o navegador que as solicitou. E, já que mencionei HTML, não se preocupe, pois é possível desenvolver toda a aplicação sem usar nenhuma TAG de HTML. Tudo o que você precisa saber é a linguagem VB.NET ou a C#. Cabe ressaltar que o Framework é o responsável por todo esse processo (por isso a necessidade de tê-lo instalado no servidor), juntamente, é claro, com o Internet Information Server.

No Visual Studio, selecione o menu File / New Project e crie um projeto do tipo ASP.NET Web Application chamado MSDNMag. Clique no botão OK para criar automaticamente o site virtual dessa aplicação. Abra o Solution Explorer (CTRL + ALT + L) e note que já existe um arquivo chamado WebForm1.aspx. Como ele não nos interessa, exclua-o. Para adicionar um novo formulário, clique com o botão direito no projeto e selecione Add / Add Web Form chamado Listas.aspx.. Pressione F4 para exibir a janela de propriedades e configure a Page Layout = Flow Layout. No fundo do documento, digite o texto “Controle de Listas ASP.NET” e utilize a barra de ferramentas de formatação para melhorar a aparência do texto. Exiba a Toolbox (CTRL + ALT + X) e veja toda a lista de controles disponíveis. Monte uma página com os seguintes controles: um TextBox (ID = txtPrato), um ListBox (Multiline = True, ID = lstCardapio), cinco Buttons (btnIncluir, btnExcluir, btnLimpar, btnPesquisar e btnSelecionados) e um Label (ID = lblItems), conforme mostra a Figura 1.

Figura 1. Layout do formulário Listas

Para criar os códigos, dê um duplo clique em cada botão e digite os códigos relativos a eles (apresentados a seguir). A explicação dos códigos é mostrada nos próprios comentários das linhas.

Botão Incluir

Private Sub btnIncluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnIncluir.Click
    'verifica se o txtPrato contém algo digitado
    If txtPrato.Text <> "" Then
       'inclui o item na lista
       lstCardapio.Items.Add(txtPrato.Text.Trim())
    End If
    'apaga o campo
    txtPrato.Text = ""
End Sub

Botão Excluir

Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnExcluir.Click
    'Verifica se há um item selecionado
    If Me.lstCardapio.SelectedIndex >= 0 Then
       'Remove o item da lista
     lstCardapio.Items.RemoveAt(lstCardapio.SelectedIndex)
    End If
End Sub

Botão Limpar

Private Sub btnLimpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnLimpar.Click
    'limpa toda a lista
    lstCardapio.Items.Clear()
End Sub

Botão Pesquisar

Private Sub btnPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnPesquisar.Click
    'Desmarca qualquer item da lista
    lstCardapio.SelectedIndex = -1
    'pesquisa o item na lista
        lstCardapio.Items.FindByText(txtPrato.Text.Trim()).Selected = True
    'zera o campo
    txtPrato.Text = ""
End Sub

Botão Selecionados

Private Sub btnSelecionados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnSelecionados.Click
    'Apaga o conteúdo do Label
    lblItems.Text = ""
    'Define o objeto do tipo ListItem
    Dim objItem As ListItem
    'Monta um looping para varrer todos os itens existentes na ListBox lstCardapio
    For Each objItem In lstCardapio.Items
        'Se o item atual estiver selecionado
        If objItem.Selected Then
            'Captura o texto do item e exibe-o no Label lblItems. O operador += concatena os textos
            lblItems.Text += objItem.Text & " - "
        End If
    Next
End Sub

Salve o arquivo (CTRL + S) e exiba o Solution Explorer. No Solution Explorer, defina esse arquivo como Default. Para fazer isso, clique com o botão direito no Listas.aspx e selecione Set As Start Page. Para compilar o formulário, selecione o menu Build / Build Solution. Para executar, selecione o menu Debug / Start (F5). Outra opção muito utilizada consiste em pressionar CTRL + F5. Essa opção já salva, compila, abre o navegador e executa a aplicação. Veja o resultado da execução na Figura 2.

Figura 2. Execução do formulário Listas

Você deve estar se perguntando onde é que entra o VB.NET ou C#, ou seja, o código que criamos para cada botão. A resposta é simples: quando você compila a aplicação, é gerado um arquivo MSDNMag.DLL contendo todos os códigos criados. Quando você abre uma página ASP.NET, ela é processada no servidor, que por sua vez identifica o navegador que a solicitou, monta um HTML e a envia ao navegador. As vantagens desse processo completo são muitas, dentre as quais destaco:

o arquivo de layout (Listas.aspx) fica separado do arquivo de códigos (Listas.aspx.vb);

a propriedade intelectual (códigos) fica protegida, pois está dentro da DLL;

quem se encarrega de montar um HTML que seja suportado pelo navegador é o Framework, e não você. Portanto, o código criado é apenas um, mas pode haver vários produtos finais.

No Solution Explorer, adicione um novo formulário Add / Add Web Form chamado Carros.aspx e que contenha os seguintes controles: dois DropDown (ID = dropMarcas e dropModelos), um Calendar, um Button (Text = Verificar Dados e ID = btnVerificar) e um Label (lblCarro). Para o controle dropMarcas, configure a propriedade AutoPostBack = True. Isso é fundamental para que o formulário seja submetido ao servidor. Como esses controles são utilizados com freqüência, o funcionamento ocorre da seguinte forma: no momento em que o formulário é carregado, apenas na primeira vez é montado o DropMarcas. Assim que o internauta seleciona uma marca, é montado o DropModelos com os modelos específicos à marca selecionada. Em seguida, o internauta escolhe uma data no calendário e, quando pressiona o botão Verificar, os dados são capturados dos controles e seus conteúdos são exibidos no Label.

O DropMarcas será carregado assim que o formulário for aberto, portanto, digite o seguinte código no evento Page_Load:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles MyBase.Load
    'Verifica se é a primeira vez que o formulário está sendo carregado. Se sim, executa o código
    If Not Page.IsPostBack Then
        'Define um ArrayList com as opções
        Dim arrayMarca As New ArrayList
        With arrayMarca
            .Add("GM")
            .Add("Citroen")
            .Add("Volks")
            .Add("Ford")
            .Sort()
        End With
        'Define a origem do controles DropMarcas que é o array definido acima
        dropMarcas.DataSource = arrayMarca
        'O DataBind preenche o controle
        dropMarcas.DataBind()
        'Insere um item na primeira opção do DropMarcas
        dropMarcas.Items.Insert(0, New ListItem("marca...", ""))
    End If
End Sub

Dê um duplo clique no dropMarcas e digite o código apresentado abaixo. Como esse controle tem a propriedade AutoPostBack definida como True, assim que um item for selecionado, o formulário será enviado ao servidor, que montará o dropModelos de acordo com a marca selecionada.

Private Sub dropMarcas_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles dropMarcas.SelectedIndexChanged
    'Limpa o conteúdo do dropModelos
    dropModelos.Items.Clear()
    'Define um tabela que será criada apenas na memória
    Dim tabModelos As New DataTable
    'Define uma linha
    Dim newRow As DataRow
    'Define as colunas com os nomes e tipos
    tabModelos.Columns.Add(New DataColumn("codigo", GetType(String)))
    tabModelos.Columns.Add(New DataColumn("modelo", GetType(String)))
    'Verifica qual o item selecionado
    Select Case dropMarcas.SelectedItem.ToString()
        'Se for este fabricante, monta os dados
        Case "GM"
            'Cria uma nova linha
            newRow = tabModelos.NewRow()
            'Define os conteúdos
            newRow("codigo") = "10"
            newRow("modelo") = "Vectra"
            'Adiciona a linha à tabela
            tabModelos.Rows.Add(newRow)
        ...copie este bloco acima e crie outros modelos ...
        ...Para cada Case monte os devidos modelos de cada fabricante conforme o código anterior
        Case "Citroen"
        Case "Volks"
        Case "Ford"
    End Select
    'Informa a origem do dropModelos que é a tabela definida com os respectivos modelos
    dropModelos.DataSource = tabModelos
    'Define o campo que será exibido no dropModelos
    dropModelos.DataTextField = "modelo"
    'Define o campo que será armazenado para cada item
    dropModelos.DataValueField = "codigo"
    'Preenche o dropModelos
    dropModelos.DataBind()
End Sub

Em seguida, crie o código para o btnVerificar que exibe no lblDados o conteúdo.

Private Sub btnVerificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnVerificar.Click
        lblDados.Text = "Você selecionou a Marca: " + _
        dropMarcas.SelectedItem.Text + _
        ", o modelo: " + dropModelos.SelectedItem.Text + _
        ", código: " + dropModelos.SelectedItem.Value + _
        ", data de compra: " + Calendar1.SelectedDate.ToShortDateString

End Sub

Selecione o projeto no Solution Explorer, defina-o como Set As Start Page e pressione CTRL + F5 para salvá-lo, compilá-lo e executá-lo no navegador. Veja o resultado na Figura 3.

Figura 3.Execução do formulário Carros

Conclusões

O ASP.NET é atualmente o meio mais produtivo e rápido de se criar aplicações para Internet, além, é claro, de oferecer melhor performance e facilidade de manutenção. No próximo artigo, abordaremos outros controles e acesso a banco de dados. Aproveitem a leitura, e até lá! “No stress, think .NET”.

Renato Haddad (rehaddad@msn.com) é Microsoft Most Valuable Professional e ministra treinamentos e palestras sobre o .NET. É também autor de diversos livros e treinamentos em CD multimídia para ASP.NET, Visual Studio .NET 2003 e Aplicações Móveis para celulares e Pocket PC, tanto no Brasil como em outros países da América Latina.

Referências:

www.asp.net

www.gotdotnet.com

http://www.codeproject.com

http://www.linhadecodigo.com.br


 

©2017 Microsoft Corporation. Todos os direitos reservados. Entre em contato |Nota Legal |Marcas comerciais |Política de Privacidade
Microsoft