<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://cs.completit.com/communityserver/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>CompletIT Community Server</title><link>http://cs.completit.com/communityserver/blogs/default.aspx</link><description>&lt;P&gt;&lt;A href="http://www.completit.com"&gt;www.completit.com&lt;/A&gt;&lt;/P&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>IsNumeric and Cast headache</title><link>http://cs.completit.com/communityserver/blogs/idragoev/archive/2009/02/13/isnumeric-and-cast-headache.aspx</link><pubDate>Fri, 13 Feb 2009 15:04:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:16254</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;An interesting issue was found by a colleague of mine: an exception when cast a nvarchar column to integer even if the column value was checked with IsNumeric on SQL 2000 SP4:&lt;/p&gt;&lt;div&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;select&lt;/span&gt; c.ID&lt;span style="COLOR:#0000ff;"&gt;from&lt;/span&gt; dbo.COM_COMPANY c &lt;span style="COLOR:#0000ff;"&gt;where&lt;/span&gt; IsNumeric(c.CODE) = 1 &lt;span style="COLOR:#0000ff;"&gt;and&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;convert&lt;/span&gt;(c.CODE &lt;span style="COLOR:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;) = 304 and DELETED = 0&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As result the following exception were raised:&lt;/p&gt;&lt;div&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;Msg 245, &lt;span style="COLOR:#0000ff;"&gt;Level&lt;/span&gt; 16, &lt;span style="COLOR:#0000ff;"&gt;State&lt;/span&gt; 1, Line 1Syntax error converting the nvarchar &lt;span style="COLOR:#0000ff;"&gt;value&lt;/span&gt; &lt;span style="COLOR:#006080;"&gt;'9665a'&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;to&lt;/span&gt; a &lt;span style="COLOR:#0000ff;"&gt;column&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;of&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;data&lt;/span&gt; type &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;.&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I played a bit with this query and I found the following: if I delete the check for the DELETED flag it works fine. But when I add one more check then it throws an exception. Here the working version:&lt;/p&gt;&lt;div&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;select&lt;/span&gt; c.ID&lt;span style="COLOR:#0000ff;"&gt;from&lt;/span&gt; dbo.COM_COMPANY c &lt;span style="COLOR:#0000ff;"&gt;where&lt;/span&gt; IsNumeric(c.CODE) = 1 &lt;span style="COLOR:#0000ff;"&gt;and&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;convert&lt;/span&gt;(c.CODE &lt;span style="COLOR:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;) = 304&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But I really need to have more checks, so what can I do?&lt;/p&gt;&lt;p&gt;The answer is:&lt;/p&gt;&lt;div&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;select&lt;/span&gt; c.ID&lt;span style="COLOR:#0000ff;"&gt;from&lt;/span&gt; dbo.COM_COMPANY c &lt;span style="COLOR:#0000ff;"&gt;where&lt;/span&gt; DELETED = 0 &lt;span style="COLOR:#0000ff;"&gt;and&lt;/span&gt;     (&lt;span style="COLOR:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;when&lt;/span&gt; IsNumeric(c.CODE) = 1 &lt;span style="COLOR:#0000ff;"&gt;then&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;cast&lt;/span&gt;(c.CODE &lt;span style="COLOR:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;) &lt;span style="COLOR:#0000ff;"&gt;else&lt;/span&gt; -1 &lt;span style="COLOR:#0000ff;"&gt;end&lt;/span&gt;) = 304&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This one works just fine.&lt;/p&gt;&lt;p&gt;Enjoy the workaround ;-)&lt;/p&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=16254" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/exception/default.aspx">exception</category><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/cast/default.aspx">cast</category><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/SQL+2005/default.aspx">SQL 2005</category><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/IsNumeric/default.aspx">IsNumeric</category></item><item><title>Missing exceptions in code after Raiserror() and SET NOCOUNT ON workaround</title><link>http://cs.completit.com/communityserver/blogs/idragoev/archive/2008/12/19/missing-exceptions-in-code-after-raiserror-and-set-nocount-on-workaround.aspx</link><pubDate>Fri, 19 Dec 2008 10:59:52 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:11905</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;These days I worked on a problem related with using raiserror() in SQL 2000 and why the exception is not raised in ADO.NET application using ODBCCommand. What I had is a simple stored procedure, that performs some check on its parameters and if some of them are incorrect it raises error and exits: &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;color:blue;font-family:;"&gt;create&lt;/span&gt;&lt;span style="font-size:10pt;font-family:;"&gt; &lt;span style="color:blue;"&gt;procedure&lt;/span&gt; dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;TestRaiserrrorinCode &lt;span style="color:gray;"&gt;(&lt;/span&gt;@ClientCode &lt;span style="color:blue;"&gt;nvarchar&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;10&lt;span style="color:gray;"&gt;))&lt;/span&gt; &lt;span style="color:blue;"&gt;as &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;color:blue;font-family:;"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;color:blue;font-family:;"&gt;if&lt;/span&gt;&lt;span style="font-size:10pt;font-family:;"&gt; &lt;span style="color:gray;"&gt;not&lt;/span&gt; &lt;span style="color:gray;"&gt;exists&lt;/span&gt; &lt;span style="color:gray;"&gt;( &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; Id &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;from&lt;/span&gt; dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Clients &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; Code &lt;span style="color:gray;"&gt;=&lt;/span&gt; @ClientCode&lt;span style="color:gray;"&gt;) &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;color:blue;font-family:;"&gt;begin &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;raiserror&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;58005&lt;span style="color:gray;"&gt;,&lt;/span&gt; 16&lt;span style="color:gray;"&gt;,&lt;/span&gt; 1&lt;span style="color:gray;"&gt;,&lt;/span&gt; @ClientCode&lt;span style="color:gray;"&gt;) &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; 58005 &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;line-height:115%;font-family:;"&gt;end&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;line-height:115%;font-family:;"&gt; &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;font-family:;"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;line-height:115%;font-family:;"&gt;print&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:;"&gt; &lt;span style="color:red;"&gt;'Do Something'&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:red;line-height:115%;font-family:;"&gt; &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;line-height:115%;font-family:;"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;If you execute it in SSMS you will see: &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:8pt;font-family:;"&gt;&lt;font color="#ff0000"&gt;Msg 58005, Level 16, State 1, Procedure TestRaiserrrorinCode, Line 8 &lt;/font&gt;&lt;/span&gt;    &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;font color="#ff0000"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;Cannot find &lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;client&lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt; with &lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;c&lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;ode '34'.&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt; &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;As you can see, because of the return the print does nothing. So in the SQL it works fine. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;But what if you execute this procedure from the C# code using ExecuteNonQuery()? The exception is not raised and the procedure seems to be executed normally. But it is not &amp;#8211; there is no exception in the C# code, but the procedure didn&amp;#8217;t execute successfully either. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;I started my investigation by playing sit SET XACT_ABORT ON, but it didn&amp;#8217;t help &amp;#8211; it was not related to this situation. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;I tried to remove the return after the raiserror() call, but as you might know raiserror() do not stop the execution so I get &amp;#8216;Do something&amp;#8217; printed, which is not acceptable. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;What&amp;#8217;s the solution? &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;I&amp;#8217;ve noticed that I have missed the &lt;strong&gt;SET NOCOUNT ON&lt;/strong&gt; and decided to add it. And miraculously it helped. The procedure worked fine, the C# code throws the exception. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;How and why the &lt;strong&gt;SET NOCOUNT &lt;/strong&gt;to&lt;strong&gt; ON&lt;/strong&gt; affects this &amp;#8211; I do not know. But the fact is that without it the procedure does not behave as it is expected. &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;Hope that helps you! &lt;/span&gt;&lt;/p&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=11905" width="1" height="1"&gt;</description></item><item><title>Animating ListBox items - the VisualStateManager</title><link>http://cs.completit.com/communityserver/blogs/idragoev/archive/2008/06/13/animating-listbox-items-the-visualstatemanager.aspx</link><pubDate>Fri, 13 Jun 2008 13:13:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:4337</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Check out my &lt;A class="" href="http://www.silverlightshow.net/items/Animating-ListBox-items-the-VisualStateManager.aspx"&gt;second article on ListBox items animations&lt;/A&gt;. Here you can see how to use VisualStateManager and also some problems I faced during the migration to Silverlight 2 beta 2&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=4337" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Moving ViewState to the bottom of the page</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/06/02/moving-viewstate-to-the-bottom-of-the-page.aspx</link><pubDate>Mon, 02 Jun 2008 13:51:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3555</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;We noticed that the &lt;I&gt;ViewState&lt;/I&gt; in &lt;A href="http://www.silverlightshow.net/"&gt;silverlightshow.net&lt;/A&gt; was enormous so we decided to make some improvements. The first step was to move it to the bottom of the page just for the search engine optimization. I have met many articles in internet which describe how to do this. One of them which I have used is:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx"&gt;http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I’ll describe the solution which worked for us:&lt;/P&gt;
&lt;P&gt;I created a class named &lt;B&gt;SLSPage&lt;/B&gt; which extends the &lt;I&gt;System.Web.UI.Page&lt;/I&gt; class and made all ASP.NET pages inherit this class instead of the &lt;I&gt;Page&lt;/I&gt; class. Here our class is:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; System.Text.RegularExpressions; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; System.IO; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; System.Web.UI; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; System; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; System.Configuration;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; SilverlightShow &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;SLSPage&lt;/SPAN&gt; : System.Web.UI.&lt;SPAN style="COLOR:#2b91af;"&gt;Page &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; Constants &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;readonly&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt; viewStateRegex = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt;( &lt;SPAN style="COLOR:#a31515;"&gt;@"&amp;lt;input\s+type=""hidden""\s+name=""__VIEWSTATE""\s+id=""__VIEWSTATE""\s+value=""[^""]+""\s*/&amp;gt;"&lt;/SPAN&gt;, &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.IgnoreCase | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Multiline | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Compiled ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;readonly&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt; endFormRegex = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt;( &lt;SPAN style="COLOR:#a31515;"&gt;@"&amp;lt;/form&amp;gt;"&lt;/SPAN&gt;, &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.IgnoreCase | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Multiline | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Compiled ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; Handlers &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; Render( System.Web.UI.&lt;SPAN style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/SPAN&gt; writer ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; originalHtml = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Empty; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; newHtml = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Empty;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;using&lt;/SPAN&gt; ( &lt;SPAN style="COLOR:#2b91af;"&gt;StringWriter&lt;/SPAN&gt; stringWriter = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;StringWriter&lt;/SPAN&gt;() ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;using&lt;/SPAN&gt; ( &lt;SPAN style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/SPAN&gt; htmlWriter = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/SPAN&gt;( stringWriter ) ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;base&lt;/SPAN&gt;.Render( htmlWriter ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; originalHtml = stringWriter.ToString(); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;bool&lt;/SPAN&gt; success = &lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;Match&lt;/SPAN&gt; viewStateMatch = viewStateRegex.Match( originalHtml );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; ( viewStateMatch.Success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; viewStateString = viewStateMatch.Value; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newHtml = originalHtml.Remove( viewStateMatch.Index, viewStateMatch.Length );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;Match&lt;/SPAN&gt; endFormMatch = endFormRegex.Match( newHtml, viewStateMatch.Index );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; ( endFormMatch.Success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newHtml = newHtml.Insert( endFormMatch.Index, viewStateString ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; ( success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write( newHtml ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;else &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write( originalHtml ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;We have two constant, precompiled &lt;I&gt;Regex&lt;/I&gt; objects. The first matches the hidden field named &lt;B&gt;__VIEWSTATE&lt;/B&gt; and the second – the closing tag of the form. Note that our solution will work only if we have only one form – the server form, but it is common scenario in ASP.NET.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;#region&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; Constants &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;readonly&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt; viewStateRegex = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt;( &lt;SPAN style="COLOR:#a31515;"&gt;@"&amp;lt;input\s+type=""hidden""\s+name=""__VIEWSTATE""\s+id=""__VIEWSTATE""\s+value=""[^""]+""\s*/&amp;gt;"&lt;/SPAN&gt;, &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.IgnoreCase | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Multiline | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Compiled ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:blue;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;readonly&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt; endFormRegex = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Regex&lt;/SPAN&gt;( &lt;SPAN style="COLOR:#a31515;"&gt;@"&amp;lt;/form&amp;gt;"&lt;/SPAN&gt;, &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.IgnoreCase | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Multiline | &lt;SPAN style="COLOR:#2b91af;"&gt;RegexOptions&lt;/SPAN&gt;.Compiled ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;#endregion&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Then I override the &lt;I&gt;Render&lt;/I&gt; method where we have full control on the rendered html.&lt;/P&gt;
&lt;P&gt;In this method I declare two string variables – one for the original rendered html and one for the html in which the &lt;I&gt;ViewState&lt;/I&gt; will be at the bottom.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;string&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; originalHtml = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Empty; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;string&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; newHtml = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Empty;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;I use the &lt;I&gt;Render&lt;/I&gt; method of the &lt;I&gt;Page&lt;/I&gt; class in order to render the html into a &lt;I&gt;HtmlTextWriter&lt;/I&gt; , named &lt;B&gt;htmlWriter&lt;/B&gt;, which wraps a &lt;I&gt;StringWriter&lt;/I&gt; named &lt;B&gt;stringWriter&lt;/B&gt;. Then I use the &lt;I&gt;ToString&lt;/I&gt; method of the &lt;I&gt;StringWriter&lt;/I&gt; in order to load the rendered html in the &lt;B&gt;originalHtml&lt;/B&gt; variable.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; ( &lt;SPAN style="COLOR:#2b91af;"&gt;StringWriter&lt;/SPAN&gt; stringWriter = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;StringWriter&lt;/SPAN&gt;() ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;using&lt;/SPAN&gt; ( &lt;SPAN style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/SPAN&gt; htmlWriter = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/SPAN&gt;( stringWriter ) ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;base&lt;/SPAN&gt;.Render( htmlWriter ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; originalHtml = stringWriter.ToString(); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Then I declare a Boolean variable called &lt;B&gt;success&lt;/B&gt;, which by default is false:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:;"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:;"&gt; success = &lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;This variable will be set to true only if all operations for moving the &lt;I&gt;ViewState&lt;/I&gt; succeed. The following code moves the &lt;I&gt;ViewState&lt;/I&gt;:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#2b91af;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;Match&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; viewStateMatch = viewStateRegex.Match( originalHtml ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; ( viewStateMatch.Success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; viewStateString = viewStateMatch.Value; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newHtml = originalHtml.Remove( viewStateMatch.Index, viewStateMatch.Length );&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;Match&lt;/SPAN&gt; endFormMatch = endFormRegex.Match( newHtml, viewStateMatch.Index ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; ( endFormMatch.Success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newHtml = newHtml.Insert( endFormMatch.Index, viewStateString ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;If the first match succeeds I remove the &lt;I&gt;ViewState&lt;/I&gt;, save it in a temp variable named &lt;B&gt;viewStateString&lt;/B&gt;, save the changed html in the &lt;B&gt;newHtml&lt;/B&gt; variable and continue with the second match. If the second match succeeds I insert the viewstate tag just before the closing form tag and set the success variable to true. So only if all operations succeed we can use the modified html, otherwise we will use the original. I make a check:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; ( success ) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write( newHtml ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;} &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;else &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write( originalHtml ); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;I use the &lt;I&gt;HtmlTextWriter&lt;/I&gt; named &lt;B&gt;writer&lt;/B&gt;, which we accept as a parameter of the &lt;I&gt;Render&lt;/I&gt; method. This method writes the html to the output.&lt;/P&gt;
&lt;P&gt;There are several occasions when some of the matches will not succeed and the original html must be rendered. For example when we use Ajax controls where we have partial rendering. In this situation only a part of the page html is rendered and there is no &lt;I&gt;ViewState&lt;/I&gt;.&lt;/P&gt;
&lt;P&gt;The second step was to optimize the &lt;I&gt;ViewState&lt;/I&gt; so now its size is reduced up to 95%. In fact we do not need any more to move it to the bottom because only a small part of it remained. So this solution was just temporary. But if you don’t have enough time to make optimizations you can use this solution.&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3555" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ViewState+Optimization/default.aspx">ViewState Optimization</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SEO/default.aspx">SEO</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ViewState/default.aspx">ViewState</category></item><item><title>Using the HyperlinkButton control in Silverlight 2 Beta 1</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/05/30/using-the-hyperlinkbutton-control-in-silverlight-2-beta-1.aspx</link><pubDate>Fri, 30 May 2008 14:13:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3382</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I published an article about the &lt;em&gt;HyperlinkButton&lt;/em&gt;, which you can see here: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.silverlightshow.net/items/Using-the-HyperlinkButton-control-in-Silverlight-2-Beta-1.aspx"&gt;HyperlinkButton in Silverlight 2 beta 1&lt;/a&gt;&lt;/p&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3382" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Controls/default.aspx">Silverlight Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Button+Controls/default.aspx">Silverlight Button Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ButtonBase/default.aspx">ButtonBase</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/HyperlinkButton/default.aspx">HyperlinkButton</category></item><item><title>Articles about Button controls in general and the Button control in Silverlight 2 Beta 1</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/05/12/articles-about-button-controls-in-general-and-the-button-control-in-silverlight-2-beta-1.aspx</link><pubDate>Mon, 12 May 2008 08:15:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3249</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I published two new articles about &lt;EM&gt;Silverlight&lt;/EM&gt; controls today:&lt;/P&gt;
&lt;P&gt;The first covers the key features of the &lt;EM&gt;ButtonBase&lt;/EM&gt; class, inherited in all button controls, you can see it here: &lt;A href="http://www.silverlightshow.net/items/Button-Controls-in-Silverlight-2-Beta-1.aspx"&gt;Button Controls&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The second one is dedicated to the &lt;EM&gt;Button&lt;/EM&gt; control. Visit it here: &lt;A href="http://www.silverlightshow.net/items/Using-the-Button-control-in-Silverlight-2-Beta-1.aspx"&gt;Button Control&lt;/A&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3249" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Controls/default.aspx">Silverlight Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Button+Controls/default.aspx">Silverlight Button Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Button/default.aspx">Button</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ButtonBase/default.aspx">ButtonBase</category></item><item><title>Using the Border control in Silverlight 2 Beta 1</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/05/08/using-the-border-control-in-silverlight-2-beta-1.aspx</link><pubDate>Thu, 08 May 2008 12:04:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3229</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I completely forgot to mention my article about the &lt;EM&gt;Border&lt;/EM&gt; control in &lt;EM&gt;Silverlight&lt;/EM&gt; which I published a few weeks ago.&lt;/P&gt;
&lt;P&gt;Here it is:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.silverlightshow.net/items/Using-the-Border-control-in-Silverlight-2-Beta-1-.aspx href="http://www.silverlightshow.net/items/Using-the-Border-control-in-Silverlight-2-Beta-1-.aspx"&gt;Using the Border control in Silverlight 2 Beta 1&lt;/A&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3229" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Controls/default.aspx">Silverlight Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Border/default.aspx">Border</category></item><item><title>SiteMap and URL Rewriting in ASP.NET 2.0</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/04/23/sitemap-and-url-rewriting-in-asp-net-2-0.aspx</link><pubDate>Wed, 23 Apr 2008 09:04:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3112</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;B&gt;Introduction&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;A common scenario in web development is when one page shows different content depending on some query parameters. OK, but these query parameters do not look friendly to the user and are neither friendly for the search engines. Here the URL Rewriting comes. We have URL rewriting in &lt;A href="http://www.silverlightshow.net/"&gt;SilverlightShow.net&lt;/A&gt; sitemap page. Look for example here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.silverlightshow.net/Sitemap-Articles.aspx"&gt;http://www.silverlightshow.net/Sitemap-Articles.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You see that the articles are organized in pages and when clicking on “&lt;I&gt;Older Articles&lt;/I&gt;” or “&lt;I&gt;Newer Articles&lt;/I&gt;” the page is changed and the URL looks slightly different. Only the number at the end of the page name is different, for example “&lt;I&gt;Sitemap-Articles-1.aspx&lt;/I&gt;” or “&lt;I&gt;Sitemap-Articles-2.aspx&lt;/I&gt;”.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;The problem&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;It’s needless to say that all these different URLs are processed by a single ASP.NET page. The problem came when we decided to put an ASP.NET &lt;I&gt;SiteMapPath&lt;/I&gt; control. By default it automatically binds using the information provided in the &lt;I&gt;Web.sitemap&lt;/I&gt; file. OK, we have the following &lt;I&gt;SiteMap&lt;/I&gt; structure:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;xml&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;version&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;1.0&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;encoding&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;utf-8&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; ?&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMap&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;http://schemas.microsoft.com/AspNet/SiteMap-File-1.0&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Default.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Home&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Home&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Sitemap&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Sitemap&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-News.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;News&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;News&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Articles.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Articles&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Articles&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Announcements.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Announcements&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Announcements&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Products.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Products&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Products&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Controls.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Controls&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Controls&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-MediaPlayers.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Media Players&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Media Players&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Games.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Games&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Games&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Charts.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Charts&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Charts&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Tools.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tools&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tools&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Moonlight.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Moonlight&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Moonlight&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Demos.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Demos&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Demos&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Learn.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Learn&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Learn&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Videos.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Videos&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Videos&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Presentations.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Presentations&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Presentations&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Tutorials.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tutorials&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tutorials&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Resources.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Resources&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Resources&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Samples.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Samples&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Samples&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-QuickStarts.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;QuickStarts&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;QuickStarts&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-TipsandTricks.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tips and Tricks&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tips and Tricks&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Issues.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Issues&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Issues&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Misc.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Misc&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Misc&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;url&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;"&lt;SPAN style="COLOR:blue;"&gt;~/Sitemap-Shows.aspx&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;title&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Shows&lt;/SPAN&gt;"&lt;SPAN style="COLOR:red;"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Shows&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMapNode&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;siteMap&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;We have the root website node, marked with title “&lt;I&gt;Home&lt;/I&gt;” and the sitemap node marked with title “&lt;I&gt;Sitemap&lt;/I&gt;”. All child nodes of the “&lt;I&gt;Sitemap&lt;/I&gt;” node except the last child (&lt;I&gt;Shows&lt;/I&gt;) are processed by a single ASP.NET page. Since the URL is different no matter that all these nodes are in fact one ASP.NET page the &lt;I&gt;SiteMapPath&lt;/I&gt; works the way it has to work. For example if we are on the following URL:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.silverlightshow.net/Sitemap-Articles.aspx"&gt;http://www.silverlightshow.net/Sitemap-Articles.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Our &lt;I&gt;SiteMapPath&lt;/I&gt; is rendered the following way:&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=sitemap_1 src="http://completit.com/communityserver/blogs/nraychev/WindowsLiveWriter/SiteMapandURLRewritinginASP.NET2.0_A764/sitemap_1_thumb.jpg"&gt;&lt;/P&gt;
&lt;P&gt;If you look at our &lt;I&gt;Web.sitemap&lt;/I&gt; file you will see that it works fine. Till now everything is OK, but imagine that we want to open the &lt;B&gt;last&lt;/B&gt; page in the &lt;I&gt;Articles&lt;/I&gt; page, which is on the following URL:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.silverlightshow.net/Sitemap-Articles-1.aspx"&gt;http://www.silverlightshow.net/Sitemap-Articles-1.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It works on &lt;A href="http://www.silverlightshow.net/"&gt;SilverlightShow.net&lt;/A&gt; because we have made it work but in common scenario it wouldn’t work. No &lt;I&gt;SiteMapPath&lt;/I&gt; would be shown because in the &lt;I&gt;Web.sitemap&lt;/I&gt; we don’t have a node with &lt;I&gt;url="~/Sitemap-Articles-1.aspx"&lt;/I&gt;. You can always say that we can add this node too but in our case lots of articles are added to the site every day and the pages become more and more. I don’t like the option of checking for new pages every day and updating the &lt;I&gt;Web.sitemap&lt;/I&gt; file.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;The solution&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The solution is to attach to the &lt;I&gt;SiteMap.SiteMapResolve&lt;/I&gt; in the &lt;I&gt;OnLoad&lt;/I&gt; handler of the page that processes the request where paging is needed.&lt;/P&gt;
&lt;P&gt;We have the following code in the code behind of our page:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;protected&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; OnLoad( &lt;SPAN style="COLOR:#2b91af;"&gt;EventArgs&lt;/SPAN&gt; e )&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;base&lt;/SPAN&gt;.OnLoad( e );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMap&lt;/SPAN&gt;.SiteMapResolve += &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMapResolveEventHandler&lt;/SPAN&gt;( &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.ConstructSiteMap );&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Note: You can do the same in the &lt;I&gt;Page_Load&lt;/I&gt; method if your ASP.NET page is marked with: &lt;I&gt;AutoEventWireup="true"&lt;/I&gt;. I’m overriding the &lt;I&gt;OnLoad&lt;/I&gt; event handler because it is faster :)&lt;/P&gt;
&lt;P&gt;Note: &lt;I&gt;SiteMap&lt;/I&gt; class is located in the &lt;I&gt;System.Web&lt;/I&gt; namespace and is an in-memory representation of the navigation structure of the website. It is used by the &lt;I&gt;SiteMapPath&lt;/I&gt; control.&lt;/P&gt;
&lt;P&gt;Here is the handler for the &lt;I&gt;SiteMapResolve&lt;/I&gt; event.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMapNode&lt;/SPAN&gt; ConstructSiteMap( &lt;SPAN style="COLOR:#2b91af;"&gt;Object&lt;/SPAN&gt; sender, &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMapResolveEventArgs&lt;/SPAN&gt; e )&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMapNode&lt;/SPAN&gt; currentNode;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; ( &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMap&lt;/SPAN&gt;.CurrentNode == &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt; )&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = e.Provider.FindSiteMapNode( &lt;SPAN style="COLOR:#a31515;"&gt;"~/&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;Sitemap-Articles.aspx "&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;else&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = &lt;SPAN style="COLOR:#2b91af;"&gt;SiteMap&lt;/SPAN&gt;.CurrentNode.Clone( &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt; );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; currentNode;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;In our case if the URL is with paging it is not found in the &lt;I&gt;Web.sitemap&lt;/I&gt; file and that’s why the &lt;I&gt;SiteMap.CurrentNode&lt;/I&gt; property will be null. This causes the &lt;I&gt;SiteMapPath&lt;/I&gt; control to disappear. OK, now we check if this property of the &lt;I&gt;SiteMap&lt;/I&gt; is null and if it is we just create a &lt;I&gt;SiteMapNode&lt;/I&gt; using the current provider’s &lt;I&gt;SiteMapProvider.FindSiteMapNode&lt;/I&gt; method giving the URL without paging. Note that we surely will know the URL that must be given to the &lt;I&gt;FindSiteMapNode&lt;/I&gt; method because we are in the page which processes the request. If this property is not null we just clone it. The return value of our handler will be the &lt;I&gt;SiteMapNode&lt;/I&gt; which will be used to render the &lt;I&gt;SiteMapPath&lt;/I&gt; control.&lt;/P&gt;
&lt;P&gt;This is a better solution than updating the &lt;I&gt;Web.sitemap&lt;/I&gt; file every day.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Additional Issues and solutions&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;I found out that the &lt;I&gt;SiteMap&lt;/I&gt; class has a strange way of caching. For example if we go to: &lt;A href="http://www.silverlightshow.net/Sitemap-Controls.aspx"&gt;http://www.silverlightshow.net/Sitemap-Controls.aspx&lt;/A&gt; our &lt;I&gt;SiteMapPath&lt;/I&gt; will look like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=sitemap_2 src="http://completit.com/communityserver/blogs/nraychev/WindowsLiveWriter/SiteMapandURLRewritinginASP.NET2.0_A764/sitemap_2_thumb.jpg"&gt;&lt;/P&gt;
&lt;P&gt;After that we are going to &lt;A href="http://www.silverlightshow.net/Sitemap-Articles.aspx"&gt;http://www.silverlightshow.net/Sitemap-Articles.aspx&lt;/A&gt; and our &lt;I&gt;SiteMapPath&lt;/I&gt; is normal:&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=sitemap_1 src="http://completit.com/communityserver/blogs/nraychev/WindowsLiveWriter/SiteMapandURLRewritinginASP.NET2.0_A764/sitemap_1_thumb_1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;But the problem comes when we go through the pages. If we hadn’t find a solution our &lt;I&gt;SiteMapPath&lt;/I&gt; path would look this way, no matter that we are on the &lt;I&gt;Articles&lt;/I&gt; page and not on the &lt;I&gt;Controls&lt;/I&gt; page:&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=sitemap_2 src="http://completit.com/communityserver/blogs/nraychev/WindowsLiveWriter/SiteMapandURLRewritinginASP.NET2.0_A764/sitemap_2_thumb_1.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This behavior is as strange as our solution. It seems that the &lt;I&gt;SiteMap&lt;/I&gt; remembered that when last time the &lt;I&gt;CurrentNode&lt;/I&gt; was null we made it &lt;I&gt;“~/Sitemap-Controls.aspx”&lt;/I&gt; and when we are on &lt;I&gt;Articles&lt;/I&gt; page and this node is again null it uses the previous value from &lt;I&gt;Controls&lt;/I&gt;. As I told you our solution is also strange but works :) We are putting our page path in variable instead of literal:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:;"&gt;currentNode = e.Provider.FindSiteMapNode( &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.currentPagePath );&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Our variable of type string &lt;I&gt;currentPagePath&lt;/I&gt; contains for example the following value “&lt;I&gt;~/Sitemap-Games.aspx&lt;/I&gt;” for the following page: &lt;A href="http://www.silverlightshow.net/Sitemap-Games.aspx"&gt;http://www.silverlightshow.net/Sitemap-Games.aspx&lt;/A&gt;. The behavior is exactly the same. But if we make this variable null just after our page is unloaded no caching takes place:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:black 2px solid;PADDING-RIGHT:10px;BORDER-TOP:black 2px solid;PADDING-LEFT:10px;PADDING-BOTTOM:10px;BORDER-LEFT:black 2px solid;PADDING-TOP:10px;BORDER-BOTTOM:black 2px solid;"&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;protected&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; OnUnload( &lt;SPAN style="COLOR:#2b91af;"&gt;EventArgs&lt;/SPAN&gt; e )&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;base&lt;/SPAN&gt;.OnUnload( e );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="MARGIN:0in 0in 5pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.currentPagePath = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Note: In our case our &lt;I&gt;Controls&lt;/I&gt; and &lt;I&gt;Articles&lt;/I&gt; pages are processed by a single ASP.NET page. But the caching behavior of the &lt;I&gt;SiteMap&lt;/I&gt; takes place even these two URLs are processed by different ASP.NET pages. Our solution works for our &lt;I&gt;Shows&lt;/I&gt; page which is different ASP.NET page. You just must make the variable which contains the current node path null on both places.&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3112" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/URL+Rewriting/default.aspx">URL Rewriting</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SiteMapPath/default.aspx">SiteMapPath</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SiteMap/default.aspx">SiteMap</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category></item><item><title>Using the GridSplitter control in Silverlight 2 Beta 1</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/04/15/using-the-gridsplitter-control-in-silverlight-2-beta-1.aspx</link><pubDate>Tue, 15 Apr 2008 14:30:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3075</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I wrote a little article about using the GridSplitter control.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;You can see it here:&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4795.aspx"&gt;GridSplitter Article&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I also wrote another article in response of a guy who asked me about &lt;EM&gt;how the Canvas control deals with the Measure/Arrange process when it is laid out by a parent Panel.&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;Here it is: &lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4688.aspx"&gt;Canvas and Measure/Arrange&lt;/A&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3075" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/GridSplitter/default.aspx">GridSplitter</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Controls/default.aspx">Silverlight Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Grid/default.aspx">Grid</category></item><item><title>A few articles about layout controls in Silverlight 2 Beta 1.</title><link>http://cs.completit.com/communityserver/blogs/nraychev/archive/2008/04/09/a-few-articles-about-layout-controls-in-silverlight-2-beta-1.aspx</link><pubDate>Wed, 09 Apr 2008 08:21:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:3036</guid><dc:creator>nraychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Hi to all :)&lt;/P&gt;
&lt;P&gt;As a first post in this blog I'd like to present the articles about Silverlight which we published this week. They describe&amp;nbsp;how to&amp;nbsp;use&amp;nbsp;the layout controls in Silverlight 2 Beta 1 and can be used as tutotials: &lt;/P&gt;
&lt;P&gt;&amp;nbsp;Yolu can see them here:&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4642.aspx"&gt;Layout controls in Silverlight 2 Beta 1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4609.aspx"&gt;Using the Canvas control in Silverlight 2 Beta 1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4610.aspx"&gt;Using the StackPanel control in Silverlight 2 Beta 1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.silverlightshow.net/items/4611.aspx"&gt;Using the Grid control in Silverlight 2 Beta 1&lt;/A&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=3036" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/SilverlightShow.net/default.aspx">SilverlightShow.net</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Controls/default.aspx">Silverlight Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Canvas/default.aspx">Canvas</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Grid/default.aspx">Grid</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/Silverlight+Layout+Controls/default.aspx">Silverlight Layout Controls</category><category domain="http://cs.completit.com/communityserver/blogs/nraychev/archive/tags/StackPanel/default.aspx">StackPanel</category></item><item><title>DataGridView Extension 1.1.1 was released today.</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2008/02/29/datagridview-extension-1-1-1-was-released-today.aspx</link><pubDate>Fri, 29 Feb 2008 16:13:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:2779</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;DataGridView Extension 1.1.1&amp;nbsp;was published today and&amp;nbsp;the full functional free version&amp;nbsp;can be downloaded from &lt;A class="" href="http://completit.com/Products/DGVE/Downloads.aspx"&gt;here&lt;/A&gt;.&lt;BR&gt;List of the fixed issues included in this new version are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Added rows to unbound DataGridView control are not shown - described in &lt;A class="" href="http://completit.com/communityserver/forums/permalink/2447/2447/ShowThread.aspx#2447"&gt;this&amp;nbsp;post&lt;/A&gt;;&lt;/LI&gt;
&lt;LI&gt;Export of DataGridView using API results in black color of some of the exported cells;&lt;/LI&gt;
&lt;LI&gt;Improved multithread operations when exporting;&lt;/LI&gt;
&lt;LI&gt;Changes in API comments on classes, methods, properties, etc;&lt;/LI&gt;
&lt;LI&gt;Other bug fixes.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;What more has changed is that now the source code of the DataGridView Extension is available for sell from &lt;A class="" href="http://completit.com/Products/DGVE/Overview.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=2779" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/1.1.1+Release/default.aspx">1.1.1 Release</category></item><item><title>CodeCamp Bulgaria</title><link>http://cs.completit.com/communityserver/blogs/estoychev/archive/2008/02/07/codecamp-bulgaria.aspx</link><pubDate>Thu, 07 Feb 2008 11:40:16 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:2224</guid><dc:creator>estoychev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img style="margin:0px 10px 0px 0px;" height="122" alt="codecamp" src="http://completit.com/communityserver/blogs/estoychev/WindowsLiveWriter/CodeCampBulgaria_BCB4/codecamp_3.png" width="91" align="left" border="0" /&gt; The developer's community in Bulgaria organizes the first Code Camp on 15/16th of February 2008. I'm glad to see that such initiatives are held in my country as well. I'm sure it is going to be fun and this will be the first of many upcoming camps. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There will be 7 sessions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Pingback and Trackback enable your web application&lt;/li&gt;    &lt;li&gt;Multicore architectures and programming&lt;/li&gt;    &lt;li&gt;CIFactory - continues integration on crack&lt;/li&gt;    &lt;li&gt;Mootools&lt;/li&gt;    &lt;li&gt;Aggregator How-To&lt;/li&gt;    &lt;li&gt;Creating multiplatform .NET applications using Mono&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I'm going to speak in the first one - Pingback and Trackback enable your web application. You can find more information on the official site - &lt;a href="http://codecamp.sofiadev.org"&gt;http://codecamp.sofiadev.org&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Meet you there.&lt;/p&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=2224" width="1" height="1"&gt;</description></item><item><title>Interactive Silverlight Voting Control</title><link>http://cs.completit.com/communityserver/blogs/idragoev/archive/2007/12/05/interactive-silverlight-voting-control.aspx</link><pubDate>Wed, 05 Dec 2007 14:43:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:1157</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;As you might know, we at CompletIT are behind the&amp;nbsp;&lt;A href="http://www.silverlightshow.net/Default.aspx"&gt;SilverlightShow.net&lt;/A&gt; - the independent Silverlight community site. Also, the last few weeks we've published several articles (with source code included) just to show how easy is to create nice&amp;nbsp;stuff with&amp;nbsp;Silverlight 1.1.&lt;/P&gt;
&lt;P&gt;I also decided to write an article based on simple &lt;A class="" href="http://www.silverlightshow.net/items/2477.aspx"&gt;interactive voting control&lt;/A&gt;. The purpose of this control is to show the current results for certain vote. The site visitors can give their vote simply by clicking on the option result they like and the results are automatically updated.&lt;/P&gt;
&lt;P&gt;We will continue publishing articles with source code. We hope such examples are helpful for&amp;nbsp;the developers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;You can submit your own&amp;nbsp;article Silverlight on &lt;A href="http://www.silverlightshow.net/Default.aspx"&gt;SilverlightShow.net&lt;/A&gt;&amp;nbsp;- just click &lt;A class="" href="http://www.silverlightshow.net/SubmitArticle.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=1157" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/SilverlightShow/default.aspx">SilverlightShow</category><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/Silverlight+Control/default.aspx">Silverlight Control</category></item><item><title>Silverlight 1.1 Tools Alpha - VS Orcas Beta 2 to VS2008 RTM migration issues</title><link>http://cs.completit.com/communityserver/blogs/estoychev/archive/2007/12/04/silverlight-1-1-tools-alpha-vs-orcas-beta-2-to-vs2008-rtm-migration-issues.aspx</link><pubDate>Tue, 04 Dec 2007 09:10:27 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:1132</guid><dc:creator>estoychev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Last week &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=25144C27-6514-4AD4-8BCB-E2E051416E03&amp;amp;displaylang=en"&gt;Silverlight 1.1 Tools Alpha for VS 2008 RTM&lt;/a&gt; were released and as a developer working with Silverlight I run to install them on my fresh new copy of VS 2008 RTM. The installation went without any problems, but unfortunately after trying to create a new Silverlight project (same for class library) I got a popup &lt;strong&gt;error&lt;/strong&gt; saying:
&lt;/p&gt;&lt;p style="background:#f2f2f2;"&gt;"&lt;span style="font-family:Courier New;"&gt;The project file 'C:\Users\estoychev\AppData\Local\Temp\zhxiyguv.4rr\Temp\SilverlightProject1.csproj' cannot be opened. The project type is not supported by this installation."&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;Puff. I tried to google about this error message but I got no helpful results. I only noticed that a guy commented on the ScottGu's blog with the same problem. Scott kindly replied to this guy to mail him and he would attach someone to help for this problem. I followed his advice and wrote to him. The next day I received an answer from Bill Hiebert guiding me how to resolve my problem. The &lt;strong&gt;simple step you should take&lt;/strong&gt; is the following: 
&lt;/p&gt;&lt;p style="background:#eaf1dd;"&gt;Open a Visual Studio Command prompt and type "&lt;span style="font-family:Courier New;"&gt;devenv /resetskippkgs&lt;/span&gt;". 
&lt;/p&gt;&lt;p&gt;Then try to create a new Silverlight project. This solution does work for me. I hope it also works for you. Thanks Bill ;)
&lt;/p&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=1132" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/estoychev/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>DataGridView Extension 1.1 Installation Update</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/11/30/datagridview-extension-1-1-installation-update.aspx</link><pubDate>Fri, 30 Nov 2007 10:08:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:1065</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;DataGridView Extension's installation and archive for download were updated.&lt;BR&gt;List of the fixed issues included in the new update:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Improved error handling in the Xml persistence;&lt;/LI&gt;
&lt;LI&gt;Fixed a bug in themes import functionality;&lt;/LI&gt;
&lt;LI&gt;Update of ‘Developers' guide’ and ‘End User Manual’;&lt;/LI&gt;
&lt;LI&gt;Fixed bug in Pdf export font mapping – the Extension could not embed in the generated pdf document&amp;nbsp;font which is a part of Font Type Collection file. Instead of that a default font is used;&lt;/LI&gt;
&lt;LI&gt;Other small fixes and improvements.&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=1065" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/1.1+Update/default.aspx">1.1 Update</category></item><item><title>DataGridView Extension 1.1 hit the streets with improvements, print and export to Pdf.</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/11/17/datagridview-extension-1-1-hit-the-streets-with-improvements-print-and-export-to-pdf.aspx</link><pubDate>Sat, 17 Nov 2007 18:58:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:820</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>&lt;SPAN class=basetext id=ctl00_Content_dlstNews_ctl00_lblArticleText&gt;The new version of DataGridView Extension 1.1 has been relesed on time. In the new version you will find printing functionality, export to Pdf, many improvements and bug-fixes. You can download it from &lt;A class="" href="http://www.completit.com/Products/DGVE/Downloads.aspx"&gt;here&lt;/A&gt; or see the &lt;A href="http://www.completit.com/Products/DGVE/ChangeLog.aspx"&gt;change log&lt;/A&gt;.&lt;/SPAN&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=820" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/1.1+Release/default.aspx">1.1 Release</category></item><item><title>DataGridView Extension 1.1 will be released on the 13th of November 2007.</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/11/02/datagridview-extension-1-1-will-be-released-on-the-13th-of-november-2007.aspx</link><pubDate>Fri, 02 Nov 2007 15:01:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:422</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>&lt;SPAN class=basetext id=ctl00_Content_dlstNews_ctl00_lblArticleText&gt;We are proud to announce that &lt;STRONG&gt;DataGridView Extension 1.1&lt;/STRONG&gt; will be released on the &lt;STRONG&gt;13th of November 2007&lt;/STRONG&gt;. This new version will contain new functionalities (such as Export &amp;amp; Import of themes, Print, Export to Pdf, UI Security and others) as well as fixes of issues reported by our users (thank you guys!). Developers guide will be also available for download, describing how to use, integrate, change and control the extension and its features in your applications.&lt;/SPAN&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=422" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/1.1+Release/default.aspx">1.1 Release</category></item><item><title>CompletIT at DevReach, Sofia, Bulgaria 1-2 October, 2007</title><link>http://cs.completit.com/communityserver/blogs/idragoev/archive/2007/10/08/ms-sql-triggers-inserted-deleted-tables.aspx</link><pubDate>Mon, 08 Oct 2007 15:36:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:208</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;At the beginning of October I have visited DevReach - the premier conference for Microsoft technologies in South Eastern Europe. I was on several lectures about MS SQL:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;What's New in SQL Server 2008 for Developers - by Vladi Tchalkov;&lt;/LI&gt;
&lt;LI&gt;T–SQL Querying: Tips and Techniques (With SQL 2008 features too) by Stephen Forte;&lt;/LI&gt;
&lt;LI&gt;Lino Does LINQ by Lino Tadros;&lt;/LI&gt;
&lt;LI&gt;Being Smart About Database Design by Vladi Tchalkov,&lt;/LI&gt;
&lt;LI&gt;100 Years of Transaction Solitude...Transactions and isolation levels by Ami Levin;&lt;/LI&gt;
&lt;LI&gt;SQL Server Service Broker - Your Gateway to the World of Transactional Asynchronicity by Ami Levin;&lt;/LI&gt;
&lt;LI&gt;Security and .NET by Hadi Hariri;&lt;/LI&gt;
&lt;LI&gt;Silverlight, Flash on Steroids by Lino Tadros.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;What I appreciated most is the fact, that I had the chance to discuss different topics with the speakers. Most of them are experienced, well known in the community, with knowledge about the cutting-edge MS technologies.&lt;/P&gt;
&lt;P&gt;I’m looking forward to meeting the guys again.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=208" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/idragoev/archive/tags/DevReach/default.aspx">DevReach</category></item><item><title>DGV Extension's installation and archive for download were updated #2</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/09/15/dgv-extension-s-installation-and-archive-for-download-were-updated-2.aspx</link><pubDate>Sat, 15 Sep 2007 08:13:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:106</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;SPAN class=basetext id=ctl00_Content_dlstNews_ctl02_lblArticleShortText&gt;Now you can download our latest installation\archive with&amp;nbsp;improved&amp;nbsp;export to Excel.&lt;BR&gt;An&amp;nbsp;issue was found and&amp;nbsp;described by one of our users in the &lt;A class="" href="http://completit.com/communityserver/forums/permalink/72/99/ShowThread.aspx#99"&gt;following topic&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;Please note that if you already have DataGridView Extension downloaded you do not need to download it again but just the assembly &lt;A href="http://completit.com/DownloadFile.aspx?file=DGVEExcelExporting.dll"&gt;'DGVEExcelExporter.dll'&lt;/A&gt; and replace the old one you already have.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=106" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Excel/default.aspx">Excel</category></item><item><title>SilverlightShow.net - Silverlight Community</title><link>http://cs.completit.com/communityserver/blogs/estoychev/archive/2007/09/01/silverlightshow-net-silverlight-community.aspx</link><pubDate>Sat, 01 Sep 2007 15:12:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:89</guid><dc:creator>estoychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Today we've published our first beta of &lt;A class="" href="http://www.silverlightshow.net/"&gt;SilverlightShow&lt;/A&gt;.&amp;nbsp;It is a&amp;nbsp;website that provides regular&amp;nbsp;aggregation and classification of the&amp;nbsp;information related to&amp;nbsp;Silverlight available all over the Internet. We will get interviews, make video/audio/screen casts, write articles, provide samples; we will try to bring to you the hottest articles around Silverlight. As it is still a beta version there are no benefits to be a member of the community but soon we will provide functionalities to publish your own articles.&lt;/P&gt;
&lt;P&gt;Currently we aggregate news from different sources - blogs, user groups, etc. We categorize the information carefully and let you see only the valuable pieces of it. Probably now you use RSS/Atom feeds or &lt;A class="" href="http://www.google.com/alerts"&gt;Google Alerts&lt;/A&gt; or &lt;A class="" href="http://blogsearch.google.com/"&gt;Google Blog Search&lt;/A&gt; to stay in touch with the latest news around Silverlight. Yes, we also use these 'tools'. We also check the official &lt;A class="" href="http://silverlight.net/"&gt;Microsoft Silverlight Community&lt;/A&gt; site. We know about all of them. But we&amp;nbsp;strongly believe that&amp;nbsp;we can offer you more&amp;nbsp;- a better experience to stay tuned with Silverlight.&lt;/P&gt;
&lt;P&gt;I hope you will&amp;nbsp;see in&amp;nbsp;SilverlightShow a great place to learn and discuss things about Silverlight.&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=89" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/estoychev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://cs.completit.com/communityserver/blogs/estoychev/archive/tags/SilverlightShow/default.aspx">SilverlightShow</category></item><item><title>ASP.NET 2.0 issues: Validation of viewstate MAC failed</title><link>http://cs.completit.com/communityserver/blogs/estoychev/archive/2007/08/31/asp-net-2-0-issues-validation-of-viewstate-mac-failed.aspx</link><pubDate>Fri, 31 Aug 2007 11:44:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:87</guid><dc:creator>estoychev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Have you ever experienced such error? Well, today I did. It is not easy to get it - you have to browse too quickly trough pages (or in one page) and click buttons (causing postback). Yep, sounds strange. The point is that if you have a page, with lets say just a text box and a button, and you push that button quickly you will probably get this error - especially if you do it with slow connection or at least not on your local machine. &lt;/P&gt;
&lt;P&gt;I would reccommend reading &lt;A class="" href="http://forums.asp.net/t/955145.aspx"&gt;this thread&lt;/A&gt; in ASP.NET forums if you want to learn more about this error and want a solution (or a workaround).&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=87" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/estoychev/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>DGV Extension's installation and archive for download were updated</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/08/31/dgv-extension-s-installation-and-archive-for-download-were-updated.aspx</link><pubDate>Fri, 31 Aug 2007 11:32:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:86</guid><dc:creator>iiordanov</dc:creator><slash:comments>0</slash:comments><description>Now you can download our latest installation\archive with improved file structure and sample project in C#.&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=86" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/DataGridView+Extension/default.aspx">DataGridView Extension</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Installation/default.aspx">Installation</category></item><item><title>DataGridView Extension 1.0. Release</title><link>http://cs.completit.com/communityserver/blogs/dgve/archive/2007/08/17/datagridview-extension-1-0-release.aspx</link><pubDate>Fri, 17 Aug 2007 12:27:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:47</guid><dc:creator>idragoev</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;When Microsoft released .NET framework 2.0 the DataGrid control was replaced by DataGridView, which allows the developers to control better the way the data is presented&amp;nbsp;by creation&amp;nbsp;of much more user friendly views, but even in DataGridView control&amp;nbsp;there is missing functionality.&lt;BR&gt;&lt;BR&gt;And here is where the DataGridView Extension component comes,&amp;nbsp;it is absolutely free and extends the functionality of the standard DataGridView control by adding themes support,&amp;nbsp;searching data, export to Excel and HTML, etc.&lt;BR&gt;&lt;BR&gt;Moreover, DataGridView Extension allow end-users to control the whole appearance at run time – columns size and order, formatting, colors, borders, etc.&lt;BR&gt;&lt;BR&gt;The developers can easily integrate DataGridView Extension in their existing application in two simple steps:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add reference to DataGridViewExtension.dll and the dll for exporting to Excel (DGVEExcelExporting.dll) and to HTML (DGVEHtmlExporting.dll) if needed.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Drag &amp;amp; drop DataGridView Extension Component on your root container from the toolbox then select the grid you wish to manage and set the value of its property ‘IsManagedByExtension’ to true&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;As a conclusion we can say that the&amp;nbsp;DataGridView Extension brings direct, visible, benefits to the applications’ end-users by giving them control over the presentation of the data at run-time as well as export to external well known formats.&lt;/P&gt;
&lt;P&gt;You can learn more about DataGridView Extension &lt;A class="" title=here href="http://www.completit.com/Products/DGVE/Overview.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=47" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/DataGridView+Extension/default.aspx">DataGridView Extension</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/HTML/default.aspx">HTML</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Extension/default.aspx">Extension</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Excel/default.aspx">Excel</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Export/default.aspx">Export</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/Run-time/default.aspx">Run-time</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/DataGridView+Customization/default.aspx">DataGridView Customization</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/DataGridView/default.aspx">DataGridView</category><category domain="http://cs.completit.com/communityserver/blogs/dgve/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category></item><item><title>Composite Design Pattern in C#</title><link>http://cs.completit.com/communityserver/blogs/ppopadiyn/archive/2007/08/02/composite-design-pattern-in-c.aspx</link><pubDate>Thu, 02 Aug 2007 16:08:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:38</guid><dc:creator>ppopadiyn</dc:creator><slash:comments>0</slash:comments><description>&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The composite pattern is very simple pattern that has significant implication. The fundamental structure of the Composite pattern is shown on the next figure:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/FundamentalStructure%5B23%5D.gif"&gt;&lt;IMG style="WIDTH:532px;HEIGHT:230px;" height=234 src="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/FundamentalStructure_thumb%5B21%5D.gif" width=506 align=right&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The base class Shape has two inheritors: Rectangle and Ellipse. The third inheritor is the composite. ComposeShapes holds a list of Shapes. An instance of ComposeShapes appears to be a single Shape. It can be passed to any function that takes a Shape, and it will behave like one.&lt;/P&gt;
&lt;P&gt;2. &lt;STRONG&gt;Implementation&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are different implementations of the Composite pattern. I will show you one of them with the following example. Consider the following situation. Imagine we have a small company, which started with a single person (the boss). After some period of time&amp;nbsp;he hired three people to help him with the business. Two of them became vice-presidents and the third&amp;nbsp;became the finance manager (for example). Soon each of them hired new staff. As the success continues the company grows&amp;nbsp;till the following sample structure is reached:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/OrgStructure%5B8%5D.gif"&gt;&lt;IMG height=290 src="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/OrgStructure_thumb%5B4%5D.gif" width=536&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;2.1 The &lt;I&gt;IEmployee&lt;/I&gt; interface.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;Each of the company members should receive a salary, have a boss and subordinates and should of course have some specific position. So in that case we will define a single interface named &lt;I&gt;IEmployee&lt;/I&gt; that will declare all actions that&amp;nbsp;each&amp;nbsp;company member could implement. 
&lt;P&gt;&lt;FONT color=#0000ff&gt;public interface&lt;/FONT&gt; &lt;FONT color=#008080&gt;IEmployee&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; Name { &lt;FONT color=#0000ff&gt;get&lt;/FONT&gt;; &lt;FONT color=#0000ff&gt;set&lt;/FONT&gt;; } &lt;FONT color=#80ff80&gt;&lt;I&gt;&lt;FONT color=#008000&gt;// get name&lt;BR&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; PricePerHour { &lt;FONT color=#0000ff&gt;get&lt;/FONT&gt;; &lt;FONT color=#0000ff&gt;set&lt;/FONT&gt;; }&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008080&gt;Position&lt;/FONT&gt; Position { &lt;FONT color=#0000ff&gt;get&lt;/FONT&gt;; &lt;FONT color=#0000ff&gt;set&lt;/FONT&gt;; }&amp;nbsp; &lt;FONT color=#008000&gt;// get position&lt;/FONT&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; Boss { &lt;FONT color=#0000ff&gt;get&lt;/FONT&gt;; &lt;FONT color=#0000ff&gt;set&lt;/FONT&gt;; } &lt;FONT color=#008000&gt;// get boss&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#008080&gt; List&amp;lt;IEmployee&amp;gt;&lt;/FONT&gt; Subordinates { &lt;FONT color=#0000ff&gt;get&lt;/FONT&gt;; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; GetSalary( &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; workHours ); &lt;FONT color=#008000&gt;// get salary&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Add( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; employee );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Remove( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; employee );&lt;BR&gt;} &lt;/P&gt;
&lt;P&gt;Note that I have declared two additional methods (Add and Remove) in the &lt;I&gt;IEmployee&lt;/I&gt; interface which functions&amp;nbsp;are&amp;nbsp;for adding and removing subordinates. These two functions are quite IMPORTANT, because they may cause overhead of the developer who design the Composite pattern. Why? I will discuss later. Now let’s come back to our implementation. I will define an enumerated type to create a structured set of constants that will represent some available positions in the company. 
&lt;P&gt;&lt;FONT color=#0000ff&gt;public enum&lt;/FONT&gt; &lt;FONT color=#008080&gt;Position&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boss,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VicePresident,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Secretary,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainManager,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesManager,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner&lt;BR&gt;} 
&lt;P&gt;&lt;B&gt;2.2 BaseEmployee class.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;Next we will implement our concrete BaseEmployee class that will store the name, salary (price per hour), position, parent (boss) and subordinates of the employee.&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;BR&gt;public class&lt;/FONT&gt; &lt;FONT color=#008080&gt;BaseEmployee&lt;/FONT&gt; : &lt;FONT color=#008080&gt;IEmployee&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;private&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; name;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;private&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; pricePerHour;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; &lt;FONT color=#008080&gt;Position&lt;/FONT&gt; position;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; boss;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; &lt;FONT color=#008080&gt;List&lt;/FONT&gt;&amp;lt;&lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; &amp;gt; subordinates = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;List&lt;/FONT&gt;&amp;lt;&lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; &amp;gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;public &lt;/FONT&gt;BaseEmployee( &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; name, &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; pricePerHour, &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; boss, &lt;FONT color=#008080&gt;Position&lt;/FONT&gt; position )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;FONT color=#008000&gt;// Intialize all private fields ............&lt;/FONT&gt;&amp;nbsp;}&lt;BR&gt;&lt;FONT color=#008040&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;// Properties ......................&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;public virtual&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Add( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; employee )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;throw new&lt;/FONT&gt; &lt;FONT color=#008080&gt;InvalidOperationException&lt;/FONT&gt;( "&lt;FONT color=#804040&gt;Cannot add in base employee class&lt;/FONT&gt;" );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;public &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;virtual&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Remove( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; employee )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;throw new&lt;/FONT&gt; &lt;FONT color=#008080&gt;InvalidOperationException&lt;/FONT&gt;( "&lt;FONT color=#804040&gt;Cannot remove from base employee clase&lt;/FONT&gt;" );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;public &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;virtual&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; GetSalary( &lt;FONT color=#0000ff&gt;decimal&lt;/FONT&gt; workHours )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;return&lt;/FONT&gt; workHours * pricePerHour;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;} 
&lt;P&gt;It is obvious that the aim of the private field ‘subordinates’ is to keep a reference to each subordinate in the Collection of each Employee class. It also allows us to move downwards the chain from the president to each employee. But to keep our structure&amp;nbsp;flexible enough&amp;nbsp;we also need to move backwards to find out who an employee’s boss is. This is easy to implement, we just provide a constructor for each subclass that includes reference to the parent node - his/her boss. Of course for the boss of the company we will just pass ‘null’ to the constructor. The GetSalary method just gives us the salary of each employee. We also define some casual properties. Note that we do not implement the two problematic methods ‘Add’ and ‘Remove’, we only&amp;nbsp;throw an exception in case these methods are called&amp;nbsp;in the base employee class. 
&lt;P&gt;&lt;B&gt;2.3 Employee class.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;Our Employee class is a subclass of BaseEmployee and allow us to store subordinate employees as well. We will store them in generic List, named subordinates. 
&lt;P&gt;&lt;FONT color=#0000ff&gt;class&lt;/FONT&gt; &lt;FONT color=#008080&gt;Employee&lt;/FONT&gt; : &lt;FONT color=#008080&gt;BaseEmployee&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;public &lt;/FONT&gt;Employee( string name, decimal pricePerHour, IEmployee boss, Position position )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: &lt;FONT color=#0000ff&gt;base&lt;/FONT&gt;( name, pricePerHour, boss, position )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;public override&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Add( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; emp )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;.Subordinates.Add( emp );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;public override&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Remove( &lt;FONT color=#008080&gt;IEmployee&lt;/FONT&gt; emp )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;.Subordinates.Remove( emp );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;} 
&lt;P&gt;Here we finally implement the ‘Add’ and ‘Remove’ methods. If we make a summary, all these classes and methods could be represented in the following rough diagram: 
&lt;P align=center&gt;&lt;A href="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/ExampleStructure%5B2%5D.gif"&gt;&lt;IMG height=142 src="http://completit.com/communityserver/blogs/ppopadiyn/WindowsLiveWriter/CompositeDesignPatterninC_FEB8/ExampleStructure_thumb.gif" width=770&gt;&lt;/A&gt;&amp;nbsp; 
&lt;P&gt;Now we&amp;nbsp;can start building our company structure. First we will create the president of the company, and then add his subordinates and their subordinates and etc. 
&lt;P&gt;&lt;B&gt;3. Advantages, Disadvantages and Analyses.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;The Composite pattern allows&amp;nbsp;us define a class hierarchy of simple objects&amp;nbsp;as well as some&amp;nbsp;more complex composite objects, in each case they appear to be the same to the client. So the big advantages is that the nodes and leaves are handled in the same way. The Composite pattern also makes it easy to add new kinds of components to your collection, as long as they suppost similar interface. On the other hand this leads to a big disadvantage, your system will become too general. It will be hard to restrict certain classes where this normally is desirable. Sometime it is necessary a composition to have only specific components. 
&lt;P&gt;It is easy to add a new components to the structure, without changing the client code. 
&lt;P&gt;&lt;B&gt;3.1. Explicit reference to the parent.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;Holding references in the components to their parent is useful and can simplify the traversal of the tree (moving through all nodes (in this example – all employees) of the heirarchy), removing and adding new components. One available place where you could place this reference is in the ‘BaseEmployee’ class. And then all its subclasses can just inherit the reference and the methods that control it. 
&lt;P&gt;But in this case it is very important to keep synchronization between parents and children. That means, all successors should have a parent, and on the other hand this parent should have them for own children. The easiest way to do this is to change the parent of the given component when you add or remove components. If it is possible this feature should be implemented in the ‘Add’ and ‘Remove’ operations and then all this work will be done automaticly. 
&lt;P&gt;It is also possible to share a component. That mean one component may have more than one parent (in this case one employee may have more than one boss). But that case may lead to overhead. 
&lt;P&gt;&lt;B&gt;3.2. The &lt;I&gt;IEmployee &lt;/I&gt;interface.&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;One of the purpose of the Composite pattern is to hide the details of the class ‘Employee’. To do this the &lt;I&gt;IEmployee&lt;/I&gt; interface should define as much as possible operations. 
&lt;P&gt;&lt;B&gt;3.3. The ‘Add’ and ‘Remove’ operations.&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;Although in the interface ‘IEmployee’ we declare these two operation, there is a very important question: Which classes should implement these operations. Should we declare the operations ‘Add’ and ‘Remove’ in the ‘IEmployee’ interface (meaning that the ‘BaseEmployee’ class (the Component) must implement them)? Or, should we declare and define the operations only in the Composite class (Employee). The decision includes compromise between security and transparancy. 
&lt;P&gt;Consider the following situation: we have the same design as the example above, but suddenly we decided to derive the ‘BaseEmployee’ class and to create new components with specific characteristics. On the other hand only the composite class (‘Employee’) can add and remove components from the hierarchy. That mean that a non-leaf node can have a child-leaves added to it, but a leaf node cannot. So we want all components in the composite to have the same interface and to be treated equally. However that mean we will lose security because the clients may try to do foolish actions, like a adding and removing objects from the leaves. 
&lt;P&gt;If we declare and define the operations ‘Add’ and ‘Remove’ in the Composite class (Employee), we will win security, but on the other hand the Components and the Composition will have different interface. 
&lt;P&gt;&lt;STRONG&gt;3.4. Ordering Components.&lt;/STRONG&gt; 
&lt;P&gt;In some programs, the order of the components may be important. If that order is somehow different from the order in which they were added, then the parent must do additional work to return them in correct order. For example, you might sort the collection alphabetically and return a new sorted collection. 
&lt;P&gt;&lt;STRONG&gt;3.5. Caching the result.&lt;/STRONG&gt; 
&lt;P&gt;If you frequently ask for data that must be computed from a series of child components, it may be advantageous to cache these computed results in the parent. However, unless the computation is relatively intensive and you are quite certain that the underlying&amp;nbsp;data has not changed, this may not be worth the effort. 
&lt;P&gt;&lt;B&gt;4. Usage.&lt;/B&gt; 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;Use Composite pattern:&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;When you want to define a class hierarchy of simple objects or more complex composite objects.&lt;B&gt; &lt;/B&gt;
&lt;LI&gt;When you want the clients to ignore the differences between the composite objects and the individual objects. The clients will treat equally all objects in a complex structure.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;5. Conclusion.&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;The advantages are significant. Instead of duplicating the list management and iteration code in each of the clients, that code appears only once in composite class. So my advice is: use it ! ;)&lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=38" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/ppopadiyn/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://cs.completit.com/communityserver/blogs/ppopadiyn/archive/tags/composition+pattern/default.aspx">composition pattern</category><category domain="http://cs.completit.com/communityserver/blogs/ppopadiyn/archive/tags/.net+patterns/default.aspx">.net patterns</category><category domain="http://cs.completit.com/communityserver/blogs/ppopadiyn/archive/tags/Composite+Design+Pattern/default.aspx">Composite Design Pattern</category></item><item><title>4 reasons to switch to Visual Studio 2008 (formerly known as Visual Studio code name “Orcas”)</title><link>http://cs.completit.com/communityserver/blogs/estoychev/archive/2007/07/21/4-reasons-to-switch-to-visual-studio-2008-formerly-known-as-visual-studio-code-name-orcas.aspx</link><pubDate>Sun, 22 Jul 2007 00:37:00 GMT</pubDate><guid isPermaLink="false">456c5cc1-fe21-4ac2-8669-11477cec168e:37</guid><dc:creator>estoychev</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;Microsoft aims to release &lt;A href="http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx"&gt;Visual Studio 2008&lt;/A&gt; by the end of this year. Currently there is a &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=f10fb5df-e369-4db4-b9a7-845dbf793368&amp;amp;displaylang=en"&gt;beta 1&lt;/A&gt; and a second beta release is expected later this summer. There is a couple of improvements in the new version of the most popular software development platform that could probably make you switch from an older version. &lt;/P&gt;
&lt;H4&gt;Multi-Targeting Support &lt;/H4&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;Visual Studio 2008 will now support &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/06/20/vs-2008-multi-targeting-support.aspx"&gt;targeting multiple versions&lt;/A&gt; of the .NET Framework. That means you can open an existing project or create a new one and select the .NET Framework version to work with. No matter which version you choose you will be able to take advantage of the new features Visual Studio provides. &lt;/P&gt;
&lt;H4&gt;LINQ Support &lt;/H4&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;&lt;A href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;Language INtegrated Query&lt;/A&gt; (LINQ) extends C# and VB with native language syntax for queries and provides class libraries to take advantage of these capabilities. It is a set of APIs that allows you to write SQL-like queries. LINQ is available only when .NET Framework 3.5 is used. &lt;/P&gt;
&lt;H4&gt;JavaScript &lt;SPAN style="FONT-SIZE:13pt;"&gt;intellisense&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; &lt;/SPAN&gt;and debugging &lt;/H4&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;Built-in support for JavaScript &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/06/21/vs-2008-javascript-intellisense.aspx"&gt;intellisense&lt;/A&gt; and &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/07/19/vs-2008-javascript-debugging.aspx"&gt;debugging&lt;/A&gt; (improved). One of the coolest things is that VS 2008 allows you to set client-side breakpoints directly within your source files. &lt;/P&gt;
&lt;H4&gt;Richer WYSIWYG Designer &lt;/H4&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;VS 2008 will now support &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/07/09/vs-2008-nested-master-page-support.aspx"&gt;&lt;STRONG&gt;nested ASP.NET master pages&lt;/STRONG&gt;&lt;/A&gt; at design-time. Master page support was one of the most popular features shipped with ASP.NET 2.0. But the drawback with VS 2005 was that nested master pages couldn't be edited with the WYSIWYG designer. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;&lt;STRONG&gt;Split View support&lt;/STRONG&gt; – source and design views available at the same time. &lt;/P&gt;
&lt;P style="MARGIN-LEFT:36pt;"&gt;&lt;STRONG&gt;Rich CSS Support&lt;/STRONG&gt; – CSS property window, CSS inheritance viewer, CSS preview, and CSS manager. This allows the designers/developers to easily create, manage and refactor CSS rules. &lt;/P&gt;&lt;img src="http://cs.completit.com/communityserver/aggbug.aspx?PostID=37" width="1" height="1"&gt;</description><category domain="http://cs.completit.com/communityserver/blogs/estoychev/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>
