Revista MSDN Magazine Edição 32 - Criando um sistema de Enquetes em ASP.NET

Artigo Originalmente Publicado na MSDN Magazine Edição 32

 

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"/>

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">

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados