Artigo Clube Delphi 89 - Crie um fórum de discussão

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Neste artigo veremos uma forma simples de criar um site de fórum usando Delphi 2006, ASP.NET e Firebird.

Esse artigo faz parte da revista Clube Delphi Edição 89. Clique aqui para ler todos os artigos desta edição

Mão na Massa

Crie um fórum de discussão

Usando Delphi 2006, ASP.NET e Firebird

 

Neste artigo veremos uma forma simples de criar um site de fórum. Criaremos um espaço para discussão de assuntos e temas propostos pelos usuários do fórum. Começaremos fazendo a análise da estrutura de dados, após passaremos a criação do banco de dados. Utilizaremos o Firebird 1.5 e para desenvolvimento da aplicação o Delphi 2006 for ASP.NET.

Criaremos um fórum simples, com uma tela de listagem de áreas do fórum, e partindo-se da área selecionada, a listagem de todos os tópicos relacionados à mesma, e por fim o conteúdo de um tópico selecionado e a possibilidade dos usuários em responder ao tópico ou criar um novo.

Adotaremos neste exemplo uma regra de que a resposta e cadastro de tópicos, somente será realizada por usuários logados. Para fazer o controle de permissão de resposta e usuário logado, utilizaremos User Controls para rotinas de ocultar áreas de acesso restrito.

 

Nota: Devido ao pouco espaço disponível, alguns formulários não serão apresentados completamente. Faça o download dos fontes no endereço do artigo na página da DevMedia e acompanhe todas as funcionalidades do site de fórum.

 

Criando o banco de dados de exemplo

Para iniciarmos o exemplo, criaremos uma estrutura simplificada de tabelas e relacionamentos (Figura 1).

 

Figura 1. Diagrama ER da aplicação

 

Após definida a estrutura, proceda com a criação do arquivo de dados. Crie sua base com o nome de “database.fdb”. Com o banco de dados criado, passaremos agora a criação da aplicação no Delphi 2006, fique a vontade para utilizar também a versão do Delphi 2005 (o script do banco encontra-se para download).

 

Criando a aplicação

Crie uma nova ASP.NET Web Application for Delphi .NET através do menu File do Delphi 2006, e nomeia a mesma como “forum”. Utilizaremos neste artigo como servidor Web o Internet Information Services (IIS), se preferir poderá utilizar outros servidores compatíveis.

Pressione OK e aguarde para que o Delphi realize as configurações necessárias e crie a estrutura de páginas do projeto, onde você será direcionado à página WebForm1.aspx. Utilize o Project Manager do Delphi e renomeie a página para “index.aspx”. Passaremos agora a criar a conexão da aplicação ao banco de dados criado anteriormente.

 

Configurando o componente de acesso a dados

Para realizar o acesso ao banco de dados Firebird faremos uso do provider, que deverá ser instalado no Delphi. Faça o download do componente no endereço www.firebirdsql.org. Localize no Project Manager a Global.asax e com um duplo clique ative a mesma, onde passaremos a configurar o componente de acesso.

Adicione na Global.asax um FbConnection, alterando o nome do mesmo para “conexao” e a propriedade Modifers para Public. Ao selecionar a propriedade ConnectionString uma caixa de diálogo será exibida, onde configuraremos as informações de acesso ao banco de dados (Figura 2). Informe o Data Source ou servidor do banco de dados, como “localhost” se a base estiver na mesma máquina.

 

Figura 2. Configurando o componente de acesso a dados

 

Informe também o Database (caminho do banco). Se a senha do Firebird não foi alterada, teste sua conexão (Test) e finalize a configuração clicando em Accept. Acesse agora o código do arquivo utilizando a guia Global.pas na parte inferior da tela.

Localize entre o final da declaração de métodos e o início da declaração de implementation, e crie a variável “dados” do tipo TGlobal. Os demais componentes de consultas e parâmetros SQL serão criados em runtime, o que permite um maior controle das ações a serem executadas no decorrer da programação.

 

Customizando as páginas do fórum

Antes de retornarmos à index.aspx, criaremos uma unit para configurar códigos com consultas da aplicação. No menu File>New>Other>Delphi for .NET Projects na lista New Files, selecione Unit e confirme. Salve o projeto e atribua o nome de “UntGeral.pas” para a unit criada.

Criaremos na UntGeral uma procedure, que chamaremos no Page_Load de todas as páginas, chamada VerificaConexao, responsável por abrir o componente de conexão a base de dados. Antes de codificarmos a mesma precisamos criar uma referência à Global.asax, onde colocamos o componente de acesso. Através do menu File>Use unit localize Global e confirme. Atribua o código da Listagem 1 a UntGeral.

 

Listagem 1. Criando a VerificaConexao na UntGeral

procedure VerificaConexao;

begin

  if dados = nil then

  begin

    dados := TGlobal.Create;

    dados.conexao.Open;

  end;

end;

 

Na página principal (index), no Page_Load chamaremos a procedure recém criada (não esqueça de adicionar a unit UntGeral).

 

Controle de usuários na página

Criaremos um User Control, para adicionar o cabeçalho e apresentação da página, além de realizarmos o controle de permissões e usuários logados no site. No menu File>New>Other em New ASP.NET Files selecione ASP.NET User Control e confirme.

Altere o nome do User Control para “header.ascx”. Adicionaremos na tela uma tabela para melhor organizar a disposição dos componentes. Adicionaremos também ao User Control os componentes que utilizaremos para controle dos usuários. Adicione dois TextBox (“TxtUsuario” e ”TxtSenha”), e altere a propriedade TextMode do controle de senha para Password.

Adicione também um Button, altere o nome para “BtnLogin” e o Text para “Login”. Adicione três Labels alterando o nome do primeiro para “LblUsuario”, deixando a propriedade Text em branco e Visible para False.

No segundo, dê o nome de “LblUser” com o Text de “Usuário:” e no último, dê o nome de “LblSenha” com Text de “Senha:”. Organize os componentes adicionados ao User Control conforme a Figura 3.

 

Figura 3. Organização dos componentes no User Control

 

No BtnLogin, adicione o código da Listagem 2, que será responsável pela autenticação do usuário e senha no banco de dados. Adicione no uses os namespaces FirebirdSQL.Data.Firebird e System.Web.Security. Adicione também através do menu File>Use Unit  a referência à Global.asax.

 

Listagem 2. "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?