DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Criando um Chat - .Net Magazine 74

Este artigo mostra como criar um Web Chat usando ASP.NET AJAX, usando ainda recursos específicos do SQL Server, como suporte nativo a consultas resultantes em formato XML.





.net Magazine 74

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da .net Magazine 74


Criando um Chat

Utilize na prática recursos avançados de AJAX e suporte à XML no SQL Server

 

Uma forma muito simples para representação de dados estruturados, organizados de forma hierárquica, é a XML (eXtensible Markup Language). Muito parecido com o HTML, permite criar nossas próprias TAGs podendo assim representar diversas tabelas de um banco de dados relacional. Existem inúmeras formas para se trabalhar com XML. Grande parte dos objetos no .NET Framework que trabalham com listas costumam dar um ótimo suporte à XML, por exemplo, para manipulação temos objetos existentes no ADO.NET e para exibição os Web Controls, como GridView, DataList, DropDownList, todos estes permitem que façamos referência direta em seu DataSource a um objeto XML e ele se encarregará de exibir dados em tela.

Se pararmos para pensar em questão de banco de dados, o SQL Server desde sua versão 2000 já oferece ótimos recursos para extrair dados diretos no formato XML. Através do comando FOR XML pode-se montar SELECTs e recebê-los diretamente em objetos XML em sua aplicação. No Chat a ser construído, desenvolveremos uma classe de dados que, fazendo uso da biblioteca SQLXML, pode facilmente pegar o retorno do banco XML e atribuí-lo a um objeto do tipo XmlDocument. Feito isso, fica muito simples manusearmos os dados, afinal são muitos os recursos disponíveis para este objeto. Com ele é possível localizar nós fazendo uso do XPath (para pesquisas em XML), montar um loop ForEach, ou ainda navegar nó a nó até o destino desejado. Além disso, temos ainda o suporte a Linq to XML.

Além da XML, o uso de AJAX vem crescendo cada dia mais. A maior percepção que o usuário final tem de um site que usa AJAX é a ausência das recargas de tela quando se executa uma ação no servidor, como um clique de um botão que efetua uma consulta ao banco de dados. Agora imagine um Chat, que é uma aplicação crítica e sem dúvida um exemplo perfeito para uso do AJAX. Já pensou recarregar toda a tela para cada mensagem enviada ou recebida? Se você está conversando com muitas pessoas de uma única vez, sua tela pareceria a “luz de uma boate de dança”, ficaria piscando intermitentemente sem hora para parar.

Com AJAX podemos fazer uso do seu principal controle, o UpdatePanel, que permite facilmente realizar uma operação no servidor como uma consulta ao banco de dados sem a realização do famoso submit, que apaga toda a tela para execução da ação e então retorna as informações solicitadas pelo usuário. Para quem já trabalha ou trabalhou com AJAX, já pode ser sofrido do mal dos múltiplos UpdatePanels, onde temos uma mesma página com muitos UpdatePanels, distribuídos alguns dentro de outros ou ainda paralelos, o que exige uma atenção redobrada para que um UpdatePanel não acione um outro que tenha parte da tela que não deveria sofrer ação naquele exato momento. Nosso exemplo será um bom exemplo de como se trabalhar com múltiplos UpdatePanels.

 

                Nota: O UpdatePanel é um dos principais personagens do ASP.NET AJAX, é ele quem faz o trabalho de carregar apenas parte da página e evitar o seu refresh completo.

 

Começando pelo banco de dados

Vamos à prática. Com o SQL Server aberto, crie um banco de dados vazio e dê a ele o nome de ChatAJAX, conforme Figura 1.

 

Figura 1. Criando o banco de dados ChatAJAX

 

Criado o banco, vamos agora criar as duas únicas tabelas necessárias para que o Chat possa funcionar corretamente. Geralmente para podermos falar com alguém na Web, seja um Chat Web, programas como MSN, GTalk, fóruns, entre muitos outros, na maioria das vezes, existe a necessidade de uma breve autenticação, e quando não, uma identificação para que as pessoas saibam com quem estão falando. Pensando nisto, teremos uma tabela de usuários, onde poderemos ter controle de todos aqueles que estão participando do Chat para uma possível conversa. Conforme Figura 2, repare o quão simples será a tabela de usuários, teremos um código identificador UsuarioID (PrimaryKey/Identity), o Login, a Senha, um campo para sabermos se aquele usuário está disponível para dialogar com outro, chamado de Logado e mais um campo com a data/hora do último login efetuado pelo usuário. "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Marco Antonio Correa Alves
É Consultor de Projetos voltados a Tecnologia da Informação, Arquiteto de Sistemas, SCM e Coordenador de Projetos Aplicando Scrum de um grande grupo internacional de varejo/viagens em diversos setores totalmente Web, trabalha com desenvolvimento de softwares há mais de 10 anos, Bacharel formado pela...
O que você achou deste post?

    8 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Joaquim Simão
Guinter, muita fera essa artigo me ajudou bastante em um projeto obrigado.
[há +1 ano] - Responder

 

Infnet Serviços E Treinamentos De Informatica Ltda
Como eu faco para referenciar essa DLL através do Visual Studio 2010? Não a encontrei em Add References.
[há +1 ano] - Responder

 

Luiz Agnelo C. Maia
Instala o Ajax Control Tool Kit em sua máquina e coloca as DLLs em sue toolbox.
[há +1 ano] - Responder
 

Joaquim Simão
Luiz você deve baixar e instalar aí vao o link

ese é o link para você instalar na sua máquina a DLL do SQLXML.
[há +1 ano] - Responder
 

Nilson Aparecido Teodoro
Luiz, tive o mesmo problema que o seu, com a instalação do sqlxml.msi o seu problema foi resolvido?, o meu ainda continua, rsrs! Aproveito para parabénizar o artigo!
[há +1 ano] - Responder

 

Nilson Aparecido Teodoro
Luiz, tive o mesmo problema que o seu, com a instalação do sqlxml.msi o seu problema foi resolvido?, o meu ainda continua, rsrs! Aproveito para parabénizar o artigo!
[há +1 ano] - Responder

 

[autor] Marco Antonio Correa Alves
Olá Nilson, tudo bem?

Você precisa instalar o SQL XML e referenciá-lo dentro do seu projeto, para isso baixe o instalador podendo ser no link abaixo:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=51d4a154-8e23-47d2-a033-764259cfb53b

Após instalar, localize a DLL dentro do diretório de instalação que por padrão costuma ser criada em: C:\Program Files\SQLXML 3.0\bin\Microsoft.Data.SqlXml.dll

Pronto, agora é só adicionar em seu projeto! :)

Abs e Bom Projeto!

Marco Antonio Correa Alves
[há +1 ano] - Responder
 

Nilson Aparecido Teodoro
Examtamente Marco!,
muito obrigado!
já até implementei, muito legal mesmo!
[há +1 ano] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03