<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>GoonDocks Blog</title>
    <description>GoonDocks.com Blog Feed</description>
    <link>http://goondocks.com/blog.aspx</link>
    <docs>http://backend.userland.com/rss</docs>
    <item>
      <title>Now Upgraded to Sitefinity 3.2</title>
      <description>&lt;p&gt;&lt;img style="width: 200px; height: 221px" alt="Rock Climber" hspace="7" src="/Libraries/Blog Images/rock-climbing.sflb" align="right" border="1" /&gt;I am happy to announce, after a dozen attempts, I have managed to upgrade Goondocks.com to Sitefinity 3.2.&lt;/p&gt;
&lt;p&gt;My advice to anyone attempting to upgrade from 3.1 is to go through this entire process on your local machine before you even &lt;strong&gt;attempt&lt;/strong&gt; to do this in a live setting.  You will discover many controls have changed.  You will also discover the "&lt;em&gt;ControlTemplate&lt;/em&gt;" changes you made for 3.1 may no longer be compatible with the updated 3.2 controls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here are the steps involved in the Goondocks.com upgrade:&lt;/strong&gt;  &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Backup web files. &lt;/li&gt;
    &lt;li&gt;Backup database. &lt;/li&gt;
    &lt;li&gt;Disable web server &lt;/li&gt;
    &lt;li&gt;FTP "Sitefinity" directory. &lt;/li&gt;
    &lt;li&gt;FTP "bin" directory. &lt;/li&gt;
    &lt;li&gt;FTP "RadControls" directory. &lt;/li&gt;
    &lt;li&gt;FTP updated "web.config" file. &lt;/li&gt;
    &lt;li&gt;Re-add customizations to the "web.config" file. &lt;/li&gt;
    &lt;li&gt;Delete "/bin/RadChart.NET2.dll" file. &lt;/li&gt;
    &lt;li&gt;Delete "/bin/RadEditor.NET2.dll" file. &lt;/li&gt;
    &lt;li&gt;Restart web server. &lt;/li&gt;
    &lt;li&gt;Access web site. &lt;/li&gt;
    &lt;li&gt;Pray. &lt;/li&gt;
    &lt;li&gt;Use wizard, re-setup the connection to the database. &lt;/li&gt;
    &lt;li&gt;Login to Sitefinity with my existing username/password. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point my existing pages were viewable; although my web site looked horrible.  Sitefinity 3.2 introduces several updated versions of the 3.1 controls.  In some cases these updated controls were not compatible with my 3.1 Control Templates.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Work through the web site. &lt;/li&gt;
    &lt;li&gt;Update Master Templates as needed. &lt;/li&gt;
    &lt;li&gt;Update Control Templates as needed. &lt;/li&gt;
    &lt;li&gt;Update stylesheets as needed. &lt;/li&gt;
    &lt;li&gt;Replace old controls as needed.  &lt;/li&gt;
    &lt;li&gt;Replace the Blog posts control. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point all of my Sitefinity 3.1 blog posts were missing.  &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bckhge.aspx"&gt;Execute raw SQL against my database.&lt;/a&gt;  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I now had some of my blog posts back.  For some reason approximately 10 blogs posts had simply disappeared.  Upon investigation I discovered these blogs posts were missing an entry in the "&lt;em&gt;sf_CmsContentVersion&lt;/em&gt;" table.&lt;/p&gt;
&lt;p&gt;To fix this I manually inserted the values.  I used the "&lt;em&gt;sf_CmsContentBase&lt;/em&gt;" table as a reference.  Using that table I was able to see which blog posts were missing.  I was also able to get the ID's and dates.&lt;/p&gt;
&lt;p&gt;Each time I inserted a value in this table I needed to find the blog post in the Sitefinity Admin.  The title was blank.  I needed to click "Edit" and then "Save".  This fixed the blog post and made it look normal.&lt;/p&gt;
&lt;p&gt;Ok, I now have all my blog posts, but the search-engine friendly blog URLs are gone.  The URL column in the "&lt;em&gt;sf_CmsContentBase&lt;/em&gt;" table is "NULL".&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Click through the Sitefinity Admin and re-save each blog post. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I then noticed that some of my blog URLs had changed.  For example I had a blog post titled "Sitefinity - Please, No More Modules!".&lt;/p&gt;
&lt;p&gt;The old URL was: /08-04-19/sitefinity_-_please_no_more_modules_.aspx&lt;br /&gt;
The new URL was: /08-04-19/sitefinity_-_please_no_more_modules.aspx&lt;/p&gt;
&lt;p&gt;Notice the missing "underscore" at the end.  To fix this I directly altered the "URL" column in the "&lt;em&gt;sf_CmsContentBase&lt;/em&gt;" table.&lt;/p&gt;
&lt;p&gt;All my blog posts now appear and the existing search-engine friendly URLs are working fine.  However, my "Tags" &amp;amp; "Categories" links aren't working.&lt;/p&gt;
&lt;p&gt;The Blog controls are completely updated.  You need to remove your existing Blogs, Categories, Tags, and Archive controls and drop updated versions of these controls onto your page.  Configure the controls as needed.&lt;/p&gt;
&lt;p&gt;Note the query string values that are being used between these controls.  The "Blog" control defaults to "BlogTagID" while the Tag control defaults to "CntTagID".  These obviously do not match and this will result in your Tag &amp;amp; Category links not working.&lt;/p&gt;
&lt;p&gt;There are still a few lingering problems, but this web site is mostly functioning again.  &lt;/p&gt;
&lt;hr noshade="true" size="1" /&gt;
&lt;p&gt;This upgrade process has been horrid.  I hope to never go through anything like this again.  I pity anyone trying to follow in my foot-steps.  I've already written about this however and Telerik expressed their commitment to addressing these issues in the future.  For the moment, I am going to let the issue drop.&lt;/p&gt;
&lt;p&gt;All of this being said, I'm really enjoying some of the new Sitefinity 3.2 features.  After I've had some time to "live" with these new features I will write-up of Sitefinity 3.2 review.  For now, I'm simply thankful to be through the upgrade.&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-05-05/Now_Upgraded_to_Sitefinity_3_2.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-05-05/Now_Upgraded_to_Sitefinity_3_2.aspx</comments>
      <guid isPermaLink="false">66dd9195-81c9-49e3-9129-7d1f6da7054d</guid>
      <pubDate>Mon, 05 May 2008 13:41:27 GMT</pubDate>
    </item>
    <item>
      <title>Auto-generate a Web Admin Interface using LINQ to SQL </title>
      <description>&lt;p&gt;&lt;a href="/images/linqmyadmin-big.png" target="_blank"&gt;&lt;img style="width: 210px; height: 150px" alt="LinqMyAdmin Screen Shot" src="/Images/linqmyadmin.png" align="right" border="0" /&gt;&lt;/a&gt;Like a lot of web programmers, I spent years using &lt;a href="http://www.php.net/"&gt;PHP &lt;/a&gt;to create web applications. One of the tools I frequently used in conjunction with PHP was &lt;a href="http://www.phpmyadmin.net/home_page/index.php"&gt;phpMyAdmin &lt;/a&gt;. This helpful web-based tool allowed me to easily manage my &lt;a href="http://www.mysql.com/"&gt;MySQL &lt;/a&gt;databases via a web browser. &lt;/p&gt;
