RGIN: 0cm 0cm 0pt; TEXT-INDENT: 1cm; LINE-HEIGHT: normal">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 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. Validando usuário e senha procedure TWebUserControl1.BtnLogin_Click( sender: System.Object; e: System.EventArgs); var FbCon: FbCommand; FbRead: FbDataReader; begin try FbCon := FbCommand.Create( 'select usuarios.nome, usuarios.posts, '+
Artigo Clube Delphi 89 - Crie um fórum de discussão
Neste artigo veremos uma forma simples de criar um site de fórum usando Delphi 2006, ASP.NET e Firebird.
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.