Asp.Net ve Entity Framework ile Dinamik Rss nasıl yapılır


Merhaba arkadaşlar bu makalede Asp.Net ile nasıl RSS akışı yapabiliriz onu anlatmaya çalıştım.

Verileri EntityFramework Data Modeli  çekiyorum.         
//Verilerin çekileceği modelin bir örneğini oluşturuyorum 
siteEntities db = new siteEntities();
//Oluşturulma tarihine göre büyükten küçüğe sıralayarak aktif yaziları çekiyorum
var makaleler= db.yazilar.Where(w => w.durum == true).OrderByDescending(o=>o.add_date).ToList();
Response.Clear(); //Sayfayı Temizledik.
Response.ContentType = "text/xml"; //Sayfa tipini xml olarak ayarladık.
//RSS xml yapısında olduğundan bir XmlTextWriter nesnesi oluşturup içini dolduruyoruz.
XmlTextWriter RSS = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
 
RSS dosyasında standart olan alanları dolduruyoruz.
RSS.WriteStartDocument();
RSS.WriteStartElement("rss");
RSS.WriteAttributeString("version", "2.0");
RSS.WriteStartElement("channel");
RSS Sayfa bilgilerini dolduruyoruz.
RSS.WriteElementString("title", "Kodstrap.com Makaleler"); //Başlık
RSS.WriteElementString("link", "http://www.kodstrap.com/Home/Rss"); //RSS linki
RSS.WriteElementString("description", "Kodstrap.com RSS Akışı"); //Description
RSS.WriteElementString("copyright", "(c) "+DateTime.Now.Year+", Kodstrap.Com"); //Haklar bilgisi
RSS.WriteElementString("pubDate", DateTime.Now.ToString("dd/MMM/yyyy")); //Son güncelleme ben aktif günün tarihini yazdırıyorum
RSS.WriteElementString("language", "tr-TR"); //Dil
RSS.WriteElementString("webMaster", "emre@playback.com.tr"); //E-Mail Adresiniz
  
Dinamik içeriği basıyoruz.
foreach (var item in makaleler)

{

 //Description basıcaz ancak rss html göstermeyeceğinden html taglari temizliyorum ve sadece 200 karakterini alıyorum.

 string clearedText = cBase.StripHtmlTags(item.detail); 

 string description = clearedText.Length > 200 ? clearedText.Substring(0, 200) : clearedText;

 //Bir item elementi oluşturup içini dolduruyoruz.

 RSS.WriteStartElement("item");

 RSS.WriteElementString("title", item.name);

 RSS.WriteElementString("description", description);

 RSS.WriteElementString("link", "http://www.kodstrap.com/makale/" + ToURL(item.name) + "/" + item.aid);

 RSS.WriteElementString("pubDate", item.add_date.Value.ToString("dd/MMM/yyyy"));

 RSS.WriteEndElement();

}

Makale üzerinde açtığımız elementleri sonlandırıyoruz.
RSS.WriteEndElement();

RSS.WriteEndElement();

RSS.WriteEndDocument();

RSS.Flush();

RSS.Close();

Response.End(); 
StripHtmlTag: Bu metod html etiketleri temizliyor. Siz kendi metodunuzu uygulayabilirsiniz.
ToUrl : Bu method makale başlığını seo url yapmaya yarıyor. Siz kendi metodunuzu uygulayabilirsiniz.
Kodstrap.Com'un rss linki : http://www.kodstrap.com/rss
İyi Kodlar!

Yorumlar