<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Keith 'StarPilot' Barrows (Tech Blog)</title><link>http://weblogs.asp.net/kbarrows/default.aspx</link><description>Musings on Microsoft Technologies and other technical things</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Missed my High School Reunion :(</title><link>http://weblogs.asp.net/kbarrows/archive/2008/10/10/missed-my-high-school-reunion.aspx</link><pubDate>Fri, 10 Oct 2008 18:59:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6669574</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6669574</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/10/10/missed-my-high-school-reunion.aspx#comments</comments><description>&lt;table&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;Wish I had thought to google for this.&amp;#160; Another classmate just left me a message on MySpace and the link to my &lt;a href="http://www.ihs78.com/index.htm" target="_blank"&gt;HS Reunion site&lt;/a&gt;.&amp;#160; &amp;lt;sigh/&amp;gt;          &lt;br /&gt;          &lt;br /&gt;With all of this technology at hand it is still hard to know when periodic events like this happen.&amp;#160; How does everyone else stay abreast of events like this?&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:bcc80f02-c9ea-4ae8-81a9-5ec408511a99" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://www.ihs78.com/index.htm"&gt;&lt;img src="http://sol3.net/uploaded_images/MissedmyHighSchoolReunion_A8AB/0137a2bf5b214fa395a649f828596347.jpg" border="1px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6669574" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/Personal/default.aspx">Personal</category></item><item><title>Loading XML with accented characters breaks System.XmlDocument.Load()</title><link>http://weblogs.asp.net/kbarrows/archive/2008/09/26/loading-xml-with-accented-characters-breaks-system-xmldocument-load.aspx</link><pubDate>Sat, 27 Sep 2008 00:29:40 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6643482</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6643482</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/09/26/loading-xml-with-accented-characters-breaks-system-xmldocument-load.aspx#comments</comments><description>&lt;table cellspacing="5" cellpadding="5" width="100%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:b1011b61-4535-43ed-b9e1-ee9ec377c40c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://www.codeproject.com/KB/cs/EncodingAccents.aspx"&gt;&lt;img src="http://sol3.net/uploaded_images/LoadingXMLwithaccentedcharactersbre.Load_F5FB/4a6d2e380a24446e861498b3d10d463f.jpg" border="1px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;It took me a bit of time but I finally found a solution for loading a XML file that has accented characters (like &amp;#225;&amp;#233;&amp;#237;&amp;#243;&amp;#250;&amp;#226;&amp;#228;) into a UTF-8 format.&amp;#160; I'm loading data for a client and it ended up having a name in it with an accented e character.&amp;#160; For the first time on this project System.XmlDocument.Load() was blowing up.&amp;#160; With a lot of Googling I finally found a link that gave me, what I hope, is the solution for this problem.&amp;#160; For now it is working so I'll go with it.&amp;#160; The link to the article I found is in the code sample below as well as the image to the left.&amp;#160; The magic happens by reading in while enforcing a double-byte encoding then saving out in an encoding that gives the visual representation we, in the US, would expect.&lt;/p&gt;          &lt;p&gt;Hope this helps someone else.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;  &lt;div class="csharpcode"&gt;   &lt;div class="csharpcode"&gt;     &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="preproc"&gt;#region&lt;/span&gt; Fix Character Encodings&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;// Need to drop accented characters back to normal characters...&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;// reference:  http://www.codeproject.com/KB/cs/EncodingAccents.aspx //&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;StreamReader sr = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(_pfInfo.WorkingFile, Encoding.GetEncoding(&lt;span class="str"&gt;&amp;quot;iso-8859-1&amp;quot;&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; fileContents = sr.ReadToEnd();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;sr.Close();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;sr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;StreamWriter sw = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(_pfInfo.WorkingFile, &lt;span class="kwrd"&gt;false&lt;/span&gt;, Encoding.GetEncoding(&lt;span class="str"&gt;&amp;quot;iso-8859-8&amp;quot;&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;sw.Write(fileContents);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;sw.Flush();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;sw.Close();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;sw = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6643482" width="1" height="1"&gt;</description></item><item><title>Managed Extensibility Framework (MEF) is on CodePlex</title><link>http://weblogs.asp.net/kbarrows/archive/2008/09/08/managed-extensibility-framework-mef-is-on-codeplex.aspx</link><pubDate>Mon, 08 Sep 2008 17:18:37 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6609763</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6609763</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/09/08/managed-extensibility-framework-mef-is-on-codeplex.aspx#comments</comments><description>&lt;blockquote&gt;   &lt;p&gt;The Managed Extensibility Framework (MEF) is a new library in .NET that enables greater reuse of applications and components. Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed. If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you. &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;&lt;b&gt;CodePlex Links&lt;/b&gt;     &lt;li&gt;&lt;a href="http://www.codeplex.com/MEF" target="_blank"&gt;http://www.codeplex.com/MEF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/MEF/Wiki/View.aspx?title=Overview&amp;amp;referringTitle=Home" target="_blank"&gt;MEF Overview&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;&lt;strong&gt;Blog Links&lt;/strong&gt;     &lt;li&gt;&lt;a href="http://blogs.msdn.com/brada/archive/2008/09/05/microsoft-extensibility-framework-released-on-codeplex.aspx" target="_blank"&gt;http://blogs.msdn.com/brada/archive/2008/09/05/microsoft-extensibility-framework-released-on-codeplex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/kcwalina/archive/2008/09/05/MEFCodePlex.aspx" target="_blank"&gt;http://blogs.msdn.com/kcwalina/archive/2008/09/05/MEFCodePlex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/gblock/archive/2008/09/06/mef-making-its-debut-on-codeplex.aspx" target="_blank"&gt;http://blogs.msdn.com/gblock/archive/2008/09/06/mef-making-its-debut-on-codeplex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://hammett.castleproject.org/?p=319" target="_blank"&gt;http://hammett.castleproject.org/?p=319&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I've been doing a few projects with a plug-in architecture and am going to be playing with this to see how I can benefit from it. Hopefully, I'll post some stuff out here as well on this new journey.&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6609763" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/kbarrows/archive/tags/fx+3.5/default.aspx">fx 3.5</category><category domain="http://weblogs.asp.net/kbarrows/archive/tags/Extensions/default.aspx">Extensions</category></item><item><title>SQL Not In Revisited</title><link>http://weblogs.asp.net/kbarrows/archive/2008/08/27/sql-not-in-revisited.aspx</link><pubDate>Wed, 27 Aug 2008 17:52:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6571965</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6571965</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/08/27/sql-not-in-revisited.aspx#comments</comments><description>&lt;p&gt;I always seem to struggle with a NOT IN clause when there are more than one column to compare.&amp;#160; This, of course, comes up when I am trying to get records from one set that are NOT IN another set and the comparison has to be done across multiple columns.&amp;#160; For instance, if I want to compare table 1 (users) against table 2 (importedUsers) and I want to see if the mandatory fields are there and *NOT* work with those that fail I usually ended up doing a cursor.&amp;#160; But - there is a much easier way to do it and it does need a cursor!&amp;#160; Thanks to &lt;a href="http://sqladvice.com/blogs/dpenton/default.aspx" target="_blank"&gt;David Penton&lt;/a&gt; for pointing me in this direction!&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;DECLARE @impUsers TABLE(empID VARCHAR(50), hireDate SMALLDATETIME, userNew BIT, userChange BIT, userTerm BIT)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;INSERT INTO @impEmpTbl      &lt;br /&gt;( [empID]      &lt;br /&gt;, [hireDate]      &lt;br /&gt;, [userNew]      &lt;br /&gt;, [userChange]      &lt;br /&gt;, [userTerm]      &lt;br /&gt;)       &lt;br /&gt;SELECT i.empID, i.hireDate, 0, 1, 0      &lt;br /&gt;&amp;#160; FROM [ImportUsers] i      &lt;br /&gt; INNER JOIN Users u ON i.[empID] = u.[empID]      &lt;br /&gt; WHERE NOT EXISTS (SELECT 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [Users] u2      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE u2.[empID]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[empID]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND u2.[lastName]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[lastName]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND u2.[firstName]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[firstName]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[countryInfo]&amp;#160;&amp;#160; = i.[countryInfo]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[emailAddress]&amp;#160; = i.[emailAddress]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[region]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[region])&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Sweet, simple and elegant.&amp;#160; The above query will produce a new record in the temp table for each record that has one or more changes across the 6 fields I am comparing in the NOT EXISTS clause.&amp;#160; What is happening inside the parenthesis is the elegant part.&amp;#160; The SQL Query Engine is comparing one row from the Import table to all rows in the Users (2) table.&amp;#160; If it finds a match then it returns 1 - which means it does exist.&amp;#160; This negates the overall WHERE clause and does not insert it into the temp table.&amp;#160; When doing this in a cursor it was taking 30-45 seconds.&amp;#160; As a T-SQL query it takes less than 3 seconds.&amp;#160; That's an order of magnitude faster!&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6571965" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/SQL/default.aspx">SQL</category></item><item><title>SQL XML - TreeView</title><link>http://weblogs.asp.net/kbarrows/archive/2008/08/25/sql-xml-treeview.aspx</link><pubDate>Mon, 25 Aug 2008 22:52:47 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6564874</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6564874</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/08/25/sql-xml-treeview.aspx#comments</comments><description>&lt;p&gt;I sometimes forget how to do an XML output formed in a tree when dealing with a single table parent/child relationship.&amp;#160; There is a great explanation on SQL Server Central on &lt;a href="http://www.sqlservercentral.com/articles/61821/" target="_blank"&gt;*how* to do this&lt;/a&gt;.&amp;#160; I am mainly capturing the link and the SQL I just generated to do this.&amp;#160; This query will drill down 12 levels at the most.&amp;#160; Just alter the case statement (pivot) to go deeper.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ALTER PROC getOrgUnitTreeAsXml      &lt;br /&gt;AS       &lt;br /&gt;BEGIN       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ;WITH OrgUnit1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0 AS [Level],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CAST( [orgUnitID] AS VARBINARY(MAX)) AS Sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [orgUnit]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE [orgUnitParentID] IS NULL       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UNION ALL       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Level] + 1,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CAST( SORT + CAST(p.[orgUnitID] AS BINARY(4)) AS VARBINARY(MAX))       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [orgUnit] p       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INNER JOIN OrgUnit1 c ON p.[orgUnitParentID] = c.[OrgUnitId]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,&amp;#160; OrgUnit2 AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Level] + 1 AS Tag,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , OrgUnit3 AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (SELECT Tag FROM OrgUnit2 r2 WHERE r2.[OrgUnitId] = r1.[orgUnitParentID]) AS ParentTag       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit2 r1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT Tag, ParentTag as Parent,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 1 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!1!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 1 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!1!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 2 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!2!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 2 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!2!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 3 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!3!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 3 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!3!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 4 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!4!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 4 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!4!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 5 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!5!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 5 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!5!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 6 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!6!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 6 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!6!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 7 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!7!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 7 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!7!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 8 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!8!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 8 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!8!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 9 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!9!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 9 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!9!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 10 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!10!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 10 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!10!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 11 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!11!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 11 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!11!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 12 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!12!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 12 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!12!name'       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit3       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ORDER BY sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FOR XML EXPLICIT       &lt;br /&gt;END       &lt;br /&gt;GO&lt;/p&gt;&lt;/blockquote&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6564874" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/XML/default.aspx">XML</category><category domain="http://weblogs.asp.net/kbarrows/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Microsoft's Velocity - Caching turned up a notch</title><link>http://weblogs.asp.net/kbarrows/archive/2008/06/06/microsoft-s-velocity-caching-turned-up-a-notch.aspx</link><pubDate>Fri, 06 Jun 2008 19:28:41 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6253905</guid><dc:creator>StarPilot</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6253905</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/06/06/microsoft-s-velocity-caching-turned-up-a-notch.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://msdn.microsoft.com/fi-fi/library/cc645013(en-us).aspx" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 5px 5px 15px; border-right-width: 0px" height="166" alt="velocity" src="http://sol3.net/uploaded_images/MicrosoftsVelocityCachingturnedupanotch_A14E/velocity.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Microsoft just released it's CTP-1 of a new caching product code named Velocity.&amp;#160; It is a distributed caching technology that should add extra velocity to your ASP.NET applications.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; &amp;#8220;Velocity&amp;#8221; is a distributed in-memory application cache platform for developing scalable, available, and high-performance applications. &amp;#8220;Velocity&amp;#8221; fuses memory across multiple computers to give a single unified cache view to applications. Applications can store any serializable CLR object without worrying about where the object gets stored. Scalability can be achieved by simply adding more computers on demand. &amp;#8220;Velocity&amp;#8221; also allows for copies of data to be stored across the cluster, thus protecting data against failures. &amp;#8220;Velocity&amp;#8221; can be configured to run as a service accessed over the network or can be run embedded with the distributed application. &amp;#8220;Velocity&amp;#8221; includes an ASP.NET session provider object that enables ASP.NET session objects to be stored in the distributed cache without having to write to databases. This increases the performance and scalability of ASP.NET applications (17 printed pages)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Some more resources:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Team Blog - &lt;a href="http://blogs.msdn.com/velocity"&gt;http://blogs.msdn.com/velocity&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Forum - &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2142&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2142&amp;amp;SiteID=1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Download - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6253905" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/kbarrows/archive/tags/Caching/default.aspx">Caching</category></item><item><title>VS 2008 and .NET FX 3.5 SP1 (Beta)</title><link>http://weblogs.asp.net/kbarrows/archive/2008/05/12/vs-2008-and-net-fx-3-5-sp1-beta.aspx</link><pubDate>Mon, 12 May 2008 19:40:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6183289</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6183289</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/05/12/vs-2008-and-net-fx-3-5-sp1-beta.aspx#comments</comments><description>&lt;table&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;The beta has been released.&amp;#160; &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie&lt;/a&gt; has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" target="_blank"&gt;huge list of what to expect&lt;/a&gt;.&lt;/p&gt;          &lt;p&gt;(The image should link you directly to the download page.)&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:85c46cb4-b792-42e4-ad7c-a235be672054" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;&lt;img src="http://sol3.net/uploaded_images/VS2008and.NETFX3.5SP1Beta_A439/df2a40ac3fbc4203a872bd333927821f.jpg" border="0px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6183289" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/kbarrows/archive/tags/fx+3.5/default.aspx">fx 3.5</category></item><item><title>ALT.NET?</title><link>http://weblogs.asp.net/kbarrows/archive/2008/04/25/alt-net.aspx</link><pubDate>Fri, 25 Apr 2008 23:29:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6130575</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6130575</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/04/25/alt-net.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://sol3.net/uploaded_images/ALT.NET_D9CD/alt.netBig.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 5px 5px 15px; border-right-width: 0px" height="96" alt="alt.net-Big" src="http://sol3.net/uploaded_images/ALT.NET_D9CD/alt.netBig_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Do you know what happens when you read blogs?&amp;#160; You mine expands, dude!&amp;#160; Like Woaoooo...&lt;/p&gt;  &lt;p&gt;Something &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselman&lt;/a&gt; posted caught my attention.&amp;#160; He &lt;a href="http://www.hanselman.com/blog/ALTNETGeekCodeShouldYouCareAboutTheseALTNETGuys.aspx" target="_blank"&gt;posted about Alt.Net&lt;/a&gt;.&amp;#160; I am now searching out all things ALT.NET to make sure my head was wrapped around the ideas in a way that makes sense to me.&amp;#160; Pass the word...&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6130575" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/kbarrows/archive/tags/ALT.NET/default.aspx">ALT.NET</category></item><item><title>Using multiple config files in one application</title><link>http://weblogs.asp.net/kbarrows/archive/2008/04/21/using-multiple-config-files-in-one-application.aspx</link><pubDate>Tue, 22 Apr 2008 04:23:29 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6120250</guid><dc:creator>StarPilot</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6120250</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/04/21/using-multiple-config-files-in-one-application.aspx#comments</comments><description>&lt;p&gt;I'm supporting an ASP (&lt;a href="Application Service Provider" target="_blank"&gt;Application Service Provider&lt;/a&gt;) style application for my company.&amp;#160; Instead of putting each client's settings into a single config file, I wanted to have the main config file point to each clients configuration.&amp;#160; After a bit of digging, I came up with a solution that works.&amp;#160; I don't know if it is the best solution but it does work.&amp;#160; My main config file now looks like:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; ?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configSections&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FeedProvider&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Sol3.Feed.Provider.FeedProviderConfiguration, Sol3.Feed.Provider&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MachineToApplication&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configSections&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FeedProvider&lt;/span&gt; &lt;span class="attr"&gt;defaultProvider&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FeedProvider01&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;providers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FeedProvider01&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Sol3.Feed.FeedProvider01, Sol3.Feed&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;connectionStringName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ConnString&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client 01 Feed Provider&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FeedProvider02&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Sol3.Feed.FeedProvider02, Sol3.Feed&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;connectionStringName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;connString&amp;quot;&lt;/span&gt;
                 &lt;span class="attr"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client 02 Feed Provider&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;providers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FeedProvider&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;EnvironmentName&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;dev&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;&amp;lt;!-- add key=&amp;quot;EnvironmentName&amp;quot; value=&amp;quot;qa&amp;quot;/ --&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;&amp;lt;!-- add key=&amp;quot;EnvironmentName&amp;quot; value=&amp;quot;uat&amp;quot;/ --&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;&amp;lt;!-- add key=&amp;quot;EnvironmentName&amp;quot; value=&amp;quot;prod&amp;quot;/ --&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Clients&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client 1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client Name 01&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client 2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client Name 02&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client 3&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Client Name 03&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;A client config file now looks like:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; ?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;clear&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;connString&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;connectionString&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;[client connection string]&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;WatchPath&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;C:\Feeds\ClientN&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FileName&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;sample.csv&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FileType&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;*.csv;*.txt&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;StartTime&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;05:00&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;EndTime&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;05:00&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ArchiveDays&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;I have a service that will iterate through the appSettings and setup a file handler for each client.  The service creates a new ClientInfo object for each client:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Constructor
        &lt;span class="kwrd"&gt;public&lt;/span&gt; Service()
        {
            _clientInfo = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, ClientInfo&amp;gt;();
            _clientList = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();

            _clientCount = Convert.ToInt32(ConfigurationManager.AppSettings.Get(&lt;span class="str"&gt;&amp;quot;Clients&amp;quot;&lt;/span&gt;).ToString());
            _environmentName = ConfigurationManager.AppSettings.Get(&lt;span class="str"&gt;&amp;quot;EnvironmentName&amp;quot;&lt;/span&gt;).ToString();
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; _clientCount; i++)
            {
                &lt;span class="kwrd"&gt;string&lt;/span&gt; appKey = String.Format(&lt;span class="str"&gt;&amp;quot;Client {0}&amp;quot;&lt;/span&gt;, i+1);
                &lt;span class="kwrd"&gt;string&lt;/span&gt; clientName = ConfigurationManager.AppSettings.Get(appKey).ToString();
                ClientInfo thisInfo = &lt;span class="kwrd"&gt;new&lt;/span&gt; ClientInfo(clientName, _environmentName);
                _clientList.Add(clientName);
                _clientInfo.Add(clientName, thisInfo);
            }
        }
        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;This is the ClientInfo Class and contains the code to read from another config file:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;