&lt;p&gt;After reading Scott Guthrie's "&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx"&gt;Binding UI using the ASP:LinqDataSource Control&lt;/a&gt;" article I became intrigued by the idea of building a &lt;em&gt;phpMyAdmin-like &lt;/em&gt;inteface that could utlize any "LINQ to SQL Class". In theory this seemed simple, in practice it involved a lot &lt;a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)"&gt;&lt;em&gt;reflection &lt;/em&gt;&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I have a &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; early build of this running and have provided the code below. Comments are sprinkled throughout the code and explain what is happening. Here is how to create this:&lt;/p&gt;
&lt;h2&gt;Step 1: Create the ASPX page&lt;/h2&gt;
&lt;p&gt;Create the following ASPX file: &lt;strong&gt;~/admin/LinqMyAdmin.aspx&lt;/strong&gt; &lt;br /&gt;
&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 500px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%@ Page &lt;/span&gt;&lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"C#"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;CodeFile&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"LinqMyAdmin.aspx.cs"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"LinqMyAdmin"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;html &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;head &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;LinqMyAdmin&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;link &lt;/span&gt;&lt;span style="color: red"&gt;href&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"./LinqMyAdmin.css"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;rel&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"Stylesheet"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"text/css"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;head&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;form &lt;/span&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"form1"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"contentwrapper"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"contentcolumn"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:PlaceHolder &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"LinqPlaceHolder"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Visible&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:PlaceHolder&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;h2 &lt;/span&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"TableHeader"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:GridView   &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"TableGrid"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;   &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: red"&gt;PageSize&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"20"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: red"&gt;AllowPaging&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: red"&gt;AllowSorting&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: red"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: red"&gt;AutoGenerateDeleteButton&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: red"&gt;AutoGenerateEditButton&lt;/span&gt;&lt;span style="font-size: 11px"&gt; = &lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;AlternatingRowStyle &lt;/span&gt;&lt;span style="color: red"&gt;CssClass&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"odd"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;PagerStyle &lt;/span&gt;&lt;span style="color: red"&gt;CssClass&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"pager"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlign&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"Left"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:GridView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"leftcolumn"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;Tables&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Repeater &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"TablesRepeater"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ul&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;li&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;a&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;href&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"linqmyadmin.aspx?table=&amp;lt;%# Container.DataItem %&amp;gt;"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%# Container.DataItem %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;a&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;li&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;FooterTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                    &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ul&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;FooterTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Repeater&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;          &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;html&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;Step 2: Create the Code-Behind &lt;/h2&gt;
&lt;p&gt;Create the following code-behind file: &lt;strong&gt;~/admin/LinqMyAdmin.aspx.cs&lt;/strong&gt; &lt;br /&gt;
&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 500px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Collections;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Data.Linq.Mapping;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Reflection;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Text.RegularExpressions;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI.WebControls;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; partial &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px"&gt; LinqMyAdmin : System.Web.UI.Page  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;// -------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;// CHANGE THE FOLLOWING LINE TO REFER TO YOUR LinqDataContext CLASS &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;// -------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; LinqSQLClass = &lt;/span&gt;&lt;span style="color: blue"&gt;"Intranet.Data.NorthwindDataContext, App_Code"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    Type LinqContextType;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// Executed upon Page Load. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;protected&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; Page_Load(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px"&gt; sender, EventArgs e)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TableName = Request.QueryString[&lt;/span&gt;&lt;span style="color: blue"&gt;"table"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;];  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// Display a list of available Tables &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        LinqContextType = System.Type.GetType(LinqSQLClass, &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        TablesRepeater.DataSource = GetAllTables(LinqContextType);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        TablesRepeater.DataBind();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// If we have a "table" value in our querystring, then display the table. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (TableName != &lt;/span&gt;&lt;span style="color: blue"&gt;null&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            DisplayTable(TableName);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// Gets a list of all Tables found in a LinqContext &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;param name="_Type"&amp;gt;The LinqContext Type&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;returns&amp;gt;list of table names.&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; ArrayList GetAllTables(Type _Type)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        ArrayList _Tables = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; ArrayList();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        PropertyInfo[] _AllProperties = _Type.GetProperties();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (var _PropInfo &lt;/span&gt;&lt;span style="color: blue"&gt;in&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _AllProperties)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: green"&gt;// LINQ Tables are Generics and will be declared as type System.Data.Linq.Table&amp;lt;TEntity&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: green"&gt;// I worked a long time to create a generic Table Type comparison.  Nothing worked. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: green"&gt;// So I ended up just converting the type to a string and searching for a pattern.  :( &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (Regex.IsMatch(_PropInfo.PropertyType.ToString(), @&lt;/span&gt;&lt;span style="color: blue"&gt;"^System.Data.Linq.Table"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;) == &lt;/span&gt;&lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                _Tables.Add(_PropInfo.Name);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _Tables;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;///  &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;param name="TableName"&amp;gt;&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; DisplayTable(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TableName)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// We don't know the ContextTypeName or TableName in advance. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// Create a LinqDataSource control dynamically and add it to our &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// PlaceHolder control. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        LinqDataSource _linqSource = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; LinqDataSource();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        _linqSource.ID = &lt;span style="color: blue"&gt;"LinqSource"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        _linqSource.ContextTypeName = LinqSQLClass;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        _linqSource.TableName = TableName;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        _linqSource.EnableInsert = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        _linqSource.EnableDelete = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        _linqSource.EnableUpdate = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        _linqSource.AutoPage = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        _linqSource.AutoSort = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        _linqSource.EnableViewState = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        LinqPlaceHolder.Controls.Add(_linqSource);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// Fetch the Primary Keys associated with the current table. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt;[] _ID = GetTableKeys(TableName);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// Attach our LinqDataSource to our DataGrid. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        TableHeader.InnerHtml = &lt;span style="color: blue"&gt;"Table -&amp;amp;gt; "&lt;/span&gt;&lt;span style="font-size: 11px"&gt; + TableName;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        TableGrid.DataSourceID = &lt;span style="color: blue"&gt;"LinqSource"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        TableGrid.DataKeyNames = _ID;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// Get all properties associated with our LinqContext Table. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;param name="TableName"&amp;gt;The TableName&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;returns&amp;gt;The properties associated with this table&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; PropertyInfo[] GetTableProperties(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TableName)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// All we currently have is a table name; "Customers" (plural). &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// What we want to fetch are the properties associated with the &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// model that is associated with our table.  That model, example, &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// would be called "Customer" (singular).   &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// We find the connection between table &amp;amp; model by using &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// reflection on the table.  The table will have have a type &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// of System.Data.Linq.Table&amp;lt;Customer&amp;gt;.  The "Customer Type" is  &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// retrievable by looking at the Generic Arguments. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;//  Clear as mud?  Great, let's get started... &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        Type _TableType = LinqContextType.GetProperty(TableName).PropertyType;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        Type _ModelType;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        PropertyInfo[] _ReturnProperties = &lt;span style="color: blue"&gt;null&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// Make sure we have a Generic Type &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_TableType.IsGenericType == &lt;/span&gt;&lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            Type[] _GenericArgs = _TableType.GetGenericArguments();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: green"&gt;// Ensure that we have some Generic Arguments &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_GenericArgs.Length &amp;gt; 0)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: green"&gt;// Our model type will be the first Arg. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                _ModelType = _GenericArgs[0];  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                _ReturnProperties = _ModelType.GetProperties();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _ReturnProperties;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// Gets the primary keys associated with a LinqContext Table &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// &amp;lt;param name="TableName"&amp;gt;The Table Name&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;returns&amp;gt;A list of primary keys associated with the table&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt;[] GetTableKeys(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TableName)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        ArrayList _Keys = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; ArrayList();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;bool&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _PrimaryKey = &lt;/span&gt;&lt;span style="color: blue"&gt;false&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: green"&gt;// Loop through each property found in the Table Model. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (var _PropInfo &lt;/span&gt;&lt;span style="color: blue"&gt;in&lt;/span&gt;&lt;span style="font-size: 11px"&gt; GetTableProperties(TableName))  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: green"&gt;// The Primary Key flag is a Custom Attribute.  Get all Custom Attributes &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: green"&gt;// associated with the current property. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            Object[] _Objects = _PropInfo.GetCustomAttributes(&lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: green"&gt;// Reset our Primary Key flag. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            _PrimaryKey = &lt;span style="color: blue"&gt;false&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: green"&gt;// Loop through each Custom Attribute. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (Object _obj &lt;/span&gt;&lt;span style="color: blue"&gt;in&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _Objects)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                &lt;span style="color: green"&gt;// The attribute we're looking for is "System.Data.Linq.Mapping.ColumnAttribute" &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_obj.GetType() == &lt;/span&gt;&lt;span style="color: blue"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 11px"&gt;(System.Data.Linq.Mapping.ColumnAttribute))  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                    ColumnAttribute _Attribute = (ColumnAttribute)_obj;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                    &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_Attribute.IsPrimaryKey == &lt;/span&gt;&lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                        _PrimaryKey = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_PrimaryKey == &lt;/span&gt;&lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                _Keys.Add(_PropInfo.Name);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _Keys.ToArray(&lt;/span&gt;&lt;span style="color: blue"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 11px"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)) &lt;/span&gt;&lt;span style="color: blue"&gt;as&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt;[];  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;} &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;Step 3: Create the CSS&lt;/h2&gt;
&lt;p&gt;Create the following CSS file: &lt;strong&gt;~/admin/LinqMyAdmin.css&lt;/strong&gt; &lt;br /&gt;
&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 500px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;body {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;background-color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;#FFFFFF&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;font-size&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;15px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;#conten&lt;/span&gt;&lt;span style="font-size: 11px"&gt;twrapper {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;float&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: 100%;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;#conten&lt;/span&gt;&lt;span style="font-size: 11px"&gt;tcolumn {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;margin-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;200px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;; &lt;/span&gt;&lt;span style="color: green"&gt;/*Set left margin to LeftColumnWidth*/&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;#leftco&lt;/span&gt;&lt;span style="font-size: 11px"&gt;lumn {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;float&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;200px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;; &lt;/span&gt;&lt;span style="color: green"&gt;/*Width of left column*/&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;margin-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: -100%;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;#leftco&lt;/span&gt;&lt;span style="font-size: 11px"&gt;lumn ul {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;list-style&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;none&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;margin-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;5px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;padding-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;0px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;#leftco&lt;/span&gt;&lt;span style="font-size: 11px"&gt;lumn li   &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;padding-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;0px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;margin-left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;0px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;margin-bottom&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;5px&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;h2 {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;font-family&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;Arial&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;a:link {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#d42945&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-decoration&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;none&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}     &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;a:visited {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#d42945&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-decoration&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;none&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}         &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;a:hover, a:focus {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#f03b58&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-decoration&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;underline&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;table {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;border&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;solid&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;1px&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;#e5eff8&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;th {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;font-weight&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;normal&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;background&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#f4f9fe&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-align&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;center&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;border&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;solid&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;1px&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;#e5eff8&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;padding&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:.3em 1em;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;thead th {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;background&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#f4f9fe&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-align&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;center&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:&lt;/span&gt;&lt;span style="color: blue"&gt;#66a3d3&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}     &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;tr.odd td {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;background&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;#f7fbff&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;td {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;color&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;#678197&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;border&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;solid&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;1px&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;#e5eff8&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;padding&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:.3em 1em;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: red"&gt;text-align&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;center&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;.pager td {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: red"&gt;text-align&lt;/span&gt;&lt;span style="font-size: 11px"&gt;: &lt;/span&gt;&lt;span style="color: blue"&gt;left&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p &gt;Access the page via the following URL: &lt;strong&gt;http://localhost/admin/LinqMyAdmin.aspx &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I would not recommend putting this code on a public server or using production data. If you do happen to upload this code to a public server, be sure to secure access to the page. &lt;/p&gt;
&lt;p&gt;Obviously this web application lacks a lot of functionality. What is amazing though is how much functionality I am getting "for free" because of ASP.NET's LinqDataSource and GridView. However, I find that I'm reaching the limit of what I can do dynamically. For example, weaving automatic foreign-key mappings into this code is proving difficult. I have some thoughts on how to overcome this, but have not yet found the time to experiment. &lt;/p&gt;
&lt;p&gt;I hope to provide more updates later. Feedback is welcome! &lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-30/Auto-generate_a_Web_Admin_Interface_using_LINQ_to_SQL.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-30/Auto-generate_a_Web_Admin_Interface_using_LINQ_to_SQL.aspx</comments>
      <guid isPermaLink="false">d559917e-19d0-4193-9027-9dacce92bb8c</guid>
      <pubDate>Wed, 30 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Using ASP.NET Page Trace to View LINQ SQL</title>
      <description>&lt;p&gt;I've often found it helpful to use &lt;a href="http://msdn2.microsoft.com/en-us/library/94c55d08.aspx"&gt;ASP.NET's Page Trace&lt;/a&gt; to identify performance problems with my dynamic pages. However, database queries are frequently responsible for performance problems.  Because of this, I began displaying SQL via the Page Trace. This let me see the SQL being executed to render a page. It also let me see how much time the SQL was taking to execute.&lt;/p&gt;
&lt;p&gt;As I began toying with LINQ to SQL I found myself missing the ability to see the SQL being executed to render my pages. As it turns out, it's very easy to have LINQ output the SQL to Page Trace. &lt;/p&gt;
&lt;p&gt;First you need to create a VERY simple class that implements the "System.IO.TextWriter" class.  You can place this file in &lt;strong&gt;~/App_Code/TraceTextWriter.cs&lt;/strong&gt;&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 244px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TraceTextWriter : System.IO.TextWriter  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;override&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Text.Encoding Encoding  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px"&gt; { &lt;/span&gt;&lt;span style="color: blue"&gt;throw&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; NotImplementedException(); }  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;override&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; WriteLine(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; value)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        HttpContext.Current.Trace.Write(&lt;span style="color: blue"&gt;"LINQ"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;, value);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;base&lt;/span&gt;&lt;span style="font-size: 11px"&gt;.WriteLine(value);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;} &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;Next you need to set the LINQ &lt;strong&gt;Log&lt;/strong&gt; property to use an instance of this new &lt;strong&gt;TraceTextWriter&lt;/strong&gt; class:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 90px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;TestDataContext db = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TestDataContext();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;TraceTextWriter traceWriter = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; TraceTextWriter();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;db.Log = traceWriter;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: green"&gt;// Execute your LINQ queries here.&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;Now set &lt;strong&gt;Trace&lt;/strong&gt; to "&lt;strong&gt;true&lt;/strong&gt;" inside your "aspx" page:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 34px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%@ Page &lt;/span&gt;&lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"C#"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Trace&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;Piece of cake! Now load the page in a web browser and you will see details similar to the following:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Images/linq-trace.png" /&gt;&lt;br /&gt;
Now you can easily see the SQL LINQ is generating to render your pages; you can also use this information to troubleshoot performance problems.  When you are done troubleshooting, simply set &lt;strong&gt;Trace&lt;/strong&gt; to "&lt;strong&gt;false"&lt;/strong&gt; to disable this output.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://mattberseth.com/blog/2008/01/profiling_linq_to_sql_using_th.html"&gt;Thanks to Matt Berseth for posting information that helped me get started on this.&lt;/a&gt;&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-22/Using_ASP_NET_Page_Trace_to_View_LINQ_SQL.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-22/Using_ASP_NET_Page_Trace_to_View_LINQ_SQL.aspx</comments>
      <guid isPermaLink="false">47ab60e2-1be3-4ed3-92cf-da5017ab2525</guid>
      <pubDate>Tue, 22 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Sitefinity "File" Control</title>
      <description>&lt;p&gt;I love the Sitefinity "Site Map".  I love how it makes the organization of my web site self-evident.  It is for this reason I wasn't terribly enthused with the "Images &amp;amp; Documents" module that was included with Sitefinity 3.2.  This module took resources out of the "Site Map" to be managed and organized elsewhere.  I also found it impossible to include a single link/reference to a file I was managing via the "Images &amp;amp; Documents" module.  Instead my options seemed to only be "Gallery" or "Download List". &lt;/p&gt;
&lt;p&gt;My desire to manage files within the Sitefinity "Site Map" originally led to the creation of the &lt;a href="/blog/08-01-11/sitefinity_document_control.aspx"&gt;Sitefinity Documents Control&lt;/a&gt;.  This control can be placed onto a Sitefinity page and allows you to upload and manage the file associated with it.  When a user visits the page they will be redirected to the uploaded file.  This was an &lt;em&gt;okay&lt;/em&gt; solution.  However, I hated the browser redirect that was required to accomplish this.  I also hated that the user was given no warning about what was coming. &lt;/p&gt;
&lt;h2&gt;Easily Manage Download-able Files in Sitefinity &lt;/h2&gt;
&lt;p&gt;To address this I created a new "File" Sitefinity Control.  The concept is similar to the "Documents Control".  However, instead of a redirect I'm now displaying file information and a download button: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is just an example image, &lt;a href="/projects/goondocks-sitefinity-controls.aspx"&gt;click here&lt;/a&gt; to see this in action on a real page:&lt;/em&gt;&lt;img alt="" src="/Images/file-control.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;All of this is manageable via a user-friendly Control Designer: &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Images/file-admin.jpg" /&gt;&lt;/p&gt;
&lt;h2&gt;Advantages / Features &lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;Files can be uploaded via a web browser. &lt;/li&gt;
    &lt;li&gt;Files can be organized within the Sitefinity "Site Map". &lt;/li&gt;
    &lt;li&gt;Files inherit the permissions of the underlying Sitefinity page. &lt;/li&gt;
    &lt;li&gt;Automatically handles saving the file to the server. &lt;/li&gt;
    &lt;li&gt;Allows "roll-backs" to previous versions of the file. &lt;/li&gt;
    &lt;li&gt;Alerts the user to the type of file that will be downloaded. &lt;/li&gt;
    &lt;li&gt;Alerts the user about the size of the file that will be downloaded. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How To Download &lt;/h2&gt;
&lt;p&gt;This control and its source-code is included in the &lt;a href="/projects/goondocks-sitefinity-controls.aspx"&gt;&lt;strong&gt;GoonDocks Sitefinity Controls&lt;/strong&gt;&lt;/a&gt;.   &lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-19/Sitefinity_File_Control.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-19/Sitefinity_File_Control.aspx</comments>
      <guid isPermaLink="false">76551eaa-19c5-477c-819e-d7545eb17ee7</guid>
      <pubDate>Sat, 19 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Sitefinity - Please, No More Modules!</title>
      <description>&lt;p&gt;I have been struggling off &amp;amp; on for weeks to upgrade this web site to Sitefinity 3.2.  If you're interested read about this journey &lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bckhge.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bdbkbc.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please understand, I'm a big fan of Sitefinity and Telerik.  But with regard to Sitefinity 3.2 it's fairly obvious little thought or testing was devoted to "upgrading", specifically with regard to Sitefinity modules.  Significant changes were introduced into the Blogs module, as well as other modules.  The net effect: upgrading to 3.2 caused my data to disappear.  Telerik later released raw SQL that could be run to retrieve Blog data.  But, as of this writing I'm still encountering problems. &lt;/p&gt;
&lt;p&gt;After repeatedly trying and failing to upgrade, I couldn't help but think; didn't anyone try this?  I won't sugar-coat this.  This is annoying.  It's never fun to encounter obvious bugs or invest hours with little or no progress.  However, as the weeks went by I came to a strange conclusion:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The problem is only partially that Telerik didn't do sufficient testing on the Blogs module.  The real problem is that a Blogs module was ever created in the first place!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At this point you're probably saying "Huh?".  Stay with me.   Consider the following 2 statements:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Sitefinity solves your problems. &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;Sitefinity empowers you to easily solve your own problems.&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Where do you personally stand on this?  Consider your answer carefully because it will heavily impact the future of this product.  &lt;/p&gt;
&lt;h2&gt;Consider the evidence!&lt;/h2&gt;
&lt;p&gt;Leaving aside the question of philosophical choice, let's look at the current evidence:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;We have modules relating to Forums, Newsletters, Events, Polls, Blogs and Photos. &lt;/li&gt;
    &lt;li&gt;We do not have API documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am fearful we (Telerik &amp;amp; the Sitefinity Community) knowingly or unknowingly are going down the "give us fish" path rather than the "teach us to fish" path.  This is evidenced by the countless forum posts asking for "canned" solutions to problems.  (Yes, I have been guilty of this too.)  It is also evidenced by Telerik's willingness to devote time &amp;amp; effort to satisfy these requests in lieu of providing documentation or core API examples.  &lt;/p&gt;
&lt;p&gt;Consider the following diagram:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Images/sitefinity-diagrahm.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;When you look at the diagram above, you begin to understand the trouble Telerik is encountering.  In each of these "green" areas Sitefinity is competing with long-standing niche products.  People, like myself, have started to become reliant on these Sitefinity modules.   However, instead of being happy Sitefnity provides a plug-n-play Blog control, we instead become unhappy that it lacks WordPress features.  Instead of being happy we have a Forums module, we instead wonder why it lacks the features of CommunityServer.&lt;/p&gt;
&lt;p&gt;Telerik is now involved in the relentless race for features in not just one area, but many areas.  Sitefinity is on the path to becoming a "jack of all trades" and "master of none".  In pursuing this path, Telerik is spreading themselves too thin, making sloppy mistakes and neglecting the things that matter.  Please understand, I don't object to having a Forums module or a Blogs module; rather I object to having these extra features at the cost of core features or documentation.  Those are the things that would empower ME to extend the product in personalized &amp;amp; innovative ways. &lt;/p&gt;
&lt;h2&gt;Staying True to your Roots!&lt;/h2&gt;
&lt;p&gt;I can't speak for everyone, but what drew me to Sitefinity was its incredible page editor &amp;amp; control editor.  I was amazed the first time I created my own ASP.NET User Control and was able to drag, drop &amp;amp; customize it in a web browser.  Sitefinity seemed to be part CMS, part Framework and fully supported the ASP.NET techniques &amp;amp; methods I was already familiar with.  Amazing!  The possibilities seemed limitless.  &lt;/p&gt;
&lt;p&gt;I also loved how the "Site Map" made the organization of my web site self-evident.  However, all of these new modules pull content out of my "Site Map" to be managed and organized separately.  In some cases this is appropriate, in other cases it's not.  For example, it remains impossible to create a "File" node inside my "Site Map".  Sitefinity remains limited to "Pages" and "Links".  &lt;a href="/blog/07-11-30/top_5_most_wanted_sitefinity_features.aspx"&gt;Those are your only 2 options and this limits my ability to extend Sitefinity in the way I choose.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This article is being typed into a Sitefinity Blog Module.  This Module doesn't use the core Sitefinity page editor I originally fell in love with.   I can't use my dynamic controls in my blog post.  In fact, many of the newest Sitefinity features fall outside the beautiful core.  In doing so, Sitefinity is bypassing the thing that enthused me about the product in the first place.  It's like being invited to an amazing banquet only to be shuffled into a broom closet to feast on a &lt;a href="http://en.wikipedia.org/wiki/Image:Swanson_TV_dinner.jpg"&gt;Hungry Man TV dinner&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;This is a direct result of a strategy that chooses to "extend the product through tacked-on modules" versus "allowing the core of Sitefinity to be utilized, customized &amp;amp; extended in unique ways".  &lt;/p&gt;
&lt;p&gt;I'm simply one person, but I recommend Telerik concentrate on the "core" area, shown in the above diagram.  This is what makes Sitefinity unique.  I want Sitefinity to continue to become not merely an incredible CMS, but an incredible development framework.  I want Sitefinity to be a product that empowers us, as developers, to easily address our own niche needs.  Even if a solution isn't readily available, there will be a wealth of experience and samples to draw from.  Lastly, I do not want to be lulled into using "freebie niche features" that break each time a new version of product is released.  &lt;br /&gt;
&lt;br /&gt;
The title of my article "Please, No More Modules" isn't really meant to be taken literally.  I appreciate that Sitefinity is capable of a lot right out of the box (no programming necessary).  That's a good thing!  However, it is more important that Sitefinity be a comfortable development environment for programmers.  While Telerik is wasting time fixing Blog upgrade problems, this crucial area is being neglected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I welcome comments from others.  This is just one Sitefinity user's opinion.  Please weigh in with your own thoughts.&lt;/strong&gt;&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-19/Sitefinity_-_Please_No_More_Modules_.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-19/Sitefinity_-_Please_No_More_Modules_.aspx</comments>
      <guid isPermaLink="false">c4606b75-f575-4b7b-92f7-d3a0728a50a6</guid>
      <pubDate>Sat, 19 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Step 1: Blogging, Step 2: ???, Step 3: Profit!</title>
      <description>&lt;h2&gt;"Learn to Blog effectively to build traffic and relationships in just 4 hours..." &lt;/h2&gt;
&lt;p&gt;&lt;img style="width: 231px; height: 215px" alt="Hyenas : Internet Marketing Consultants devouring a stolen trend." src="/Images/internet-marketing-consulta.jpg" align="right" /&gt;While browsing the Internet I stumbled upon a &lt;a href="http://seo.meetup.com/88/messages/2559881/"&gt;"blogging seminar" advertisement&lt;/a&gt; touting the preceding claim. &lt;/p&gt;
&lt;p&gt;Like most web programmers I have, at times in my career, worked for various Internet marketing consultants.  I have often found this to be a completely soul-sucking ordeal.  In my experience, many of these "cutting-edge consultants" hear about technology trends years after they emerge onto the scene.  They get a brief explanation from the "geek" they keep chained to a desk and one week later they're holding a seminar on the subject.  Anything they've learned has been completely perverted and turned to their own personal gain.&lt;/p&gt;
&lt;p&gt;If you're a web programmer and this sounds familiar; I hope you like the taste of blood, because you're going to be biting your tongue a lot!&lt;/p&gt;
&lt;h2&gt;PLEASE for the love of Christmas DO NOT start a blog!!!&lt;/h2&gt;
&lt;p&gt;Don't get me wrong, I think blogging is great.  I obviously have a blog and it's growing each month.  I started blogging because of a niche subject I was interested in.  I wanted to give back to the programming community that had offered me so much.  As I battled through technical challenges, I documented my findings in an effort to help others; no strings attached.  Intermixed, I sprinkled some of my own opinions on various subjects.&lt;/p&gt;
&lt;p&gt;Or stated differently; I started a blog because I had something to say.  I am delighted by the small opportunities that have emerged, but that was never my intent.  My intent was merely to write about subjects I was passionate about and to help others.&lt;/p&gt;
&lt;p&gt;I cannot deny that I want my blog to be read.  Every author wants to be read and I am no exception.  To this end I post links where I believe it is appropriate.  Sometimes there is a flurry of interest; mostly my posts fall off the face of the earth.  So be it.  "The Internet" isn't obligated to read my stupid blog.  I'm not going to get pushy in an attempt to litter the Internet with incoming links.  I need to stay honest!  I never want my chief purpose to become self promotion.  The minute this happens my writing becomes false and my readers (the few I have) will disappear.  &lt;/p&gt;
&lt;p&gt;&lt;em&gt;-- This is what self-promoting Internet marketing consultants will never fully understand. --&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Internet marketers frequently abuse good things.  "Blogging" began because regular people took the time to write about subjects they were passionate about.  Those who did this well &lt;em&gt;s-l-o-w-l-y&lt;/em&gt; earned readers.  A small handful were successful enough to make money.  But in the beginning there was only their passion for a given subject and little expectation that any of it would "pay off".&lt;/p&gt;
&lt;p&gt;Like a pack of starving hyenas marketing consultants and self-promoters follow successful people around and attempt their pale imitations...and it shows.  &lt;/p&gt;
&lt;p&gt;Blogging does offer incredible opportunities.  Admittedly, there are strategies that can be employed to maximize the effectiveness of your blog.  However, first and foremost you need to have something compelling to say.  &lt;a href="http://seo.meetup.com/88/messages/2559881/"&gt;Stop looking at your Google rank for some obscure search term&lt;/a&gt; and instead look at the "# of comments".  Does anyone care?  Did you help someone?  Did you connect with your reader?  If not, you failed.  Period.  Success, by this yardstick, is very very difficult.&lt;/p&gt;
&lt;p&gt;How do you know if you should start a blog?  You'll know because it will hurt you not to.  Your passion for "something" will compel you to write.  You will be driven by a desire to contribute to the community by helping, or at least offering a compelling perspective on a subject.  This isn't SEO strategy, this is therapy.  If this doesn't sound like you, then don't bother.  The Internet already has enough SPAM.&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-05/step_1_blogging_step_2_step_3_profit_.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-05/step_1_blogging_step_2_step_3_profit_.aspx</comments>
      <guid isPermaLink="false">daef5a84-4ef6-4f2a-bb89-943602bd6750</guid>
      <pubDate>Sat, 05 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Creating a Site Map UserControl in Sitefinity</title>
      <description>&lt;p&gt;On the Sitefinity forums &lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bdakge.aspx"&gt;Erik asked how to display an expanded Site Map&lt;/a&gt;.  Sitefinity includes a "Site Treeview" control that comes close to accomplishing this.  However, this control starts in a "collapsed" state and I have not been able to find a way to easily coax it into an "expanded" state.&lt;br /&gt;
&lt;br /&gt;
The good news is that we can create a Site Map Sitefinity UserControl fairly easily using the RadTreeView.  The control described below simply binds the ASP.NET "SiteMapDataSource" to a RadTreeView control.  It then fully expands the RadTreeView.  Here is how this is done:&lt;/p&gt;
&lt;h2&gt;Step 1: Create the UserControl&lt;/h2&gt;
&lt;p&gt;Create the following user control file: &lt;strong&gt;~/GoonDocks/UserControls/SiteMap.ascx&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: rgb(127,157,185) 1px solid; border-top: rgb(127,157,185) 1px solid; font-size: 11px; overflow: auto; border-left: rgb(127,157,185) 1px solid; width: 100%; line-height: 100%! important; border-bottom: rgb(127,157,185) 1px solid; font-family: courier new; height: 90px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: rgb(238,238,238) 0px solid; border-collapse: collapse; background-color: rgb(255,255,255); border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: rgb(247,247,247) 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%@ Control &lt;/span&gt;&lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"C#"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;CodeFile&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"SiteMap.ascx.cs"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"GoonDocks_UserControls_SiteMap"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%@ Register &lt;/span&gt;&lt;span style="color: red"&gt;TagPrefix&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"rad"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Namespace&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"Telerik.WebControls"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"RadTreeView.NET2"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;rad:radtreeview &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"SiteMapRadTreeView"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p &gt;Create the following code-behind file: &lt;strong&gt;~/GoonDocks/UserControls/SiteMap.ascx.cs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: rgb(127,157,185) 1px solid; border-top: rgb(127,157,185) 1px solid; font-size: 11px; overflow: auto; border-left: rgb(127,157,185) 1px solid; width: 100%; line-height: 100%! important; border-bottom: rgb(127,157,185) 1px solid; font-family: courier new; height: 244px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: rgb(238,238,238) 0px solid; border-collapse: collapse; background-color: rgb(255,255,255); border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: rgb(247,247,247) 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System;  &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI.WebControls;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI.HtmlControls;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; partial &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px"&gt; GoonDocks_UserControls_SiteMap : System.Web.UI.UserControl  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;protected&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; Page_Load(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px"&gt; sender, EventArgs e)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        SiteMapRadTreeView.DataSource = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; SiteMapDataSource();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;        SiteMapRadTreeView.DataBind();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        SiteMapRadTreeView.ExpandAllNodes();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 2: Let Sitefinity know about your new UserControl&lt;/h2&gt;
&lt;p&gt;In order for Sitefinity to make use of a new UserControl it must declared in the &amp;lt;toolboxControls&amp;gt; section of the "web.config" file.  Add the following line to your "web.config" file: &lt;/p&gt;
&lt;div style="border-right: rgb(127,157,185) 1px solid; border-top: rgb(127,157,185) 1px solid; font-size: 11px; overflow: auto; border-left: rgb(127,157,185) 1px solid; width: 100%; line-height: 100%! important; border-bottom: rgb(127,157,185) 1px solid; font-family: courier new; height: 62px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: rgb(238,238,238) 0px solid; border-collapse: collapse; background-color: rgb(255,255,255); border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: rgb(247,247,247) 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;toolboxControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247,247,247)"&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"Site Map"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;section&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"GoonDocks"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;url&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"~/GoonDocks/UserControls/SiteMap.ascx"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;    &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;toolboxControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 3: Create a new Sitefinity page and place your "Site Map" control onto the page&lt;/h2&gt;
&lt;p&gt;There is nothing that you need to edit or configure with this Site Map control.  Just plunk it onto your page and it will do its job. To see this "Site Map" control in action, &lt;a href="/sitemap.aspx"&gt;click here to vist GoonDocks' Site Map page&lt;/a&gt;.&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-04/Creating_a_Site_Map_UserControl_in_Sitefinity.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-04/Creating_a_Site_Map_UserControl_in_Sitefinity.aspx</comments>
      <guid isPermaLink="false">dc7f7e10-8297-4d96-a0c7-b704f9ccf136</guid>
      <pubDate>Fri, 04 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Creating an RSS Feed UserControl in Sitefinity</title>
      <description>&lt;p&gt;If there is one thing blogging has taught me, it's that coming up with original content &amp;amp; ideas is hard work.  So I decided to do what everyone else is doing and simply use RSS feeds to artifically inflate the size of my web site.  In this way I can generate tons of content for my web site without having to do a lot of time-consuming "work". &lt;/p&gt;
