الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

LINQ to RSS

بدأه VB Helper في 8 يونيو 2011 · 3 رد · 1,109 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

تعتبر تقنية ال 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

هذا مجرد استعلام بسيط, يمكنك بناء اي استعلام يواكب متطلباتك .. فأصبح بإمكانك الآن تحسين طريقة جلب الاخبار عبر الآر أس أس بمعايير انت تختارها!!

وفي الختام يمكنك صنع برنامج قارىء آر أس أس بسهولة باستخدام المكتبه اعلاه

تم تعديل هذه المشاركة بواسطة VB Helper في 19 يوليو 2011 في 01:31

2

.:: Wish to become better and better ::.

#2

السلام عليكم ورحمه الله وبركاته

ارفقت مشروع بسيط يضم عدد لا بأس به من الاستعلامات لأخبار موقع الجزيرة على سبيل المثال والاستعلامات التي طرحتها ماهي الا نقطه في بحر!!

WindowsApplication1.zip

2

.:: Wish to become better and better ::.

#3

شكرا لك

اول مرة اسمه ب linq to rss

تم تعديل هذه المشاركة بواسطة eash2008 في 8 يونيو 2011 في 20:16

#4

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب اختي .. هذه مجرد فكره خطرت ببالي يمكنك عمل LINQ to Any Data Source

.:: Wish to become better and better ::.

مواضيع مشابهة