السلام عليكم ورحمه الله وبركاته
تعتبر تقنية ال LINQ واحدة من أبرز تقنيات الدوت نت 3.5 والتي اضافة القدرة على الاستعلام في البيانات إلى لغات الدوت نت, ولاتعتمد هذه التقنية على مصدر بيانات معين, ومن هنا اتت الفكرة لتطوير مكتبة بسيطه للاستعلام ضمن ملفات ال RSS.
من المعروف وبعد انتشار تقنيات الويب 2 ومن ضمنها ال RSS اصبح عملية نشر الاخبار امر غاية في السهولة, فبالنسبة للمستخدم اصبح الامر سهلا للاطلاع على اخر الاخبار في المواقع المفضله له بدون زيارته لها, فواحد من الفوائد فكرة ال LINQ to RSS هي سهولة الاستعلام في ملفات ال RSS فيمكنك الحصول فقط على الاخبار الرياضيه مثلا من بين كل الاخبار او اخبار اخر ساعه .. إلخ. فأصبح بإمكان الاستعلام بأي صورة تريدها ضمن ملف ال RSS.
سنقوم اولا بانشاء مكتبة فئات dll ولنسميها LinqToRss والتي تضم الفئات التالية
1- RssDataContext
وهي اهم فئه في المشروع فهي بسيطه جدا حيث انها تتضمن معلومات وصفيه عن مستند ال RSS مثل ال Channel و ال Feeds
Public Sub New(ByVal Path As String)
Dim doc As XDocument = XDocument.Load(Path)
Feeds = From item In doc.Element("rss").Element("channel").Elements("item")
Select New Feed With {.Title = item.Element("title").Value, _
.Link = item.Element("link").Value, _
.Description = item.Element("description").Value, _
.PublicationDate = item.Element("pubDate").Value, _
.GUID = Guid.Parse(item.Element("guid").Value)}
Channel = New Channel() With {.Title = doc...<title>.Value, _
.Link = doc...<link>.Value, _
.Description = doc...<description>.Value, _
.PublicationDate = doc...<pubDate>.Value, _
.LastBuildDate = doc...<lastBuildDate>.Value}
End Sub
Public Property Feeds As IEnumerable(Of Feed)
Public Property Channel As Channel
End Class
Public Class RssDataContext
2- Feed
وهي الفئة التي تمثل الخبر في مستند ال RSS حيث تضم عنوان الخبر, الرابط, الوصف, تاريخ النشر ورقمه
Public Class Feed
Property Title As String
Property Link As String
Property Description As String
Property PublicationDate As DateTime
Property GUID As Guid
End Class
3- Channel
وهي الفئة التي تمثل الموقع الذي يقدم الخدمة حيث يضم عنوان الموقع ورابطه ... الخ
Property Title As String
Property Link As String
Property Description As String
Property PublicationDate As DateTime
Property LastBuildDate As DateTime
End Class
Public Class Channel
وبهذا نكون قد انتهينا وحان وقت استخدام هذه المكتبة, ببساطه ومثلها مثل اي استعلام بواسطة ال LINQ يمكننا استخدام ال LINQ to Rss فلنفترض اننا نريد جلب جميع اخبار موقع الجزيرة ليوم الثلاثاء 7/6/2011 فاننا سنستخدم الاستعلام التالي وذلك بعد تصريح فضاء الاسماء
Imports LinqToRss
وتعريف كائن يمثل المستند
Dim db As New RssDataContext("http://www.aljazeera.net/AljazeeraRss/Rss.aspx?URL=RSS-News.xml")
Where f.PublicationDate.ToShortDateString().Equals("6/7/2011")
Select f
Dim query = From f In db.Feeds
هذا مجرد استعلام بسيط, يمكنك بناء اي استعلام يواكب متطلباتك .. فأصبح بإمكانك الآن تحسين طريقة جلب الاخبار عبر الآر أس أس بمعايير انت تختارها!!
وفي الختام يمكنك صنع برنامج قارىء آر أس أس بسهولة باستخدام المكتبه اعلاه