msdn32_capa.jpg

 

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

 

 

 

Criando um sistema de Enquetes em ASP.NET

Igor Raphael Alcantara

Este artigo discute

Este artigo usa as seguintes tecnologias

·        Enterprise Library;

·        Anti-Cross Site Scripting;

·        POO;

·        GDI;

·        Assistentes com “Wizard”;

·        User Controls;

 

Visual Studio .NET  2005, Visual Basic .NET.

 

Se você está começando no mundo do ASP.NET, provavelmente se deparou com a necessidade de desenvolver um sistema de enquetes onde um administrador cadastra perguntas e respostas e os usuários podem votar e ver o resultado da votação. Este artigo explica passo a passo como fazer uma enquete simples na plataforma .NET 2.0.

A enquete terá duas áreas distintas: uma administrativa e outra onde os usuários poderão votar. Para a área administrativa há a necessidade de se fazer o cadastro dos usuários que poderão cadastrar e editar as enquetes. Tudo, no entanto, começa com a montagem do banco de dados.

Iniciando o Projeto

Para construir este exemplo, vamos começar pelo banco de dados. Este artigo será baseado em um banco SQL Server 2000, mas você poderá fazê-lo no banco de dados de sua preferência. O banco de dados é muito simples e consiste em apenas 04 tabelas, conforme mostra o diagrama da Figura 1.

Crie as tabelas conforma ilustrado, sendo que os campos IDEnquete da tabela TB_Enquetes, IDResposta da tabela TB_Respostas e IDUsuario da tabela TB_Usuarios devem ser auto-numeráveis (atributo Identity no SQL Server).

 

image002.jpg

Figura 1. Diagrama do Banco de Dados

Construído o banco de dados, vamos criar o projeto. Para isso, abra o Visual Studio 2005, clique no menu File e escolha a opção New>Web Site. Na janela (Figura 2), escolha a opção ASP.NET Web Site.

 

image004.jpg

Figura 2. Criando uma nova aplicação ASP.NET

Na opção Location escolha File System e informe o diretório onde deseja salvar o seu projeto. Por fim, escolha a linguagem para o desenvolvimento dessa enquete (neste exemplo, usaremos o Visual Basic .NET) e por fim clique em OK.

O acesso a dados será feito através da Enterprise Library, que é um conjunto de classes e métodos que facilitam o acesso seguro ao banco de dados. O primeiro passo então é fazer o download da Enterprise Library no site da Microsoft (www.microsoft.com/downloads/details.aspx?FamilyID=5a14e870-406b-4f2a-b723-97ba84ae80b5) e instalá-lo no seu computador.

Um problema infelizmente comum em aplicações Web é a falta de preocupação em tratar as entradas do usuário, evitando que o mesmo insira scripts maliciosos em um formulário. Para evitar esse tipo de ataque, conhecido como Cross Site Script, vamos instalar o Microsoft Anti-Cross Site Scripting, que é uma biblioteca de métodos destinados a esta finalidade.

Você precisa baixar a instalação dessa biblioteca, através da área de downloads do site da Microsoft (www.microsoft.com/downloads/details.aspx?FamilyID=9a2b9c92-7ad9-496c-9a89-af08de2e5982), e instalá-lo em seu computador.

Após instalada a Enterprise Library e o Anti-Cross Site Scripting, precisamos adicionar algumas referências ao nosso projeto para que algumas importantes classes que vamos usar sejam visíveis em nossa aplicação. Para isso, clique no menu Website>Add Reference.

Uma janela com cinco abas será aberta para adicionar as referências. Clique em Browse e vá até a pasta onde a Enterprise Library foi instalada (normalmente C:\Arquivos de Programas\Microsoft Enterprise Library January 2006\bin), selecione os arquivos Microsoft.Pratices.EnterpriseLibrary.Common.dll e Microsoft.Pratices.EnterpriseLibrary.Data.dll e clique em OK.

Para adicionar a referência para o Anti-Cross Site Scripting, repita esses passos para o arquivo AntiXSSLibrary.dll localizado na pasta C:\Arquivos de Programas\Microsoft\Anti-Cross Site Scripting Library V1.0\Library\.NET 2.0.

Cumpridas essas etapas iniciais, vamos começar editando o arquivo web.config, conforme visto na Listagem 1. Note o elemento MSDNMagazineConnectionString contém a string de conexão do sistema.

 

Listagem 1. Arquivo web.config

xml version="1.0"?>

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

<configSections>

<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>

configSections>

  <dataConfiguration

    defaultDatabase="MSDNMagazineConnectionString"/>

  <connectionStrings>

            <add name="MSDNMagazineConnectionString"

         connectionString="Data Source=localhost;Initial Catalog=MSDNMagazine_Enquete;User ID=sa; Password="

         providerName="System.Data.SqlClient"/>

  connectionStrings>

<appSettings/>

<system.web>

  <compilation debug="false" strict="false" explicit="true">

  <assemblies>

  <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>assemblies>compilation>

  <pages>

  <namespaces>

  <clear/>

            <add namespace="System"/>

            <add namespace="System.Collections"/>

            <add namespace="System.Collections.Specialized"/>

            <add namespace="System.Configuration"/>

            <add namespace="System.Text"/>

            <add namespace="System.Text.RegularExpressions"/>

            <add namespace="System.Web"/>

            <add namespace="System.Web.Caching"/>

            <add namespace="System.Web.SessionState"/>

            <add namespace="System.Web.Security"/>

            <add namespace="System.Web.Profile"/>

            <add namespace="System.Web.UI"/>

            <add namespace="System.Web.UI.WebControls"/>

            <add namespace="System.Web.UI.WebControls.WebParts"/>

            <add namespace="System.Web.UI.HtmlControls"/>

  namespaces>

  pages>

<authentication mode="Windows"/>

system.web>

configuration>

Montando a área administrativa

Para a área administrativa, vamos começar montando uma Master Page que dirá como as demais páginas administrativas deverão parecer. Para isso, clique no meu Website>Add New Item. Na nova janela, escolha MasterPage, digite “MasterPageAdmin.master” no nome do arquivo e clique em Add. Na Master Page, localize o botão Source na parte inferior do Visual Studio e clique nele para ver o código HTML. Escreva então o código mostrado na Listagem 2.

 

Listagem 2. HTML da MasterPageAdmin

<%@ Master Language="VB" CodeFile="MasterPageAdmin.master.vb"

  Inherits="MasterPageAdmin" %>

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>MSDN Magazine - Enquetes - Administraçãotitle>

head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:hyperlink id="Enquete" runat="server"

          navigateurl="~/AdminEnquetes.aspx"

          text="Enquetes" />

        <asp:hyperlink id="Usuario" runat="server"

           navigateurl="~/AdminUsuarios.aspx"

           text="Usuários" />

        <asp:hyperlink id="Sair" runat="server"

           navigateurl="~/Sair.aspx" text="Sair" />

...

Quer ler esse conteúdo completo? Tenha acesso completo