msdn07_capa.JPG

Clique aqui para ler todos os artigos desta edição

 

Entendendo sobre Blog e RSS Feed

por Aaron Skonnard

 

Em primeiro lugar, "blog" é a forma abreviada de Web log. Consiste em um meio físico no qual um autor escreve um Web site em estilo jornalístico com provisões para que os leitores respondam. Esses Web logs estão se tornando bastantes valiosos na comunidade de software para o compartilhamento de idéias. Para saber mais sobre blogs, consulte a MSDN® em http://blogs.msdn.com.

A maneira mais fácil de criar seu próprio Web log é acessar um site como o blogger.com e se registrar como um novo usuário. Ele fornece uma interface Web para a criação de um Web log personalizado, que você pode usar imediatamente. Existem muitos outros sites, como o blogging.com, que oferecem suporte a recursos de Web log.

Se quiser mais controle sobre a infra-estrutura de blogs ou quiser hospedar o blog em seu próprio servidor, você também poderá usar um dos diversos aplicativos de blog disponíveis atualmente, tais como Radio Userland, Manila e Movable Type — apenas para citar alguns dos produtos comerciais mais populares. Também existem diversos aplicativos de blog em .NET gratuitos, que são fáceis de usar. Os mais populares são .Text e dasBlog (www.dasblog.net/). Para instalá-los, basta fazer o download dos bits e seguir as instruções. O seu blog estará a pleno vapor em apenas alguns minutos.

