ASP.NET 2.0 - Criando um Blog V


Como anda o nosso Blog ?  Meio atrasado mas vai bem , obrigado. Se você chegou agora veja os artigos anteriores já publicados:

Nesse artigo vou apresentar a criação das páginas a para exibição dos arquivos e do RSS do Blog. g. Ao trabalho...

Ao abrir a página do Blog o usuário irá visualizar o seguinte formulário web:

No menu Links temos a opção RSS que irá gerar um RSS dos posts do Blog.

Criando a página de para gerar o RSS

Lembrando que criamos o componente Links.ascx para exibir as opções do menu LInks.

O arquivo Links.ascx possui um componente GridView vinculado a um SqlDataSource que possui a seguinte instrução SQL : SELECT * FROM [Links] ORDER BY [sequencia].

Se editarmos as colunas do GridView iremos notar que temos um único campo Links configurado para exibir o título da coluna, e, quando for clicado a navegação será feita com base no campo url conforme figura abaixo;

Sendo que a url para o campo RSS é definida como igual a ~/Rss.aspx na tabela Links.

Vejamos então o que faz a página Rss.aspx:

O WebForm Rss.aspx não possui nenhum componente visual pois irá exibir o rss das tags do site. O trabalho é feito no seu arquivo code-behind Rss.aspx.vb que possui o seguinte código:

Imports System.Data

Imports System.Xml

Imports DAL
 

Partial Class Rss

    Inherits System.Web.UI.Page
 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Response.ContentEncoding = System.Text.Encoding.UTF8

Response.ContentType = "text/xml"


Dim
sql As String =
"select top 5 * from mensagens order by data desc"

Dim ds As DataSet


Try

  ds = AcessoBD.ExecuteDataSet(sql)


 
Dim writer As New XmlTextWriter(Response.OutputStream, System.Text.Encoding.ASCII)


   writer.WriteStartElement(
"rss")

   writer.WriteAttributeString("version", "2.0")

   writer.WriteStartElement("channel")

   writer.WriteElementString("title", "Macoratti Blog")

   writer.WriteElementString("link", "http://www.macoratti.net")

   writer.WriteElementString("description", "Blog do Macoratti")

   writer.WriteElementString("copyright", "Copyright (C) BlogMac")

   writer.WriteElementString("generator", "Gerador RSS - Blog")

 

   For Each row As DataRow In ds.Tables(0).Rows

      writer.WriteStartElement("item")

      writer.WriteElementString("title", row("titulo"))

      writer.WriteElementString("link", "http://www.macoratti.net/ExibeMensagens.aspx?id=" & row("mensagemID"))

      writer.WriteElementString("description", row("mensagem"))

      writer.WriteElementString("pubDate", CType(row("data"), DateTime).ToString("dd MMM yyyy 12:00:00 G\MT"))

      writer.WriteEndElement()

     Next

 

writer.WriteEndElement()

writer.WriteEndElement()

writer.Flush()


Response.End()

Catch ex As Exception

'

End Try

End Sub

End Class

Este código usa o namespace System.XML para gerar o RSS das 5 primeiras mensagens ordenadas por data no formato RSS:

Dim sql As String = "select top 5 * from mensagens order by data desc"

É importante notar a declaração que define o encode da página e o contentType como text/xml

Response.ContentEncoding = System.Text.Encoding.UTF8

Response.ContentType = "text/xml"

A seguir geramos um dataset com os dados retornados pela execução do SQL definido

 ds = AcessoBD.ExecuteDataSet(sql)

O restante do código gera o RSS no formato Xml. Note as tags: title, link, description, etc.

writer.WriteStartElement("rss")

   writer.WriteAttributeString("version", "2.0")

   writer.WriteStartElement("channel")

   writer.WriteElementString("title", "Macoratti Blog")

   writer.WriteElementString("link", "http://www.macoratti.net")

   writer.WriteElementString("description", "Blog do Macoratti")

   writer.WriteElementString("copyright", "Copyright (C) BlogMac")

   writer.WriteElementString("generator", "Gerador RSS - Blog")

 

   For Each row As DataRow In ds.Tables(0).Rows

      writer.WriteStartElement("item")

      writer.WriteElementString("title", row("titulo"))

      writer.WriteElementString("link", "http://www.macoratti.net/ExibeMensagens.aspx?id=" & row("mensagemID"))

      writer.WriteElementString("description", row("mensagem"))

      writer.WriteElementString("pubDate", CType(row("data"), DateTime).ToString("dd MMM yyyy 12:00:00 G\MT"))

      writer.WriteEndElement()

     Next

 

writer.WriteEndElement()

writer.WriteEndElement()

writer.Flush()

Para saber mais sobre como gerar XML no VB .NET leia os meus artigos:

Abaixo temos uma figura exibindo o RSS gerado para os últimos 5 posts do Blog:

 

A próxima etapa é mostrar como efetuar criação da página a para exibição dos arquivos do site.

Veja a continuação do artigo em : Criando um Blog VI

A vídeo Aula deste artigo esta no Super DVD Vídeo Aulas

Até o próximo artigo ASP .NET 


José Carlos Macoratti