msdn01_capa.JPG

Clique aqui para ler todos os artigos desta edição

 

Treinamento em ASP.NET (Parte I)

por Renato Haddad

 

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.

 

image002.gif

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.

 

image003.png

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.

 

image005.png

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”.

 

Referências:

http://www.asp.net

http://www.gotdotnet.com

http://www.codeproject.com

http://www.linhadecodigo.com.br