<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://barmagy.com/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MOSS &amp; .Net World</title><link>http://barmagy.com/blogs/moss_and_dot_net_world/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Debug Build: 60217.2664)</generator><item><title>Inner join between MOSS list and SQL table</title><link>http://barmagy.com/blogs/moss_and_dot_net_world/archive/2008/04/22/1313.aspx</link><pubDate>Tue, 22 Apr 2008 03:09:00 GMT</pubDate><guid isPermaLink="false">6f955cd0-92ea-460f-9cfe-3201e711ce4e:1313</guid><dc:creator>Ahmed.AHameed</dc:creator><slash:comments>0</slash:comments><comments>http://barmagy.com/blogs/moss_and_dot_net_world/comments/1313.aspx</comments><wfw:commentRss>http://barmagy.com/blogs/moss_and_dot_net_world/commentrss.aspx?PostID=1313</wfw:commentRss><description>&lt;DIV class=ExternalClass6255D1C943284EA08DC2412044D1D92C&gt;
&lt;DIV&gt;IF you have a MOSS list that contains a lot of data including UserID's.&amp;nbsp; These ID's&amp;nbsp;are stored in the Users table in SQL because the site is working by Forms authentication provider.&lt;BR&gt;we need to display a specific result from this list in a grid including the user names not the IDs.&lt;BR&gt;we have a lot of solutions for doing that:&lt;BR&gt;- loop to every row&amp;nbsp;and send this ID to&amp;nbsp;a stored&amp;nbsp;which returns the user name (Don't loop to SQL -very very bad performance-)&lt;/DIV&gt;
&lt;DIV&gt;-Concatenating these ID's together and form a static select statement to be sent to the SQL and executed (very bad performance because this statemnet is not compiled, note that the "in" statment doesn't accept parameters so it can't be stored procedure) "select UserName from Users where UserId in (12,45,465,5,56,78,89,90)".&lt;BR&gt;- Use Linque to join different data sources (Good solution)&lt;BR&gt;- User SQL 2008: where you can create a stored procedure with parameters of type table. (then we can create a table in .net including the IDs and&amp;nbsp;then send this table as a parameter to the stored procedure.)&lt;BR&gt;- Use Open XML in SQL 2005, where you can format XML string and pass this XML to&amp;nbsp;a stored procedure to read it as a table and then join this virtual table to the users table.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Ahmed Abdel Hameed (MCSD .Net)&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;IMG alt="" src="http://ld-portals:84/_layouts/images/blank.gif" width=1&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1313" width="1" height="1"&gt;</description></item><item><title>MOSS 2007 &amp;amp; Request time out problem</title><link>http://barmagy.com/blogs/moss_and_dot_net_world/archive/2008/04/22/1312.aspx</link><pubDate>Tue, 22 Apr 2008 02:42:00 GMT</pubDate><guid isPermaLink="false">6f955cd0-92ea-460f-9cfe-3201e711ce4e:1312</guid><dc:creator>Ahmed.AHameed</dc:creator><slash:comments>0</slash:comments><comments>http://barmagy.com/blogs/moss_and_dot_net_world/comments/1312.aspx</comments><wfw:commentRss>http://barmagy.com/blogs/moss_and_dot_net_world/commentrss.aspx?PostID=1312</wfw:commentRss><description>&lt;P class=MsoNormal&gt;&lt;SPAN&gt;One of the famous server errors that you may get is Request time out. This error is normal for developers .The causes usually&amp;nbsp;are a process that takes a very long time "lengthy operation" or a connection to&amp;nbsp;a DB that is disconnected or a server side code that exexutes infinite loop. But what was very strange in MOSS 2007 that you may get a time out error from a data entry in the MOSS navigation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Once a day I had been informed that&amp;nbsp;my live&amp;nbsp;site that is&amp;nbsp;based on MOSS 2007&amp;nbsp;is down, then I found that the site gives a time out error. I spent about two day searching for the problem and eventually I found that the client submitts in the menu about 30 static links under the same node with the same title and URL.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;The problem wasn't in the menu itself but it was in the site map data source. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;We have ASP.Net SiteMapDataSource which is the data source for the share point menu. It seems that this problem is a bug in the integration between the datasource and MOSS. Because normally the sitemapdatasource throws an exception if the data provided contains duplicate URLS. so It is clear that MOSS can't handle this exception and throws time out error&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;Ahmed Abdel Hameed (MCSD .Net)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1312" width="1" height="1"&gt;</description></item><item><title>MOSS 2007 content query web part &amp;amp; RSS problem</title><link>http://barmagy.com/blogs/moss_and_dot_net_world/archive/2008/04/18/1303.aspx</link><pubDate>Fri, 18 Apr 2008 19:58:00 GMT</pubDate><guid isPermaLink="false">6f955cd0-92ea-460f-9cfe-3201e711ce4e:1303</guid><dc:creator>Ahmed.AHameed</dc:creator><slash:comments>0</slash:comments><comments>http://barmagy.com/blogs/moss_and_dot_net_world/comments/1303.aspx</comments><wfw:commentRss>http://barmagy.com/blogs/moss_and_dot_net_world/commentrss.aspx?PostID=1303</wfw:commentRss><description>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;You can get RSS feed from a content query web part, just be selecting the Enable feed check box.&lt;BR&gt;It looks very easy to use, but the problem here is that RSS in the content query web part is not working fine.&lt;BR&gt;If you have more than one RSS in the site, you will find them getting wrong data, or you may find them all get the same data. The problem is that content query web part inherits from a data form web part, and unfortunately the data form web part caches the content in a memory cache.&lt;BR&gt;The conflict occured because the content query web part use the same key for all the cached instances, so you will find all the Rss feeds shows the same data. There are a lot of work around to solve this problem but unfortunately they don't work according the following link in the MSDN:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb608445.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/bb608445.aspx&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;------------------------------------------&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;I customized MOSS RSS by developing a page that takes the same query and generates the RSS&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;partial&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FeedPage&lt;/FONT&gt;&lt;FONT size=2&gt; : System.Web.UI.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Page&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; write the RSS content to the page output stream.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;protected&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Page_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;EventArgs&lt;/FONT&gt;&lt;FONT size=2&gt; e)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// get the RSS data&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;Microsoft.SharePoint.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPSite&lt;/FONT&gt;&lt;FONT size=2&gt; SiteCollection = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPContext&lt;/FONT&gt;&lt;FONT size=2&gt;.Current.Site; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;DataTable&lt;/FONT&gt;&lt;FONT size=2&gt; tbl = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPSecurity&lt;/FONT&gt;&lt;FONT size=2&gt;.RunWithElevatedPrivileges(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;delegate&lt;/FONT&gt;&lt;FONT size=2&gt;()&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; WebPath, PageID, WebPartID;&lt;/P&gt;
&lt;P&gt;WebPath = Request.QueryString[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.web];&lt;/P&gt;
&lt;P&gt;PageID = Request.QueryString[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.page];&lt;/P&gt;
&lt;P&gt;WebPartID = Request.QueryString[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.wp];&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// intialize the site with a token&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPWeb&lt;/FONT&gt;&lt;FONT size=2&gt; web = SiteCollection.OpenWeb(WebPath);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPFile&lt;/FONT&gt;&lt;FONT size=2&gt; page = web.GetFile(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Guid&lt;/FONT&gt;&lt;FONT size=2&gt;(PageID));&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ContentByQueryWebPart&lt;/FONT&gt;&lt;FONT size=2&gt; part = (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ContentByQueryWebPart&lt;/FONT&gt;&lt;FONT size=2&gt;)page.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;PersonalizationScope&lt;/FONT&gt;&lt;FONT size=2&gt;.User).WebParts[&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Guid&lt;/FONT&gt;&lt;FONT size=2&gt;(WebPartID)];&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;CbqQueryVersionInfo&lt;/FONT&gt;&lt;FONT size=2&gt; query = part.BuildCbqQueryVersionInfo();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPSiteDataQuery&lt;/FONT&gt;&lt;FONT size=2&gt; sQuery = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SPSiteDataQuery&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;sQuery.Lists = query.VersionCrossListQueryInfo.Lists;&lt;/P&gt;
&lt;P&gt;sQuery.Query = query.VersionCrossListQueryInfo.Query;&lt;/P&gt;
&lt;P&gt;sQuery.RowLimit = query.VersionCrossListQueryInfo.RowLimit;&lt;/P&gt;
&lt;P&gt;sQuery.ViewFields = query.VersionCrossListQueryInfo.ViewFields;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;sQuery.Webs = query.VersionCrossListQueryInfo.Webs;&lt;/P&gt;
&lt;P&gt;web = SiteCollection.OpenWeb(part.WebUrl);&lt;/P&gt;
&lt;P&gt;tbl = web.GetSiteData(sQuery);&lt;/P&gt;
&lt;P&gt;});&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt;(Response.OutputStream, System.Text.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Encoding&lt;/FONT&gt;&lt;FONT size=2&gt;.UTF8);&lt;/P&gt;
&lt;P&gt;WriteRSSPrologue(writer);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;FONT size=2&gt; BodyExists=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;//DateTime ArticleDate="";&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;for&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; counter=0; counter&amp;lt;tbl.Columns.Count;counter++)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (tbl.Columns[counter].ColumnName.ToLower() == &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.PublishingPageContent.ToLower())&lt;/P&gt;
&lt;P&gt;BodyExists= &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;for&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; itemsCounter = 0; itemsCounter &amp;lt; tbl.Rows.Count; itemsCounter++)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (!BodyExists)&lt;/P&gt;
&lt;P&gt;AddRSSItem(writer, tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ItemTitle].ToString(),&lt;/P&gt;
&lt;P&gt;tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ItemLink].ToString().Split(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;'#'&lt;/FONT&gt;&lt;FONT size=2&gt;)[1],&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty, tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ArtilceDate].ToString());&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;else&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;AddRSSItem(writer, tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ItemTitle].ToString(),&lt;/P&gt;
&lt;P&gt;tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ItemLink].ToString().Split(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;'#'&lt;/FONT&gt;&lt;FONT size=2&gt;)[1],&lt;/P&gt;
&lt;P&gt;tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.PublishingPageContent].ToString(),&lt;/P&gt;
&lt;P&gt;tbl.Rows[itemsCounter][&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ArticleStartDate].ToString());&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;WriteRSSClosing(writer);&lt;/P&gt;
&lt;P&gt;writer.Flush();&lt;/P&gt;
&lt;P&gt;writer.Close();&lt;/P&gt;
&lt;P&gt;Response.ContentEncoding = System.Text.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Encoding&lt;/FONT&gt;&lt;FONT size=2&gt;.UTF8;&lt;/P&gt;
&lt;P&gt;Response.ContentType = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.textxml;&lt;/P&gt;
&lt;P&gt;Response.Cache.SetCacheability(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;HttpCacheability&lt;/FONT&gt;&lt;FONT size=2&gt;.Public);&lt;/P&gt;
&lt;P&gt;Response.End();&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; Write RSS&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="writer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; WriteRSSPrologue(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;writer.WriteStartDocument();&lt;/P&gt;
&lt;P&gt;writer.WriteStartElement(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.rss);&lt;/P&gt;
&lt;P&gt;writer.WriteAttributeString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.version,&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.two);&lt;/P&gt;
&lt;P&gt;writer.WriteStartElement(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.channel);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.Title.ToLower(),&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.RSSTitle);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.link, Request.Url.AbsoluteUri);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.RSSDescription.ToLower(), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.ttl.ToLower(), (60).ToString());&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;//writer.WriteElementString("copyright", "Copyright 2002-2003 Dan Bright");&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// writer.WriteElementString("generator", "RSSviaXmlTextWriter v1.0");&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; writer;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; Add RSS item&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="writer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="sItemTitle"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="sItemLink"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="sItemDescription"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; AddRSSItem(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer,&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; sItemTitle, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; sItemLink,&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; sItemDescription, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; dItemArticleDate)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;writer.WriteStartElement(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.item);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.Title.ToLower(), sItemTitle);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.link,&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ConfigurationManager&lt;/FONT&gt;&lt;FONT size=2&gt;.AppSettings[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.AppPath] + &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.slash + sItemLink);&lt;/P&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.RSSDescription.ToLower(), sItemDescription);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;//if (Request.QueryString[WebPartResources.web].ToLower().Contains(WebPartResources.arabicURL))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// writer.WriteElementString(WebPartResources.pubDate, dItemArticleDate.ToString(WebPartResources.PrintDateFormatArabic));&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;//else &lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;writer.WriteElementString(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebPartResources&lt;/FONT&gt;&lt;FONT size=2&gt;.pubDate, dItemArticleDate);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;writer.WriteEndElement();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; writer;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; Write RSS closing&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;param name="writer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; WriteRSSClosing(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;writer.WriteEndElement();&lt;/P&gt;
&lt;P&gt;writer.WriteEndElement();&lt;/P&gt;
&lt;P&gt;writer.WriteEndDocument();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; writer;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;Ahmed Abdel Hameed (MCSD .Net)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1303" width="1" height="1"&gt;</description></item></channel></rss>