ASP.NET 2.0 - Criando um leitor para consumir RSS
Este artigo mostra como você pode fazer um leitor de RSS usando ASP.NET de maneira simples e sem a necessidade de escrever muito código.
O RSS (
Really Simple Syndication) fornece uma maneira conveniente organizar informação a partir de uma variedade de fontes distintas. O RSS utiliza um formato padronizado de tratar a informação baseado em XML.Usando a tecnologia RSS podemos acessar os "
feeds" RSS ou fontes RSS que oferecem conteúdo de informação que é entregue como um arquivo XML. Portanto um RSS Feed nada mais é que um documento XML fornecido e atualizado por algum site na web com conteúdo dinâmico que pode ser consumido por aplicações clientes.
Como Funciona ? No arquivo RSS são incluídas informações como título, página (endereço exato de onde há algo novo), descrição da alteração, data, autor, etc, de todas as últimas atualizações do site ao qual ele está agregado. De poucos em poucos minutos o arquivo RSS é atualizado mostrando as alterações recentes. O RSS é um formato padronizado mundialmente, que funciona sob a linguagem XML (Extensible Markup Language), e é usado para compartilhar conteúdo Web. Ele permite, por exemplo, que o administrador de um site de notícias crie um arquivo XML com as últimas manchetes publicadas, a fim de compartilhá-las mais rapidamente com seus leitores. Este arquivo poderá ser lido através de qualquer ferramenta que seja capaz de entender o formato XML do RSS.
O RSS (Really Simple Syndication) é um descendente do RDF (Resource Description Framework) e segue as definições da W3C para o RDF, que é descendente do XML (fonte WiKipédia - http://pt.wikipedia.org/wiki/RSS) |
Nosso leitor RSS fará o papel do leitor cliente e acessará os
feeds RSS. Existem aplicações prontas que buscam esta informação de na web no nosso exemplo iremos usar alguns feeds RSS previamente cadastrados em um banco de dados Access.Como já foi dito os feeds são disponibilizados por sites na web. O site da Microsoft msdn.com é um exemplo que disponibiliza diversos feeds para serem consumidos. Dê uma olhada no link: http://msdn.microsoft.com/aboutmsdn/rss/.
Veja também o artigo
: VB.NET - Gerando RSS para compartilhar informações.Abaixo temos alguns feeds:disponbilizados pelo link acima:
A seguir vamos criar um web site ASP.NET usando o Visual Web Developer Express Edition para mostrar como podemos consumir feeds RSS.
- Abra o seu VWD e crie um novo web site a partir do menu File-> New Web Site...
- Na janela New Web Site selecione ASP.NET Web Site , a linguagem Visual Basic e dê o seguinte nome ao projeto: leitorRSS
Usando SGBD qualquer , eu vou usar o Access, crie um banco de dados chamado rss.mdb e a seguir defina uma tabela chamada feeds com a seguinte estrutura:
O banco de dados rss.mdb exibindo a tabela feeds |
a
A seguir vamos preencher esta tabela com os feeds oferecidos pela Microsoft. O resultado deverá ser o seguinte :
Agora vamos incluir esta base de dados no diretório App_Data da aplicação. Clique com o botão direito do mouse sobre o diretório e selecione a opção Add Existing Item, e selecione o banco de dados rss.mdb criado.
Selecione a página padrão Default.aspx e inclua um controle DropDownList com ID=ddlRSS , e um componente GridView com ID=gdvRSS
Agora defina a propriedade AutoPostBack do controle DropDownList como true pois eu vou querer que ocorra um postback sempre que um item no DropDownList for alterado de maneira que o controle GridView possa exibir os RSS relacionados.
Vamos configurar o controle DropDownList para exibir os dados da tabela RSS. Clique na smart tag do controle e selecione a opção Choose Data Source...
Como não existe um fonte de dados configurada clique na opção <New data source...>
Na próxima janela selecione a opção - Access DataBase - pois estamos usando um banco de dados Access. (Poderíamos estar usando outro banco de dados ou um arquivo XML)
A seguir clique no botão - Browse... - e no diretório App_Data , selecione o banco de dados rss.mdb e clique no botão OK.
N próxima janela basta clicar no botão Next >. Na janela - Configure the Select Statement - escolha os campos que vamos extrair da tabela feeds conforme figura abaixo e clique no botão Next>.
Ao clicar no botão Finish será exibida a última tela para configuração. Nela devemos informar o campo que será exibido pelo controle e o nome do campo que será selecionado. Para encerrar clique no botão OK.
Pronto ! Já temos nossa base de dados vinculado ao controle DropDownList de forma que quando o formulário for carregado ele será preenchido com os dados da tabela feeds.
Vamos configurar o controle GridView. Selecione o controle clique na smart tag. Selecione Auto Format e escolha uma formatação para o GridView.
Agora clique na opção Edit Columns e efetue a seguinte configuração:
- Em Available Fields selecione
HiperLinkField e clique no botão Add;
- Informe a seguir as seguintes propriedades para o campo selecionado:
HeaderText = Titulo
ShowHeader = False
Target = _blank
DataNavigateUrlField = link
DataTextField = title
Ao terminar esta etapa o seu projeto deverá estar apresentando o seguinte aspecto:
Agora inclua o seguinte código na página Default.aspx:
Imports System.dataPartial Class _Default
Inherits
System.Web.UI.Page Private Sub preenchedados(ByVal rss As String)
Try ds.ReadXml(rss) gdvRSS.DataSource = ds.Tables(2).DefaultView gdvRSS.DataBind() Catch ex As Exception Throw ex End Try End SubProtected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlRSS.SelectedIndexChanged preenchedados(ddlRSS.SelectedValue) End Sub End Class |
O código acima possui a rotina preencheDados que será chamada toda vez que houver uma seleção pelo usuário no controle DropDownList. Quem me garante este comportamento é o evento SelectedIndexChanged e a propriedade AutoPostBack do controle definida como true.
O RSS é apenas um arquivo XML com tags definidas que pode ser lido de forma a compartilhar informação. Abaixo temos um exemplo de um arquivo RSS padrão:
Dando uma olhada nas tags principais temos:
No nosso exemplo estaremos tratando somente as tags : <title> e <link> |
Na rotina efetuamos as seguintes tarefas:
Criamos um DataSet
Usando a propriedade ReadXml do dataset e o parâmetro rss (este parâmetro representa o campo link no formato: http://msdn.microsoft.com/xxx.xml) obtemos as tabelas do feed RSS
A seguir atribuímos a tabela item (tables(2)) a propriedade DataSource do GridView
Exibimos o link correspondente ao feed RSS
Nota: O dataSet possui 6 tabelas: rss, channel, item, category, attribute e guid. Estamos usando a terceira tabela : item.
Executando o projeto (Tecle F5) usando o servidor web embutido no VWD iremos obter o seguinte resultado para a seleção Visual Basic:
Ao clicar em um link exibido será aberta uma nova janela com exibição do assunto correspondente.
Pegue o projeto completo aqui: leitorRSS.zip
Eu sei é apenas ASP.NET, mas eu gosto..