&lt;p&gt;RSS is the wave of the future and I predict in 5 years the Internet will consist of roughly 100 unique pages.  These pages will then be re-syndicated via RSS several billion times.  Rock on!!!  Let's get started... &lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This article describes how to create a simple Sitefinity UserControl for consuming an &lt;a href="http://cyber.law.harvard.edu/rss/rss.html"&gt;RSS 2.0 feed&lt;/a&gt;.  However, although I'm calling this a "Sitefinity UserControl" it is important to note that 95% of this code has nothing to do with Sitefinity.  Sitefinity can utilize any ASP.NET UserControl, it is merely a matter of making Sitefinity aware of the control's existence.  &lt;/p&gt;
&lt;h2&gt;Step 1: Create the UserControl &lt;/h2&gt;
&lt;p&gt;Create the following user control file: &lt;strong&gt;~/UserControls/RssFeed.ascx&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 230px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%@ Control &lt;/span&gt;&lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"C#"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"true"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;CodeFile&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"RssFeed.ascx.cs"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"UserControls_RssFeed"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Repeater &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"RssRepeater"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Visible&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;asp&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:HyperLink &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"link"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;NavigateUrl&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;'&amp;lt;%# DataBinder.Eval (Container.DataItem, "link") %&amp;gt;'&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;%# DataBinder.Eval (Container.DataItem, "title") %&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;asp&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:HyperLink&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;h2&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;asp&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:Literal &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"pubDate"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;'&amp;lt;%# DataBinder.Eval (Container.DataItem, "pubDate") %&amp;gt;'&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Visible&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;  &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;div&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;asp&lt;/span&gt;&lt;span style="font-size: 11px"&gt;:Literal &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"description"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;'&amp;lt;%# DataBinder.Eval (Container.DataItem, "description") %&amp;gt;'&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-weight: bold; color: black"&gt;p&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;SeparatorTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;hr &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;SeparatorTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Repeater&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Panel &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"ErrorPanel"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;EnableViewState&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Visible&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"error"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;The RSS Feed URL cannot be found!&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;asp:Panel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Create the following code-behind file: &lt;strong&gt;~/UserControls/RssFeed.ascx.cs&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 1126px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Data;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI.WebControls;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Web.UI.HtmlControls;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="font-size: 11px"&gt; System.Xml;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; partial &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px"&gt; UserControls_RssFeed : System.Web.UI.UserControl  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _RssUrl;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: green"&gt;/// Gets &amp;amp; sets the value of the URL we will use for fetching a RSS 2.0 feed. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: green"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; RssUrl  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px"&gt; _RssUrl;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            _RssUrl = value;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;protected&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; Page_Load(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px"&gt; sender, EventArgs e)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (RssUrl == &lt;/span&gt;&lt;span style="color: blue"&gt;null&lt;/span&gt;&lt;span style="font-size: 11px"&gt; || RssUrl == &lt;/span&gt;&lt;span style="color: blue"&gt;""&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            ErrorPanel.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: blue"&gt;else&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            FetchRSS();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; FetchRSS()  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// Open an XML reader &amp;amp; fetch the RSS data from the RssUrl. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        XmlTextReader reader = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; XmlTextReader(RssUrl);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        DataSet ds = &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; DataSet();  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        ds.ReadXml(reader);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (reader == &lt;/span&gt;&lt;span style="color: blue"&gt;null&lt;/span&gt;&lt;span style="font-size: 11px"&gt;)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            ErrorPanel.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;else&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            RssRepeater.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            RssRepeater.ItemDataBound += &lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px"&gt; RepeaterItemEventHandler(RssRepeater_ItemDataBound);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            RssRepeater.DataSource = ds.Tables[2];  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            RssRepeater.DataBind();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;protected&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="font-size: 11px"&gt; RssRepeater_ItemDataBound(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px"&gt; sender, RepeaterItemEventArgs e)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color: green"&gt;// Execute the following logic for Items and Alternating Items. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: green"&gt;// The RSS 'pubDate' is an optional element.  If we don't have it, don't display it. &lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            Literal _pubDate = (Literal)e.Item.FindControl(&lt;span style="color: blue"&gt;"pubDate"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;            &lt;span style="color: blue"&gt;if&lt;/span&gt;&lt;span style="font-size: 11px"&gt; (_pubDate.Text != &lt;/span&gt;&lt;span style="color: blue"&gt;""&lt;/span&gt;&lt;span style="font-size: 11px"&gt;) {  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                _pubDate.Text = FormatDate(_pubDate.Text);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;                _pubDate.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;&lt;span style="font-size: 11px"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; FormatDate(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="font-size: 11px"&gt; DateString)  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        DateTime dt = DateTime.Parse(DateString);  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;        &lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px"&gt; dt.ToString(&lt;/span&gt;&lt;span style="color: blue"&gt;"D"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;);  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 2: Let Sitefinity know about your new UserControl&lt;/h2&gt;
&lt;p&gt;In order for Sitefinity to make use of a new UserControl it must declared in the &amp;lt;toolboxControls&amp;gt; section of the "web.config" file.  Add the following line to your "web.config" file: &lt;/p&gt;
&lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 100%; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 62px; background-color: white"&gt;
&lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
    &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;toolboxControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;   &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: #f7f7f7"&gt;    &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"RSS"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;section&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"My Controls"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;url&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;"~/UserControls/RssFeed.ascx"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;    &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;toolboxControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 3: Place your RSS Feed Control onto your Sitefinity page: &lt;/h2&gt;
