Busca Online:
 

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.

Ler RSS usando o Visual Studio.NET 2005



Data Publicação: 15/7/2006 15:00:56
Total de visualizações: 8274

comente
Diminuir o tamanho das letras Aumentar o tamanho das letras


Olá pessoal, meu nome é Mauricio Junior e estou disposto a mostrar como é fácil, prático e usual a leitura de arquivo RSS. Qualquer que seja o aplicativo consegue ler e mostrar em sua aplicação, site, intranet ou extranet. Para usar o leitor de RSS dentro de uma empresa, é necessário utilizar uma configuração diferente. Com esse artigo, você poderá manter seu site ou sistema interno atualizado com as notícias da atualidade.

O que é RSS ?

RSS é um formato de distribuição de informações pela internet como notícias. Ao usar o RSS você fica sabendo imediatamente quando uma informação do seu interesse é publicada, sem que você tenha que navegar até o site de notícias.  É um padrão mundial que funciona com a linguagem XML (Extensible Markup Language), tem o objetivo de compartilhar informações rapidamente com seus leitores. Esse recurso ou arquivo poderá ser lido por qualquer ferramenta que seja capaz de entender o formato XML do RSS.

História do RSS

Antes do RSS, existiam diversos formatos semelhantes para agregação de conteúdos, mas nenhum deles alcançou popularidade ou está em uso atualmente. A principal razão disso é que a maioria deles estavam direcionados a funcionar com apenas um serviço. Por exemplo, em 1997 a Microsoft criou o Channel Definition Format para um recurso chamado Active Channel do Internet Explorer 4.0, que ficou mais ou menos popular.

RDF Site Summary, a primeira versão do RSS foi criada por Dan Libby da Netscape em março de 1999 para uso no portal "My Netscape". Esta versão ficou conhecida como RSS 0.9. Em julho de 1999, respondendo a comentários e sugestões, Libby produziu um protótipo chamado RSS 0.91 (com RSS significando Rich Site Summary), que simplificou o formato.

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 (Extensible Markup Language) e segue as especificações da WEC para oXML, que por sua vez é descendente do SGML (Standard Generalized Markup Language).

  • SGML -> XML -> RDF -> RSS.

O RSS é amplamente utilizado pelas comunidades dos blogs para compartilhar as suas últimas novidades ou textos completos e até mesmo arquivos multimídia (veja PodCasting). No ano 2000, o uso do RSS difundiu-se para as maiores empresas de notícias como a Reuters, CNN, e a BBC. Estas empresas permitiam que outros websites incorporassem suas notícias e resumos através de vários acordos de uso. O RSS é usado agora para muitos propósitos, incluindo marketing, bug-reports, e qualquer outra atividade que envolva atualização ou publicação constante de conteúdos. Hoje em dia é comum encontrar feeds RSS nos maiores web sites e também em alguns pequenos.

Um programa conhecido como "feed reader" ou agregadores podem verificar páginas habilitadas para RSS para os seus usuários e informar atualizações. Estas aplicações são tipicamente construídas como programas independentes ou como extensões de navegadores ou programas de correio eletrônico. Estes programas estão disponíveis para vários sistemas operacionais, inclusive existem versões para web destes programas.

O termo Feed vem do verbo em inglês "alimentar". Na internet, os "RSS feeds" são listas de atualização de conteúdo de um determinado site.

 
Mostrei um pouco de teoria e história do RSS, agora passo diretamente para o código, a parte mais importante.


 

Requisitos:

 
- Conhecer um pouco de DataSet;

- Ter instalado o framework 2.0;

- Ter instalado o Visual Studio .NET 2005;

- Desenvolvido na linguagem C#.NET

 

Criar Projeto

 
Para criar um projeto usando o Visual Studio.NET 2005, abri a ferramenta, cliquei no menu File > New Web Site... Em seguida apareceu uma tela (Templates) para escolher o tipo do projeto. (Referência 1.1)

 


Referência: 1.1

 
Escolhi a linguagem C#.NET, localização File System, coloquei o nome de “LerRSS” e no final cliquei no botão OK. O projeto foi criado corretamente, com uma página “Default.aspx”, App_Data e Web.Config. (Referência 1.2)

 


