 ASP .NET - Sistema para 
geração de pesquisas na web
  
ASP .NET - Sistema para 
geração de pesquisas na web
|  | No meu entendimento quanto mais simples e fácil de usar for uma tecnologia mais ela será fadada ao sucesso. Muitas vezes não precisamos de um canhão para matar uma mosca, um simples artefato já resolve o problema. | 
  A plataforma .NET conseguiu muitos avanços no 
  objetivo de ser uma ferramenta RAD (Rapid Application Development). 
  Houve uma avanço muito significativo na tecnologia ASP .NET que permite gerar 
  aplicações para web. A ASP.NET conseguiu trazer para o seu processo de 
  desenvolvimento quase os mesmos recursos disponíveis nas aplicações
  Windows Forms.(eu disse 
  quase...) 
  
| Rapid Application Development (RAD) ou Desenvolvimento Rápido de Aplicação (em português), é um modelo de processo de desenvolvimento de software iterativo e incremental que enfatiza um ciclo de desenvolvimento extremamente curto (entre 60 e 90 dias). O termo foi registrado por James Martin em 1991 e tem substituído gradativamente o termo de prototipação rápida que já foi muito utilizada no passado | 
Por que eu estou falando sobre esse assunto ?
Bem, porque eu pretendo mostrar como usar o ASP .NET para criar um sistema para gerar pesquisas na web usando os recursos dos assistentes de configuração da ASP .NET para mostrar que não é muito complicado criar um pequeno sistema para uso pessoal ou de uma pequena empresa.
  Nota:
   Para 
  aplicações comerciais, mesmo as de pequeno porte, sempre é recomendável adotar 
  um arquitetura de desenvolvimento em camadas levando em conta os requisitos do 
  sistema. Pense sempre adiante, nas possíveis alterações de requisitos que o 
  sistema com certeza terá, e adote boas práticas de programação de forma 
  que a manutenção e a escalabilidade da aplicação sejam feitas da forma mais 
  simples e segura possíveis.
 Para 
  aplicações comerciais, mesmo as de pequeno porte, sempre é recomendável adotar 
  um arquitetura de desenvolvimento em camadas levando em conta os requisitos do 
  sistema. Pense sempre adiante, nas possíveis alterações de requisitos que o 
  sistema com certeza terá, e adote boas práticas de programação de forma 
  que a manutenção e a escalabilidade da aplicação sejam feitas da forma mais 
  simples e segura possíveis.
  
Teremos dois motes principais:
Usar ferramentas que não vão ter nenhum custo;
Usar recursos que não necessitam uma grande especialização ou uma curva de aprendizado muito grande;
Para preencher estes dois requisitos iremos usar as seguintes ferramentas:
Visual Web Developer 2008 Express Edition - como ferramenta de desenvolvimento da aplicação web;
SQL Server 2005 Express Edition - como banco de dados
Na verdade eu estarei praticamente traduzindo e adaptando o artigo de Bipin Joshi - Developing a Survey Application, a quem cabem os méritos da criação do sistema. Então vamos ao trabalho...
Eu serei sempre direto e objetivo nas aplicações sem dar muitos detalhes que não sejam pertinentes a própria aplicação. Quando for necessário estarei indicando referências que você deverá consultar para saber mais sobre o assunto abordado.
Desenvolvendo uma aplicação para gerar pesquisas
Uma aplicação de pesquisa captura diversas peças de informação do usuário final e precisa ser flexível e fácil de usar. A aplicação consiste de questões e respostas às questões onde as respostas podem ser do tipo objetivo ou na forma de comentário.
Existem dois tipos de atores que podem interagir com a aplicação : O administrador que monta e cria as pesquisas e o usuário final que dá um retorno respondendo a pesquisa.
Vamos começar definindo os requisitos funcionais do sistema que deve ser o ponto de partida de qualquer sistema de software. Os requisitos funcionais especificam ações que um sistema deve ser capaz de executar, sem levar em consideração restrições físicas.
| Especificar um requisito implica em compreender exatamente o que deve ser feito e que se espera receber como resultado do produto final, no caso o software. Podemos classificar os requisitos em : 
 | 
