آشنایی با Atom Feed در Asp.Net

در مقاله های قبلی ما در مورد ایجاد Rss و نحوه بکارگیری آن توضیح داده ایم ، با توجه به درخواست شما عزیزان در این مقاله میخواهیم به Atom Feed و ساختار آن آشنا شویم .همچنین قصد مقایسه این دو را با یکدیگر نداریم چرا که نیازها در نرم افزارها متفاوت است .پس انتخاب هر کدام از این دو روش ( چه Rss و چه Atom Feed) را به عهده شما می گذاریم .

آشنایی با Atom Feed در Asp.Net

قرار دادن Atom Feed در سایت نسبتا آسان میباشد .به بیان ساده تر Atom Feed که شامل ساختار XML میباشد که شامل اطلاعاتی مباشد که در صفحه قابل نمایش است .Atom Feed در انواع صفحات وب مورد استفاده است که در هر قسمت میتوانیم اطلاعاتی خاص را به صورت لیست به نمایبش درآوریم .کاربرانی که می خواهند این اطلاعات را مشاهده نمایند ، می توانند از این امکان (atom feed) استفاده نمایند .

ساختار Atom Feed :

ساختار Atom Feed را میتوانید در ادامه مشاهده نمایید .باقی اطلاعات نیز در صفحه است ولی برای درک و تمرکز  بهتر ساختار Atom feed آنها را حذف کرده ایم .

<feed xmlns="http://www.w3.org/2005/Atom">
 
	<title>Example Feed</title>
	<subtitle>A subtitle.</subtitle>
	<link href="http://example.org/feed/" rel="self" />
	<link href="http://example.org/" />
	<id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id>
	<updated>2003-12-13T18:30:02Z</updated>
 
 
	<entry>
		<title>My Atom feed</title>
		<link href="http://example.org/2003/12/13/atom03" />
		<link rel="alternate" type="text/html" href="http://example.org/2003/12/13/atom03.html"/>
		<link rel="edit" href="http://example.org/2003/12/13/atom03/edit"/>
		<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
		<updated>2003-12-13T18:30:02Z</updated>
		<summary>Some summary text.</summary>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
				<p>This is the entry content in HTML format.</p>
			</div>
		</content>
		<author>
			<name>Dominic Burford</name>
			<email>example@mydomain.co.uk</email>
		</author>
	</entry>
</feed>

اطلاعاتی که که در این مثال میخواهیم به عنوان لیست نمایش داده شود ، شامل Title , Descriptionو  Publication Date میباشد ، که در واقع لیست مطالبی که ما مشاهده مکنیم شمال :عنوان ، خلاصه و تاریخ انتشار است .

بکارگیری Atom Feed :

روشهای مختلفی برای بکار گیری Atom Feed موجود میباشد که در این مثال ما فقط به یکی از این روش ها اشاره کرده ایم .در این مثال ما از این روش در Asp.Net استفاده کرده ایم ,

در ابتدا یک کنترل GridView  را به صفحه اضافه میکنیم .

<asp:GridView ID="gvAtom" runat="server">
  <Columns>
    <asp:TemplateField>
      <ItemTemplate>
        <table width="100%" border="0" cellpadding="0" cellspacing="5">
          <tr>
            <h3 style="color:#3E7CFF"><%#Eval("Title") %></h3>
          </tr>
          <tr>
            <%#Eval("PublishDate") %>
          </tr>
          <tr>
            <td colspan="2">
              <hr />
              <%#Eval("Description") %>
            </td>
          </tr>
        </table>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

در قسمت دستورات متد نمایش محتوای کنترل GridView را مینویسیم .

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.Linq;
using System.Xml.Linq;
using System.ServiceModel.Syndication;
using System.Xml;

protected void Page_Load(object sender, EventArgs e)
{
    this.PopulateAtomFeed();
}

private void PopulateAtomFeed()
{
    string atomFeedUrl = ConfigurationManager.AppSettings["AtomFeedUrl"];
    List<Feeds> feeds = new List<Feeds>();
    XmlTextReader reader = new XmlTextReader(atomFeedUrl);
    SyndicationFeed feed = SyndicationFeed.Load(reader);

    if (feed != null)
    {
        feeds.AddRange(feed.Items.Select(i => new Feeds
        {
            Title = i.Title.Text,
            PublishDate = i.PublishDate.DateTime.ToUniversalTime().ToString(CultureInfo.InvariantCulture),
            Description = ((TextSyndicationContent)(i.Content)).Text

        }));
    }
    gvAtom.DataSource = feeds;
    gvAtom.DataBind();
}

سپس کلاس Feed را می نویسیم .

public class Feeds
{
    public string Title { get; set; }
    public string PublishDate { get; set; }
    public string Description { get; set; }
}

سپس آدرس سایتی که میخواهیم از آنها مطالب دریافت کنیم را در web.congif در تگ <appSetting>قرار می دهیم .

<appSettings>
  <add key="AtomFeedUrl" value="http://www.somedomain.com/Atomfeed.Atom"/>
</appSettings>

 

فایل های ضمیمه