آموزش ایجاد rss در asp.net
0 0

آموزش ایجاد rss در asp.net


آموزش ایجاد rss در asp.net

در این پست به صورت کامل آموزش ساخت rss در Asp.Net را قرار داده ایم.

در پست های قبلی آموزش ایجاد صفحات پویا در Asp.Net و نمایش آنها و همچنین ایجاد sitemap به صورت پویا در Asp.Net را توضیح دادیم. در این قسمت جهت کاملتر شدن این آموزش ها و همچنین نوشتن یک مثال کامل از این آموزش ها.

RSS مخفف Really Simple Syndication میباشد که بشما اجازه میدهد محتویات سایت خود را دسته بندی کرده و با یک فرمت سریع و استاندارد تیتر مقالات و اخبار سایت خود را در دسترس دیگران قرار دهید. فرمت فایل های RSS همان XML است. و بصورت اتوماتیک آپدیت میشود.
بدون وجود RSS کاربران باید هر روز سایت شما را چک کنند تا بتوانند از تازه های سایت شما باخبر شوند . اما با این تکنولوژی ، کاربران ، RSS چندین سایت را در یک برنامه RSS aggregator (یا RSS خوان) در کنار هم می بینند و تایتل نوشته های اخیر سایت شما را بدون مراجعه به سایت شما مشاهده میکنند.

ساختار یک rss به صورت زیر می باشد.

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<rss version=\"2.0\">
<channel>
	<title></title>
	<link></link>
	<description></description>
	<language></language>
	<ttl></ttl>
	<copyright></copyright>
	<lastBuildDate></lastBuildDate>
	<item>
		<title></title>
		<link></link>
		<description></description>
		<author></author>
		<pubDate></pubDate>
	</item>
</channel>
</rss>

ابتدا یک فایل rss.aspx در ریشه وب سایت خود ایجاد کنید توجه کنید که هنگام ایجاد تیک دو گزینه place code in separate file و همچنین select master page را برداشته باشید.

آموزش ایجاد rss در asp.net

 

کد های داخل آن را به صورت زیر تغییر دهید توجه کنید که هیچ کدی به غیر از این کدها زیر داخل آن نباشد.

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
    void Page_Load(object source, EventArgs e)
    {
        if (Cache["Rss"] == null)
        {
            Response.ContentType = "text/xml";
            Response.ContentEncoding = Encoding.UTF8;
            string channelTitle = "iranganj.ir Headlines";
            string channelLink = "http://iranganj.ir";
            string channelDesc = "Get latest articles and information about ASP, " + "ASP.NET and JSP from iranganj.ir.";
            string language = "en-us";
            int ttl = 60; // Time to live, in minutes.
            string copyright = "Copyright 2015 - " + DateTime.Now.Year + " iranganj.ir, All Rights Reserved.";
            string connstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            string sql = "SELECT TOP 10 PostID,PageName,Title, MetaDescription, InsertDateTime, Author FROM Pages ORDER BY InsertDateTime DESC";
            StringBuilder buffer = new StringBuilder();
            buffer.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
            buffer.Append("<rss version=\"2.0\">\r\n");
            buffer.Append("<channel>\r\n");
            buffer.Append("<title>").Append(channelTitle).Append("</title>\r\n");
            buffer.Append("<link>").Append(channelLink).Append("</link>\r\n");
            buffer.Append("<description>").Append(channelDesc);
            buffer.Append("</description>\r\n");
            buffer.Append("<language>").Append(language).Append("</language>\r\n");
            buffer.Append("<ttl>").Append(ttl).Append("</ttl>\r\n");
            buffer.Append("<copyright>").Append(copyright);
            buffer.Append("</copyright>\r\n");
            using (SqlConnection con = new SqlConnection(connstr))
            using (SqlCommand cmd = new SqlCommand(sql, con))
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult);
                if (dr.HasRows)
                {
                    bool firstRow = true;
                    while (dr.Read())
                    {
                        int pageId = dr.GetInt32(0);
                        string pageName = dr.GetString(1);
                        string title = dr.GetString(2);
                        string metaDescriptionSynopsis = dr.GetString(3);
                        DateTime InsetDateTime = dr.GetDateTime(4);
                        string author = dr.GetString(5);
                        if (firstRow == true)
                        {
                            buffer.Append("<lastBuildDate>");
                            buffer.Append(InsetDateTime.ToString("r"));
                            buffer.Append("</lastBuildDate>\r\n");
                        }
                        buffer.Append("<item>\r\n");
                        buffer.Append("<title>").Append(title);
                        buffer.Append("</title>\r\n");
                        buffer.Append("<link><![CDATA[");
                        buffer.Append(String.Format("http://iranganj.ir/" + "post/{0}/{1}", pageId, pageName));
                        buffer.Append("]]></link>\r\n");
                        buffer.Append("<description><![CDATA[");
                        buffer.Append(metaDescriptionSynopsis);
                        buffer.Append("]]></description>\r\n");
                        buffer.Append("<author>").Append(author).Append("</author>\r\n");
                        buffer.Append("<pubDate>");
                        buffer.Append(InsetDateTime.ToString("r"));
                        buffer.Append("</pubDate>\r\n");
                        buffer.Append("</item>\r\n");
                        firstRow = false;
                    }
                }
            }
            buffer.Append("</channel>\r\n");
            buffer.Append("</rss>\r\n");
            Cache.Insert("Rss", buffer.ToString(), null,
            DateTime.Now.AddHours(1), TimeSpan.Zero);
        }
        Response.Write(Cache["Rss"].ToString());
    }
</script>

در که های بالا به جایی iranganj.ir آدرس سایت خود را بنویسید.

ابتدا از دیتابیس 10 مطالب آخر را انتخاب کردیم و سپس لینک مطالب را که در مثال های قبل هم توضیح دادیم در rss قرار داده ایم.

کد زیر را در صفحه ای که می خواهید ار اس اس باشد بین تگ های head قرار دهید.

 <link rel="alternate" title="ایران گنج" href="http://iranganj.ir/rss.aspx" type="application/rss+xml" />

دیتابیس برنامه کنار فایل قرار داده شده

در آموزش های بعدی جهت کاملتر کردن این آموزش که نحوه ارتباط rss با feedburner.google.com را توضیح می دهیم که می توانید اخبار سایت را به کاربران خود بدون نیاز به خرید پنل های ارسال ایمیل به صورت رایگان ارسال کنید.

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۳۰ دی ۱۳۹۳
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha

این صفحه را می‌پسندم