De forma geral a aplicação que iremos criar deverá satisfazer os seguintes requisitos funcionais:
O administrador deverá poder criar uma definição de pesquisa no sistema;
Cada pesquisa consiste de um conjunto de questões. Deverá existir uma página web que permita incluir, modificar e excluir questões e suas opções de resposta;
Uma resposta a uma questão pode ser de 3 tipos : escolha simples, múltiplas escolha ou texto livre;
Dependendo do tipo de resposta será apresentando ao usuário final com radiobuttons , checkboxes ou textboxes multi-line para seleção da sua escolha;
Cada pesquisa possui um certo número de participantes. Deverá existir um página web para gerenciar os participantes e seus endereços de e-mails;
A partir do momento que uma pesquisa estiver pronta com seus participantes e suas questões e alternativas definidas, o administrador deverá ser capaz de enviar um convite para todos os participantes via e-mail.
Ao acessar a URL da pesquisa o participante deverá poder ver todas as questões da pesquisa e suas alternativas;
Ao submeter a pesquisa as respostas deverão ser salvas para a geração de relatórios;
O administrador deverá ser capaz de ver as estatísticas da pesquisa para cada tipo de objetivo;
As páginas do administrador deverão estar protegidas de acesso não autorizado;
Como já foi dito iremos desenvolver esta aplicação usando os recursos disponíveis da partir da ASP .NET 2.0, ADO .NET e SQL Server 2005 Express Edition onde iremos usar os seguintes recursos:
O controle SQL Data Source;
Os controles : GridView, DetailsView e DataList;
As características do MemberShip para segurança;
O controle TreeView para navegação;
Como enviar e-mails;
Os objetos da ADO .NET para executar consultas;
Criando a aplicação para gerar pesquisas
Para começar, abra o Visual Web Developer 2008 e crie um novo web site a partir do menu File-> New Web Site selecionando o template ASP .NET Web Site e informando o nome Pesquisas; Usaremos a linguagem Visual Basic.
| 
       | 
Após criar o web site clique com o botão direito sobre o nome do projeto e selecione a opção New Folder e informe o nome Admin para a pasta criada;
Todas as páginas do administrador serão armazenadas na pasta Admin. As páginas acessíveis a todos os demais usuários serão armazenadas na pasta raiz.
Criando o esquema do banco de dados
Todos os dados da aplicação serão armazenados no SQL Server 2005. Vamos então incluir um novo banco de dados no web site a partir do menu WebSite opção Add New Item;
A seguir selecione o template SQL Server DataBase e informe o nome Pesquisas.mdf e clique em Add;
| 
       | 
Será apresentada uma janela de diálogo solicitando que você confirme a geração do banco de dados na pasta App_Data; Clique Sim;
  
Após isso teremos o banco de dados criado na pasta App_Data do website.
Vamos definir as seguintes tabelas neste banco de dados:
| Nome da Tabela | Descrição | 
| Pesquisa | Armazena a definição da pesquisa na forma de: pesquisaID, titulo e descricao; | 
| Questoes | Contém uma lista de questões e especifica o tipo de resposta : Escolha Simples (S) , Múltipla Escolha (M) ou Texto (T) para cada questão; | 
| Alternativas | Contém as alternativas possíveis para as questões de escolha simples ou múltipla escolha; | 
| Respostas | Armazena as respostas das questões; | 
| Participantes | Contém uma lista de participantes para uma pesquisa com nome e endereço de e-mail; | 
Para criar uma tabela clique duas vezes sobre o banco de dados para abrir a janela DataBase Explorer; em seguida expanda os objetos e selecione o objeto Table e clique com o botão direito do mouse e selecione Add New Table;
A seguir digite os campos definidos para a tabela. No caso da tabela Pesquisa teremos os campos:
pesquisaID - int ;chave primária e definida como do tipo identity sendo assim auto-incremental;
titulo - nvarchar(50)
descricao - nvarchar(150)
| 
 | 
A seguir defina as tabelas : Alternativas, Participantes, Questoes e Respostas conforme os campos e os relacionamentos descritos na figura abaixo:
| 
       | 
Abrindo o DataBase Explorer você deve visualizar as tabelas e os campos do banco de dados Pesquisa.mdf conforme mostrado na figura abaixo:
| 
       | 
Encerramos aqui esta primeira parte, aguarde a continuação onde irei criar a Master Page e a seção do administrador e definir algumas páginas do projeto.
Veja a continuação deste artigo em : ASP .NET - Sistema para geração de pesquisas II
Referências:
José Carlos Macoratti