&lt;p&gt;When you login to the Sitefinity Admin and alter a page, you should now see a new section called "My Controls" in your Toolbox.  Expand this section and drag &amp;amp; drop your RSS feed control onto your page.  Edit the control and enter the URL for the RSS Feed that you wish to display.&lt;/p&gt;
&lt;p &gt;&lt;img alt="" src="/Images/sitefinity-rss-feed.jpg" /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;We're done!!  &lt;a href="/Examples/IvansWork_RssFeedExample.aspx"&gt;Click here to see it in action!&lt;/a&gt;   Now I can capitalize on Ivan's work.  I love the Internet so damn much. &lt;br /&gt;
&lt;br /&gt;
If you would like, you can &lt;a href="/Files/Sitefinity/RssFeed.zip"&gt;download this project by clicking here&lt;/a&gt;.  &lt;br /&gt;
&lt;br /&gt;
I will also be making this control available in the &lt;a href="/projects/goondocks-sitefinity-controls.aspx"&gt;GoonDocks Sitefinity Controls&lt;/a&gt;.&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-03/Creating_an_RSS_Feed_UserControl_in_Sitefinity.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-03/Creating_an_RSS_Feed_UserControl_in_Sitefinity.aspx</comments>
      <guid isPermaLink="false">3c5ace52-fcb4-422b-b713-49ab9475c088</guid>
      <pubDate>Thu, 03 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Using the Sitefinity "Overlay" Page Edit Mode</title>
      <description>&lt;p&gt;Sitefinity has 2 "edit modes" (Overlay &amp;amp; Classic) that can be used to edit pages: &lt;br /&gt;
