<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Stefan's ASP.NET Blog</title><subtitle type="html" /><id>http://weblogs.asp.net/stefansedich/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/stefansedich/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-02-11T10:19:00Z</updated><entry><title>Enhanced XMLSiteMapProvider with support for dynamic nodes.</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/08/14/enhanced-xmlsitemapprovider-with-support-for-dynamic-nodes.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/08/14/enhanced-xmlsitemapprovider-with-support-for-dynamic-nodes.aspx</id><published>2008-08-14T11:43:00Z</published><updated>2008-08-14T11:43:00Z</updated><content type="html">&lt;p&gt;Hello All,&lt;/p&gt;&lt;p&gt;This might be a long one so bear with me here this might bore you :).&lt;br&gt;&lt;br&gt;&lt;br&gt;I have have had the need to be able to add dynamic nodes to my sitemap, I am using a sitemap xml file. My first solution, was to create a custom sitemap provider, which would parse the XML and if it detected the node I had to insert my dynamic nodes into, it would do this and then continue.&lt;/p&gt;&lt;p&gt;Fine I thought but not good enough. I wanted a generic solution that could be reused and that would be easy to use. I came up with the idea of extending the sitemap XML file to contain some new nodes. Then create a custom parser that would make use of this. The idea in the end was to add two new elements to the sitemap, the elements being &amp;lt;dynamicNode&amp;gt; and &amp;lt;dynamicNodes&amp;gt;, the idea was that they would call a static method on a class that would either return 1 node or a collection. These would then be injected into the sitemap when it is created.&lt;/p&gt;&lt;p&gt;The beauty here was that you could add dynamic nodes to our sitemap, one other side effect was that you could now nest dynamic nodes in static nodes, and also nest static nodes in either a dynamic node, or a dynamic nodes collection. If you look at the sample project supplied you will see this works quite well. One thing to note is that any static nodes added to either a dynamic node or dynamic nodes collection. It will be added at the end. Which I think is expected behaviour, well for me anyway.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;- The new sitemap file -&lt;br&gt;&lt;br&gt;Here is an example of what the sitemap file will now look like. Say we have 3 static nodes, and within the static products node, we need to get products from our database, and add them as children. You could create an easy site map file like so:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&amp;lt;siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" &amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;siteMapNode url="Default.aspx" title="Home"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="About.aspx" title="About Us" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="FAQ.aspx" title="FAQ" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="Product.aspx" title="Products"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dynamicNodes type="Sample.MenuHelper, Sample" method="GetProducts" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/siteMapNode&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/siteMapNode&amp;gt;&lt;br&gt;&amp;lt;/siteMap&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;Here you can see that we have added some static nodes, and within our products node, we have added a dynamicnodes, node. You can see that this calls the static method GetProducts on the MenuHelper class. This method will return a collection of nodes which will be inserted into our static nodes children. And dynamic insertion of child nodes is now possible :)... You are also able to have a dynamic node, which is a single root node, plus you can nest until your heart is content, which you will see in the sample.&lt;br&gt;&lt;br&gt;-- MenuHelper --&lt;br&gt;&lt;br&gt;In this class we would have a static GetProducts method, this would return a list of XX objects. These objects are helpers, they allow us to create a collection of sitemap nodes, so that they can be used in the provider to build up the sitemap. The node has the default properties (key,url,title,description) and you can add custom attributes too. The method would look like so, you could imagine this would use the database to get products and build up the list.&lt;br&gt;&lt;br&gt;public static List&amp;lt;EnhancedXMLSiteMapProvider.EnhancedSiteMapNode&amp;gt; GetProducts() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new List&amp;lt;EnhancedXMLSiteMapProvider.EnhancedSiteMapNode&amp;gt;() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new EnhancedXMLSiteMapProvider.EnhancedSiteMapNode() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Key="Product1.aspx",&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url="Product1.aspx",&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Product 1"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;-- Web.Config Configuration --&lt;br&gt;&lt;br&gt;You need to configure the provider in the web.config. In the sample project this is done as so:&lt;br&gt;&lt;br&gt;&amp;lt;siteMap defaultProvider="EnhancedXMLSiteMapProvider"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;providers&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="EnhancedXMLSiteMapProvider" type="EnhancedXMLSiteMapProviderSample.EnhancedXMLSiteMapProvider, EnhancedXMLSiteMapProviderSample" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteMapFile="~/Web.sitemap"&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cacheDuration="15"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/providers&amp;gt;&lt;br&gt;&amp;lt;/siteMap&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I am basically setting it as the default provider, I am pointing it to the xml sitemap file, and setting the cache duration (this defaults to 5 if not set). Once this is done you are ready to run. One thing to note is that the provider also puts a dependancy on the xml file, so that once changed it invalidates the sitemap. And also after the time duration. &lt;br&gt;&lt;br&gt;One issue is that any dynamic data does not invalidate the cache, you are able to set a cacheKey on the provider which is used for caching. Then you can use code to remove the item. So you backend could remove the cache item when it needs the menu to change.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-- The Provider --&lt;br&gt;&lt;br&gt;I am not going to go into full detail on the provider and show all the code, it is all included in the sample project so just have a look. Basically the main workings, just parses the XML file, depending on the node type will do different things. If it encounters a dynamicNode or dynamicNodes element it will grab the type and method attributes, and use reflection to call these methods and continue parsing the data. &lt;br&gt;&lt;br&gt;I have tested this with many levels/combinations of nodes and I have not had any issues yet, mind you I know this needs neatening up and it is only the efforts of a days work. I will post updates as I go and any bug fixes to this. But at the moment I am happy with where it is.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-- Final Word --&lt;/p&gt;&lt;p&gt;The sample project is supplied below, have a play and let me know what you think. Also this is the first time I have ever used the site map provider, so if I have just reinvented the wheel please give me a gentle slap and let me know :). &lt;/p&gt;&lt;p&gt;Sample Project Files&lt;br&gt;------------------------------------------------------------&lt;br&gt;&lt;a href="http://weblogs.asp.net/blogs/stefansedich/EnhancedXMLSiteMapProviderSample.zip" mce_href="http://weblogs.asp.net/blogs/stefansedich/EnhancedXMLSiteMapProviderSample.zip"&gt;EnhancedXMLSiteMapProviderSample.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Cheers&lt;br&gt;Stefan&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6517294" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term="MICROSOFT" scheme="http://weblogs.asp.net/stefansedich/archive/tags/MICROSOFT/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /><category term="XML" scheme="http://weblogs.asp.net/stefansedich/archive/tags/XML/default.aspx" /><category term="Configuration" scheme="http://weblogs.asp.net/stefansedich/archive/tags/Configuration/default.aspx" /><category term="Sitemap" scheme="http://weblogs.asp.net/stefansedich/archive/tags/Sitemap/default.aspx" /></entry><entry><title>Nullable ConvertTo Extension Method</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/08/12/nullable-convertto-extension-method.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/08/12/nullable-convertto-extension-method.aspx</id><published>2008-08-12T06:21:00Z</published><updated>2008-08-12T06:21:00Z</updated><content type="html">&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;I have the need to easily convert a string to another type i.e. int. And would like to return null if the string is empty. I created a quick extension method, thought id post it up incase anyone finds it helpful.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Converts a string value to the given type, if the string is empty, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// will return null.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="input"&amp;gt;&amp;lt;/param&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static T? ConvertTo&amp;lt;T&amp;gt;(this string input) where T : struct {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T? ret = null;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!string.IsNullOrEmpty(input)) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = (T)Convert.ChangeType(input, typeof(T));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;Basically to use this, just call the extension method on a string:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;"12".ConvertTo&amp;lt;int&amp;gt;(); // Returns 12&lt;br&gt;"".ConvertTo&amp;lt;int&amp;gt;(); // Returns null&lt;br&gt;"1ddsfs".ConvertTo&amp;lt;int&amp;gt;(); // Exception thrown (behaviour I wanted)&lt;br&gt;&lt;br&gt;&lt;br&gt;Just a quick one today, will be posting some more useful things in the weeks to come.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Cheers&lt;br&gt;Stefan&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6507126" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term="MICROSOFT" scheme="http://weblogs.asp.net/stefansedich/archive/tags/MICROSOFT/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /></entry><entry><title>Long time no post :(</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/07/13/long-time-no-post.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/07/13/long-time-no-post.aspx</id><published>2008-07-13T10:21:00Z</published><updated>2008-07-13T10:21:00Z</updated><content type="html">&lt;p&gt;Hello All,&lt;/p&gt;&lt;p&gt;I must say I have been slack, I have not had a post in a long time. I am still alive just have not had the time/motivation to keep this upto date like I had planned.&lt;/p&gt;&lt;p&gt;I am going to hit the road hard again and I hope to be blogging again in the next few weeks. Look forward to sharing my findings with everyone once again.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Cheers&lt;br&gt;Stefan &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6396240" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /></entry><entry><title>Urchin ELF2 Ecommecre Log File Helper</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/04/04/urchin-elf2-ecommecre-log-file-helper.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/04/04/urchin-elf2-ecommecre-log-file-helper.aspx</id><published>2008-04-04T12:25:00Z</published><updated>2008-04-04T12:25:00Z</updated><content type="html">&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Hello,&lt;br&gt;&lt;br&gt;I am currently needing to implement ecommerce tracking with our Urchin stats server. To do this it reads your transaction logs that you write to when users buy from your site. This file needs to be in a special format ELF2 &lt;a href="http://www.google.com/support/urchin45/bin/answer.py?answer=28448" target="_blank" mce_href="http://www.google.com/support/urchin45/bin/answer.py?answer=28448"&gt;click here for more info&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I though I would write some helper classes to make writing my ELF2 logs easier and something that would be reusable and could even have functionality added in the future to parse the logs (most likely never needed but you never know). So I created a set of classes to do this for me. I will not post the source code right now but if there is interest will tidy it up and release it for all too use.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Adding a new order to a transaction record to your log is as easy as pie:&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;