Do ponto de vista da funcionalidade, ambos os aplicativos baseados em .NET se equivalem. No entanto, a principal diferença é que .Text (http://scottwater.com/Blog/) requer um banco de dados, seja SQL Server™ ou MSDE, enquanto dasBlog armazena tudo em arquivos XML (ele é baseado no framework do BlogX original criado por alguns desenvolvedores Microsoft). Outra diferença é que o .Text é capaz de hospedar vários blogs em uma única instalação (por exemplo, é o que orienta (drives) os http://blogs.msdn.com atuais), enquanto dasBlog requer várias instalações. dasBlog possui um recurso que realmente se destaca, denominado "Mail to Weblog", que lhe permite postar novas entradas por e-mail.

O novo site MSDN blogging e os PDC Bloggers (http://pdcbloggers.net/) constituem ambos um bom ponto de partida para localizar Web logs sobre qualquer tópico de desenvolvimento. Simplesmente navegue até um desses sites e leia as provisões (feeds) nele incluídas. Esses feeds lhe indicarão muitos Web logs individuais e, com o passar do tempo, você aprenderá naturalmente a selecionar os que considera mais interessantes. A partir daí, você poderá se inscrever diretamente nos feeds que mais apreciar.

 

O que é um feed?

Um Web log pode fornecer um feed para seu conteúdo produzindo um documento de RSS disponível através de uma URL conhecida. Um documento RSS é um arquivo XML que contém um número de novos itens distintos, tais como entradas em um Web log (consulte Listagem 1 para visualizar um exemplo de RSS feed). Como um formato XML, o RSS é facilmente consumido por outros programas.

Um agregador RSS é um programa que lê documentos RSS e exibe novos itens. A maioria dos agregadores permite que o usuário se inscreva em feed apenas digitando a URL do documento de RSS. O RSS facilita a leitura de Web logs. Muitos desenvolvedores que lêem Web logs com freqüência usam algum tipo de agregador para auxiliá-los a filtrar as inscrições de forma eficaz. O agregador faz com que a leitura dos Web logs se assemelhe a dos e-mails, já que ele realça os novos itens e armazena itens em cache para posterior leitura off-line (consulte Listagem 2).

Existem também alguns agregadores de RSS on-line que consolidam suas assinaturas de RSS em um Web site separado. Essa abordagem tem a vantagem de ser fácil de configurar e permite que você acesse suas subscrições de qualquer computador. A desvantagem é claro, é que você precisa estar conectado para ler qualquer coisa.

O RSS é, em última instância, o que torna os blogs uma nova forma de comunicação tão poderosa. Antes do blog, a maioria dos desenvolvedores despendia um tempo enorme filtrando postagens chatas e irrelevantes para descobrir as raras preciosidades que ocasionalmente eram enviadas pelas pessoas que respeitavam. O blog coloca os leitores de volta no controle ao permitir que eles escolham quais feeds desejam ler, o que faz com que eles criem seus próprios streams de conteúdo personalizado.

Outros tipos de sites também podem tirar proveito do RSS para sindicalizar o conteúdo. Por exemplo, a maioria dos principais sites de notícias, como Wired, CNet, Yahoo! e NPR News fornecem RSS feeds. Visite os endereços Blogdigger (www.blogdigger.com/) e Syndic8 (www.syndic8.com/) para descobrir os sites que oferecem suporte a RSS.

Atualmente, é possível escolher dentre vários agregadores de RSS. Você encontrará uma lista razoavelmente completa em http://blogs.law.harvard.edu/tech/directory/5/aggregators. Alguns deles são agregadores on-line, ao passo que outros são aplicativos desktop. Alguns são gratuitos, enquanto outros cobram uma taxa.

 

list01.jpg

 

list02.jpg 

Qual a versão do RSS mais atual?

A resposta depende do interlocutor a quem você pergunta. Já houve várias versões de RSS, como 0.90, 0.91, 0.92, 0.93, 0.94, 1.0 e 2.0. Entender o sentido dessas diferentes versões tem sido um dos maiores desafios, que exige o conhecimento de um pouco de história.

O Netscape criou a versão original do RSS, 0.90, que corresponde a "RDF Site Summary" ou "Rich Site Summary" (a especificação diz que o primeiro era o nome oficial). O Netscape inventou o RSS 0.90 para ser usado em suas atividades de portal da Web, mas outros fabricantes aproveitaram o conceito e encontraram mais possibilidades de usos para ele. A Userland Software foi uma das primeiras a usar o RSS comercialmente em seus produtos de Web log.

A versão 0.90 foi essencialmente baseada no RDF (Resource Description Framework) do W3C. Muitos usuários consideravam a abordagem RDF excessivamente complexa, por isso foi proposta uma versão gratuita simplificada do RDF, denominada 0.91. Foi por volta dessa época que o controle da versão 0.91 passou para a Userland Software. A Userland Software continuou a desenvolver a especificação simplificada e lançou várias novas versões, como 0.92, 0.93 e 0.94. Para enfatizar o foco na simplicidade, ela queria que o RSS representasse "Really Simple Syndication."

Enquanto a Userland Software mantinha o foco na simplicidade, outro grupo de desenvolvedores ressuscitou a versão do RDF original (0.90), porque o RDF prometia a eles mais flexibilidade. Conseqüentemente, eles publicaram o RSS 1.0, que oficialmente significava "RDF Site Summary". Essa versão é fundamentalmente diferente daquelas controladas pela Userland Software porque utiliza RDF, enquanto as outras não. A Userland Software não gostou do fato de que o RSS 1.0 poderia vir a substituir o RSS 0.94 e lançou então uma nova versão, aumentando seu número e denominando-a 2.0.

E é nesse ponto que elas estão hoje. A divisão ocorrida nos legou duas versões principais concorrentes: uma baseada em RDF (1.0) e a outra não (2.0), mas ambas compartilham o mesmo nome. Isso é terrivelmente confuso porque os números de versão levam o usuário a acreditar que a 2.0 é uma melhoria da 1.0, quando na realidade elas são especificações totalmente diferentes e têm objetivos distintos. Um terceiro grupo de desenvolvedores vem trabalhando no sentido de resolver essa confusão de uma vez por todas, definindo uma nova especificação de organização que não esteja vinculada ao nome RSS. Essa versão está sendo chamada Atom, um projeto que discutirei em mais detalhes posteriormente no artigo.

Não importa muito a versão que você usa. A maioria dos agregadores de RSS oferece suporte a todas as versões de RSS (e alguns suportam até mesmo o Atom) sem qualquer problema. Geralmente, a decisão reside no desejo ou não de usar RDF, que é geralmente motivado pela crença no conceito da Semantic Web (www.w3.org/2001/sw/).

 

Formatos do RSS 1.0 e 2.0

Os formatos do RSS 1.0 e 2.0 contêm as mesmas informações básicas, mas elas são estruturadas de forma diferente. Para que você possa comparar melhor, forneci uma amostra de um documento em RSS 1.0 (consulte a Listagem 1) e o equivalente em RSS 2.0 (consulte a Listagem 2).

Você notará que as diferenças começam já no início, com o elemento-raiz. No RSS 1.0, o elemento-raiz é o rdf:RDF, e no RSS 2.0 é o rss. O elemento rss também contém um atributo de versão obrigatório para indicar o exato formato RSS em uso (valores possíveis incluem 0.91, 0.94 e assim por diante). Outra diferença principal é que os documentos em RSS 1.0 são qualificados com namespace, enquanto os documentos em RSS 2.0 não. No entanto, as informações contidas em ambos os documentos são essencialmente as mesmas.

As duas versões contêm elementos channel. Um elemento channel contém três elementos necessários: title, description e link, conforme ilustrado no código a seguir:

 

code01.jpg

 

Além desses elementos necessários, o RSS 1.0 define três elementos adicionais: image, items e textinput, onde image e textinput são opcionais. O RSS 2.0, por outro lado, fornece 16 elementos adicionais incluindo image, items e textinput. Exemplos desses elementos incluem language, copyright, managingEditor, pubDate e category. O RSS 1.0 permite tornar esse tipo de metadados disponível através de elementos de extensibilidade, definidos em namespaces XML separados.

A principal diferença estrutural entre os dois formatos tem a ver com a representação dos nós item, image, e textinput. No RSS 1.0, o elemento channel contém referências a nós item, image e textinput existentes fora do channel propriamente dito. Isso estabelece uma associação RDF entre o nó channel e o nó referenciado. Na Listagem 1, o elemento channel é associado com um elemento image e dois elementos item. No RSS 2.0, os elementos item são simplesmente serializados no elemento channel (consulte a Listagem 2).

O elemento item contém as informações do item news. A estrutura do item é semelhante nas duas versões. O elemento item geralmente contém elementos title, link e description, conforme mostrado no código a seguir:

 

code02.jpg

 

No RSS 1.0, title e link são obrigatórios, mas description é opcional. No RSS 2.0, title ou description deverão estar presentes; todo o resto é opcional. Esses são os únicos elementos item definidos no RSS 1.0, enquanto o RSS 2.0 fornece vários outros elementos opcionais, como author, category, comments, enclosure, guid, pubDate e source. O RSS 1.0 torna esses tipos de metadados disponíveis através de elementos de extensibilidade definidos em namespaces XML separados, conhecidos como módulos RSS (RSS Modules). Por exemplo, na Listagem 1, a data do item é representada por meio do elemento do módulo Dublic Core.

Consulte as especificações do RSS 1.0 (http://web.resource.org/rss/1.0/spec) e do 2.0 (http://blogs.law.harvard.edu/tech/rss) para obter detalhes completos sobre os diferentes formatos.

 

Atom

Atom é o nome de um projeto para o desenvolvimento de um novo formato de organização de Web log que visa solucionar o que muitos consideram os principais problemas do RSS hoje (uma sopa de números de versão confusos, um padrão não verdadeiramente aberto, inconsistente, mal definido, etc). O Atom espera oferecer uma versão limpa, que atenda às necessidades de todos os tipos de usuário. Ele é projetado para ser totalmente independente de fabricante, extensível gratuitamente a qualquer pessoa e totalmente especificado.

Muitos dos mecanismos de blog atuais já suportam o formato de organização do Atom atual. A Listagem 3 mostra um exemplo do Atom 0.3 feed que é equivalente às provisões de RSS mostradas na Listagem 1 e na Listagem 2. Observe que o Atom feed é qualificada para namespace mas não utiliza RDF. Isso faz com que o Atom tenha alguma coisa em comum com o RSS 1.0 e o RSS 2.0. Será interessante ver a aceitação do Atom nos próximos anos.

Além de definir um novo formato de organização, o Atom também espera definir um formato de arquivo padrão e uma API para edição de Web log padrão (a API Atom). Para obter informações sobre as especificações de uso e outros recursos do Atom, consulte The Atom Project (http://www.intertwingly.net/wiki/pie/FrontPage).

 

list03.jpg

Blogroll

Um blogroll é simplesmente uma coleção de Web log feeds. A maioria dos bloggers oferece um blogroll no seu Web log pessoal. Isso permite que seus leitores se conectem a outros leitores que compartilhem interesses ou estilos de escrita semelhantes. Os Blogrolls facilitam a criação de redes sociais (network). O blogroll pode ser intercambiado em formato XML por meio do OPML (Outline Processor Markup Language). A Listagem 4 mostra um exemplo de blogroll.

A maioria dos mecanismos de blog gerencia os blogrolls por você e gera o formato XML apropriado quando os leitores assim o solicitam. Da mesma forma, a maioria dos agregadores possibilita importar um blogroll e se inscrever automaticamente nos feeds nele contidos. Para obter mais informações sobre o OPML, consulte http://opml.scripting.com.

 

list04.jpg 

Referrers, trackbacks e pingbacks

A maioria dos softwares de blog permite que os leitores adicionem comentários ao Web log. No entanto, é mais comum os leitores adicionarem uma entrada para seus Web log, que fornece um link de volta à postagem original. Os bloggers gostam de controlar quando isso acontece para que os novos leitores possam acompanhar toda a conversa.

Um referrer é o site externo que contém um hyperlink para seu site. Muitos mecanismos de blog rastreiam automaticamente os referrers à medida que os leitores acessam uma das entradas de seu Web log. A maioria dos mecanismos exibirá a lista de referrers no canto inferior da entrada do Web log para que os leitores possam navegar até o site do referrer e ver o que têm a dizer sobre a entrada (presumindo que eles provavelmente escreveram alguma coisa sobre isso ao acessar o link). É justamente nessa suposição que reside o problema dos referrers — não existem informações suficientes para indicar se a página de referência realmente contém informações adicionais relevantes. Na verdade, os spammers já tiram proveito dessa brecha e redirecionam os leitores para suas publicidades.

Trackback e pingback são especificações semelhantes, desenvolvidas para remediar essa situação. Usando o trackback ou o pingback, outros bloggers podem automaticamente enviar um ping ao seu Web log e indicar explicitamente que escreveram uma entrada que faz referência a uma postagem específica. Esse tipo de link reverso permite que seu Web log exiba de maneira mais explícita uma lista de todas as entradas que foram efetivamente comentadas na sua postagem. A maioria dos softwares de blog atuais oferece suporte a todas essas técnicas. Consulte TrackBack Technical Specification (http://www.movabletype.org/docs/mttrackback.html) e Pingback 1.0 (http://www.hixie.ch/specs/pingback/pingback-1.0).

 

Como gerar um RSS feed para meu Web site?

A Listagem 5 mostra como gerar um RSS 2.0 feed em uma página .aspx usando um controle asp:Repeater. Essa página presume que você definirá a propriedade DataSource do controle no arquivo codebehind para o resultset do database apropriado.

 

list05.jpg

 

Como agregar várias RSS feeds e exibir essas informações em meu Web site pessoal?

Como RSS feeds são arquivos XML, conseguir isso depende apenas de exercitar o uso de sua API XML favorita, tal qual o System.Xml no Microsoft .NET Framework. A Listagem 6 contém o código de um controle de um user control em ASP.NET que escrevi para agregar os RSS feeds listados em um arquivo blogroll (.opml). O código presume que o elemento opml conterá um atributo numberToDisplay para indicar quantos itens de cada provisão você deseja exibir.

 

 

Você pode soltar esse controle em qualquer página .aspx que ele exibirá itens das várias provisões listadas no blogroll. A Figura 1 mostra esse controle em ação no Web site do Utah .NET User Group.

 

image001.gif

Figura 1 Controle de usuário Web em ASP.NET

 

Existe alguma API de Web Service para interagir com os Web logs?

Muitos mecanismos de blog fornecem sua própria interface de Web Service proprietária para interagir com um Web log de forma programática, mas eu não diria que já exista um padrão.  Tanto o .Text como dasBlog fornecem alguns endpoints .asmx que oferecem funcionalidade de edição via SOAP, mas suas interfaces são diferentes. O Blogger.com oferece uma API interativa (Blogger API - www.blogger.com/developers/api/1_docs/) baseada em XML-RPC. A Userland Software aprimorou a API do Blogger e denominou-a MetaWeblog API (www.xmlrpc.com/metaWeblogApi). Essas são provavelmente as APIs de Web log mais reconhecidas hoje, mas nem todos os mecanismos de Web Log oferecem suporte a elas. Existe também uma API separada para a inclusão de comentários, chamada Comment API (http://wellformedweb.org/story/9), mas ela também não é suportada universalmente.

  O grupo Atom tem trabalhando atualmente na solução dessa bagunça. A API Atom planeja uma API de Web log padrão para publicação e edição de conteúdo de todo tipo de Web log. Você pode conferir esse trabalho em The Atom Project (http://www.intertwingly.net/wiki/pie/FrontPage).