Makale Özeti

Bu makalemde sizlere RSS ‘den söz edeceğim. RSS, Genellikle haber sağlayıcıları, bloglar ve podcastler tarafından kullanılan, yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan özel bir XML dosya formatıdır. Kullandığı dosya biçimleri .rss , .xml ve .aspx'dir. En güncel sürümü 2.0 ‘dır. RSS ‘in açılımı ise Really Simple Syndication ‘dır.

Makale

Bu makalemde sizlere RSS ‘den söz edeceğim. RSS, Genellikle haber sağlayıcıları, bloglar ve podcastler tarafından kullanılan, yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan özel bir XML dosya formatıdır. Kullandığı dosya biçimleri .rss , .xml ve .aspx'dir. En güncel sürümü 2.0 ‘dır. RSS ‘in açılımı ise Really Simple Syndication ‘dır.

Gelelim bu dosyayı nasıl oluşturacağımıza! Dosya’yı oluşturmak için projemize bir rss.aspx sayfası ekleyelim ve aşağıdaki gibi içeriği değiştirelim.

<%@ Page Language="C#" CodeFile="rss.aspx.cs" Inherits="rss" EnableViewState="false" %>
<%@ OutputCache Duration="300" VaryByParam="none" %>

Daha sonra sayfanın Page_Load olayında kodlarımızı yazmaya başlayalım. 


//Sayfanın içeriğini temizliyoruz...
Response.Clear();
//Sayfanın xml formatında olduğunu belirliyoruz...
Response.ContentType = "text/xml";
//XML formatını oluşturmak için bir XmlTextWriter tanımlıyoruz ve
//Encoding'ini UTF8 olarak ayarlıyoruz...
XmlTextWriter XTW = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
XTW.WriteStartDocument();
//Bu kısımda sırayla elementlerimizi oluşturuyoruz...
//rss, channel, link, descripton gibi tanımlar
//bir standart tüm rss dosyalarında bu şekilde tanımlanırlar...
XTW.WriteStartElement("rss");
XTW.WriteAttributeString("version","2.0");
XTW.WriteStartElement("channel");
//title = RSS Başlığını beliriyoruz
XTW.WriteElementString("title", "gokhanbagci.info Haberler");
//link = Sayfamızın yada rss adresimizin url'sini tanımlıyoruz...
XTW.WriteElementString("link",http://www.gokhanbagci.info/rss.aspx);
//description = RSS Açıklamasını belirliyoruz...
XTW.WriteElementString("description","gokhanbagci.info | Kişisel Web Sayfası – Haber Bilgileri");
//copyright = Sahiplik bilgilerini belirliyoruz...
XTW.WriteElementString("copyright","(c) 2007, Gökhan BAĞCI");
//pubDate = Oluşturulma yada Güncellenme tarihini belirliyoruz...
XTW.WriteElementString("pubDate", "08/18/2007");
//language = Dil bilgisini tanımlıyoruz...
XTW.WriteElementString("language", "tr-TR");
//webmaster = RSS oluşturucu bilgisini belirliyoruz...
XTW.WriteElementString("webMaster", "gokhan.bagci@gmail.com");
//Bu kısımda ben access veritabanı kullanmıştım ama aynı şekilde SQL Server, MySQL, Oracle vs..
//diğer veritabanlarınıda kullanabilirsiniz...
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/haberler.mdb"));
con.Open();
//Eğer haber, makale vs.. bilgileri kategorileştirmişseniz rss.aspx'e querystring ile değer gönderip
//sadece o kategoriye ait olan verileri yayınlıyabilirsiniz...
//Ör: rss.aspx?KategoriID=1 gibi...
string sql = "SELECT Baslik, KisaAciklama, HaberID, Tarih FROM haberler ORDER BY Tarih DESC";
OleDbCommand com = new OleDbCommand(sql, con);
OleDbDataReader DR = com.ExecuteReader();
//Dönen verileri bir döngüye sokup ayrı ayrı elementler oluşturacağız...
while (DR.Read())
{
      XTW.WriteStartElement("item");
      //title = Haber Başlığı, Makale Başlığı vs...
      XTW.WriteElementString("title",DR.GetString(0));
      //description = Açıklama...
      XTW.WriteElementString("description",DR.GetString(1));
      //link = Haber Sayfası'nın Web Adresi...
      XTW.WriteElementString("link","http://www.gokhanbagci.info/yazi-detay.aspx?YaziID=" + DR.GetInt32(2).ToString());
      //pubDate = Oluşturulma tarihi...
      XTW.WriteElementString("pubDate", DR.GetDateTime(3).ToString("R"));
      XTW.WriteEndElement();
}
DR.Close();
con.Close();
XTW.WriteEndElement();
XTW.WriteEndElement();
XTW.WriteEndDocument();
//Belgeyi tamamlayıp ekrana çıktısını yazıyoruz...
XTW.Flush();
XTW.Close();
Response.End();

Başka bir makelede görüşmek üzere…

Gökhan BAĞCI
Microsoft Certified Professional