&lt;img style="width: 545px; height: 248px" alt="Sitefinity Edit Modes" src="/Images/sitefinity-edit-modes.jpg" /&gt; &lt;br /&gt;
The "Overlay" edit mode grays-out areas of the page that cannot be altered; while the "Classic" edit mode displays the unmodified page.  "Classic" gives a better representation of what the page actually looks like, while "Overlay" makes it easier to see what parts of the page you can alter.  Both edit modes have advantages &amp;amp; disadvantages. &lt;/p&gt;
&lt;p&gt;However, the "Overlay" edit mode can sometimes be fickle due to the CSS magic being applied.  While using this mode I was having problems with the entire web page going "gray" and being unable to alter anything. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/Images/sitefinity-all-gray.jpg" /&gt; &lt;/p&gt;
&lt;h2&gt;The Solution &lt;/h2&gt;
&lt;p&gt;To make use of the "Overlay" edit mode you cannot have ANYTHING placed inside your &amp;lt;asp:contentplaceholder&amp;gt; tags.   I had the following control tag placed in my master template: &lt;/p&gt;
&lt;p&gt;&amp;lt;asp:contentplaceholder id="MainContent" runat="server"&amp;gt; &lt;br /&gt;
&amp;lt;/asp:contentplaceholder&amp;gt; &lt;/p&gt;
&lt;p&gt;This will break the "Overlay" edit mode.  Why?  Because there is white-space inside the &amp;lt;asp:contentplaceholder&amp;gt; tag.  Instead use the following: &lt;/p&gt;
&lt;p&gt;&amp;lt;asp:contentplaceholder id="MainContent" runat="server" /&amp;gt; &lt;/p&gt;
&lt;p&gt;Now the tag is self-enclosed and truly empty.  You aren't done yet though, the &amp;lt;asp:contentplaceholder&amp;gt; tags must also be empty from a Sitefinity Template perspective.  Sitefinity will let you drag &amp;amp; drop controls directly onto your template.  However, once you populate those placeholders with controls, the "Overlay" edit mode will break from a page perspective. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There are 2 ways to work around this: &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Don't alter your templates using Sitefinity.  If you need to place controls onto your templates, alter the master template file and create the control tag outside of a placeholder.  This is what I'm currently doing with Goondocks. &lt;/li&gt;
    &lt;li&gt;Add extra &amp;lt;asp:contentplaceholder&amp;gt; tags to your master template file and only populate those tags via the Sitefinity template editor.  This means you will have "template content placeholders" and "page content placeholders".  Once you populate an &amp;lt;asp:contentplaceholder&amp;gt; tag at a template-level, it will become unavailable at a page-level. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Or you can simply not make use "Overlay" edit mode and instead only make use of the "Classic" edit mode.  None of the problems described here exist when using the "Classic" edit mode.  &lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-04-01/Using_the_Sitefinity_Overlay_Page_Edit_Mode.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-04-01/Using_the_Sitefinity_Overlay_Page_Edit_Mode.aspx</comments>
      <guid isPermaLink="false">e6719ab5-0dbf-4161-bdc0-61052e36a5c3</guid>
      <pubDate>Tue, 01 Apr 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>PHP: An Introspective Retrospective</title>
      <description>&lt;p goog_docs_charindex="42"&gt;I began using PHP in 1998 and used it heavily until 2004 when I discovered ASP.NET (C#).&lt;/p&gt;
&lt;p goog_docs_charindex="144"&gt;I still maintain a few PHP-based web sites, but I will admit the bulk of my recent web development has been with ASP.NET (C#). If you do the math I have been a PHP programmer longer than I've been an ASP.NET programmer.&lt;/p&gt;
&lt;h2&gt;What the hell is a "NAMESPACE"?&lt;/h2&gt;
&lt;p goog_docs_charindex="439"&gt;Coming from the PHP-world, ASP.NET was a challenge. ASP.NET is comprised of strongly-typed variables, true &lt;a href="http://en.wikipedia.org/wiki/Object-oriented_programming"&gt;OOP&lt;/a&gt;, namespaces, event-driven execution, web controls, compilation, etc. I spent weeks trying to accomplish simple tasks and failing. Many of these concepts were foreign to me. After reading many books &amp;amp; web pages, I eventually had an epiphany and all has been well since.&lt;/p&gt;
&lt;p goog_docs_charindex="875"&gt;I will be very blunt, ASP.NET (C#) made me a much better programmer. PHP, by comparison, was a kids' toy. Each time I inherit a new PHP web site, I'm reminded of this. There is no formality or structure to any of it. Programmers will happily toggle into &amp;amp; out of HTML, PHP, Javascript and SQL. If they are really fancy they might even `escape` to the shell and toss in a few UNIX commands. All of this is done while magically creating and retyping variables without a second thought. &lt;/p&gt;
&lt;p goog_docs_charindex="1385"&gt;I have come to understand this is...retarded. Although it makes it easy for "newbies" to get things done, it does not lend itself to managing large-scale enterprise web applications.&lt;/p&gt;
&lt;p goog_docs_charindex="1582"&gt;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" align="right"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;   &lt;/td&gt;
            &lt;td valign="top" align="center"&gt;&lt;a href="http://www.neatorama.com/2006/07/07/kids-and-an-open-can-of-paint-what-could-go-wrong/"&gt;&lt;img alt="" src="/Images/kids-gallon-paint.jpg" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.neatorama.com/2006/07/07/kids-and-an-open-can-of-paint-what-could-go-wrong/"&gt;&lt;br /&gt;
            &lt;strong&gt;LOOK WHAT I DID!!!!&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This lack of structure makes the product an unmaintainable mess. Doing something as simple as adding a new bit of HTML becomes a "process". After spending 4 years with ASP.NET, "mixing my layers" now makes me feel dirty and compromised. For most PHP programmers I've encountered, they do this without a second thought; gleefully reveling in their chaotic mess like a small child experimenting with a bucket of paint.&lt;/p&gt;
&lt;h2 goog_docs_charindex="2011"&gt;Hey wait a minute; the problems you describe are caused by bad programmers, NOT PHP!&lt;/h2&gt;
&lt;p goog_docs_charindex="2106"&gt;This is true...mostly. There are some amazing large-scale web applications that are using PHP. It's obviously possible to create good PHP code. However, the PHP language itself and the PHP culture does not actively require (or even encourage) "good form". This means "maintainable PHP" requires a high-degree of discipline from the programmer.&lt;/p&gt;
&lt;p goog_docs_charindex="2462"&gt;I did a Google search for "PHP best practices"; &lt;a href="http://www.phpbuilder.com/columns/tim20010101.php3?page=1" id="xyu_" title="this was the first page that was found" goog_docs_charindex="2516"&gt;this was the first page found&lt;/a&gt;. The leading paragraph states:&lt;/p&gt;
&lt;blockquote id="o1-u" goog_docs_charindex="2587"&gt;&lt;em goog_docs_charindex="2588"&gt;One of PHP's greatest strengths can also be a great weakness in the wrong hands. I'm talking about its forgiving nature. One of the reasons why PHP has become so wildly popular is because it lets very inexperienced web developers build powerful applications without much planning, consistency, or documentation. Unfortunately, that means an awful lot of PHP code out there is sloppy, hard to read and impossible to maintain.&lt;/em&gt; &lt;/blockquote&gt;
&lt;p  goog_docs_charindex="3017"&gt;This is exactly my impression as well. The article goes on to describe various "good form" techniques for using PHP. Unfortunately, the article only focuses on making code more "readable". For example, it addresses why you should indent blocks of code. It does not really address how to structure large-scale PHP applications. To find information about creating an organized/layered PHP web application, I had to do a bit more searching. I found the following web page:&lt;/p&gt;
&lt;p goog_docs_charindex="3496"&gt;&lt;a href="http://www.odi.ch/prog/design/php/guide.php" goog_docs_charindex="3498"&gt;http://www.odi.ch/prog/design/php/guide.php&lt;/a&gt;&lt;/p&gt;
&lt;p goog_docs_charindex="3544"&gt;This is as close as I came to someone demonstrating "good form" with PHP. Although, I note the "require_once" function is needed to pull this off. Wow! Let me quickly say; PHP should be downright embarrassed that in the year 2008 they STILL don't have namespaces.&lt;/p&gt;
&lt;p goog_docs_charindex="3836"&gt;Adrian Holovaty of the Django/Python fame has a slide &lt;a href="http://video.google.com/videoplay?docid=-3548805983075267875" id="ov98" title="in his presentation" goog_docs_charindex="3892"&gt;in his presentation&lt;/a&gt; (check the 11:00 minute mark) that is a screen-shot of the "reserved" PHP words for the letter "A". It always gets a good laugh from the crowd and effectively demonstrates the problem with having no namespaces. The absence of these "standard" language features is why the PHP language does not actively encourage "good form". Is it possible? Certainly, in the hands of a talented &amp;amp; disciplined programmer anything is possible. However, the programmer pulls this off in spite of PHP, not because of PHP.&lt;/p&gt;
&lt;p goog_docs_charindex="4421"&gt;In the end, I'm for whatever works. There may be a variety of reasons why PHP makes sense. Ultimately, it is important to understand the strengths and weaknesses associated with technology choices so you can craft the best possible solution.&lt;/p&gt;
&lt;em&gt;Additional comments can be found &lt;a href="http://reddit.com/r/programming/info/69wc1/comments/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;/em&gt;
</description>
      <link>http://goondocks.com/blog/08-02-24/PHP_An_Introspective_Retrospective.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-24/PHP_An_Introspective_Retrospective.aspx</comments>
      <guid isPermaLink="false">1bd0cb97-355e-4979-9c4a-8ce98a490d9b</guid>
      <pubDate>Sun, 24 Feb 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Programming Jeet Kune Do</title>
      <description>&lt;p&gt;&lt;img alt="Bruce Lee Smiling" src="/Images/brucelee_smiling.jpg" align="right" /&gt;&lt;a href="http://en.wikipedia.org/wiki/Bruce_Lee"&gt;Bruce Lee&lt;/a&gt; was classically trained in traditional martial arts.  He studied Wing Chung Gung Fu from Master Yip Man when he was a child.  Growing up he was a bit of a street brawler and was involved in several fights.  In college he studied philosophy, and in his adult life he became the super-star we know today.  &lt;br /&gt;
 &lt;br /&gt;
In his quest to become the world's greatest martial artist Bruce Lee rejected traditional martial arts; he called it the "classical mess".   He found it made him rigid and ultimately hindered him from responding directly &amp;amp; effectively. &lt;/p&gt;
&lt;p&gt;Bruce Lee created a new "style" which he labeled as "Jeet Kune Do".  However, in reality he rejected styles and rejected labels.  Bruce Lee adopted "having no way as the way" as his philosophy.  Only by doing this, he felt, could he purely express his art.&lt;/p&gt;
&lt;h2&gt;My Programming Philosophy&lt;/h2&gt;
&lt;p&gt;Although I have been a Bruce Lee fan for as long as I can remember, the story above only popped into my head as I was reflecting on how to describe my approach to programming.&lt;br /&gt;
 &lt;br /&gt;
Bruce Lee rejected dogma and recognized that loyalty to a "system" will forever impede your ability to truly express yourself.  It will keep you chained to a fixed point and limit your range of motion.&lt;br /&gt;
 &lt;br /&gt;
I direct this statement towards anyone who:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Refuses to code "by hand" in notepad or vi. &lt;/li&gt;
    &lt;li&gt;Refuses to use an IDE, code generation, or other productivity tools. &lt;/li&gt;
    &lt;li&gt;Relies solely on a GUI to get work done. &lt;/li&gt;
    &lt;li&gt;Refuses to use a GUI to enhance productivity. &lt;/li&gt;
    &lt;li&gt;Only uses commercial or ready-made solutions to a problem. &lt;/li&gt;
    &lt;li&gt;Refuses to use a commercial solution to a problem. &lt;/li&gt;
    &lt;li&gt;Refuses to use or evaluate other programming languages. &lt;/li&gt;
    &lt;li&gt;Refuses to use or evalute other operating systems. &lt;/li&gt;
    &lt;li&gt;Refuses to use or evaluate an &lt;a href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;ORM&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;Refuses to recognize the usefulness of DB Stored Procedures. &lt;/li&gt;
    &lt;li&gt;Refuses to recognize that &lt;em&gt;sometimes&lt;/em&gt; in-line SQL makes sense. &lt;/li&gt;
    &lt;li&gt;Refuses to use frameworks. &lt;/li&gt;
    &lt;li&gt;Refuses to build their own solution. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I'm covering a lot of ground in those statements.  There should be enough room there for me to insult everyone (myself included)...a little bit.  &lt;br /&gt;
 &lt;br /&gt;
It's very hard to keep a constant open mind; it's even harder when programming depends on conventions.  There needs to be "order" for everyone to stay sane and for the project to actually reach completion and remain manageable.  Ultimately, "conventions" help us cope with the chaos of our existence.  But at the same time, if we become too dogmatic about satisfying "conventions" they will hinder us.  We will spend more time trying to adhere to a "convention" than solving whatever problem originally inspired the convention. &lt;/p&gt;
&lt;p&gt;In Bruce Lee's world, that meant you were lying face down in a pool of your own blood.  In our world, it simply means we spend countless weeks being unproductive (and unhappy) in our jobs.&lt;br /&gt;
 &lt;br /&gt;
It is important to recognize that for each of the wildly diverse approaches that exist; someone, somewhere is being successful with that approach.  That doesn't make it "right" or "the best"; but it does mean there is something to potentially learn from it.  Provided we stay focused on "goals" and not "methods", we can learn from others and become more effective ourselves.  This does not mean we have "no conventions" rather it means we are not "BOUND by conventions".  It means we're open to improvements.&lt;br /&gt;
 &lt;br /&gt;
It makes me sad when people of "one camp" know very little about people in "another camp".  The choices they made for one project became their convention, which became their habit, which became their culture, which became their religion.  History is littered with wars that were fought over culture &amp;amp; religion.  With each of these wars, the progress of mankind has been impeded. &lt;/p&gt;
&lt;p&gt;I will never begrudge anyone their choice of technology or development environment; provided they made that choice with an open mind and a clear concept of what they were trying to accomplish and what they were rejecting.  As long as we are all trying to accomplish "goals" and not satisfy "conventions" then we are all, essentially, on the "same page".  Everything else is just details.  Albeit, important details.  :)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"In memory of a once fluid man, crammed and distorted by the classical mess."  -Bruce Lee&lt;/em&gt;&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-02-22/Programming_Jeet_Kune_Do.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-22/Programming_Jeet_Kune_Do.aspx</comments>
      <guid isPermaLink="false">cb256b6e-9d33-4b79-bd16-bf46635b95a8</guid>
      <pubDate>Fri, 22 Feb 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Response to "A Quick Vent About Trulia"</title>
      <description>&lt;p&gt;Recently there was a &lt;a href="http://www.realestatewebmasters.com/blogs/ryan-ward/4353/show/" id="mjov" title="post made to &amp;quot;RealEstateWebMasters.com&amp;quot;"&gt;post made to "RealEstateWebMasters.com"&lt;/a&gt; by a REALTOR who was annoyed that other REALTORS were linking to and consequently "feeding" &lt;a href="http://www.trulia.com/" id="u69i" title="Trulia"&gt;Trulia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What followed were responses by other REALTORS who supported this idea and questioned why consumers &lt;em&gt;need&lt;/em&gt; Trulia.  Many implied Trulia was hurting consumers by providing inaccurate information.  Many others expressed their frustration that Trulia was ranking ahead of them in search engines.&lt;/p&gt;
&lt;p&gt;I don't work for Trulia.  I am not a real estate agent.  I am a web application developer with over 5 years of experience working in the real estate industry.  I am also an admirer of what Trulia has accomplished.&lt;/p&gt;
&lt;p&gt;From my perspective, let me try to address some of these concerns:&lt;/p&gt;
&lt;h2&gt;Consumers are being hurt by Trulia because the listing information is out of date.&lt;/h2&gt;
&lt;p&gt;Is your listing information out of date?  As an agent or broker you can fix that.  If you don't fix it, you aren't serving your clients very well.&lt;/p&gt;
&lt;p&gt;Because Trulia is not allowed to have IDX access they are dependent on brokers &amp;amp; agents to supply updated listing information.  In return these listings get more exposure and Trulia directs web traffic to the broker's or agent's web site.&lt;/p&gt;
&lt;p&gt;Since this only means more exposure for our customers' listings and more business for us; this seems like a "win-win" situation to me.&lt;/p&gt;
&lt;p&gt;We're here to sell houses, right?  Trulia is yet another tool in our belt.  &lt;/p&gt;
&lt;h2&gt;Even if I keep my own listings up to date on Trulia, other agents do not.  My customers are constantly asking me about these expired listings.&lt;/h2&gt;
&lt;p&gt;So what?  Responding to these questions helps demonstrate to your customers why you're the expert.  Use this feedback to learn more about your customer's interests.  In short; earn your damn paycheck.  &lt;/p&gt;
&lt;p&gt;I react to this complaint in the same way I react to doctors who complain about patients reading about medical issues on the Internet.  If you "know your stuff" then you have nothing to fear from someone armed with a "little knowledge".  Just use it as an opportunity to educate and demonstrate your expertise.&lt;/p&gt;
&lt;h2&gt;But my web site www.BobTheAwesomeAgent.com ranks lower than Trulia.&lt;/h2&gt;
&lt;p&gt;There are a variety of reasons for this; but let me quickly summarize: your web site ranks lower than Trulia because your web site is not nearly as good.  Yes, you have access to the IDX, but in many cases you have little more than that.&lt;/p&gt;
&lt;p&gt;I don't really know what to say to you if you can't appreciate the strategy, innovation, and technical engineering that is obviously at play on Trulia.com.  Their web site is a joy to use.  &lt;/p&gt;
&lt;p&gt;However, Trulia does have some short-comings.  &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The accuracy of their listing data &lt;/li&gt;
    &lt;li&gt;The lack of listing details  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those weaknesses become our strength though.  Customers get a "teaser" on Trulia, but they come to us and our web sites for the "real deal".  Don't fear that, embrace that.   &lt;br /&gt;
&lt;br /&gt;
At the same time recognize that Trulia is not inferior simply because it lacks those details.  Recognize that Trulia's success suggests something about what "consumers" want. Learn from this and use it.  Resisting this is no different than the music industry resisting the sale of online music.  Because it is something consumers want, it will eventually happen.  We can choose to be part of it, or we can become irrelevant.&lt;/p&gt;
&lt;h2&gt;But what about ME????&lt;/h2&gt;
&lt;p&gt;Honestly, this statement is at the core of so many of the REALTOR responses on this blog post.  Although the word "customers" gets invoked a lot, most of these concerns regarding Trulia have nothing to do with "customers".  Trulia is skyrocketing in popularity because "customers" like the way it works.  &lt;/p&gt;
&lt;p&gt;These Trulia "concerns" stem from real estate agent's own egos.  They want THEIR web site to feature #1.  They want to be their clients' sole source of information.  They want their name to be stamped in &lt;strong&gt;BOLD&lt;/strong&gt; on everything.  They really aren't comfortable with their clients self-exploring or self-educating.  This is vanity, pure &amp;amp; simple.  None of this serves the customer, in fact, it harms the customer.&lt;/p&gt;
&lt;p&gt;I firmly believe that a far more enlightened real estate agent realizes that customers will walk a variety of paths.  They will explore on Trulia and many other web sites.  They will read a lot of information and some of it will be wildly inaccurate.  As a real estate agent your role is to help them navigate this jungle.  Don't make your clients wear a blindfold so they don't ask questions; trust to their empowerment and help guide them.&lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-02-16/Response_to_A_Quick_Vent_About_Trulia_.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-16/Response_to_A_Quick_Vent_About_Trulia_.aspx</comments>
      <guid isPermaLink="false">8519f6f9-4d05-44a0-9a28-6688255eee28</guid>
      <pubDate>Sat, 16 Feb 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Is MLS rule coming to an end?</title>
      <description>&lt;p&gt;I noticed today a &lt;a href="http://www.reuters.com/article/pressRelease/idUS141069+10-Jan-2008+BW20080110"&gt;press release &lt;/a&gt;describing an agreement between Yahoo!, Zillow, and Trulia regarding the adoption of a new data format standard for the distribution of real estate listings online.  Speaking as a web site application developer who has spent over 5 years in the real estate industry, let me just say "Hooray!!".   &lt;br /&gt;
&lt;br /&gt;
This press release is pretty benign looking, but to those in the real estate industry it should send chills down your neck.  For years &lt;a href="http://en.wikipedia.org/wiki/Multiple_Listing_Service"&gt;Multiple Listing Services &lt;/a&gt;have fought over their little regions.  They were governed by boards which were heavily influenced by regional politics.  Their listing inventory systems were created in response to politics &amp;amp; egos.and it shows.  In many cases these MLS systems are nothing short of a complete mess.  &lt;/p&gt;
&lt;p&gt;If you're talking about real estate listing inventory then all we're really talking about is a database.  Databases are easy.  Yahoo!, Trulia, and Zillow have lots of people that know databases and they know how to organize enormous volumes of data.  &lt;/p&gt;
&lt;p&gt;My suspicion, is that in the coming years these web sites will gain dominance with customers because they were always designed for customers (not REALTORS &amp;amp; not REALTOR Associations).  With this dominance MLS's will find they have to react to this standard, rather than the other way around.  &lt;/p&gt;
&lt;p&gt;And lastly, this is all really good, in my opinion.  The Internet is good at innovation and the Real Estate industry is failing to lead the charge in this capacity.  We can do better for our customers and trust to their empowerment.  It's time the real industry was dragged kicking &amp;amp; screaming into the "Internet Age".  &lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-02-13/Is_MLS_rule_coming_to_an_end_.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-13/Is_MLS_rule_coming_to_an_end_.aspx</comments>
      <guid isPermaLink="false">21f9a418-c5d5-46d5-9ef7-20145ffbfddf</guid>
      <pubDate>Wed, 13 Feb 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Restaurant Review Bourbon Steak, Scottsdale, AZ</title>
      <description>&lt;table cellspacing="5" cellpadding="0" align="right"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" align="center"&gt;&lt;img alt="" src="/Images/warMong.gif" /&gt; &lt;br /&gt;
            &lt;strong&gt;Mongolian Restaurants always &lt;br /&gt;
            rate higher than other restaurants. &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I had a wonderful opportunity to dine at the &lt;a href="http://www.fairmont.com/scottsdale/GuestServices/Restaurants/BOURBON+STEAK.htm" id="dirp" title="Bourbon Steak"&gt;Bourbon Steak &lt;/a&gt;at the &lt;a href="http://www.fairmont.com/Scottsdale/" id="n0qf" title="Fairmont Princess Resort"&gt;Fairmont Princess Resort &lt;/a&gt;in &lt;a href="http://en.wikipedia.org/wiki/Scottsdale,_Arizona" id="ee7:" title="Scottsdale, AZ"&gt;Scottsdale, AZ &lt;/a&gt;. I was told this was a 5-star restaurant (see update below), although I honestly have no idea what that means. I read about the &lt;a href="http://en.wikipedia.org/wiki/Star_%28classification%29" id="y6kn" title="star rating system"&gt;star rating system &lt;/a&gt;on Wikipedia and was unable to find any information about how you get a star. &lt;br /&gt;
&lt;br /&gt;
For the purposes of this article I am going to assume there are a limited number of "restaurant stars" and to get a star you must vanquish another restaurant in physical warfare. Once beaten you can take their star. The Mongolians naturally excel at these conquests and therefore their restaurants regularly have 300 stars or more. &lt;/p&gt;
&lt;h1&gt;Ambiance &amp;amp; Decor &lt;/h1&gt;
&lt;p&gt;I suppose there comes a time when every person must decide between starting a dance club and starting a restaurant. Sadly, it seems many people elect to do both. Call me old fashioned, but I enjoy good food, good wine, and good conversation. Although I thoroughly enjoyed hearing Queen's "Under Pressure" the volume made conversation rather difficult. Attempts at conversation with my date resulted in both of us saying "Huh?" a lot. I tried sign-language, but sadly I don't know sign language...and neither did my date. My attempts at inventing sign language on the fly were met with unapproving looks from almost everyone. So instead I just sat there in sullen silence being subjected to the restaurant owner's iPod. &lt;/p&gt;
&lt;p&gt;Liberated from the obligation to make conversation I had time to dwell on other things. Like the damn chair I was sitting in. I honestly thought someone was having a joke at my expense. I kept checking for a hidden camera and expecting people to jump out and let me in on the joke. Sadly this never happened. Allow me to describe the setup. The chair was very deep; so deep that if I sat back in a proper sitting position my legs would be pointing out into the air like a little child. Please note, I'm not a hobbit, I am 6" feet tall. Since sitting back was impossible I had to sit on the edge of the chair. As if that wasn't annoying enough, our table sat lower than the chairs. I had to reach down to the table as I was perched on the edge of the seat. This meant I was hunched like a caveman for most of the meal. &lt;/p&gt;
&lt;p&gt;All-in-all I would've preferred to sit cross-legged on the floor. Somewhere there is a posh Feng Shui designer/decorator who is no doubt having a good laugh at my expense. I should note that I was sitting in the lounge. I don't really think the place I was sitting was intended for regular meal service. I'm not sure it was really intended for use...period. Conversation is impossible due to the volume of the owner's iPod and the distances created by the spacing of the furniture. Dining is impossible because of the impracticality of the table &amp;amp; chairs. &lt;/p&gt;
&lt;p&gt;I'm not terribly hard to please. As long as the decor doesn't physically hurt me, I'm unlikely to complain. I'm not very "trendy" though, so this stuff might play better with other crowds. Uncomfortable &amp;amp; impractical might be "in" these days. If that's the case I would recommend ripping the arms off the chair and propping up one side so that it sits on a slant. This would require the sitter to keep their left leg engaged to avoid sliding onto the floor. This would probably be really trendy. &lt;a href="mailto:gsumner@goondocks.com?subject=I%20would%20like%20to%20pay%20you%20to%20decorate%20my%20home%20or%20restaurant%21" id="hweh"&gt;I have other ideas if anyone is interested. &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All this being said, the entrance of the restaurant walks by a really neat display of wines. I thought this was well done. &lt;/p&gt;
&lt;h1&gt;Service &lt;/h1&gt;
&lt;p&gt;I am not what you would call a "frequent patron of fine dining". Something you have to get used to at fine dining establishments is that there are a lot of people staring at you all the time. These people aren't trying to steal your food. This was a mistake I made early on. Sadly there was a misunderstanding and the police were called after I put my butter knife to a bus boys' throat. &lt;/p&gt;
&lt;p&gt;With this lesson learned, there were no incidents on this outing. I really don't have much to report about the service. My drink was refilled, my food wasn't dropped on the floor (within my sight), the food I ordered was delivered, I wasn't burned or stabbed. For any restaurant servers reading this, I don't wish to be insulting. I am sure there are complexities to your job that I simply don't understand. Behind the scenes you are probably fighting off terrorists or something. This is why I left you a $40 tip. Be sure to claim that on your taxes! &lt;/p&gt;
&lt;h1&gt;Food &lt;/h1&gt;
&lt;p&gt;Ok, enough with all this &lt;a href="http://www.urbandictionary.com/define.php?term=jibba+jabba" id="znxq" title="jibba-jabba"&gt;jibba-jabba &lt;/a&gt;, let's get down to the grub. (How many times do you see the word "grub" in a fine-dining restaurant review? Come to think of it, how times do you read the word "jibba-jabba" in a fine-dining restaurant review?) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course #1 - Amuse Bouche &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;table cellspacing="5" cellpadding="0" align="right"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;img alt="" src="/Images/hotfries.jpg" /&gt; &lt;br /&gt;
            &lt;strong&gt;Our Amuse Bouche was &lt;br /&gt;
            "fresh" hot fries. &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
For those that don't speak French, "amuse bouche" translates roughly to "mouth amuser". It's sometimes called a "gift from the kitchen". It's like a pre-appetizer appetizer. In the kitchen they call this "stuff people send back to the kitchen". I'm just kidding. Often these small little dishes are very interesting. It gives you a chance to try some creative things which you might otherwise never think to order. &lt;br /&gt;
&lt;br /&gt;
Our "amuse bouche" was duck-fat fries. These were basically "french fries" fried in duck fat. There were 3 different kinds of fries each paired with their own sauce. I couldn't hear the server so I don't know what they had in them. However, I can tell you one thing, one of them tasted exactly like "Hot Fries". They actually rocked! It was like eating "fresh" hot fries. Holy crap, is that Queen? I like this song. I SAID I LIKE THIS SONG!!! &lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Course #2 - Appetizers &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We ordered some type of flat-bread paired with raw minced tuna, a quail egg yoke, and some other stuff. (Aren't these descriptions great?) The server took time to mix it and arrange it in a pyramid or something. Meanwhile I was trying hard to resist the temptation to put my butter knife to his throat. I thought it was pretty good, my date thought it was great. &lt;/p&gt;
&lt;p&gt;We also ordered lobster paired with a crepe and some other stuff. It was really good too. There were also some orange slices in it and it took me awhile to place what the taste was. These unique taste combinations are one of the things I really like about fine dining. You get to try new combinations &amp;amp; are often surprised by what "works". &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course #3 - Main Course &amp;amp; Side Dishes &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For the side dishes we ordered Truffle Mac 'n Cheese and Blue Cheese Scalloped Potatoes. Both were slightly overcooked and I personally have no desire to eat either of them again. They weren't bad, they just weren't great. I once had Jalapeno Mac 'n Cheese and Grits at the &lt;a href="http://www.eddiev.com/"&gt;Roaring Fork &lt;/a&gt;that were rapture. This is where my bar is now and these side dishes did not approach rapture level. &lt;/p&gt;
&lt;p&gt;For our entree we ordered steaks. I ordered the NY Strip and my date ordered the Filet Mignon. I completely enjoyed my steak, until I tasted my dates' Filet Mignon. I never dreamed steak could be that tender. It was incredible! Easily the best steak I have ever eaten in my life. The portions of meat were generous and I was "stuffed" by the end of this course. At this point in the meal I ceased being annoyed by my chair. It was that good! &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course #4 - Dessert &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I should state up-front that I am not a "dessert person". I almost never eat dessert and I rarely have any desire to eat dessert. I know that makes me strange. I am personally content with a nice dry red wine to finish a meal. That being said, I wanted to give this the old college try. &lt;/p&gt;
&lt;p&gt;I ordered a cheesecake paired with apples &amp;amp; an apple fritter, while my date ordered something chocolate that reminded me of "brownies". Presentation of both of these dishes was incredible. I personally didn't eat much of either of them though. Again, I don't like dessert. They seemed to both taste fine for what they were. &lt;/p&gt;
&lt;p&gt;My date said her dessert, along with the Filet Mignon, was the highlight of the meal for her. So I am going to say the desserts were probably excellent and that I am merely a mutant who is incapable of appreciating such pleasures. &lt;/p&gt;
&lt;h1&gt;Conclusion &lt;/h1&gt;
&lt;p&gt;The Bourbon Steak restaurant has not yet formally opened, but it is plain to see that the restaurant has potential. They need to toss some of their furniture in the dumpster. They also need to turn the volume down on their damn iPod. Their appetizers &amp;amp; side dishes will continue to evolve and get better with time. Their core product though (steaks), is on the money! &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update #1: &lt;/strong&gt;I was informed that the Fairmont Princess is a 5-star resort. The Bourbon Steak restaurant itself, is currently star-less. They await a great leader who will lead them into battle. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update #2: &lt;/strong&gt;I was informed that restaurant star ratings having nothing to do with warfare. Rather these star ratings appear to be assigned by local &lt;a href="http://mobiltravelguide.howstuffworks.com/restaurants-channel.htm"&gt;gas stations &lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
The reviewer lives and works in Scottsdale, AZ. He has absolutely no culinary background and has no qualifications what-so-ever to review restaurants. His perspective and observations should not be regarded or considered for even a second. &lt;/p&gt;
</description>
      <link>http://goondocks.com/blog/08-02-07/Restaurant_Review_Bourbon_Steak_Scottsdale_AZ.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-07/Restaurant_Review_Bourbon_Steak_Scottsdale_AZ.aspx</comments>
      <guid isPermaLink="false">d07a6cdb-aa98-47e3-8be4-d1b6995abb0a</guid>
      <pubDate>Thu, 07 Feb 2008 02:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Ron Paul is finished; the R3VOLUTION has just begun!</title>
      <description>I think it's now fair to say, the RON PAUL R3VOLUTION isn't happening today, or anytime in the near future.&lt;br /&gt;
&lt;br /&gt;
I say this with no condescension or amusement.  I say this with a little sadness .  Truth tellers are rare and almost never popular in their time.  Ron Paul may not be "right" on every issue, but I think it's fair to say that he tried to tell the truth.  For that, at the very least, I think he, his campaign, and his supporters should be celebrated.&lt;br /&gt;
&lt;br /&gt;
&lt;img style="width: 458px; height: 303px" alt="Thank you Dr. Paul!" src="/Images/paulsitting.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
His surge of support was fueled by a relatively small minority of motivated people.  For some, it was merely the latest fad; for others Ron Paul was a person to project their fringe wild-eyed views onto.  For a great number though, Ron Paul was a person of integrity who endeavored to tell the truth and struggled in an honest way to address those truths within the political sphere.  Sadly, this often meant his "talking points" were confusing and not easily understood.  Some of the realities he painted were bleak and not terribly comfortable.  For anyone wanting a reassuring comfortable candidate, Ron Paul surely did not fit the bill.  &lt;br /&gt;
&lt;br /&gt;
I find it fitting that "Super Tuesday" fell within days of the Super Bowl.  Politics is simply another game.  Giants' fans get to have some good fun at Patriots' fans expense.  "Ha Ha!  Your side lost!!"  The Internet is exploding with comments just like this at Ron Paul supporters' expense. &lt;br /&gt;
&lt;br /&gt;
It isn't really a game though and I think these people miss the point.  We still have a war in Iraq.  We still have government entitlements promised which cannot possibly be financed in the coming years.  We still have the threat of a recession.  We still have the impact of our meddlesome foreign policies.  We still have a lifestyle which requires more &amp;amp; more layers of debt to sustain.  &lt;br /&gt;
&lt;br /&gt;
These are still realities and their consequences loom just on the horizon.  It saddens me that politicians promise ever increasing benefits and, consequently, make people increasingly dependent on a system which must inevitably fail.  When it fails, we will ruin the very people we were claiming to help.  These people will realize, all too late, that they are on their own.  I firmly believe that many of us will see this in our lifetime.&lt;br /&gt;
&lt;br /&gt;
Please understand, this isn't a doomsday fetish I have.  This is merely a reasonable conclusion when you consider our current lifestyle and the layers of debt we are amassing to support this lifestyle.&lt;br /&gt;
&lt;br /&gt;
With all of this though, I have hope.  Hundreds of thousands of seeds have been planted.  I believe a greater percentage of young people "get" this.  Ron Paul has stated over &amp;amp; over again, "this is not about me, this is about the message".  The message is still true and it is still strong.  Ron Paul will never be president.  But that doesn't mean the R3VOLUTION is dead, it has only begun.  As a nation, if we choose to ignore all of this, reality itself will bring these issues to the forefront.  Perhaps then these seeds will have come to fruition and we will have leaders prepared for the challenge.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Perhaps that leader, is you?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/strong&gt;
</description>
      <link>http://goondocks.com/blog/08-02-06/Ron_Paul_is_finished_the_R3VOLUTION_has_just_begun_.aspx</link>
      <author>Gabe Sumner</author>
      <comments>http://goondocks.com/blog/08-02-06/Ron_Paul_is_finished_the_R3VOLUTION_has_just_begun_.aspx</comments>
      <guid isPermaLink="false">94443b37-4fb1-4056-92bd-e7e2554a777f</guid>
      <pubDate>Wed, 06 Feb 2008 02:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>