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).
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.
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"/>
< SPAN>configSections>
<dataConfiguration
defaultDatabase="MSDNMagazineConnectionString"/>
<connectionStrings>
<add name="MSDNMagazineConnectionString"
connectionString="Data Source=localhost;Initial Catalog=MSDNMagazine_Enquete;User ID=sa; Password="
providerName="System.Data.SqlClient"/>
< SPAN>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"/>< SPAN>assemblies>< SPAN>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"/>
< SPAN>namespaces>
< SPAN>pages>
<authentication mode="Windows"/>
< SPAN>system.web>
< SPAN>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ção< SPAN>title>
< SPAN>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" />
...