Referência: 1.2

 
Dentro do arquivo “default.aspx”, coloquei o controle poderoso chamado “GridView” para listar todas as notícias do RSS. Cliquei e arrastei para dentro da página, isso na forma de Design. (Referência 1.3)

 


Referência: 1.3

 
Cliquei em cima da seta “>” ao lado direito, apareceu um assistente “Tasks” onde posso configurar várias propriedades, acrescentar colunas, definir estilos e muito mais. (Referência 1.4)

 

Referência: 1.4

 
Como na referência 1.4 mostra, existe um link chamado “Edit Columns”. Cliquei em cima do e apareceram algumas opções para escolher e atribuir o tipo de coluna que irá aparecer dentro do GridView. (Referência 1.5)

 

Referência: 1.5

 
No espaço ao lado direito, “Available fields” escolhi a opção “HyperLinkField”, em seguida, cliquei no botão “Add”; apareceu automaticamente do lado direito todas as propriedades do controle. Alterei as opções: (Referência 1.6)

 

 

- HeaderText = Title                // título da coluna

- Target = _blank                   // abrir o link como blank, ou seja, em outra tela.

- DataNavigateUrlFields = link // tag link do rss

- DataTextField = title            // tag title do rss

- ShowHeader = false            // esconder o titulo da coluna

 

Referência: 1.6

 
Cliquei no botão OK, o próximo passo foi escolher um formato padrão “Classic”. Não posso esquecer de que coloquei uma fonte padrão com o nome “Verdana” nas propriedades do GridView. (Referência 1.7)


Referência: 1.7

 
A referência 1.7 mostra em destaque, os círculos em auto Format e classic, ou seja, foram as opções que escolhi para o controle da tela. Passei para dentro da classe “default.aspx.cs”, coloquei os seguintes códigos. (Referência 1.8)

 

 

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            //preenchendgridview

            preencheGrid();

        }

    }

 

Referência: 1.8

Dentro do Page_Load, chamo um método “preencheGrid”. Esse será o método responsável para preencher o GridView. A referência 1.9, mostro o método.

 

 

    private void preencheGrid()

    {

        try

        {

           //criar o dataset

           DataSet dtSet = new DataSet();

           dtSet.ReadXml("http://msdn.microsoft.com/asp.net/rss.xml");

           this.gridView.DataSource = dtSet.Tables[2].DefaultView;

           this.gridView.DataBind();

        }

        catch (Exception ex)

        {

            throw ex;

        }

    }

 

Referência: 1.9

Criei um objeto do tipo DataSet, utilizei o método ReadXml passando o endereço do RSS da Microsoft entre aspas duplas. Adicionei o Grid que está com o nome ID igual a “gridView”. Atribui o DataSource do grid ao DataSet criado anteriormente passando a Table[2].DefaultView. A última linha, carreguei o grid com o método DataBind(). 

 

Resultado final (Referência 1.10)

 


Referência: 1.10

Lendo RSS através do proxy interno

Usando o sistema na internet da empresa, percebi que retornou um erro falando que não conseguiu ler sem a autenticação do proxy. Dessa forma, mudei algumas linhas de código para autenticar com o usuário e senha.

 
Veja o erro. (Referência 1.11)

 



Referência: 1.11

Com isso, fiz algumas alterações no método “preencheGrid()” e criei outro chamado GetStream que retorna um valor do tipo Stream. (Referência 1.12)

PreencheGrid()

 

private void preencheGrid()

    {

        try

        {

            //criando variavel proxy

            string proxy = "http://10.2.1.4:8080";

            DataSet dtSet = new DataSet();

 

            //carrega xml através de stream

            //se for fora do proxy, soh usar a linha comentada acima           

 

dtSet.ReadXml(GetStream("http://msdn.microsoft.com/asp.net/rss.xml", proxy));

            this.gridView.DataSource = dtSet.Tables[2].DefaultView;

            this.gridView.DataBind();

        }

        catch (Exception ex)

        {

            throw ex;

        }

    }

 

Referência: 1.12

Acrescentei a variável “proxy” do tipo “string”. Atribui o proxy de minha empresa, ou seja, o ip e porta que é utilizada para acessar a internet. A parte nova é carregar o xml através de stream. Utilizei o mesmo dtSet.ReadXml passando um novo método chamado GetStream.

