Veysel Uğur KIZMAZ

Asp.Net RSS

30.01.2012Okunma Sayısı: 6070Kategori: ASP.NET

 Bu makalemizde Asp.Net’te RSS oluşturma işlemini inceleyeceğiz.

 
Öncelikle RSS’in ne olduğuyla konumuza başlayalım. RSS, çoğunlukla haber siteleri, bloglar tarafından kullanılan, siteye yeni bir içerik eklendiğinde bunu kolay takip etmeyi sağlayan bir dosyadır. XML formatındadır.
 
RSS kayıtları standart bir yapıdadır. Bu XML yapısının bir örneği şu şekildedir:
 
<?xmlversion="1.0"encoding="utf-8" ?>
- <rssversion="1.0">
  - <channel>
    <title>Kanal Başlığı</title>
    <link>Kanal Linki</link>
    <description>Kanal Tanımı</description>
    <copyright>Copyright</copyright>
    <pubDate>YayınTarihi</pubDate>
    <language>Dil</language>
    <webMaster>WebMaster Bilgisi </webMaster>
    <item>
      <title>RSS Başlığı</title>
      <description>RSS Tanımı</description>
      <link>RSS Linki</link>
      <pubDate>RSS Yayın Tarihi</pubDate>
    </item>
  </channel>
</rss>
 
 
Şimdi YazılımDevi.Com sitemizdeki yeni makaleleri takipçilerimizin daha kolay ve daha hızlı takip edebilmeleri için RSS sayfası oluşturalım.
 
Yeni bir Asp.Net Empty Web Application oluşturalım ve Default.aspx’in code behind tarafına gidelim ve standarda uygun RSS XML’imizi oluşturalım.
 
Öncelikle RSS kayıtlarını alacağımız bir Rss nesnesi oluşturalım.
 
Rss.cs
 
    public class Rss
    {
        public int RssId { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Link { get; set; }
        public string pubDate { get; set; }
    }
 
 
Şimdi RSS kaydını oluşturacağımız C# kodunu oluşturalım.
 
        protected void Rss_Olustur()
        {
            Response.Clear();
 
            Response.ContentType = "text/xml";
 
            XmlTextWriter rssWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
            rssWriter.WriteStartDocument();
 
            rssWriter.WriteStartElement("rss");
            rssWriter.WriteAttributeString("version", "1.0");
            rssWriter.WriteStartElement("channel");
            rssWriter.WriteElementString("title", "yazilimdevi.com Makaleler");
            rssWriter.WriteElementString("link", "http://www.yazilimdevi.com/rss.aspx");
            rssWriter.WriteElementString("description", "YazilimDevi.Com | Yazılımın devi Olacaksın");
            rssWriter.WriteElementString("copyright", "(c) 2010, Yazılım Devi");
            rssWriter.WriteElementString("pubDate", "04/22/2011");
            rssWriter.WriteElementString("language", "tr-TR");
            rssWriter.WriteElementString("webMaster", "info@yazilimdevi.com");
 
            List<Rss> rssList = new List<Rss>
            {
                new Rss
                {
                    RssId = 1,
                    Title = "PHP ile MySQL Bağlantısı",
                    Description = "PHP ile dosya - klasör işlemlerinin nasıl yapıldığını inceleyelim.",
                    pubDate = new DateTime(2011,04,01).ToString(),
                    Link = "http://www.yazilimdevi.com/yazilimdevi/Makaleler-643-php-ile-mysql-baglantisi.aspx"
                },
                new Rss
                {
                    RssId = 2,
                    Title = "PHP Dosya - Klasör İşlemleri",
                    Description = "PHP ile MySQL'e nasıl bağlanılacağını, SELECT, INSERT, UPDATE sorgularının nasıl çalıştırıldığını inceleyelim.",
                    pubDate = new DateTime(2011,04,02).ToString(),
                    Link = "http://www.yazilimdevi.com/yazilimdevi/Makaleler-645-php-dosya--klasor-islemleri.aspx"
 
                }
            };
 
            foreach (var rss in rssList)
            {
                rssWriter.WriteStartElement("item");
                rssWriter.WriteElementString("title", rss.Title);
                rssWriter.WriteElementString("description", rss.Description);
                rssWriter.WriteElementString("link", rss.Link);
                rssWriter.WriteElementString("pubDate", rss.pubDate);
            }
 
            rssWriter.WriteEndElement();
            rssWriter.WriteEndDocument();
            //Belgeyi tamamlayıp ekrana çıktısını yazıyoruz...
            rssWriter.Flush();
            rssWriter.Close();
            Response.End();
        }
 
 
  • Response.Clear() ile var olan kaydı siliyoruz.
  • ContentType ile metnimizin türünü belirliyoruz.
  • rssWriter nesnemiz XML dosyamızı oluşturmamızı sağlamaktadır.
  • WriteStartDocument() XML dosyamıza yazmaya başlamamızı belirtmektedir.
  • WriteStartElement() Yeni bir root oluşturmamızı sağlar.
  • WriteAttributeString() Node’umuza attribute eklemeyi sağlar.
  • WriteElementString() String node oluşturmayı sağlar.
  • Foreach ile rss kayıtlarımızı XML’e ekliyoruz.
 
Projemizi çalıştıralım. Önce Internet Explorer’daki görüntüsünü inceleyelim.
 
 
Şimdi Chrome’daki görüntüsünü inceleyelim.
 
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com