&lt;span class="kwrd"&gt;using&lt;/span&gt; ITMS.Feed;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Diagnostics;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; TestHarness
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ClientInfo
    {
        &lt;span class="preproc"&gt;#region&lt;/span&gt; Declarations
        &lt;span class="kwrd"&gt;private&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt; _config;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; Handler _handler;
        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;

        &lt;span class="preproc"&gt;#region&lt;/span&gt; Constructor
        &lt;span class="kwrd"&gt;public&lt;/span&gt; ClientInfo(&lt;span class="kwrd"&gt;string&lt;/span&gt; clientName, &lt;span class="kwrd"&gt;string&lt;/span&gt; environmentName)
        {
            clientName = clientName.Replace(&lt;span class="str"&gt;&amp;quot; &amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;_&amp;quot;&lt;/span&gt;);
            ExeConfigurationFileMap fileMap = &lt;span class="kwrd"&gt;new&lt;/span&gt; ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = String.Format(&lt;span class="str"&gt;&amp;quot;{0}_{1}.config&amp;quot;&lt;/span&gt;, clientName, environmentName);  &lt;span class="rem"&gt;// relative path names possible&lt;/span&gt;

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!File.Exists(Environment.CurrentDirectory + &lt;span class="str"&gt;&amp;quot;\\&amp;quot; + fileMap.ExeConfigFilename))
            {
                EventLog.WriteEntry(&amp;quot;&lt;/span&gt;TestHarness.ClientInfo&lt;span class="str"&gt;&amp;quot;
                    , String.Format(&amp;quot;&lt;/span&gt;{0} was not found!&lt;span class="str"&gt;&amp;quot;, fileMap.ExeConfigFilename)
                    , EventLogEntryType.Information);
                return;
            }

            // Open another config file
            Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
            // Get the app settings section...
            AppSettingsSection section = (AppSettingsSection)config.GetSection(&amp;quot;&lt;/span&gt;appSettings&lt;span class="str"&gt;&amp;quot;);

            // Get configuration settings and start file watcher for this client...
            _config = new Dictionary&amp;lt;string, object&amp;gt;();

            // read/write from it as usual
            _config.Add(&amp;quot;&lt;/span&gt;connString&lt;span class="str"&gt;&amp;quot;, config.ConnectionStrings.ConnectionStrings[0].ConnectionString);
            _config.Add(&amp;quot;&lt;/span&gt;WatchPath&lt;span class="str"&gt;&amp;quot;, section.Settings[&amp;quot;&lt;/span&gt;WatchPath&lt;span class="str"&gt;&amp;quot;].Value.ToString());
            _config.Add(&amp;quot;&lt;/span&gt;FileType&lt;span class="str"&gt;&amp;quot;, section.Settings[&amp;quot;&lt;/span&gt;FileType&lt;span class="str"&gt;&amp;quot;].Value.ToString());
            _config.Add(&amp;quot;&lt;/span&gt;StartTime&lt;span class="str"&gt;&amp;quot;, Convert.ToDateTime(section.Settings[&amp;quot;&lt;/span&gt;StartTime&lt;span class="str"&gt;&amp;quot;].Value.ToString()));
            _config.Add(&amp;quot;&lt;/span&gt;EndTime&lt;span class="str"&gt;&amp;quot;, Convert.ToDateTime(section.Settings[&amp;quot;&lt;/span&gt;EndTime&amp;quot;].Value.ToString()));

            _handler = &lt;span class="kwrd"&gt;new&lt;/span&gt; Handler(_config);
            _handler.Start();
        }
        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;There is still a lot I can do to this but this is the basics of handling a config file that is not your app or web config.&amp;#160; Enjoy.&lt;/p&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6120250" width="1" height="1"&gt;</description></item><item><title>Latest build of the ASP.NET MVC source on CodePlex</title><link>http://weblogs.asp.net/kbarrows/archive/2008/04/17/latest-build-of-the-asp-net-mvc-source-on-codeplex.aspx</link><pubDate>Thu, 17 Apr 2008 08:17:53 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6105092</guid><dc:creator>StarPilot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/kbarrows/rsscomments.aspx?PostID=6105092</wfw:commentRss><comments>http://weblogs.asp.net/kbarrows/archive/2008/04/17/latest-build-of-the-asp-net-mvc-source-on-codeplex.aspx#comments</comments><description>&lt;table&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:4d418a92-29cc-4cae-b010-7efbfc03e139" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;&lt;img src="http://sol3.net/uploaded_images/LatestbuildoftheA.NETMVCsourceonCodePlex_1347E/93cf5b1b47ec4ff8bb46a2084ba1e57e.jpg" border="0px" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;#160;&amp;#160; &lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Come and get it!&amp;#160; If you are a MVC developer and really want to dig into the core of MVC then go directly to &lt;a title="CodePlex" href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; and &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640" target="_blank"&gt;get the code&lt;/a&gt;!&amp;#160; &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie&lt;/a&gt; has a &lt;strong&gt;&lt;u&gt;LOT&lt;/u&gt;&lt;/strong&gt;&amp;#160;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx" target="_blank"&gt;more details&lt;/a&gt; on his blog.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6105092" width="1" height="1"&gt;</description></item></channel></rss>