GetStream é um método que recebe dois parâmetros do tipo string. Endereço do RSS e o endereço do proxy. (Referência 1.13)

 

//carrega xml através de stream

//se for fora do proxy, soh usar a linha comentada acima           

 

dtSet.ReadXml(GetStream("http://msdn.microsoft.com/asp.net/rss.xml", proxy));

 

Referência: 1.13

 

 

private System.IO.Stream GetStream(string p, string proxy)

    {

        //criar objeto request

        System.Net.WebRequest webReq;

        webReq = System.Net.WebRequest.Create(p);

 

        //criar objeto proxy

        System.Net.WebProxy webProxy = new WebProxy(proxy,true);

 

        //criar credenciais para utilizar o proxy. utilizar usuário

        //e senha para logar no proxy

        //essas credenciais podem ser colocadas no web.config para ficar melhor

        webProxy.Credentials = new System.Net.NetworkCredential("usuario", "senha", "dominio");

        webReq.Proxy = webProxy;

 

        //retornar stream

        return webReq.GetResponse().GetResponseStream();

 

    }

 

Referência: 1.14

A referência (1.14) mostro o método GetStream. O mesmo recebe dois tipos de parâmetros. A primeira linha, crio o objeto do tipo System.Net.WebRequest. Logo depois utilizo o Create passando o endereço do RSS que recebo na entrada do método. (Referência 1.15)

 


        //criar objeto request

        System.Net.WebRequest webReq;

        webReq = System.Net.WebRequest.Create(p);

 

Referência: 1.15

A (referência 1.16), crio um objeto proxy, passo o endereço do proxy. O true é afirmando que o proxy é de um endereço local, ou seja, da rede interna.

 

        //criar objeto proxy

        System.Net.WebProxy webProxy = new WebProxy(proxy,true);

 

 

Referência: 1.16

A (referência 1.17),  uso a variável “webProxy” para informar as credenciais, ou seja, usuário, senha e domínio da rede da empresa. No final, atribuo a variável “webReq” aos valores da variável “webProxy”.  O método precisa de um retorno do tipo Stream, com isso retorno webReq.GetResponse().GetResponseStream();.

 

//criar credenciais para utilizar o proxy, ou seja, utilizar usuário

//e senha para logar no proxy

//essas credenciais podem ser colocadas no web.config para ficar melhor

        webProxy.Credentials = new System.Net.NetworkCredential("usuario", "senha", "dominio");

        webReq.Proxy = webProxy;

 

        //retornar stream

        return webReq.GetResponse().GetResponseStream();

 

Referência: 1.17

Depois desse método criado para logar no proxy interno, fica fácil todo o funcionamento para leitura do RSS. Depois da alteração, o código da página “default.aspx.cs” fica dessa forma. (Referência 1.18).

 

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Net;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            //preenchendgridview

            preencheGrid();

        }

    }

 

    private void preencheGrid()

    {

        try

        {

            //criando variavel proxy

            string proxy = "http://10.2.1.4:8080";

            DataSet dtSet = new DataSet();

 

            //carrega xml através de stream

            //se for fora do proxy, soh usar a linha comentada acima

            dtSet.ReadXml(GetStream("http://msdn.microsoft.com/asp.net/rss.xml", proxy));

            this.gridView.DataSource = dtSet.Tables[2].DefaultView;

            this.gridView.DataBind();

        }

        catch (Exception ex)

        {

            throw ex;

        }

    }

 

    private System.IO.Stream GetStream(string p, string proxy)

    {

        //criar objeto request

        System.Net.WebRequest webReq;

        webReq = System.Net.WebRequest.Create(p);

 

        //criar objeto proxy

        System.Net.WebProxy webProxy = new WebProxy(proxy,true);

 

/criar credenciais para utilizar o proxy, ou seja, utilizar usuário

//e senha para logar no proxy

//essas credenciais podem ser colocadas no web.config para ficar melhor

        webProxy.Credentials = new System.Net.NetworkCredential("usuario", "senha", "dominio");

        webReq.Proxy = webProxy;

 

        //retornar stream

        return webReq.GetResponse().GetResponseStream();

 

    }

}

 

Referência: 1.18

Compilei a aplicação e iniciei o aplicativo para ler o RSS, o resultado foi. (Referência 1.19)

 


Referência: 1.19