&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(43, 145, 175);"&gt;ELF2TransactionLog&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; log = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ELF2TransactionLog&lt;/span&gt;();&lt;/span&gt;





























































&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;log.TransactionLines.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ELF2LogTransactionLine&lt;/span&gt;()
{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OrderID = &lt;span style="color: rgb(163, 21, 21);"&gt;"100"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;RemoteHost = &lt;span style="color: rgb(163, 21, 21);"&gt;"GETIPHERE"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserAgent =
Request.ServerVariables[&lt;span style="color: rgb(163, 21, 21);"&gt;"HTTP_USER_AGENT"&lt;/span&gt;].ToString(),&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Store = &lt;span style="color: rgb(163, 21, 21);"&gt;"My Store"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SessionID = &lt;span style="color: rgb(163, 21, 21);"&gt;"000-111"&lt;/span&gt;,&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Total = 895,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Tax = 10,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Shipping = 10,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BillCity = &lt;span style="color: rgb(163, 21, 21);"&gt;"Perth"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BillState = &lt;span style="color: rgb(163, 21, 21);"&gt;"WA"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BillZip = &lt;span style="color: rgb(163, 21, 21);"&gt;"6025"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;BillCountry = &lt;span style="color: rgb(163, 21, 21);"&gt;"Australia"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Cookies = &lt;span style="color: rgb(163, 21, 21);"&gt;"GETCOOKIESHERE :)"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;LineItems = {&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;
&lt;span style="color: rgb(43, 145, 175);"&gt;ELF2LogTransactionItemLine&lt;/span&gt;() {&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OrderID = &lt;span style="color: rgb(163, 21, 21);"&gt;"100"&lt;/span&gt;,&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ProductCode = &lt;span style="color: rgb(163, 21, 21);"&gt;"test1"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ProductName = &lt;span style="color: rgb(163, 21, 21);"&gt;"Test Product 1"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Variation = &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Price = 100M,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Quantity = 1,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UpSold = &lt;span style="color: blue;"&gt;false&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserAgent =
Request.ServerVariables[&lt;span style="color: rgb(163, 21, 21);"&gt;"HTTP_USER_AGENT"&lt;/span&gt;].ToString(),&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Cookies = &lt;span style="color: rgb(163, 21, 21);"&gt;"GETCOOKIESHERE"&lt;/span&gt;,&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;RemoteHost = &lt;span style="color: rgb(163, 21, 21);"&gt;"GETIPHERE"&lt;/span&gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&lt;/span&gt;log.Save(Server.MapPath(&lt;span style="color: rgb(163, 21, 21);"&gt;"~/biglog.log"&lt;/span&gt;), &lt;span style="color: blue;"&gt;true&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;br&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Thanks&lt;br&gt;Stefan&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6064759" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /><category term="Urchin" scheme="http://weblogs.asp.net/stefansedich/archive/tags/Urchin/default.aspx" /></entry><entry><title>Our First ASP.NET 3.5 Site Goes Live!!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/04/03/our-first-asp-net-3-5-site-goes-live.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/04/03/our-first-asp-net-3-5-site-goes-live.aspx</id><published>2008-04-03T04:45:00Z</published><updated>2008-04-03T04:45:00Z</updated><content type="html">&lt;P&gt;Hello All,&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;UPDATE 20080409:&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;Another site has launced, check out &lt;A href="http://www.betts.com.au/"&gt;www.betts.com.au&lt;/A&gt;!!!&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Thanks&lt;BR&gt;Stefan&lt;BR&gt;&lt;BR&gt;----------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Finally our first ASP.NET 3.5 website went live today, there are 2 more to come but this one is the only one live atm: &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.zushoe.com.au/" target=_blank mce_href="http://www.zushoe.com.au/"&gt;http://www.zushoe.com.au/&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;This has been challenging and fun as we have used all the latest tools and technologies in this project, some include:&lt;BR&gt;&lt;BR&gt;- Visual Studio 2008&lt;BR&gt;- ASP.NET 3.5&lt;BR&gt;- LINQ to SQL&lt;BR&gt;- ASP.NET AJAX&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;There are really cool features in this site too, for example the paging in the catalogue is done with ajax but using custom link controls I have allowed SEO to still work. It has full AJAX history support too. There are custom developed ASP.NET AJAX controls and extensive caching, plus much more. &lt;BR&gt;&lt;BR&gt;All in all this project was great to work on, being able to use .NET 3.5 and Visual Studio 2008 saved us a lot of time, and using LINQ to SQL cut down creating the DAL quite a bit. Of course with all new techs we have had challenges along the way, but still developed it alot quicker using VS 2008 and .NET 3.5.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;That is all for now, might try post on our challenges sometime soon.&lt;BR&gt;&lt;BR&gt;Thanks&lt;BR&gt;Stefan&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6062420" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="AJAX" scheme="http://weblogs.asp.net/stefansedich/archive/tags/AJAX/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term="MICROSOFT" scheme="http://weblogs.asp.net/stefansedich/archive/tags/MICROSOFT/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/stefansedich/archive/tags/LINQ/default.aspx" /></entry><entry><title>Simplified ASP.NET AJAX Custom Control Development With VS Item Template</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/04/01/simplified-asp-net-ajax-custom-control-development.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/04/01/simplified-asp-net-ajax-custom-control-development.aspx</id><published>2008-04-01T14:05:00Z</published><updated>2008-04-01T14:05:00Z</updated><content type="html">&lt;p&gt;Hello,    &lt;br&gt;    &lt;br&gt;At work today I had a friend (Blair) have issues with trying to get a browser alert to popup on the page during an ASYNC post back. I told him I would make a custom control in 30 secounds or less that would do this and make life much easier. Overkill I know for such a simple task but it was more of a demo to show the ease/speed of creating a control using my custom item template.&lt;br&gt;    &lt;/p&gt;&lt;p&gt;&lt;b&gt;The VS Item Template:&lt;br&gt;&lt;/b&gt;&lt;br&gt;I have created a template in Visual Studio that lets me add a new ASP.NET AJAX server control to any project, this adds the Control class and the debug and release JS files. So basically all I need to do is right click (add new item) ASP.NET AJAX Server Control. The files are now in my solution. The benefit of this is that the default java script file that is added when you create a new control library will not be able to be packed as it is missing a few ; and { }. My template has fixed these issues and it makes life a heck of a lot easier. I then just make the two JS files embedded resources and I am good to go (I need to do this as I could not see a way to get the item template to do this). I will not go into how to create the template here, but have included it for download if you would like to see/use it.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Creating the control:      &lt;br&gt;      &lt;br&gt;&lt;/b&gt;This was the easy part, once I have added my control called MessageBoxControl to my project, which gives me a shell control, I just added a private variable to hold the message and a ShowMessage method. The ShowMessage method does nothing but set this private message variable. It just looks nice to use MessageBox1.ShowMessage("error!"). The code for the control is below:     &lt;br&gt;    &lt;br&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Collections.Generic;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Configuration;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Linq;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web.Security;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web.UI;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web.UI.WebControls;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web.UI.WebControls.WebParts;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Web.UI.HtmlControls;     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; System.Xml.Linq;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;[&lt;span style="color: blue;"&gt;assembly&lt;/span&gt;: &lt;span style="color: rgb(43, 145, 175);"&gt;WebResource&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"MessageBox.MessageBoxControl.js"&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;"text/javascript"&lt;/span&gt;)]      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;[&lt;span style="color: blue;"&gt;assembly&lt;/span&gt;: &lt;span style="color: rgb(43, 145, 175);"&gt;WebResource&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"MessageBox.MessageBoxControl.debug.js"&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;"text/javascript"&lt;/span&gt;)]      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;namespace&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; MessageBox {     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Summary description for ServerControl1       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxControl&lt;/span&gt; : &lt;span style="color: rgb(43, 145, 175);"&gt;ScriptControl&lt;/span&gt; {      &lt;br&gt;      &lt;br&gt;&lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; _message = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; Script Descriptiors&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;ScriptDescriptor&lt;/span&gt;&amp;gt;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GetScriptDescriptors() {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;ScriptControlDescriptor&lt;/span&gt; descriptor = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ScriptControlDescriptor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"MessageBox.MessageBoxControl"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.ClientID);      &lt;br&gt;&lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;descriptor.AddProperty(&lt;span style="color: rgb(163, 21, 21);"&gt;"Message"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;._message);&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;yield&lt;/span&gt; &lt;span style="color: blue;"&gt;return&lt;/span&gt; descriptor;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Generate the script reference       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;ScriptReference&lt;/span&gt;&amp;gt;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GetScriptReferences() {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;yield&lt;/span&gt; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ScriptReference&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"MessageBox.MessageBoxControl.js"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.GetType().Assembly.FullName);      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; Message Showing&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Just sets my message text.       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;param name="message"&amp;gt;&amp;lt;/param&amp;gt;       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; ShowMessage(&lt;span style="color: blue;"&gt;string&lt;/span&gt; message) {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;._message = message;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}      &lt;br&gt;&lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}      
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;}&lt;/span&gt;&lt;/p&gt;
  
&lt;p&gt;   &lt;br&gt;As you can see the control is ultra simple. The private var is set and in my GetScriptDescriptors this is where I pass this value to my client script library. The client script library is also very simple. I need to add the Message Property and show the message using an alert().    &lt;br&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: green;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;/// &amp;lt;reference name="MicrosoftAjax.js"/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: green;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;Type.registerNamespace(&lt;span style="color: rgb(163, 21, 21);"&gt;"MessageBox"&lt;/span&gt;);&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;MessageBox.MessageBoxControl = &lt;span style="color: blue;"&gt;function&lt;/span&gt;(element) {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MessageBox.MessageBoxControl.initializeBase(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, [element]);&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp; &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;._message = &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;};&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;MessageBox.MessageBoxControl.prototype = {     &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;initialize: &lt;span style="color: blue;"&gt;function&lt;/span&gt;() {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MessageBox.MessageBoxControl.callBaseMethod(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;'initialize'&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(&lt;span style="color: blue;"&gt;this&lt;/span&gt;._message != &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;) {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;alert(&lt;span style="color: blue;"&gt;this&lt;/span&gt;._message);      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dispose: &lt;span style="color: blue;"&gt;function&lt;/span&gt;() {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//Add custom dispose actions here       &lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MessageBox.MessageBoxControl.callBaseMethod(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;'dispose'&lt;/span&gt;);      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;get_Message: &lt;span style="color: blue;"&gt;function&lt;/span&gt;() {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;this&lt;/span&gt;._message;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},&amp;nbsp; &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;set_Message: &lt;span style="color: blue;"&gt;function&lt;/span&gt;(value) {      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;._message = value;      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;};&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;MessageBox.MessageBoxControl.registerClass(&lt;span style="color: rgb(163, 21, 21);"&gt;'MessageBox.MessageBoxControl'&lt;/span&gt;, Sys.UI.Control);      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; line-height: 115%;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt; (&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(Sys) !== &lt;span style="color: rgb(163, 21, 21);"&gt;'undefined'&lt;/span&gt;) { Sys.Application.notifyScriptLoaded(); }      &lt;br&gt;&lt;/span&gt;&lt;/p&gt;
  
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; line-height: 115%;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;Here we can see that we have the Message property and then in our initialise function we simply use this value to show a message to the user using a java script alert. Now that is my control done, I add it to my page and I can then use Control.ShowMessage("tesing") to show an alert message on the page.      &lt;br&gt;      &lt;br&gt;With the java script here a 2 files a .debug.js and a .js file. The .debug.js file will be used when your script manager is in debug mode and the .js when in release mode. Use &lt;a href="http://dean.edwards.name/packer/" mce_href="http://dean.edwards.name/packer/" target="_blank"&gt;Dean Edwards Packer&lt;/a&gt; to compress your debug script into a tight release mode script. If you have script errors when compressing your script make sure you use &lt;a href="http://www.jslint.com/" mce_href="http://www.jslint.com/" target="_blank"&gt;JSLint&lt;/a&gt; to verify your script, fixing any errors and pack again.      &lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%;" courier="" new="" ;="" mso-no-proof:="" yes=""&gt;     &lt;br&gt;      &lt;br&gt;&lt;b&gt;Final:       &lt;br&gt;        &lt;br&gt;&lt;/b&gt;While this control was not really an example of how to build a rich control (or the most efficient way to show a message to the user), it was more of a demo on how creating your own VS Templates can make your day to day life much easier. And also demonstrating how quick and easy it is to develop a custom client control built on top of the ASP.NET AJAX Framework. I have included a copy of my VS Template below if you would like to use it. And also a copy of the sample project that this was built in. To use the template simply add the zip file to your visual studio template folder. I.E. C:\Users\USER\Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C# on my vista machine.&lt;br&gt;      &lt;br&gt;- &lt;a href="http://weblogs.asp.net/blogs/stefansedich/ServerControl.zip"&gt;VS Template File&lt;/a&gt;&lt;br&gt;- &lt;a href="http://weblogs.asp.net/blogs/stefansedich/Sample.zip"&gt;Sample Project&lt;/a&gt;&lt;br&gt;      &lt;br&gt;      &lt;br&gt;&lt;br&gt;Thanks      &lt;br&gt;Stefan&lt;/span&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6056482" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="AJAX" scheme="http://weblogs.asp.net/stefansedich/archive/tags/AJAX/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/ASP.NET/default.aspx" /><category term="MICROSOFT" scheme="http://weblogs.asp.net/stefansedich/archive/tags/MICROSOFT/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /><category term="CONTROLS" scheme="http://weblogs.asp.net/stefansedich/archive/tags/CONTROLS/default.aspx" /></entry><entry><title>Update to my LINQ to SQL performance in VB.NET saga</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/03/29/update-to-my-linq-to-sql-performance-in-vb-net-saga.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/03/29/update-to-my-linq-to-sql-performance-in-vb-net-saga.aspx</id><published>2008-03-29T07:05:00Z</published><updated>2008-03-29T07:05:00Z</updated><content type="html">&lt;p&gt;Hello,&lt;br&gt;&lt;br&gt;If you have&amp;nbsp; read my posts before where I was complaining about VB generated sub optimal SQL when using nullable columns in your where clauses, I came to the conclusion I was being silly and not using .Value on those nullable fields in my queries.&lt;br&gt;&lt;br&gt;I stumbled across this post today:&lt;br&gt;&lt;br&gt;http://blogs.msdn.com/vbteam/archive/2008/03/28/linq-to-sql-and-linq-to-entities-performance-improvements-tim-ng.aspx&lt;br&gt;&lt;br&gt;&lt;br&gt;Looks like it was an issue in the end and not me being totally stupid :).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&lt;br&gt;Stefan&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6044718" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="SQL" scheme="http://weblogs.asp.net/stefansedich/archive/tags/SQL/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/stefansedich/archive/tags/LINQ/default.aspx" /><category term="VB.NET" scheme="http://weblogs.asp.net/stefansedich/archive/tags/VB.NET/default.aspx" /></entry><entry><title>Book Review: Linq Quickly by N Satheesh Kumar</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/03/26/book-review-linq-quickly-by-n-satheesh-kumar.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/03/26/book-review-linq-quickly-by-n-satheesh-kumar.aspx</id><published>2008-03-26T13:23:00Z</published><updated>2008-03-26T13:23:00Z</updated><content type="html">&lt;p&gt;This books title does not lie, it is LINQ and it is quickly.
This book is an excellent introduction into the world of LINQ and also a great
reference once you get your feet wet. &lt;br&gt;
&lt;br&gt;
The start of the book gives you a brief introduction into what LINQ is and also
an introduction into the new features in C# 3.0. It covers things like anonyms
types, object initializers, collection initializers, partial methods, implicitly
typed local variables, extension methods, lambda expressions, &amp;nbsp;query expressions and also a small intro to
expression trees.&lt;br&gt;
&lt;br&gt;
Then it covers LINQ to Objects, which gives you a good idea on how to use LINQ
over your in memory objects, including arrays, collections, string and even
text files. It shows you just how easy it is to do things that in the past
would have been a lot harder to complete. &lt;br&gt;
&lt;br&gt;
Next up is LINQ to XML, this is a great introduction to this subject, it covers
a great deal of information in regards to all the new LINQ to XML classes, how
to create/update/delete XML documents using these new classes and methods. You
are also shown the power you now have when you are querying XML and how easy it
just is.&lt;br&gt;
&lt;br&gt;
The LINQ to SQL chapter is also an excellent reference if you would like to get
your feet wet but would not like to be overwhelmed with information. There are
plenty of good examples on how to begin using LINQ to SQL and the code samples
provided make this very easy. It covers everything from Data Context,
Attributes, Relationships, querying, data manipulation, using stored procedures
and also all the other common query operators that you would use. There is also
a chapter on LINQ to Datasets but as I never use datasets this was something I
briefly skimmed over and did not digest.&lt;br&gt;
&lt;br&gt;
Finally the book provides a good chapter on Standard Query Operators, this is
an excellent post reference once you are already in the world of LINQ, it is
good to able to flick to be back, find what you need and see the function
prototypes and even a code sample on how to use it. I still sometimes will
flick to this part of the book to quickly reference things when I forget :P.&lt;br&gt;
&lt;br&gt;
All in all this was an excellent book and I would highly recommend it to anyone
who would like to start out with LINQ but would like to get a quick
introduction and be on their way to actually using it. This book provides just
that and more&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Book Information:&lt;/p&gt;

Title: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LINQ Quickly&lt;br&gt;
Author: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N Satheesh Kumar&lt;br&gt;
Publisher: &amp;nbsp;PACKT Publishing (http://www.packtpub.com/)&lt;br&gt;
Link:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.packtpub.com/linq-quick-starter/book"&gt;http://www.packtpub.com/linq-quick-starter/book&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
And finally a big thanks to Duane at PACKT Publishing for giving me the
opportunity to review this book.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
Stefan&lt;br&gt;
&lt;br&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6028374" width="1" height="1"&gt;</content><author><name>stefan.sedich</name><uri>http://weblogs.asp.net/members/stefan.sedich.aspx</uri></author><category term="MICROSOFT" scheme="http://weblogs.asp.net/stefansedich/archive/tags/MICROSOFT/default.aspx" /><category term=".NET 3.5" scheme="http://weblogs.asp.net/stefansedich/archive/tags/.NET+3.5/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/stefansedich/archive/tags/LINQ/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/stefansedich/archive/tags/C_2300_/default.aspx" /></entry><entry><title>A Templated ASP.NET RSS Feed Reader Control</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/stefansedich/archive/2008/03/18/a-templated-asp-net-rss-feed-reader-control.aspx" /><id>http://weblogs.asp.net/stefansedich/archive/2008/03/18/a-templated-asp-net-rss-feed-reader-control.aspx</id><published>2008-03-18T13:28:00Z</published><updated>2008-03-18T13:28:00Z</updated><content type="html">&lt;p&gt;&lt;b&gt;Update 20070330:&lt;br&gt;&lt;br&gt;&lt;/b&gt;By popular demand (well a couple people) I have included a sample project with everything needed to get started using this control. &lt;br&gt;&lt;br&gt;Basically just a sample web project, click here to get the zipped archive. You might notice things are done a little different, I include the System.ServiceModel.Syndication namespace on my page so that I can case the Container.DataItem to a SyndicationItem and access its properties that way, stops using Eval, but each to their own.&lt;br&gt;&lt;br&gt;&lt;br&gt;Hope that makes it easier for some, will be including full source in future too :).&lt;br&gt;&lt;br&gt;Project Files:&lt;br&gt;&lt;a href="http://weblogs.asp.net/blogs/stefansedich/TemplatedRSSFeedReader.zip"&gt;TemplatedRSSFeedReader.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks&lt;br&gt;Stefan&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Update 20070319:&lt;br&gt;&lt;/b&gt;&lt;br&gt;Today I attended the Heros Happen event in Perth, and I learnt something very very cool, you see how I wrote my own classes and code to load the syndicated feed in, then used LINQ to XML to load that into my classes. During &lt;a href="http://blogs.msdn.com/dglover/" mce_href="http://blogs.msdn.com/dglover/"&gt;Dave Glovers&lt;/a&gt; presentation on WCF he had a sample in there that was building an RSS feed, and I could see he was using some classes to do so. What I then noticed is these classes are new in .NET 3.5 and will make creation of this control 100 times easier plug give us full support of the RSS 2.0 spec and allow us to access all feed proprties :) :) and will mean *removing* code and making things much simpler.&lt;br&gt;&lt;br&gt;Firstly we need to add a reference to the System.ServiceModel.Web assembley, this is where the magic is. Then add a using System.ServiceModel.Syndication; to the RSSReader.cs class, we then have access to these helper classes which allow us to easily read and create RSS 2.0 and ATOM 1.0 feeds, as I am only supporting RSS I will only use the RSS formatter. To read our feed we need to do the below:&lt;br&gt;&lt;br&gt;Firslty read the feed into an XMLReader:&lt;br&gt;&lt;br&gt;XmlReader reader = XmlReader.Create("http://weblogs.asp.net/stefansedich/rss.aspx");&lt;br&gt;&lt;br&gt;Then create an instance of the RSS20FeedFormatter and then make this read the data from the xmlreader:&lt;br&gt;&lt;br&gt;Rss20FeedFormatter feedFormatter = new Rss20FeedFormatter();&lt;br&gt;feedFormatter.ReadFrom(reader);&lt;br&gt;&lt;br&gt;&lt;br&gt;We now can get access to the feed by using feedFormatter.Feed, this gives us an instance of a SyndicationFeed class which gives us access to all items and properties of our feed. The only difference now is that as some properties are a little different accessing them is different.So instead of feed.Title you use feed.Title.Text instead. The good thing with this is, 1. We have removed the need to do this manually and 2. We have all properties that belong to an RSS feed. &lt;br&gt;&lt;br&gt;The updated RSSReader class is below with the code changes. You can now remove the Feed and FeedItem classes we created earlier as they are needed no more. It just goes to show we learn something new every day.....&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Code:&lt;br&gt;&lt;br&gt;&lt;/b&gt;

&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; An RSS Feed reader server control, it will basically
aggregate rss feeds and display the content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RSSReader&lt;/span&gt; : &lt;span style="color: rgb(43, 145, 175);"&gt;CompositeControl&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;INamingContainer&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; Properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; The URL of the feed to display&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; FeedURL {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedURL"&lt;/span&gt;] != &lt;span style="color: blue;"&gt;null&lt;/span&gt; ? ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedURL"&lt;/span&gt;].ToString()
: &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedURL"&lt;/span&gt;] = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; The number of items to show from the feed, 10 is the
default.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; FeedItemCount {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedItemCount"&lt;/span&gt;] != &lt;span style="color: blue;"&gt;null&lt;/span&gt; ? (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedItemCount"&lt;/span&gt;] : 10;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ViewState[&lt;span style="color: rgb(163, 21, 21);"&gt;"FeedItemCount"&lt;/span&gt;] = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; The header template for this control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: rgb(43, 145, 175);"&gt;TemplateContainer&lt;/span&gt;(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;)),
&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;.InnerProperty)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITemplate&lt;/span&gt; HeaderTemplate { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; The footer template for this control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: rgb(43, 145, 175);"&gt;TemplateContainer&lt;/span&gt;(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;)),
&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;.InnerProperty)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITemplate&lt;/span&gt; FooterTemplate { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; The item template for this control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: rgb(43, 145, 175);"&gt;TemplateContainer&lt;/span&gt;(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;)),
&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;PersistenceMode&lt;/span&gt;.InnerProperty)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITemplate&lt;/span&gt; ItemTemplate { &lt;span style="color: blue;"&gt;get&lt;/span&gt;;
&lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; Constructor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Default
constructor &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
RSSReader() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; Child Control Creation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Creates child controls for this control, first create the
header&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; based on template, then the items, then finally the
footer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt;
&lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt;
CreateChildControls() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Get
our RSS feed data, this is returned as a collection&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// of the
RSSReaderDataItem controls.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;SyndicationFeed&lt;/span&gt;
feed = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.GetRSSData();&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(feed != &lt;span style="color: blue;"&gt;null&lt;/span&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Create the header template, and add to the controls.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.HeaderTemplate != &lt;span style="color: blue;"&gt;null&lt;/span&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Create the dataitem control for the header&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
and assign it the current feed as its dataitem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;
header = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;()
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataItem = feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Instantiate template, add to controls and &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
databind header.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.HeaderTemplate.InstantiateIn(header);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Controls.Add(header);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;header.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.ItemTemplate != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;foreach&lt;/span&gt;
(&lt;span style="color: rgb(43, 145, 175);"&gt;SyndicationItem&lt;/span&gt; dataItem &lt;span style="color: blue;"&gt;in&lt;/span&gt; feed.Items) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Create an item child control and &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// assign the current feed item as its dataitem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt; item = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataItem = dataItem&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Instantiate the item template, add to controls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// and databind the item.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.ItemTemplate.InstantiateIn(item);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Controls.Add(item);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;item.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.FooterTemplate != &lt;span style="color: blue;"&gt;null&lt;/span&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Create the footer dataitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
and assign it the current feed as its dataitem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;
footer = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RSSReaderDataItem&lt;/span&gt;()
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataItem = feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Instantiate the template, add to controls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
and databind the footer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.FooterTemplate.InstantiateIn(footer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Controls.Add(footer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;footer.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; RSS Data Retrieval&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Fetched the RSS data
from the current RSS Feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;A collection of RSSReaderDataItems&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/returns&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: rgb(43, 145, 175);"&gt;SyndicationFeed&lt;/span&gt; GetRSSData() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;SyndicationFeed&lt;/span&gt;
feed = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Only do
if we have a feed url specified.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(!&lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.FeedURL))
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Get the current feed and load into an XMLReader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt;
(&lt;span style="color: rgb(43, 145, 175);"&gt;XmlReader&lt