Bom, fico por aqui espero ter ensinado de uma forma fácil e simples. Qualquer dúvida, favor entrar em contato pelo e-mail mauricio@aspneti.com.

Livros que publiquei:


 

Mauricio Junior
www.aspneti.com
www.ascompras.com

 

 



Total de visualizações: 8274
voltar   comente  subir


Comentários:


Comente (dê sua opinião): VOCÊ PRECISA LOGAR

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Criando Splash - Com Efeito
Evento BrasilDotNet 2008
Linguagem de programação: Nunca faça isso - C#.NET
CRIANDO MENU DINÂMICO COM C#.NET Passo 1
Vídeo: Framework de dados - parte 1
Vídeo Sobre Atributes e String Builder com Visual Studio .NET 2005
Gerando uma dll com sistema web
IsWholeNumber
Aplicativos para Dispositivos Móveis, Usando C#.NET com a ferramenta Visual Studio.NET e com Banco de Dados MySQL e SQL Server
Desenvolvendo com Atributos (Javascript) e StringBuilder
Vídeo mostrando como validar vários formulários
Estatística - Browser de Acesso
Microsoft abre sua loja de aplicativos para desenvolvedores de software mobile
Internet começa a ter ultra velocidade no Brasil
Trabalhando com Cookie (parte II)
Comunicação .NET e VB 6.0 – Parte I
Documento padrão de desenvolvimento
GridView Parte III
Vídeo - Mostrando um sistema com pocket pc
Tata Motors (Grupo TCS)
Como criptografar a string de conexão no Web.Config.
Padrões de nomenclaturas
Litl um computador web
Coalescing Operador C# ?? null
Não publicação
Trabalhando com o componente TabContainer
Novo TechNet Experience Online
Java J2EE – Primeiro Passo
Criando Números Aleatoriamente
Trabalhando com Session
Desktop Linux Ubuntu
Microsoft Preview Windows Phone 7 in NYC
Atendimento online
Skyfire - browser mobile
Convertendo String para Guid
Sobre o Autor
  [sumir] [aparecer]
 
Mauricio Junior Maurício Júnior
Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog:  blog.mauriciojunior.orgSite pessoal  www.mauriciojunior.org

Informaes Online
Usurios Online: 259
Artigos:  750
Vdeos:  61
PodCast's:  44
Frum:  3128
Empregos:  1385
Usurios Cadastrados: 6163
Publicidade
LAYERDEV




Vdeos Publicados
 

Duas dicas de internet - Google RealTime e OpenDNS

Desconfie sempre da internet e emails

Microsoft Office online no Safari funcionando

Inovação Visual Studio .NET 2010 - parte 4

Office Live online

TAB TAB na ferramenta Visual Studio .NET

Apresentação do IMC - Sistema de Controle de Peso Mobile

Inovação Visual Studio .NET 2010 - parte 3

Inovação Visual Studio .NET 2010 - parte 1

Download de vídeos com o Safari

Criando Chart - Novo componente integrado com o Visual Studio.NET 2010

Serviços: SAC e SMS integrado

Café com TI - Info sobre o Visual Studio.NET 2010 - WebConfig

Café com TI - Info sobre o Visual Studio.NET 2010

Café com TI - Vírus se passando por Correios

Café com TI - Novo jeito de mandar e-mail com vírus

Café com TI - Formatando todo tipo de String

Resolvido erro do Banco do Brasil no browser

Erro no site do Banco do Brasil com o Safari

Duas dicas do Snow Leopard

Incompatibilidade no Snow Leopard

E-mail com vírus, veja os detalhes

Café com TI - Continuando a configuração de Themes no site

Café com Ti - Banner Rotativo

Café com TI - Evento Eco Brasília

Café com TI - Themes dentro do ASPNETi.COM

Café com TI - Trabalhando com o iCal no Macbook

Café com TI - Deixando o rodapé do seu site fixo

Café com TI - Windows 7 sendo utilizado sem qualquer incompatibilidade

Café com Ti - ASP.NET - Explicando o componente ModalDialogExtender do Ajax Toolkit

Café com TI - Indexação de URL com ASP.NET

Café com TI - Configurando Mail para sua conta no HotMail
Enquete ASPNETi.COM
 Os podcasts tem sido proveitoso pra você?

Favor logar para votar
 
Publicidade Vertical
NETITC