<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Life, the Universe, and Software Engineering</title>
    <description>The blog of Aaron G. Daisley-Harrison</description>
    <link>http://blog.daisley-harrison.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://blog.daisley-harrison.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Aaron G. Daisley-Harrison</dc:creator>
    <dc:title>Life, the Universe, and Software Engineering</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/daisley-harrison/LUSE" /><feedburner:info uri="daisley-harrison/luse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Generating “compatibility mode” safe HTML using Razor</title>
      <description>&lt;p&gt;Internet Explorer has this "wonderful" feature call compatibility mode.  I think the majority of web designers that have run into this gem would likely feel that Microsoft misnamed this feature.
&lt;/p&gt;&lt;p&gt;After a great deal of frustration and delays caused by having the compatibility mode suddenly turn on and breaking our site we finally found a solution that works.
&lt;/p&gt;&lt;p&gt;The site we have created was written in ASP.NET MVC 3 Razor, and we are running the latest version (2.5.2) of &lt;a href="http://www.modernizr.com/"&gt;Modernizer&lt;/a&gt;.  Our original _layout.cshtml file which had intermittent problems with Internet Explorer 8 switching to compatibility mode looked like the following:
&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;!&lt;span style="color:maroon"&gt;DOCTYPE&lt;/span&gt;
			&lt;span style="color:red"&gt;html&lt;/span&gt;
			&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js"&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="color:darkgreen"&gt;&amp;lt;!--[if lt IE 7]&amp;gt; &amp;lt;html class="no-js ie6 oldie" lang="en"&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="color:darkgreen"&gt;&amp;lt;!--[if IE 7]&amp;gt;    &amp;lt;html class="no-js ie7 oldie" lang="en"&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="color:darkgreen"&gt;&amp;lt;!--[if IE 8]&amp;gt;    &amp;lt;html class="no-js ie8 oldie" lang="en"&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="color:darkgreen"&gt;&amp;lt;!--[if gt IE 8]&amp;gt;&amp;lt;!--&amp;gt;&lt;/span&gt;
			&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
				&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js"&lt;/span&gt; lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
					&lt;span style="color:darkgreen"&gt;&amp;lt;!--&amp;lt;![endif]--&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;meta&lt;/span&gt;
				&lt;span style="color:red"&gt;http-equiv&lt;span style="color:blue"&gt;="X-UA-Compatible"&lt;/span&gt; content&lt;span style="color:blue"&gt;="IE=Edge;"&lt;/span&gt;
					&lt;span style="color:blue"&gt;/&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Note that the &amp;lt;!--[if lt IE 7]&amp;gt; style xml comments are the "best practice" for supporting multiple IE browsers, letting the browser choose the best tag to use when the page is displayed.
&lt;/p&gt;&lt;p&gt;Below is a snippet of the _layout.cshtml file which solves this problem and supports all of the older IE browsers:
&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;!&lt;span style="color:maroon"&gt;DOCTYPE&lt;/span&gt;
			&lt;span style="color:red"&gt;html&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="background-color:yellow"&gt;@&lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (Request.Browser.Browser == &lt;span style="color:#a31515"&gt;"IE"&lt;/span&gt; &amp;amp;&amp;amp; Request.Browser.MajorVersion &amp;lt; 9)
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;if&lt;/span&gt; (Request.Browser.MajorVersion &amp;lt; 7)
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     {
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="background-color:yellow"&gt;@:&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
				&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js ie6 oldie"&lt;/span&gt; lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     }
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;else&lt;/span&gt;
			&lt;span style="color:blue"&gt;if&lt;/span&gt; (Request.Browser.MajorVersion == 7)
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     {
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="background-color:yellow"&gt;@:&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
				&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js ie7 oldie"&lt;/span&gt; lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     }
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;else&lt;/span&gt;
			&lt;span style="color:blue"&gt;if&lt;/span&gt; (Request.Browser.MajorVersion == 8)
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     {
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="background-color:yellow"&gt;@:&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
				&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js ie8 oldie"&lt;/span&gt; lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;     }
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="color:blue"&gt;else&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;&lt;span style="background-color:yellow"&gt;@:&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
				&lt;span style="color:red"&gt;class&lt;span style="color:blue"&gt;="no-js"&lt;/span&gt; lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;meta&lt;/span&gt;
				&lt;span style="color:red"&gt;http-equiv&lt;span style="color:blue"&gt;="X-UA-Compatible"&lt;/span&gt; content&lt;span style="color:blue"&gt;="IE=Edge;"&lt;/span&gt;
					&lt;span style="color:blue"&gt;/&amp;gt;&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Note that based on our testing, and contrary to other posts we have found, for "compatibility mode" to not turn on we must have a combination of the meta data tag X-UA-Compatible and the use of server side selection of the browser type.  Any other combinations resulted in older browsers kicking into compatibility mode from time to time.
&lt;/p&gt;&lt;p&gt;If you are not using &lt;a href="http://www.modernizr.com/"&gt;Modernizer&lt;/a&gt; the _layout.cshtml file the markup becomes much simpler and more in line with other posted solutions:
&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;!&lt;span style="color:maroon"&gt;DOCTYPE&lt;/span&gt;
			&lt;span style="color:red"&gt;html&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;/span&gt;
			&lt;span style="color:red"&gt;lang&lt;span style="color:blue"&gt;="en"&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;
			&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;meta&lt;/span&gt;
				&lt;span style="color:red"&gt;http-equiv&lt;span style="color:blue"&gt;="X-UA-Compatible"&lt;/span&gt; content&lt;span style="color:blue"&gt;="IE=Edge;"&lt;/span&gt;
					&lt;span style="color:blue"&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Consolas; font-size:9pt"&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:blue; font-family:Consolas; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/yW7z9O4p6Gw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/yW7z9O4p6Gw/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Generating-e2809ccompatibility-modee2809d-safe-HTML-using-Razor.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=15317b58-4cb1-4ec0-9d84-202a15fc93bf</guid>
      <pubDate>Tue, 14 Feb 2012 22:18:56 +0400</pubDate>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=15317b58-4cb1-4ec0-9d84-202a15fc93bf</pingback:target>
      <slash:comments>300</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=15317b58-4cb1-4ec0-9d84-202a15fc93bf</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Generating-e2809ccompatibility-modee2809d-safe-HTML-using-Razor.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=15317b58-4cb1-4ec0-9d84-202a15fc93bf</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=15317b58-4cb1-4ec0-9d84-202a15fc93bf</feedburner:origLink></item>
    <item>
      <title>.NET Generic B-Tree Library and Source Code</title>
      <description>&lt;p&gt;It&amp;rsquo;s been a while since I posted last so I thought I would throw my blog a bone&amp;hellip;&amp;nbsp; Once again I was looking for a good B-Tree implementation in C# on the net but came up empty.&amp;nbsp; In the hopes of simplifying other developer&amp;rsquo;s lives I&amp;rsquo;ve created a generic B-Tree library that allows you to create a B-Tree with an arbitrary key type and value type.&amp;nbsp;&amp;nbsp; I&amp;rsquo;ve included support for specifying the key order by allowing you to supply a &lt;a href="http://msdn.microsoft.com/en-us/library/cfttsh47.aspx"&gt;Comparer&amp;lt;T&amp;gt;&lt;/a&gt;.&amp;nbsp; I&amp;rsquo;ve also allowed the B-Tree to support duplicate keys.&amp;nbsp;&amp;nbsp; Value comparison is also customizable by supplying a &lt;a href="http://msdn.microsoft.com/en-us/library/ms132123.aspx"&gt;EqualityComparer&amp;lt;T&amp;gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Why are B-trees a good thing for .NET you ask? Well the standard .NET library implements a hash table using the &lt;a href="http://msdn.microsoft.com/en-us/library/xfhwa508.aspx"&gt;Dictionary&amp;lt;TKey,TValue&amp;gt;&lt;/a&gt; generic class.&amp;nbsp; Hash tables do not support duplicate keys, and B-Trees are also much more efficient for supporting large key sets for both insertion and deletion. For more details on how a B-Tree data structure works see this: &lt;a href="http://en.wikipedia.org/wiki/Btree" target="_blank"&gt;Wikipedia B-Tree article&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Creating a &lt;a href="http://en.wikipedia.org/wiki/Btree" target="_blank"&gt;B-Tree&lt;/a&gt; is fairly straight forward:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;BTree&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt; myBTree = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BTree&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt;();
myBTree[&lt;span style="color: #a31515"&gt;"Alpha"&lt;/span&gt;] = 1.0;
myBTree[&lt;span style="color: #a31515"&gt;"Beta"&lt;/span&gt;] = 2.0;
myBTree[&lt;span style="color: #a31515"&gt;"Delta"&lt;/span&gt;] = 3.0;

&lt;span style="color: green"&gt;//Iterating through the BTree nodes

&lt;/span&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt;( &lt;span style="color: #2b91af"&gt;BTree&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt;.&lt;span style="color: #2b91af"&gt;Node &lt;/span&gt;node &lt;span style="color: blue"&gt;in &lt;/span&gt;myBTree )
{  
    &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.Write(&lt;span style="color: #a31515"&gt;"Key = " &lt;/span&gt;+ node.Key + &lt;span style="color: #a31515"&gt;", Value = " &lt;/span&gt;+ node.Value );
}   
     
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="csharpcode"&gt;A few more interesting &lt;a href="http://en.wikipedia.org/wiki/Btree" target="_blank"&gt;B-Tree&lt;/a&gt; functions you can perform:&lt;/div&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="code"&gt;     
&lt;span style="color: #2b91af"&gt;BTree&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;,&lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt;.&lt;span style="color: #2b91af"&gt;Node &lt;/span&gt;myNode = myBTree.Find(&lt;span style="color: #a31515"&gt;"Beta"&lt;/span&gt;);

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Next node is: " &lt;/span&gt;+ myNode.Next );
&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Previous node is: " &lt;/span&gt;+ myNode.Previous );
&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Maximum depth is: " &lt;/span&gt;+ myBTree.MaxDepth );

myNode.Remove();

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine( &lt;span style="color: #a31515"&gt;"This should be false:  " &lt;/span&gt;+ myBTree.Contains(&lt;span style="color: #a31515"&gt;"Beta"&lt;/span&gt;,2.0));
&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine( &lt;span style="color: #a31515"&gt;"This should be true:  " &lt;/span&gt;+ myBTree.Contains(&lt;span style="color: #a31515"&gt;"Delta"&lt;/span&gt;,3.0));&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;!-- .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; } --&gt;&lt;/p&gt;
&lt;p&gt;Take a look at the source code for more API goodies.&amp;nbsp; It's fully documented.&lt;/p&gt;
&lt;p&gt;Included in the B-Tree library source code is a unit test that validates the tree code with random keys and values for both insertion and deletion.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;100,000 node random insertions took 0.6060537 seconds.&lt;/p&gt;
&lt;p&gt;100,000 node random insertion and 50,000 random deletions took 3.0035593 seconds&lt;/p&gt;
&lt;p&gt;1,000,000 random node insertions took 7.9972227 seconds.&lt;/p&gt;
&lt;p&gt;1,000,000 node random insertion and 500,000 random deletions took 52.0168049 seconds&lt;/p&gt;
&lt;p&gt;If there is any interest I might add&amp;nbsp; support for the &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.iqueryable.aspx"&gt;IQueryable&lt;/a&gt; interface, making it &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt; compatible. &lt;br /&gt;For now this B-Tree library is used as the key index for a simple flat file caching database.&amp;nbsp; Although it's far less functional than a full SQL database, caching with an in-memory key structure to a flat file out performs caching to any SQL database hands down.&lt;/p&gt;
&lt;p&gt;Below is a link to the library this is released under the version 3 of the GNU public license.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2010%2f7%2fDaisleyHarrison.Collections.Generic.zipx"&gt;DaisleyHarrison.Collections.Generic.zipx (340.29 kb)&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/_N345HNA0Mo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/_N345HNA0Mo/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/NET-Generic-BTree-Library-and-Source-Code.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=21c6fbc8-2321-4f72-8bbc-3002bcfa1084</guid>
      <pubDate>Wed, 28 Jul 2010 00:48:00 +0400</pubDate>
      <category>Software Engineering</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=21c6fbc8-2321-4f72-8bbc-3002bcfa1084</pingback:target>
      <slash:comments>280</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=21c6fbc8-2321-4f72-8bbc-3002bcfa1084</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/NET-Generic-BTree-Library-and-Source-Code.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=21c6fbc8-2321-4f72-8bbc-3002bcfa1084</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=21c6fbc8-2321-4f72-8bbc-3002bcfa1084</feedburner:origLink></item>
    <item>
      <title>Make Your Web Site Mobile Friendly and Scannable</title>
      <description>&lt;p&gt;With the Google&amp;rsquo;s release of the Android phone 2D symbolic encoding to make your website phone friendly is enjoying some additional attention.&amp;nbsp; Simply point your Android, I-Phone, or Windows Mobile phone camera, with an appropriate app, at the image below and data will be instantly loaded to your phone.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Web addresses, Email addresses, SMS messages, contact details and calendar events can be read from one of these 2D Symbols.&amp;nbsp; QR Codes can be embed on a web site, printed document, magazine article, or newspaper and loaded into your phone.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2D symbolic encoding or QR Code like the image below has been available since 1994, are are used widely in the east.&amp;nbsp; They are quicker to scan and hold more information than an traditional bar code.&amp;nbsp; When you see someone in Japan pointing their camera phone at a vending machine, they aren&amp;rsquo;t trying to take a picture of a cool machine, they are using their phone to buy a drink!&amp;nbsp; The information on the QR code on the machine is being used to pay for the item.&amp;nbsp; When payment is received the vending machine issues the drink.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blog.daisley-harrison.com"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Aaron D-H Blog" src="http://daisley-harrison.com/blog/image.axd?picture=Aaron%20D-H%20Blog_thumb.jpg" border="0" alt="Aaron D-H Blog" width="121" height="121" align="left" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Scanning this image will reveal my blog URL &amp;ldquo;http://blog.daisley-harrison.com&amp;rdquo; slightly larger versions can encode up to 4296 characters.&amp;nbsp; Though similar to bar coding the 2 dimensional aspect of this technique allow much more data to be encoded in a smaller area.&lt;/p&gt;
&lt;p&gt;If you get a chance to look on the back of a Google executives business card, chances are you will see a QR Code containing their &amp;ldquo;ME card&amp;rdquo; data.&amp;nbsp; Point your phone at it and the contact information will be loaded auto-magically!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://daisley-harrison.com/blog/image.axd?picture=qr-code-wallscape-london.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="qr-code-wallscape-london" src="http://daisley-harrison.com/blog/image.axd?picture=qr-code-wallscape-london_thumb.jpg" border="0" alt="qr-code-wallscape-london" width="123" height="141" align="right" /&gt;&lt;/a&gt;QR Codes have been used around the world to promote any number of things.&lt;/p&gt;
&lt;p&gt;This larger than life QR code was used to prompt DVD release of 28 Weeks Later in London.&amp;nbsp;&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;&lt;a href="http://daisley-harrison.com/blog/image.axd?picture=t-shirt-734382.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="t-shirt-734382" src="http://daisley-harrison.com/blog/image.axd?picture=t-shirt-734382_thumb.jpg" border="0" alt="t-shirt-734382" width="244" height="184" align="left" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a guy that had a t-shirt printed up to promote his blog.&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;There are several companies that make reader software for just about any camera phone.&amp;nbsp; Here are a few:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://reader.kaywa.com"&gt;http://reader.kaywa.com&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.i-nigma.com"&gt;http://www.i-nigma.com&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a title="http://code.google.com/p/zxing/" href="http://code.google.com/p/zxing/"&gt;http://code.google.com/p/zxing/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a title="http://www.mobile-barcodes.com/qr-code-software/" href="http://www.mobile-barcodes.com/qr-code-software/"&gt;http://www.mobile-barcodes.com/qr-code-software/&lt;/a&gt;- A good list of readers &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To start creating your own 2D symbols just go to the on-line tool we created here: &lt;a title="Click here to create your own 2D symbols!" href="http://daisley-harrison.com/BuildA2DSymbol.aspx" target="_blank"&gt;Build A 2DSymbol&lt;/a&gt;&amp;nbsp;This free on-line tool allows you to create QR code symbols that contain a variety of different types of information.&amp;nbsp; There are several optional available to help you embed the encoded symbol on your own web site or document.&amp;nbsp; 2D Symbols can be created in multiple sizes and colors!&lt;/p&gt;
&lt;p&gt;Here are a few more examples of some QR Code symbols that can be generated. &lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;(Hover your mouse over each symbol to see the type of information encoded in them)&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="text-align:center" border="0" cellspacing="20" cellpadding="2" align="center"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;
&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://daisley-harrison.com/QRCode.ashx?s=4&amp;amp;p=mailto%3awebmaster%40daisley-harrison.com%3fsubject%3dI%2blike%2bQR%2bCodes!" alt="Email subject " /&gt; &lt;br /&gt;(An email address, with subject)&lt;/td&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;
&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://daisley-harrison.com/QRCode.ashx?s=4&amp;amp;p=MECARD%3aN%3aFred+Flintstone%3bTEL%3a(000)+000-0000%3bEMAIL%3afred.flintstone%40bedrock.com%3bURL%3ahttp%3a%2f%2ffredflintstone.bedrock.com%3bADR%3a1234+Rolling+rock+Blvd%2cBedrock%3bNOTE%3aYaba+Daba+Doo%3b%3b" alt="Fred Flintstone Phone: (000) 000-0000 Email: fred.flintstone@bedrock.com Url: http://fredflintstone.bedrock.com Addr: 1234 Rolling rock Blvd City: Bedrock Yaba Daba Doo" /&gt; &lt;br /&gt;(Contact information in meCard)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;
&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://daisley-harrison.com/QRCode.ashx?s=4&amp;amp;p=tel%3a000-000-0000" alt="Please call: 000-000-0000" /&gt;&lt;br /&gt;(A phone number)&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://daisley-harrison.com/QRCode.ashx?s=4&amp;amp;p=smsto%3a000-000-0000%3fI%2blove%2bQR%2bCodes!" alt="Text " /&gt; &lt;br /&gt;(Plain text)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;The Back Story&lt;/h2&gt;
&lt;p&gt;The Open 2D coding standard was originally developed an patented by &lt;a href="http://www.denso-wave.com" target="_blank"&gt;Denso Wave Incorporated&lt;/a&gt; in 1994 and became an international standard (&lt;a href="http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=43655" target="_blank"&gt;ISO/IEC 18004:2006&lt;/a&gt;) in 2000 and later revised in 2006.&amp;nbsp;&amp;nbsp; The Denso Wave company intentionally did not exercise the patent so it is now considered to be in the public domain.&amp;nbsp; The name &amp;ldquo;QR&amp;nbsp; Code&amp;rdquo; is a trade mark of &lt;a href="http://denso-wave.com" target="_blank"&gt;Denso Wave Incorporated&lt;/a&gt;.&amp;nbsp; More information on QR code can be found at &lt;a href="http://QRCode.com" target="_blank"&gt;QR Code.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is an open source .NET version of a QR Code encoding / decoding library available that is posted here: &lt;a href="http://www.twit88.com/home/opensource/qrcode" target="_blank"&gt;Open Source @ twit88.com&lt;/a&gt;.&amp;nbsp; Another version of the library was posted on Code Project at &lt;a title="http://www.codeproject.com/KB/cs/qrcode.aspx" href="http://www.codeproject.com/KB/cs/qrcode.aspx" target="_blank"&gt;Open Source QR Code Library&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In this article I used the open source library from Code Project as a starting point.&amp;nbsp; The library was originally written for .NET 2.0 and needed a few minor edits to updates for it to work with the embedded resources for .NET 3.5, and additional optomization to make it work more efffiecently with Microsoft GDI+ (The .NET graphics rendering engine).&amp;nbsp; I created an HTTP Handler &lt;a href="http://daisley-harrison.com/QRCode.ashx"&gt;http://daisley-harrison.com/QRCode.ashx&lt;/a&gt;&amp;nbsp; which is now on the root of my web site.&amp;nbsp; The HTTP Handler accepts a number of parameters and does a little magic to determine the best encoding parameters to be used for obtaining optimal results.&amp;nbsp; Currently the best way to use the handler is from here: &lt;a title="Click here to create your own 2D symbols!" href="http://daisley-harrison.com/BuildA2DSymbol.aspx" target="_blank"&gt;Build A 2DSymbol&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/y6OCmTa1GYw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/y6OCmTa1GYw/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Make-Your-Web-Site-Mobile-Friendly-and-Scannable.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=34716478-2dd3-4ce4-ba34-30b1d5ef25a4</guid>
      <pubDate>Sun, 10 Jan 2010 05:47:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>The Universe</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=34716478-2dd3-4ce4-ba34-30b1d5ef25a4</pingback:target>
      <slash:comments>133</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=34716478-2dd3-4ce4-ba34-30b1d5ef25a4</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Make-Your-Web-Site-Mobile-Friendly-and-Scannable.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=34716478-2dd3-4ce4-ba34-30b1d5ef25a4</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=34716478-2dd3-4ce4-ba34-30b1d5ef25a4</feedburner:origLink></item>
    <item>
      <title>What to you mean IIS can't handle that kind of URL?</title>
      <description>&lt;p&gt;
&amp;hellip;or how to take advantage of the IIS 7.0 Integrated Pipeline mode.&amp;nbsp;&amp;nbsp; In this article we are presenting a module library for IIS 7.0 that gives full control over how IIS handles URLs.&amp;nbsp; The ASP.NET URLRewriter library allows a web developer to specify and handle just about any type of URL scheme. 
&lt;/p&gt;
&lt;p&gt;
With IIS 7.0 you have the option of turning on &amp;ldquo;Integrated Pipeline mode&amp;rdquo; which gives you the ability to use the .NET framework to map any URL without the need to change the administrator restricted mime type map.&amp;nbsp; Traditional asp.net applications could only see and process URLs ending in the classic &amp;ldquo;.aspx&amp;rdquo; or &amp;ldquo;.ashx&amp;rdquo;, most other URLs were captured by IIS and your application never even saw them.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
There have been a few URL rewrite libraries created over time,&amp;nbsp; I thought that I would throw my hat into the ring here and create yet another URL rewriter library. 
&lt;/p&gt;
&lt;p&gt;
One of the biggest complaints I have about some of the existing URL rewriting schemes in that they tend to put quite an additional load on the processing on each URL.&amp;nbsp;&amp;nbsp;The URL rewriting library created for this article is designed to take full advantage of ASP caching, so that URL processing happens only once when the URL is encountered for the first time. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;On URL Rewriting Verses URL Routing&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
.NET&amp;nbsp;Framework 3.5&amp;nbsp;has&amp;nbsp;a new URL Routing scheme that allows the application to programatically redirect&amp;nbsp;URLs to specific HttpModules (see&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/cc668201.aspx"&gt;ASP.NET Url Routing&lt;/a&gt; for more information on that).&amp;nbsp; I believe that URL rewrite still has it&amp;rsquo;s place in the web developers bag of tricks.&amp;nbsp; In particular URL rewriting plays well with existing applications and does not require hard coding.&amp;nbsp;&amp;nbsp; This URL rewriting library also has some unique features that provides the ability to capture portions of the URL that the user types and pass them along to your page or handler in the manner similar to the URL routing mechanism. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The URLRewriter Library is Configured in the Web.Config file&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
First, to use this URLRewriting library you will need to add the DaisleyHarrison.URLRewriter.dll library to your application.&amp;nbsp; Once you&amp;rsquo;ve done that, you will need to add a section configuration to the top of your Web.Config file.&amp;nbsp; For example: 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;table border="0" style="border: medium none ; background-color: #fcfcfc"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;?&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="3" color="#000000"&gt;&amp;nbsp;&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;section&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;DaisleyHarrison.UrlRewriter&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;DaisleyHarrison.UrlRewriter.UrlRewriterSection, DaisleyHarrison.UrlRewriter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=86842b37db0c0375&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;requirePermission&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; 
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;&lt;strong&gt;Referencing the DaisleyHarrison.UrlRewriterModule&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Then you will need to add&amp;nbsp;two references to the HttpModule in the library that does the actual URL processing.&amp;nbsp; The first reference is inside the &lt;strong&gt;httpModules&lt;/strong&gt; subsection of the &lt;strong&gt;system.web&lt;/strong&gt; section.&amp;nbsp; The UrlRewriterModule should be the first&amp;nbsp;module defined in the&amp;nbsp;&lt;strong&gt;httpModules&lt;/strong&gt; section.&amp;nbsp; The second reference is in the&amp;nbsp;&lt;strong&gt;modules&lt;/strong&gt;&amp;nbsp;subsection of the &lt;strong&gt;system.webServer&lt;/strong&gt;&amp;nbsp;section.&amp;nbsp; It should also be the first module defined in the &lt;strong&gt;modules&lt;/strong&gt; subsection.&amp;nbsp; Also note the tag &amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;modules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;runAllManagedModulesForAllRequests&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt; &lt;font color="#000000"&gt;setting the &lt;strong&gt;runAllManagedModulesForAllRequests&lt;/strong&gt; attribute to &lt;strong&gt;true&lt;/strong&gt; is how the how the IIS 7.0 Integrated Pipeline Mode is turned on.&amp;nbsp; Turning the Integrated Pipeline Mode on allows the URLRewriter library to map all mime types.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;table border="0" style="border: medium none ; background-color: #fcfcfc"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.web&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;httpHandlers&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;httpHandlers&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; 
			&lt;p&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;httpModules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;UrlRewriterModule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;DaisleyHarrison.UrlRewriter.UrlRewriterModule, DaisleyHarrison.UrlRewriter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=86842b37db0c0375&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;ScriptModule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;httpModules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;.&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.web&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.webServer&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;validation&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;validateIntegratedModeConfiguration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;modules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;runAllManagedModulesForAllRequests&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;UrlRewriterModule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;DaisleyHarrison.UrlRewriter.UrlRewriterModule, DaisleyHarrison.UrlRewriter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=86842b37db0c0375&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&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;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;remove&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;ScriptModule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;ScriptModule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;preCondition&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;managedHandler&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;modules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.webServer&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;strong&gt;&amp;nbsp;Configuring the URL Rewriter library&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Once the URLRewriterModule has been correctly referenced in the Web.Config file. Add the DaisleyHarrison.UrlRewriter section to start configuring the URL rewrite rules.&amp;nbsp; Below is an excerpt from the sample code that comes with the library.&amp;nbsp; 
&lt;/p&gt;
&lt;table border="0" style="border: medium none ; background-color: #fcfcfc"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p&gt;
			&amp;lt;?&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configSections&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.web&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.web&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.webServer&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;system.webServer&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;DaisleyHarrison.UrlRewriter&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;TraceLevel&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Verbose&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;ApplicationRelative&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;True&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;rules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;clearRules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;addRule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;rule1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Pattern&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;(.*?)\.xxx(.*)&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Replace&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;$1.aspx$2&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Disposition&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Rewrite&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;addRule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;rule2&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Pattern&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;(.*?)\.axd(.*)&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Disposition&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Accept&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;addRule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;rule3&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Pattern&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/(?&amp;#39;category&amp;#39;.+?)/(?&amp;#39;action&amp;#39;.+?)/.+\.aspx&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;When&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Match&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;PassNamedGroups&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Disposition&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Continue&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;addRule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;rule4&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Pattern&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;(.*)&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;When&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;Match,PhysicalFile&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Disposition&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Accept&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;addRule&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;rule5&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Pattern&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;(.*)&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;When&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Match&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Replace&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;HandlerTest.ashx&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Rebase&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;False&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;PathInfo&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;$1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;rules&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;DaisleyHarrison.UrlRewriter&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;strong&gt;The sample configuration rules&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
The URL rewriter engine processes rules from the top to bottom.&amp;nbsp; Rules are match by a combination of a regular expression pattern and one or more conditional &lt;strong&gt;When&lt;/strong&gt; flags.&amp;nbsp; The default When flag is &lt;strong&gt;Match&lt;/strong&gt;, so rule1 will match any URL with the extension &amp;ldquo;.xxx&amp;rdquo;.&amp;nbsp; In this case, the disposition of&amp;nbsp;rule1 is &lt;strong&gt;Rewrite&lt;/strong&gt;, so the rule will&amp;nbsp;rewrite the URL to a &amp;ldquo;.aspx&amp;rdquo; page.&amp;nbsp; The Replace attribute defines the regular expression replace pattern to defined how the URL will be rewritten. 
&lt;/p&gt;
&lt;p&gt;
Rule2 will match any URL with the extension &amp;ldquo;.axd&amp;rdquo;.&amp;nbsp; Since the disposition for rule2 is set to &lt;strong&gt;Accept&lt;/strong&gt;, URLs that match rule2 will be accepted &amp;ldquo;as is&amp;rdquo; and passed along to the server unchanged for processing. 
&lt;/p&gt;
&lt;p&gt;
Rule3 is a little tricky.&amp;nbsp; It will match a URL containing any &amp;ldquo;.aspx&amp;rdquo; page with two subdirectories from the root. At this time note the that the &lt;strong&gt;ApplicationRelative&lt;/strong&gt; attribute of the DaisleyHarrison.UrlRewriter section is set to &lt;strong&gt;true&lt;/strong&gt;.&amp;nbsp; This means that all rules are processed as if URL are not absolute, but are relative to the base application URL.&amp;nbsp; With ApplicationRelative set to &lt;strong&gt;true&lt;/strong&gt;, the application base path is stripped away from the URL prior to processing, then repplied when&amp;nbsp;processing is complete.&amp;nbsp;&amp;nbsp; This allows rules to be written that will work no matter where the application path actual is.&amp;nbsp;&amp;nbsp; Getting back to what rule3 actual does: the pattern will be matched for a URL containing a &amp;ldquo;.aspx&amp;rdquo; page with two subdirectories of the &lt;u&gt;application root&lt;/u&gt;.&amp;nbsp; Note that in the matching regular expression there are two named capture groups.&amp;nbsp; One named &amp;ldquo;category&amp;rdquo;, and one named &amp;ldquo;action&amp;rdquo;.&amp;nbsp; Since the PassNamedGroups attribute is set to true, whatever parts of the URL match these named groups will&amp;nbsp; be passed to the final URL as query parameters.&amp;nbsp; ie.&amp;nbsp; The final URL will get the query string &amp;ldquo;?category=door&amp;amp;action=open&amp;rdquo; added to it.&amp;nbsp; Also since the &lt;strong&gt;Disposition&lt;/strong&gt; of rule3 is set to &lt;strong&gt;Continue&lt;/strong&gt;, the rest of the rules will continue to be processed. 
&lt;/p&gt;
&lt;p&gt;
Rule4 matches any URL that maps to a physical file.&amp;nbsp; Since rule4 &lt;strong&gt;Disposition&lt;/strong&gt; is set to &lt;strong&gt;Accept&lt;/strong&gt;, the url will be passed on to the server unchanged. 
&lt;/p&gt;
&lt;p&gt;
Rule5 is our final URL processing rule.&amp;nbsp; Rule5 also matches any URL.&amp;nbsp; The URL is replaced with &amp;ldquo;HandlerTest.ashx&amp;rdquo; and the path info for the URL will be set to the orginal URL.&amp;nbsp; So effectively rule4 and rule5 combined ensure that all URLs that map to physical files will be processed unchanged, and URLs that do not have a physical file will be processed by the HandlerTest.ashx page. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Summary&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
As you can see, even with just the few rules defined in the sample configuration,&amp;nbsp; the URL Rewriter library is quite powerful.&amp;nbsp;&amp;nbsp; The results from the processing of each URL are cached so that each unique URL will be processed only once, delivering a relatively small impact to the URL processing pipeline.&amp;nbsp;&amp;nbsp; I also include some functionality similar to what can be achieved with&amp;nbsp;the URL Routing feature that is available in .NET 3.5 framework. 
&lt;/p&gt;
&lt;p&gt;
There is certainly much more functionality that could be explained here, however, it is better explained in the &lt;a href="http://wiki.daisley-harrison.com/wiki/URLRewriterUserGuide.ashx"&gt;ASP.NET URLRewriter Library User Guide&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
The complete source for this library and the sample code shown in this article are available on the &lt;a href="http://wiki.daisley-harrison.com/wiki/URLRewriterDownload.ashx"&gt;ASP.NET URLRewriter Library Download&lt;/a&gt;&amp;nbsp;page. 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/HKm9_b3dRkk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/HKm9_b3dRkk/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/What-to-you-mean-IIS-cant-handle-that-kind-of-URL.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=2e9e4fa3-c18c-49cb-840e-3dd6d1c91642</guid>
      <pubDate>Mon, 08 Jun 2009 20:17:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>.NET</category>
      <category>C#</category>
      <category>Visual Basic</category>
      <category>ASP.NET</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=2e9e4fa3-c18c-49cb-840e-3dd6d1c91642</pingback:target>
      <slash:comments>81</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=2e9e4fa3-c18c-49cb-840e-3dd6d1c91642</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/What-to-you-mean-IIS-cant-handle-that-kind-of-URL.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=2e9e4fa3-c18c-49cb-840e-3dd6d1c91642</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=2e9e4fa3-c18c-49cb-840e-3dd6d1c91642</feedburner:origLink></item>
    <item>
      <title>NO CODE! Silverlight - SharePoint Integration</title>
      <description>&lt;p&gt;
Put together a Silverlight application to display SharePoint list data without using Visual Studio.&amp;nbsp; A simple Silverlight library you can use in Microsoft Expression Blend to read SharePoint list data and&amp;nbsp;display it in any Silverlight control.&amp;nbsp; Even your mom can do it! 
&lt;/p&gt;
&lt;p&gt;
Well you would first have to teach your mom how to use Silverlight and XAML (Microsoft&amp;#39;s extensble application markup language).&amp;nbsp; But we are talking about a mom who can stop the DVD player from flashing 12:00 then aren&amp;#39;t we? 
&lt;/p&gt;
&lt;p&gt;
If you have been following my series of articles on Silverlight-SharePoint integration (click here for &lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=ca06c0e3-4677-4c96-a71a-ed0138c0e1f5"&gt;Part I&lt;/a&gt;) you will notice that even though the amount of code needed to get data from SharePoint is not too complex,&amp;nbsp; making it happen is not really for the faint-of-heart.&amp;nbsp;&amp;nbsp;In an effort to simplify the process I&amp;rsquo;ve come up will a neat little library that lets you link SharePoint list data to Silverlight controls&amp;nbsp;directly in XAML. 
&lt;/p&gt;
&lt;p&gt;
Since we don&amp;rsquo;t need to go into the gory details of code in this article let me jump right into the sample.&amp;nbsp; Below is a screen shot of a simple graph of some SharePoint list data done in Silverlight: 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=SampleGraph.png" border="0" alt="SampleGraph" /&gt; 
&lt;/p&gt;
&lt;p align="left"&gt;
This graph was created entirely in &lt;a href="http://www.microsoft.com/expression/"&gt;Microsoft Expression Blend 2&lt;/a&gt;.&amp;nbsp; I use the chart control from &lt;a href="http://silverlight.codeplex.com/"&gt;CodePlex Silverlight Toolkit&lt;/a&gt;&amp;nbsp;to create the actual graph.&amp;nbsp; To get the SharePoint list data on to the chart control I first had to add a single xml line (highlighted in yellow) to the resources of my user control as follows: 
&lt;/p&gt;
&lt;table border="0" align="'center'"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p&gt;
			&amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;UserControl&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/a&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;x&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/a&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;x&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Class&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;SharePointListTest.Page&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Width&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;640&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;479&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;spinterface&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;clr-namespace:DaisleyHarrison.SPInterface;assembly=DaisleyHarrison.SPInterface&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;UserControl.Resources&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: yellow"&gt;&amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;spinterface&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;SPListDataSource&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; x&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Key&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Links&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; SiteUrl&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;http://localhost/LinkList&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; ListName&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Links&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; FieldNames&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Clicks,ID,Rating,URLwMenu,Notes&amp;quot;/&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;UserControl.Resources&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;UserControl&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Note the namespace reference to the Daisley-Harrison.SPInterface library in the UserControl tag.&amp;nbsp; The magic is in the SPListDataSource tag.&amp;nbsp; In this case the sharepoint site I want to read from is &amp;ldquo;http://localhost/LinkedList&amp;rdquo;&amp;nbsp; the list the data will be coming from is &amp;ldquo;Links&amp;rdquo;, and I&amp;rsquo;ve named my SPListDataSource resource &amp;ldquo;Links&amp;rdquo;. 
&lt;/p&gt;
&lt;p&gt;
The XAML for the chart control is fairly straight forward, and I won&amp;rsquo;t be going into the details of how to use the chart control as the guys who created the toolkit did a great job explaining that &lt;a href="http://silverlight.codeplex.com/"&gt;here&lt;/a&gt;.&amp;nbsp; The binding of the data to the chart control is done like this: 
&lt;/p&gt;
&lt;table border="0" align="'center'"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;.&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;Chart&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; x&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;Name&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;chart&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; BorderBrush&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;x&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;Null&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;}&amp;quot;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&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;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;Chart.Series&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&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;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;LineSeries&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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; Title&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Order vs. Clicks&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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; ItemsSource&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; Links&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;}&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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;IndependentValuePath&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;NumericValue1&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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; DependentValuePath&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;NumericValue0&amp;quot;/&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&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;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;BubbleSeries&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; ItemsSource&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; Links&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;}&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;br /&gt;
			&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&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; DependentValuePath&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;NumericValue0&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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; IndependentValuePath&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;NumericValue1&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&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; SizeValuePath&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;NumericValue2&amp;quot;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&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; Title&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Rating&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; IsSelectionEnabled&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt; Background&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;#FF000000&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;Chart.Series&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt; &lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;chartingToolkit&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;Chart&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;There are actual two graphs being displayed on the chart.&amp;nbsp; The first is a line graph, the second is a bubble graph.&amp;nbsp; Each has it&amp;rsquo;s &lt;font color="#ff0000"&gt;ItemsSource&lt;/font&gt; property bound to the &lt;font color="#a31515"&gt;SPListDataSource &lt;/font&gt;&lt;font color="#000000"&gt;resource.&amp;nbsp; The charting toolkit is a little fussy about the type of data it needs to create a data series with.&amp;nbsp; The IndependentValuePath, DependentValuePath, SizeValuePath&amp;nbsp;properties specify a string expression that is name of the property of the &lt;u&gt;list item&lt;/u&gt; class to chart.&amp;nbsp; The DependentValuePath must be a numeric value in order for the chart to work correctly.&amp;nbsp; Since Silverlight binding expressions do not allow you to use an index like &amp;ldquo;MyFields[2]&amp;rdquo; the list items returned by SPListDataSource have a simplified way to access the first ten data fields.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;font color="#000000"&gt;For numeric data types: NumericValue0, NumericValue1, NumericValue2, &amp;hellip; NumericValue9.&amp;nbsp; &lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font color="#000000"&gt;For boolean data types:&amp;nbsp;BooleanValue0, BooleanValue1, BooleanValue2, &amp;hellip; BooleanValue9.&amp;nbsp; &lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font color="#000000"&gt;For any other object data types: Value0, Value1, Value2, &amp;hellip; Value9.&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Note that the order of the fields returned by the SPListDataSource is controlled by the order the fields are specified in the Fields property. 
&lt;/p&gt;
&lt;p&gt;
There is another way to access field data columns returned by the SPListDataSource.&amp;nbsp; The library contains a value converter that can be used to access fields by name, and is not limited to the first ten fields.&amp;nbsp; Unfortunately the value converter cannot be used by the charting tool, but most other Silverlight controls that take full advantage of binding expressions can use this method.&amp;nbsp;&amp;nbsp; For more information on using the value converter to access fields by name check out the details in the &lt;a href="http://wiki.daisley-harrison.com/wiki/SPInterfaceUserGuide.ashx#Binding_To_A_List_Item_Data_Field_By_Name_43" title="Binding To A List Item Data Field By Name"&gt;User Guide&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;If you are attempting to debug silverlight applications on your laptop or desktop and the SharePoint server is not on the same machine (i.e. on a corporate server somewhere), you will need to prepare your SharePoint site first by placing a cross domain policy file on the root of the site, to allow the Silverlight application to access the SharePoint list web service (how SPInterface communicates with SharePoint).&amp;nbsp; For details on how to do this please see &lt;a href="http://wiki.daisley-harrison.com/wiki/SPInterfaceUserGuide.ashx#crossDomain"&gt;Preparing your SharePoint site&lt;/a&gt; in the &lt;a href="http://wiki.daisley-harrison.com/wiki/SPInterfaceUserGuide.ashx"&gt;User Guide&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
The full source &amp;ldquo;code&amp;rdquo; for the Expression Blend project used in this article is available here:&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2009%2f6%2fSharePointListTest.zip"&gt;SharePointListTest.zip (1.63 mb)&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The SPInterface library used in this article, along with a&amp;nbsp;User Guide&amp;nbsp;can be found at: 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://wiki.daisley-harrison.com/wiki/SPInterface.ashx" title="Silverlight SPInterface Library"&gt;http://wiki.daisley-harrison.com/wiki/SPInterface.ashx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2009%2f6%2fSharePointListTest.zip"&gt;&lt;/a&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/tArbhkqpCOk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/tArbhkqpCOk/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/NO-CODE!-Silverlight-SharePoint-Integration.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=bd03c91b-d6dd-4799-b32d-46da43b7cf0a</guid>
      <pubDate>Tue, 02 Jun 2009 20:24:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>SharePoint</category>
      <category>Silverlight</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=bd03c91b-d6dd-4799-b32d-46da43b7cf0a</pingback:target>
      <slash:comments>149</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=bd03c91b-d6dd-4799-b32d-46da43b7cf0a</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/NO-CODE!-Silverlight-SharePoint-Integration.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=bd03c91b-d6dd-4799-b32d-46da43b7cf0a</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=bd03c91b-d6dd-4799-b32d-46da43b7cf0a</feedburner:origLink></item>
    <item>
      <title>Corporate Ready HTML and Plain Text Email with SmtpClient</title>
      <description>&lt;p&gt;
Here is a new email template library that makes it dead easy for your web application to send the most professional looking email using as little as three lines of code. 
&lt;/p&gt;
&lt;p&gt;
Sending plain text email from your web application has always been relatively easy using the SmtpClient, but most web applications end up with a lot of hard coding to do this.&amp;nbsp; Changing email address and messages can require a site recompile.&amp;nbsp; Of course, one can pull in a format template from a text file but that again requires additional code and gains only minor improvements to flexibility. 
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#2b91af"&gt;&lt;font color="#000000"&gt;Here is an example of the type of email that can be produced with the email template library:&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=Email4_small.jpg" border="1" alt="Email4" /&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;font color="#2b91af"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font color="#2b91af"&gt;&lt;font color="#000000"&gt;and the code used to produce this email:&lt;/font&gt;&amp;nbsp;&lt;/font&gt; 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; emailTemplate = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Load(Server.MapPath(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;./EmailTemplates/EmailTemplate4.xml&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;));&lt;/font&gt;&lt;font size="2"&gt; 
			&lt;p&gt;
			&lt;font size="2"&gt;&lt;font size="2"&gt;WebEmailArgumentList&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; argumentList = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;WebEmailArgumentList&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;();&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;font size="2"&gt;argumentList.AddExtensionObject(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;&amp;quot;cart&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, shoppingCart);&lt;/font&gt;&lt;font size="2"&gt; 
			&lt;p&gt;
			&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; smtpClient = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(); &lt;/font&gt;&lt;font size="2" color="#008000"&gt;&lt;font size="2" color="#008000"&gt;&lt;/font&gt;&lt;/font&gt;
			&lt;/p&gt;
			&lt;/font&gt;&lt;font size="2"&gt;
			&lt;p&gt;
			smtpClient.Send(emailTemplate.CreateMailMessage(argumentList)); 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
You can see that I cheated and used 5 lines of code.&amp;nbsp; A simpler email, that does not use rich data, such as the shopping cart above could actual be sent with a SINGLE line of code: 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;
			&lt;p&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;().Send(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Load(Server.MapPath(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;./EmailTemplate1.xml&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)).CreateMailMessage());&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Now I wouldn&amp;rsquo;t recommend that you collapse things to just one line of code, as it makes reading code a lot more difficult, but I did it here to highlight the simplicity of using the this email library to send, not just plain text, but HTML email with attachments and embedded resources. 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="4"&gt;&lt;strong&gt;Historic SmtpClient Code&lt;/strong&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
For those of you who have not used the SmtpClient provided in the System.Net namespace of the .NET object library, below is an example of the typical coding need to sent a plain text email: 
&lt;/p&gt;
&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;
			&lt;p&gt;
			&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; smtpClient = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;();&lt;br /&gt;
			&lt;br /&gt;
			smtpClient.Host = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;mail.bobsbigburgers.com&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
			&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;MailMessage&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; mailMessage = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;MailMessage&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;();&lt;br /&gt;
			&lt;br /&gt;
			mailMessage.From = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;MailAddress&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;a href="mailto:webteam@bobsbigburgers.com"&gt;webteam@bobsbigburgers.com&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			mailMessage.To.Add(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;MailAddress&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(txtEmail.Text, txtFirstName.Text + &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot; &amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt; + txtLastName.Text));&lt;br /&gt;
			&lt;br /&gt;
			mailMessage.CC.Add(&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;a href="mailto:bob@bobsbigburgers.com"&gt;bob@bobsbigburgers.com&lt;/a&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;);&lt;br /&gt;
			&lt;br /&gt;
			mailMessage.Subject = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;Old style email message send test&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
			&lt;br /&gt;
			mailMessage.Body = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Format(&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;@&amp;quot;{0},&lt;br /&gt;
			Thank you for pressing the &amp;quot;&amp;quot;Send Email&amp;quot;&amp;quot; button.&lt;br /&gt;
			Your participation is greatly appretiated,&lt;br /&gt;
			Bob&amp;#39;s Big Burgers&lt;br /&gt;
			&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;, txtFirstName.Text);&lt;br /&gt;
			&lt;br /&gt;
			smtpClient.Send(mailMessage);&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
I starting working on this email template library a number of years ago in a effort to not have to recode the code you see above each time an email message was required on a web site.&amp;nbsp; Recently I took an other look at the library and decided to update it to handle more complex email message processing.&amp;nbsp; The result is the library you see now.&amp;nbsp;&amp;nbsp; The email template library can now produce just about any data rich, corporate ready email with just a few lines of code. 
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;
So now lets dig a little deeper into the library and see what makes the magic happen,&amp;nbsp; and, of course, the catch&amp;hellip; there always has to be a catch.&amp;nbsp;&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=smile1.gif" alt="" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="4"&gt;&lt;strong&gt;A Simple Email Template&lt;/strong&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
Lets take a look at a simple email first, just an acknowledgment that something happened on the web site,&amp;nbsp; one that does not need dynamic data, such as a user&amp;rsquo;s personal information, which may change, based on data entered on the page.&amp;nbsp; The need for this type of email message is fairly rare on a web site, but it will get us started exploring the library. 
&lt;/p&gt;
&lt;p&gt;
Below is an rendering of a simple HTML email message, and the 3 lines of hard coding necessary to sent it: 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img style="border: 1px solid" src="http://blog.daisley-harrison.com/blog/file.axd?file=Email1.png" alt="Simple Email" /&gt; 
&lt;/p&gt;
&amp;nbsp; 
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; emailTemplate = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Load(Server.MapPath(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;./EmailTemplates/EmailTemplate1.xml&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;));&lt;/font&gt;&lt;font size="2"&gt; 
			&lt;p&gt;
			&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; smtpClient = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(); &lt;/font&gt;&lt;font size="2" color="#008000"&gt;&lt;font size="2" color="#008000"&gt;&lt;/font&gt;&lt;/font&gt;
			&lt;/p&gt;
			&lt;/font&gt;&lt;font size="2"&gt;
			&lt;p&gt;
			smtpClient.Send(emailTemplate.CreateMailMessage()); 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Let&amp;rsquo;s examine the template file used to produce the above email.&amp;nbsp; This, of course, is the&amp;nbsp;&amp;ldquo;catch&amp;rdquo;.&amp;nbsp; Simplifying the hard coding&amp;nbsp;requirement moves the complexity of the email message into the template file.&amp;nbsp; The advantage of doing this though, is the complete flexibility of adjusting your email messages with out the need to involve the web site developer or recompile the site.&amp;nbsp; 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&amp;lt;?&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;webteam@bobsbigburgers.com&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;[settings:email-template1-to]&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;willam@bobsbigburgers.com, pebbles@bobsbigburgers&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;bob@bobsbigburgers.com&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Way to go team!&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Someone just purchased a bunch of stuff!&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://www.w3.org/1999/xhtml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;href&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://www.bobsbigburgers.com&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;img&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;src&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;[linked-resource:./Images/Logo.jpg]&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;alt&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;logo&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers Did It Again&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;p&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&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; Someone just purchased a bunch of stuff!&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&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;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;p&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Note that the above template is actual producing a fairly sophisticated email.&amp;nbsp; The message itself contains a plain text email, an alternate HTML view, and an embedded logo image.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="3"&gt;The Email Template root element&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Lets examine the component parts of this template starting with the root element: 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
First, for those of you not too familar with XML, please note the email template namespace declared as &lt;font color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;#39; and that all email template tags are prefix with &amp;ldquo;em:&amp;ldquo;.&amp;nbsp; This exact template namespace must be declared in order for the template to be loaded correctly by the library.&amp;nbsp; The prefix &amp;ldquo;em&amp;rdquo; can actual be any name&amp;nbsp;you choose, or if you declare the&amp;nbsp;namespace with &lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;#39; you don&amp;rsquo;t need the prefix on any of the element names. For example:&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;webteam@bobsbigburgers.com&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
In the case of our full sample email template we&amp;nbsp;send&amp;nbsp;HTML tags in the email body, so it is more convenient to specify a namespace prefix for the template elements.&amp;nbsp; This&amp;nbsp;means we can write the HTML language elements&amp;nbsp;without an namespace prefix making the HTML tags easier to read. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="3"&gt;The Email Template address elements&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Now lets look at the email address elements: 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;webteam@bobsbigburgers.com&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;[settings:email-template1-to]&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;willam@bobsbigburgers.com, pebbles@bobsbigburgers&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;bob@bobsbigburgers.com&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Notice the template expression in between the &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;hellip;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;tags that reads &amp;ldquo;[settings:email-template1-to]&amp;rdquo;.&amp;nbsp; Template expressions are evaluated by the email template processing engine to include dynamic data in the resulting mail message.&amp;nbsp; Template expressions can appear inside any element or attribute value and are recognized by the email template processor when they are enclosed in square brackets ( &amp;ldquo;[&amp;rdquo; or &amp;ldquo;]&amp;rdquo; ).&amp;nbsp; In this case the expression looks up the value of the application settings key &amp;ldquo;email-template1-to&amp;rdquo; from the application configuration file, which in our case is the web.config file. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="3"&gt;The email Template subject element&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Way to go team!&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
This element is farly straight forward, it sets the value of the subject line of the email mesage.&amp;nbsp; This field, like most other can also contain template expressions. For example: 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&amp;lt;?&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;The email was sent by [settings:WebMasterFirstName]&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Of course for this to work, your web.confing file needs to have an appSettings section similar to the following: 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p&gt;
			&amp;lt;?&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;appSettings&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;key&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;email-template1-to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;test1@bobsbigburgers.com&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;add&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;key&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;WebMasterFirstName&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;Fred&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;appSettings&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; 
			&lt;p&gt;
			&amp;nbsp;&amp;nbsp; &amp;hellip; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
			&lt;p&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;font color="#a31515"&gt;/&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;configuration&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;font size="3"&gt;&lt;strong&gt;The template body element&lt;/strong&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
The template body element can contain any type of text or xml markup that you want.&amp;nbsp; The template engine recognizes template expressions (closed in square brackets) as well as a fairly sophisticated set of process flow and conditional elements such as &amp;lt;em:if&amp;gt;...&amp;lt;/em:if&amp;gt; &amp;lt;em:choose&amp;gt;...&amp;lt;/em:choose&amp;gt; and &amp;lt;em:for-each&amp;gt;...&amp;lt;/em:for-each&amp;gt; to name a few.&amp;nbsp; For more detalis see our support page titled &lt;a href="http://wiki.daisley-harrison.com/wiki/EmailTemplate.ashx"&gt;Email Template Files&lt;/a&gt; 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&amp;lt;?&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Someone just purchased a bunch of stuff!&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
			&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;It is possible to set just a plain text email by leaving out the &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&amp;hellip;&amp;lt;&lt;font color="#a31515"&gt;/&lt;font size="2"&gt;&lt;font size="2"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt; &lt;font color="#000000"&gt;section entirely, just leaving the body section containing plain text.&amp;nbsp;&amp;nbsp; It is also possible to send an HTML only email by also leaving off the alternate-view seciton and specifying html directly in the body.&amp;nbsp; For example:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;br /&gt;
&lt;font color="#0000ff"&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&amp;lt;?&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;webteam@bobsbigburgers.com&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;[settings:email-template1-to]&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;willam@bobsbigburgers.com, pebbles@bobsbigburgers&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;bob@bobsbigburgers.com&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Way to go team!&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font color="#993366"&gt;h1&lt;/font&gt;&amp;gt;&lt;font color="#000000"&gt;Hello World&lt;/font&gt;&amp;lt;/&lt;font color="#993366"&gt;h1&lt;/font&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font color="#a31515"&gt;html&lt;/font&gt;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;
&lt;p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;You can also include one or more template expression in the body text.&amp;nbsp; For example: &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&amp;lt;?&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;http&lt;/font&gt;://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;webteam@bobsbigburgers.com&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:from&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[settings:email-template1-to]&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:to&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;willam@bobsbigburgers.com, pebbles@bobsbigburgers&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:cc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;bob@bobsbigburgers.com&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:bcc&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Way to go team!&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:subject&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#993366"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#993366"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2"&gt;&lt;font size="2"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;Hello [session:FirstName] [session:LastName],&amp;lt;/div&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;Welcome to this really cool site!&amp;lt;/p&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&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;hellip;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font color="#a31515"&gt;body&lt;/font&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font color="#993366"&gt;html&lt;/font&gt;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;font color="#000000"&gt;In the above example the expression [session:FirstName] looks up the first name from the session state variable &amp;ldquo;FirstName&amp;rdquo;.&amp;nbsp; In order for these type of expression to work you will need to first set the session state variables appropriately. For example&lt;/font&gt; 
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; emailTemplate = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Load(Server.MapPath(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;./EmailTemplates/EmailTemplate2.xml&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;));&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
			&lt;p&gt;
			&lt;font size="2"&gt;&lt;font size="2"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; smtpClient = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;SmtpClient&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;();&amp;nbsp;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;font size="2"&gt;Session[&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;FirstName&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;] = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;Fred&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; Session[&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;LastName&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;] = &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;quot;Flintstone&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
			&lt;p&gt;
			&lt;font size="2"&gt;smtpClient.Send(emailTemplate.CreateMailMessage(&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;WebEmailArgumentList&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;()));&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#000000"&gt;Note, to read IIS session state variables and other IIS related objects you must pass an instance of of WebEmailArgumentList &lt;font size="2"&gt;&lt;font size="2"&gt;to the CreateMailMessage method.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="3" color="#000000"&gt;&lt;strong&gt;The Template alternate-view element&lt;/strong&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#000000"&gt;In our original email template we sent both plain text and HTML text email messages.&amp;nbsp; This is done so that the resulting email message if friendly to all types of email client.&amp;nbsp; Some email client can display plain text only, other prefer HTML messages.&amp;nbsp;&amp;nbsp; To sent more that one type of email body in a single email message, you must to the alternate-view element.&lt;/font&gt; 
&lt;/p&gt;
&lt;table border="0" align="center" style="background-color: #ffffcc; margin: 10px; border: 1px solid"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&amp;lt;?&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;version&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;1.0&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;&lt;font size="2" color="#ff0000"&gt;encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;utf-8&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;?&amp;gt;&lt;br /&gt;
			&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:em&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://daisley-harrison.com/namespaces/EmailTemplate&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;Someone just purchased a bunch of stuff!&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;p style="margin-right: 0px" dir="ltr"&gt;
			&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;br /&gt;
			&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://www.w3.org/1999/xhtml&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;href&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;http://www.bobsbigburgers.com&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;img&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;src&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#0000ff"&gt;[linked-resource:./Images/Logo.jpg]&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#ff0000"&gt;alt&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;logo&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;&amp;#39;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2" color="#a31515"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#000000"&gt;Bob&amp;#39;s Big Burgers Did It Again&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;p&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&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; Someone just purchased a bunch of stuff!&lt;br /&gt;
			&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&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;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;p&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;html&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-views&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
			&lt;/font&gt;&lt;/font&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:email-template&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;font color="#000000"&gt;In the case of our first email template the&lt;/font&gt; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&amp;hellip;&amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt; &lt;font color="#000000"&gt;element tags at the root contain plain text, so the &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&amp;hellip;&amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:body&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;gt; &lt;font color="#000000"&gt;tags inside the &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;...&amp;lt;/&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;em:alternate-view&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt; &lt;font color="#000000"&gt;element tags contain the alternate HTML view of the same message.&amp;nbsp; Here though I like to draw you attention to the template expression inside the image tag: &lt;/font&gt;[linked-resource:./Images/Logo.jpg] &lt;font color="#000000"&gt;The linked-resource expression embeds the resource, in this case&lt;/font&gt; ./Images/Logo.jpg&amp;nbsp; &lt;font color="#000000"&gt;directly in the email message being sent to the client, an returns a valid linked resource url that can be used directly by the &lt;font color="#0000ff"&gt;&amp;lt;&lt;font color="#993366"&gt;img&lt;/font&gt;&amp;gt;&lt;/font&gt; tags &lt;font color="#ff0000"&gt;src&lt;/font&gt; attribute.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="4"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;Sending corporate ready emails from your SharePoint, ASP.NET or .NET application has never been easier.&amp;nbsp; I did not get to the explaination of my &amp;ldquo;teaser&amp;rdquo; email at the start of this article, which includes&amp;nbsp;complete shopping cart data inside the email, however I do promise a Part Two of this article which will explain just how it was created.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;The complete source for all of the templates explained in this article, including the shopping cart email, and&amp;nbsp;sample code to create&amp;nbsp;send them,&amp;nbsp;can be found on the &lt;a href="http://support.daisley-harrison.com/wiki/EMailDownload.ashx"&gt;Email Library Download page&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font color="#000000"&gt;The complete user guide from the Email Library can be found on the &lt;a href="http://support.daisley-harrison.com/wiki/EmailUserGuide.ashx"&gt;Email Library User Guide page&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="1" color="#000000"&gt;&amp;copy; Copyright 2009 Aaron G. Daisley-Harrison &amp;ndash; All rights reserved&lt;/font&gt; 
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/QrdEMZaIhhg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/QrdEMZaIhhg/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Corporate-Ready-HTML-and-Plain-Text-Email-with-SmtpClient.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=1171bd51-1c0f-4029-8590-0bc1a21ab831</guid>
      <pubDate>Wed, 27 May 2009 01:25:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>.NET</category>
      <category>C#</category>
      <category>ASP.NET</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=1171bd51-1c0f-4029-8590-0bc1a21ab831</pingback:target>
      <slash:comments>124</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=1171bd51-1c0f-4029-8590-0bc1a21ab831</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Corporate-Ready-HTML-and-Plain-Text-Email-with-SmtpClient.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=1171bd51-1c0f-4029-8590-0bc1a21ab831</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=1171bd51-1c0f-4029-8590-0bc1a21ab831</feedburner:origLink></item>
    <item>
      <title>Displaying SharePoint Enhanced Rich Text Formatted (RTF) Text fields in Silverlight</title>
      <description>&lt;p&gt;Silverlight can be used to enhance the user experience for SharePoint users. Most data stored in SharePoint can be displayed directly by existing Silverlight controls and/or the controls available in the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;&amp;nbsp;available on &lt;a href="http://codeplex.com/"&gt;Codeplex&lt;/a&gt;.&amp;nbsp; The exception to this is the displaying of rich text formatted text field data.&amp;nbsp; RTF formatted text is stored in a simplified HTML format in SharePoint there current is no easy way to correctly display this type of text data in Silverlight&amp;hellip; until now.&lt;/p&gt;
&lt;p&gt;The primary mechanism for displaying text data in Silverlight is the TextBlock control.&amp;nbsp; The TextBlock control can be used for displaying text runs of changing fonts and decorations, such as bolding and underlines.&amp;nbsp; This means we can used the TextBlock control to represent &amp;ldquo;most&amp;rdquo; of the text data in a SharePoint RTF field, however, the simplified HTML used to represent RTF formated text in SharePoint can also contain hyper-links and images.&amp;nbsp; To correct represent all aspects of SharePoint RTF data we actual needed to create several different Silverlight controls.&lt;/p&gt;
&lt;p&gt;To correctly represent RTF text data we will need to parse the HTML mark-up from in each RTF text field and translate each HTML mark-up tag into an appropriate Silverlight control.&amp;nbsp; HTML data that conforms to HTML standards also conforms to generic XML standards, so you would assume that RTF text field data could also be parsed using the built-in XML document parser.&amp;nbsp; Unfortunately the HTML fragments used by SharePoint do not conform to the latest HTML standard.&amp;nbsp; RTF text data contains many tags that are not closed.&amp;nbsp; For example,&amp;nbsp; a line break tag that conforms to the latest HTML standard looks like this &amp;ldquo;&amp;lt;br/&amp;gt;&amp;rdquo;&amp;nbsp;, note the closing slash, which as pre the XML standard indicates that the br tag is closed, with no contained text or child tags.&amp;nbsp; The SharePoint RTF editor uses the HTML 1.0 version of this tag &amp;ldquo;&amp;lt;br&amp;gt;&amp;rdquo;&amp;nbsp; with no closing slash.&amp;nbsp; In fact, if you attempt to use the HTML 4.0 compliant tag &amp;ldquo;&amp;lt;br/&amp;gt;&amp;rdquo; the SharePoint text box editor will helpfully convert it back into the HTML 1.0 version &amp;ldquo;&amp;lt;br&amp;gt;&amp;rdquo;.&amp;nbsp; For HTML browsers this works just fine as they are able to easily read both HTML 1.0 and HTML 4.0 tags, however, the XML parser &lt;span style="text-decoration: underline;"&gt;requires&lt;/span&gt; that all tags fully conform to the XML standard, which requires that all open tags have a corresponding close tag, or that the opening tag contain a closing slash like our &amp;ldquo;&amp;lt;br/&amp;gt;&amp;rdquo; example.&amp;nbsp; This of course, means that the built-in XML parse cannot be used to parse SharePoint RTF text data.&lt;/p&gt;
&lt;p&gt;Previous attempts at creating Silverlight controls that can handle HTML data have relied on the browsers ability to parse.&amp;nbsp; This approach does work, however, in practise, the mechanism to do this appears to be very slow.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The approach taken here is to create an HTML parser to parse the simplified HTML used by the RTF text fields.&amp;nbsp; The HTML parser&amp;nbsp;will be constructed in three layers as follows:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=architecture.jpg" border="0" alt="Architecture" width="570" height="568" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;strong&gt;HtmlTextBlock Parser Layer #1&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The first step in parsing text is to create the ability to read the text one character at a time, provide the ability to &amp;ldquo;look ahead&amp;rdquo; one or more character, and keep track of where the parser is in the text stream, in terms of line number and column number, in case an error or warning needs to be reported to the user.&amp;nbsp; The StreamReader class is a convenient standard class for access text data one character at a time.&lt;/p&gt;
&lt;p&gt;In Siliverlight the following code appears to be the best way to initialize the stream reader:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;private&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;StreamReader&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; m_streamReader;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;MemoryStream&lt;span style="font-size: x-small;"&gt; stream = &lt;/span&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;new&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;MemoryStream&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;(&lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;UTF8Encoding&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;.UTF8.GetBytes(text),&lt;/span&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;false&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;
&lt;p&gt;m_streamReader = &lt;span style="color: #0000ff; font-size: x-small;"&gt;new&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;StreamReader&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;(stream, &lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;UTF8Encoding&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;.UTF8);&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Once the steam reader is initialized I like to wrap this layer of a text parser in a simple set of methods:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;
&lt;p&gt;char&lt;span style="font-size: x-small;"&gt; nextChar() &lt;/span&gt;a method to return one character a time and to track the character position it terms of line number and column number.&amp;nbsp; This method also has the ability to indicated when the end of stream has been reached by returning the &amp;ldquo;character&amp;rdquo;&amp;nbsp; EOF_CHAR or &amp;lsquo;\0&amp;rsquo;.&lt;/p&gt;
&lt;/span&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;void&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; pushChar(&lt;/span&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;char&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; c)&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;
&lt;p&gt;a method to push one character back into the character stream to provide the ability for the next level of the parser to "look ahead" one or more characters.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The code for these two functions can be seen below:&lt;/p&gt;
&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_0').style.display = document.getElementById('snippet_0').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: nextChar() and pushChar()&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_0" class="codeContainer"&gt;
        #region Parser Layer #1
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;int&lt;/span&gt; m_lineNumber;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;int&lt;/span&gt; m_columnNumber;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; Stack m_charStack = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Stack();
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; EOF_CHAR = '\0';
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// return one character a time and to track the character position it terms of line number and column&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; nextChar()
        {
            &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; c;
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_charStack.Count &amp;amp;gt; 0)
            {
                c = m_charStack.Pop();
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_streamReader.EndOfStream)
            {
                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; EOF_CHAR;
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                c = (&lt;span style="color:#0000FF"&gt;char&lt;/span&gt;)m_streamReader.Read();
            }
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (c == '\n')
            {
                m_lineNumber++;
                m_previousLineLength = m_columnNumber;
                m_columnNumber = 0;
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                m_columnNumber++;
            }
            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; c;
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;int&lt;/span&gt; m_previousLineLength = 0;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Push one charcater back into the character stream, and adjust current character position accordingly&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;c&amp;quot; /&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; pushChar(&lt;span style="color:#0000FF"&gt;char&lt;/span&gt; c)
        {
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (c == '\n')
            {
                m_lineNumber--;
                m_columnNumber = m_previousLineLength;
                m_previousLineLength = 80; &lt;span style="color:#008000"&gt;//Supports stepping back over one line only&lt;/span&gt;
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                m_columnNumber--;
            }
            m_charStack.Push(c);
        }

        #endregion
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_0').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;Note one of the tricks used in the pushChar() method is the use of the private variable m_previousLineLength. This allows pushChar to correctly restore that correct column across one carriage return.&amp;nbsp; The method could be made more generic to allow more that one carriage return to be pushed back into the character stream, but this is not really neccsary for the type of parsing we are going to do here.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;strong&gt;HtmlTextBlock Parser layer #2&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The next layer of our parser will be responsible for parsing the HTML tags and HTML entities such as &amp;ldquo;&amp;amp;amp;&amp;rdquo; etc.&amp;nbsp; I have wrapped this layer in three methods:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;HtmlNode&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #2b91af;"&gt; &lt;/span&gt;NextNode()&lt;/span&gt; - read and remove the next node from the node stream.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;HtmlNode&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; PeekNode()&lt;/span&gt; - read the next node in the node stream, but do not remove it.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;void&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; PushNode(&lt;/span&gt;&lt;span style="color: #2b91af; font-size: x-small;"&gt;HtmlNode&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; node)&lt;/span&gt;- Push an HtmlNode back into the node stream (in last-in-first-out order).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The HtmlNode class has just a few important properties.&amp;nbsp; The UML class diagram for the HtmlNode class is as follows:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=HtmlNode.jpg" border="0" alt="HtmlNode" width="268" height="220" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;Type represents the type node returned, possible values are Element, EndElement, Text, Whitespace, and EOF.&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;LocalName is the local name of the tag (the tag name, not including the namespace).&lt;/p&gt;
&lt;p align="left"&gt;Prefix is the UML prefix associated with the name.&amp;nbsp; The prefix represents the short hand name of the namespace.&lt;/p&gt;
&lt;p align="left"&gt;Value is the text value of the node, if applicable.&lt;/p&gt;
&lt;p align="left"&gt;NormalizedValue the XML normalized version of the text value of the node, if applicable. (All whitespace is reduced to a single space).&lt;/p&gt;
&lt;p align="left"&gt;The code for this layer can be seen here:&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_1').style.display = document.getElementById('snippet_1').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: parser layer #2&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_1" class="codeContainer"&gt;
        #region Parser Layer #2
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; Stack m_nodeStack = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Stack();

        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Push an HtmlNode back into the node stream (in last-in-first-out order).&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;node&amp;quot; /&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; PushNode(HtmlNode node)
        {
            m_nodeStack.Push(node);
        }
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Return the next HtmlNode but do not remove it from the node stream&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; HtmlNode PeekNode()
        {
            HtmlNode node;
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_nodeStack.Count &amp;amp;gt; 0)
            {
                node = m_nodeStack.Peek();
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                node = parseNode();
                m_nodeStack.Push(node);
            }
            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; node;
        }
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Return the next HtmlHode&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; HtmlNode NextNode()
        {
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_nodeStack.Count &amp;amp;gt; 0)
            {
                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; m_nodeStack.Pop();
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; parseNode();
            }
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;enum&lt;/span&gt; ParseModes
        {
            Whitespace = 0x01,
            Text = 0x02,
            Element = 0x04,
            Name = 0x08,
            Value = 0x10,
            QuotedValue = 0x30,

        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; ParseModes m_parseMode;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; parseEntity()
        {
            StringBuilder entity = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; StringBuilder(&amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;amp;&lt;/span&gt;&amp;quot;);
            &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; c;
            &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((c = nextChar()) != EOF_CHAR)
            {
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;char&lt;/span&gt;.IsLetterOrDigit(c) || c == '-' || c == '_')
                {
                    entity.Append(c);
                }
                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (c == ';')
                {
                    &lt;span style="color:#008000"&gt;//end of entity&lt;/span&gt;
                    entity.Append(c);
                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; entity.ToString();
                }
                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                {

                    &lt;span style="color:#008000"&gt;//Not an entity&lt;/span&gt;

                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;; 
                }
            }
            &lt;span style="color:#008000"&gt;//not an entity&lt;/span&gt;

            &lt;span style="color:#0000FF"&gt;for&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;int&lt;/span&gt; i = entity.Length - 1; i &amp;amp;gt; 0; i--)
            {
                pushChar(entity[i]);
            }
            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;amp;&lt;/span&gt;&amp;quot;;
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; HtmlNode m_currentElement; &lt;span style="color:#008000"&gt;//Holds turn current element node during the processing of the entire element, and it's attributes.&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; HtmlNode parseNode()
        {
            &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; openQuoteChar = 'x';
            StringBuilder &lt;span style="color:#0000FF"&gt;value&lt;/span&gt; = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; StringBuilder();
            StringBuilder localName = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; StringBuilder();
            StringBuilder prefix = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; StringBuilder();
            HtmlNodeType nodeType = HtmlNodeType.Unknown;
            &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; c;
            &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((c = nextChar()) != EOF_CHAR)
            {
                &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (c)
                {
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '&amp;amp;lt;':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                pushChar(c);
                                handleUnexpectedCharacter(c);
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Text, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Element;
                                nodeType = HtmlNodeType.Element;
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Element;
                                nodeType = HtmlNodeType.Element;
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        handleUnexpectedCharacter(c);
                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '&amp;amp;gt;':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                                m_parseMode = ParseModes.Whitespace;
                                m_currentElement = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType != HtmlNodeType.Unknown)
                                {
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                                m_parseMode = ParseModes.Whitespace;
                                m_currentElement = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Unknown)
                                {
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString());
                                }
                                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                {
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString());
                                }
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                                m_parseMode = ParseModes.Whitespace;
                                m_currentElement = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Text, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Element;
                                nodeType = HtmlNodeType.Element;
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Text;
                                nodeType = HtmlNodeType.Text;
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        handleUnexpectedCharacter(c);
                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '/':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (prefix.Length == 0 || localName.Length == 0)
                                {
                                    &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Element)
                                    {
                                        nodeType = HtmlNodeType.EndElement;
                                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                                    }
                                }
                                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                {
                                    &lt;span style="color:#0000FF"&gt;char&lt;/span&gt; next = nextChar();
                                    &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (next == '&amp;amp;gt;')
                                    {
                                        m_parseMode = ParseModes.Whitespace;
                                        &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_currentElement == &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
                                        {
                                            handleError(&amp;quot;&lt;span style="color:#8B0000"&gt;Implied EndElement node with no corresponding Element node&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;);
                                        }
                                        &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                        {
                                            &lt;span style="color:#008000"&gt;//Create the implied EndElement node&lt;/span&gt;
                                            HtmlNode closeTag = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.EndElement, m_currentElement.Prefix, m_currentElement.LocalName);
                                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Unknown)
                                            {

                                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; closeTag;
                                            }
                                            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                            {
                                                PushNode(closeTag);
                                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                            }
                                        }
                                    }
                                }
                                handleUnexpectedCharacter(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                                pushChar(c);
                                m_parseMode = ParseModes.Element;
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString());
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                                pushChar(c);
                                m_parseMode = ParseModes.Element;
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                        }
                        &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '&amp;quot;&lt;span style="color:#8B0000"&gt;':
&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '\'':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length == 0)
                                {
                                    openQuoteChar = c;
                                    m_parseMode = ParseModes.QuotedValue;
                                    &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                                }
                                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                {
                                    m_parseMode = ParseModes.Element;
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (c == openQuoteChar)
                                {
                                    m_parseMode = ParseModes.Element;
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                                {
                                    &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                    &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                                }
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                                handleUnexpectedCharacter(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '&amp;amp;amp;':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Text;
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(parseEntity());
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(parseEntity());
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        handleUnexpectedCharacter(c);
                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '.':
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '-':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    pushChar(c);
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Text;
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        handleUnexpectedCharacter(c);
                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ';':
                        &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;

                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ':':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (prefix.Length &amp;amp;gt; 0)
                                {
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                }
                                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (localName.Length &amp;amp;gt; 0)
                                {
                                    prefix.Append(localName.ToString());
                                    localName.Length = 0;
                                    &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                                }
                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        }
                        handleUnexpectedCharacter(c);
                        &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '\t':
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ' ':
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '\r':
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '\n':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                                m_parseMode = ParseModes.Element;
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (localName.Length &amp;amp;gt; 0)
                                {
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                                m_parseMode = ParseModes.Element;
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Element || nodeType == HtmlNodeType.EndElement)
                                {
                                    m_currentElement = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, prefix.ToString(), localName.ToString());
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; m_currentElement;
                                }
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; '=':
                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                        {
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                                m_parseMode = ParseModes.Value;
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                                {
                                    &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                                }
                                m_parseMode = ParseModes.Element;
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                                handleUnexpectedCharacter(c);
                                &lt;span style="color:#0000FF"&gt;continue&lt;/span&gt;;
                        }
                        &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                }
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;char&lt;/span&gt;.IsLetterOrDigit(c) || c == '_')
                {
                    &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                    {
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                            localName.Append(c);
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Unknown)
                            {
                                nodeType = HtmlNodeType.Attribute;
                            }
                            m_parseMode = ParseModes.Name;
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                            localName.Append(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                            {
                                pushChar(c);
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                            }
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (nodeType == HtmlNodeType.Unknown)
                            {
                                nodeType = HtmlNodeType.Text;
                            }
                            m_parseMode = ParseModes.Text;
                            &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    }
                }
                &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                {
                    &lt;span style="color:#008000"&gt;//Some kind of sepparator&lt;/span&gt;

                    &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (m_parseMode)
                    {
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Element:
                            handleUnexpectedCharacter(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Name:
                            handleUnexpectedCharacter(c);
                            m_parseMode = ParseModes.Element;
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Value:
                            pushChar(c);
                            m_parseMode = ParseModes.Element;
                            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Attribute, prefix.ToString(), localName.ToString(), &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.QuotedValue:
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Text:
                            &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ParseModes.Whitespace:
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
                            {
                                pushChar(c);
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.Whitespace, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
                            }
                            m_parseMode = ParseModes.Text;
                            &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Append(c);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    }
                }
            }
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.Length &amp;amp;gt; 0)
            {
                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(nodeType, &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;.ToString());
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlNode(HtmlNodeType.EOF);
            }
        }
        #endregion
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_1').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;strong&gt;HtmlTextBlock Parser layer #3&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The third layer of the parser reads the HTML node stream and converts it into a set of Silverlight controls.&amp;nbsp;&amp;nbsp; Parsing HTML nodes into corresponding Silverlight controls is relatively straight forward if you don&amp;rsquo;t have to worry about HTML style such as padding, margins, font size and font decorations.&amp;nbsp;&amp;nbsp; To simplify the parsing and displaying the correct style in Silverlight I decided to create a specialized HtmlStyle class to manage style and a set of custom Silverlight controls to mirror the functionality of each HTML tag.&amp;nbsp; The following UML class diagram represents the HtmlStyle class:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://blog.daisley-harrison.com/blog/image.axd?picture=2009%2f4%2fHtmlStyle.jpg" alt="" width="224" height="528" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;The main functionality of the HtmlStyle class is to replicate the cascading effect of HTML CSS style definitions.&amp;nbsp; So HtmlStyle instance are created in a parent-child hierarchy and as HTML tags are encountered the latest HtmlStyle is managed by pushing and popping HtmlStyle objects on and off of a stack.&amp;nbsp; Each attribute or property of the HtmlStyle class either has an assigned value or the value is retrieved from it&amp;rsquo;s parent HtmlStyle.&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;The following table shows the HTML tag and the corresponding Silverlight control used to render it, as well as the base Silverlight class that it is derived from:&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="backgroud-color: cornsilk" border="1"&gt;
&lt;thead&gt;
&lt;tr style="backgroud-color: gray"&gt;
&lt;th&gt;HTML Tag&lt;/th&gt;&lt;th&gt;Rendering Control&lt;/th&gt;&lt;th&gt;base class&lt;/th&gt;&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;a&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlAnchor&lt;/td&gt;
&lt;td&gt;HyperlinkButton&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;b&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with FontWieght set to&amp;nbsp;Bold.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;blockquote&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlBlockQuote&lt;/td&gt;
&lt;td&gt;HtmlDiv&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;br&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlLineBreak&lt;/td&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;div&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlDiv&lt;/td&gt;
&lt;td&gt;Panel&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;em&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with FontStyle set to&amp;nbsp;Italic.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;font&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with all appropriate style properties set.&amp;nbsp; If the style defines a background, and additional HtmlDiv element is created to allow background to show up correctly.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;i&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with FontStyle set to&amp;nbsp;Italic.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;img&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlImg&lt;/td&gt;
&lt;td&gt;Canvas&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;p&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlAnchor&lt;/td&gt;
&lt;td&gt;HyperlinkButton&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;strong&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with FontWieght set to&amp;nbsp;ExtraBold.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;u&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlStyle&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;An HtmlStyle object is created with TextDecorations set to&amp;nbsp;Underline.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;ol&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlOrderedList&lt;/td&gt;
&lt;td&gt;HtmlList&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;ul&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlUnorderedList&lt;/td&gt;
&lt;td&gt;HtmlList&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;li&amp;gt;&lt;/td&gt;
&lt;td&gt;HtmlListItem&lt;/td&gt;
&lt;td&gt;StackPanel&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;HtmlList&lt;/td&gt;
&lt;td&gt;StackPanel&lt;/td&gt;
&lt;td&gt;This is the generic base class for HtmlOrderedList and HtmlListItem.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;whitespace and text&lt;/td&gt;
&lt;td&gt;TextBlock / Run&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;All whitespace and text is represented using standard Silverlight TextBlock and Run classes.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The most interesting part of the code for level #3 can be seen here:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_2').style.display = document.getElementById('snippet_2').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: TextBlock parser level #3 code&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_2" class="codeContainer"&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; Stack m_elementStack = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Stack();
        UIElement m_current = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
        TextBlock m_currentTextBlock = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; AddInline(HtmlStyle style, Inline &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;)
        {
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_currentTextBlock == &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
            {
                TextBlock textBlock = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; TextBlock();
                style.Set(textBlock);
                AddElement(textBlock);
            }
            m_currentTextBlock.Inlines.Add(&lt;span style="color:#0000FF"&gt;value&lt;/span&gt;);
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; AddElement(UIElement element)
        {
            m_currentTextBlock = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
            &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; (!(m_current &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; Panel || m_current &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; ContentControl))
            {
                PopElement();
            }
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_current &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; Panel)
            {
                Panel panel = m_current &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; Panel;
                panel.Children.Add(element);
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_current &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; ContentControl)
            {
                ContentControl contentControl = m_current &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; ContentControl;
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (contentControl.Content == &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
                {
                    contentControl.Content = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlDiv();
                }
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (contentControl.Content &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; HtmlDiv)
                {
                    HtmlDiv htmlDiv = contentControl.Content &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; HtmlDiv;
                    htmlDiv.Children.Add(element);
                }
            }
            m_elementStack.Push(m_current);
            m_current = element;
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_current &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; TextBlock)
            {
                m_currentTextBlock = m_current &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; TextBlock;
            }
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; PopElement()
        {
            m_current = m_elementStack.Pop();
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (m_currentTextBlock != &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
            {
                m_current = m_elementStack.Pop();
                m_currentTextBlock = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
            }
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; parseAllStyleAttributes(HtmlParser parser, HtmlStyle style)
        {
            HtmlNode node;
            &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((node = parser.NextNode()).Type == HtmlNodeType.Attribute)
            {
                Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Attribute = &lt;/span&gt;&amp;quot; + node);
                parseStyleAttribute(node,style);
            }
            parser.PushNode(node);
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; parseStyleAttribute(HtmlNode node, HtmlStyle style)
        {
            &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; attributeName = node.LocalName.ToUpper();
            &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (attributeName)
            {
                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_ALIGN:
                    style.SetAlign(node.Value);
                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_VALIGN:
                    style.SetVAlign(node.Value);
                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_SIZE:
                    style.SetFontSize(node.Value);
                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_STYLE:
                    style.SetStyle(node.Value);
                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_COLOR:
                    style.SetColor(node.Value);
                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
            }
        }
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; parseText(&lt;span style="color:#0000FF"&gt;string&lt;/span&gt; text)
        {
            &lt;span style="color:#0000FF"&gt;this&lt;/span&gt;.Children.Clear();
            m_elementStack.Clear();
            HtmlDiv root = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlDiv();
            m_current = root;
            m_currentTextBlock = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;

            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (text != &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
            {
                HtmlStyle style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle();
                HtmlParser parser = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlParser(text);
                HtmlNode node;
                &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((node = parser.NextNode()).Type != HtmlNodeType.EOF)
                {
                    Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;HtmlNode = &lt;/span&gt;&amp;quot; + node);
                    &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; elementName = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                    &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (node.Type)
                    {
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; HtmlNodeType.Element:
                            elementName = node.LocalName.ToUpper();
                            &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (elementName)
                            {
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_A:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.TextDecorations = System.Windows.TextDecorations.Underline;
                                    style.Foreground = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; SolidColorBrush { Color = Colors.Blue };
                                    HtmlAnchor newAnchor = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlAnchor();
                                    newAnchor.HtmlStyle = style;
                                    &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((node = parser.NextNode()).Type == HtmlNodeType.Attribute)
                                    {
                                        Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Attribute = &lt;/span&gt;&amp;quot; + node);
                                        &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; attributeName = node.LocalName.ToUpper();
                                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (attributeName)
                                        {
                                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_HREF:
                                                newAnchor.NavigateUri = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Uri(node.Value, UriKind.RelativeOrAbsolute);
                                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                            &lt;span style="color:#0000FF"&gt;default&lt;/span&gt;:
                                                parseStyleAttribute(node, style);
                                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                        }
                                    }
                                    parser.PushNode(node);
                                    AddElement(newAnchor);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_B:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.FontWeight = FontWeights.Bold;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_BLOCKQUOTE:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    parseAllStyleAttributes(parser, style);
                                    HtmlBlockQuote newBlockQuote = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlBlockQuote();
                                    newBlockQuote.HtmlStyle = style;
                                    AddElement(newBlockQuote);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_BR:
                                    AddElement(&lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlLineBreak());
                                    PopElement();
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_DIV:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    parseAllStyleAttributes(parser, style);
                                    HtmlDiv newDiv = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlDiv();
                                    newDiv.HtmlStyle = style;
                                    AddElement(newDiv);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_EM:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.FontStyle = FontStyles.Italic;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_I:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.FontStyle = FontStyles.Italic;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_FONT:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    parseAllStyleAttributes(parser, style);
                                    &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (style.DefinesBackground)
                                    {
                                        &lt;span style="color:#008000"&gt;//Can only support background color with a div&lt;/span&gt;
                                        HtmlDiv backgroundDiv = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlDiv();
                                        backgroundDiv.HtmlStyle = style;
                                        AddElement(backgroundDiv);
                                    }
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_IMG:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    HtmlImg newHtmlImg = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlImg();
                                    &lt;span style="color:#0000FF"&gt;while&lt;/span&gt; ((node = parser.NextNode()).Type == HtmlNodeType.Attribute)
                                    {
                                        Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Attribute = &lt;/span&gt;&amp;quot; + node);
                                        &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; attributeName = node.LocalName.ToUpper();
                                        &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (attributeName)
                                        {
                                            &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ATTRIBUTE_SRC:
                                                newHtmlImg.ImageSrc = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Uri(node.Value, UriKind.RelativeOrAbsolute);
                                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                            &lt;span style="color:#0000FF"&gt;default&lt;/span&gt;:
                                                parseStyleAttribute(node, style);
                                                &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                        }
                                    }
                                    parser.PushNode(node);
                                    newHtmlImg.HtmlStyle = style;
                                    AddElement(newHtmlImg);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_LI:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    HtmlListItem newListItem = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlListItem();
                                    newListItem.HtmlStyle = style;
                                    AddElement(newListItem);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_OL:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    HtmlOrderedList newOrderedList = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlOrderedList();
                                    newOrderedList.HtmlStyle = style;
                                    AddElement(newOrderedList);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_UL:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    HtmlUnorderedList newUnorderedList = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlUnorderedList();
                                    newUnorderedList.HtmlStyle = style;
                                    AddElement(newUnorderedList);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_P:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    parseAllStyleAttributes(parser, style);
                                    HtmlParagraph paragraph = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlParagraph();
                                    AddElement(paragraph);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_STRONG:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.FontWeight = FontWeights.ExtraBold;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_U:
                                    style = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlStyle(style);
                                    style.TextDecorations = TextDecorations.Underline;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;default&lt;/span&gt;:
                                    Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Unimplemented Element = &lt;/span&gt;&amp;quot; + node);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                            }
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; HtmlNodeType.EndElement:
                            elementName = node.LocalName.ToUpper();
                            &lt;span style="color:#0000FF"&gt;switch&lt;/span&gt; (elementName)
                            {
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_A:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_BLOCKQUOTE:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_DIV:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_IMG:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_LI:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_OL:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_P:
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_UL:
                                    style = style.Parent;
                                    PopElement();
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_B:
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_BR:
                                    AddElement(&lt;span style="color:#0000FF"&gt;new&lt;/span&gt; HtmlLineBreak());
                                    PopElement();
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_EM:
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_FONT:
                                    &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (style.DefinesBackground)
                                    {
                                        PopElement();
                                    }
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_I:
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_STRONG:
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; ELEMENT_U:
                                    style = style.Parent;
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                                &lt;span style="color:#0000FF"&gt;default&lt;/span&gt;:
                                    Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Unimplemented EndElement = &lt;/span&gt;&amp;quot; + node);
                                    &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                            }
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; HtmlNodeType.Whitespace:
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;case&lt;/span&gt; HtmlNodeType.Text:
                            Run run = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Run();
                            run.Text = s_entityResolver.ResolveAllEntities(node.NormalizedValue);
                            style.Set(run);
                            AddInline(style,run);
                            &lt;span style="color:#0000FF"&gt;break&lt;/span&gt;;
                    }
                }
            }
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (root != &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:#0000FF"&gt;this&lt;/span&gt;.Children.Add(root);
            }
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_2').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;pre&gt;To test this control I created a SharePoint list with an enhanced rich text field.  Here is what the column looked like on my development SharePoint site:
&lt;/pre&gt;
&lt;pre&gt;&lt;div style="text-align: center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=SharepointRTFEditor.jpg" border="0" alt="SharepointRTFEditor" width="419" height="343" /&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;pre&gt;If you look at the raw HTML generated for this column it look like this:
&lt;/pre&gt;
&lt;pre&gt;&lt;div style="text-align: center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=rtfexample.png" border="0" alt="Rtfexample" width="496" height="546" /&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;pre&gt;Now here is what it looked like in an instantiation of the HtmlTextBlock control in Silverlight:
&lt;/pre&gt;
&lt;pre&gt;&lt;div style="text-align: center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=displayExample.png" border="0" alt="DisplayExample" width="506" height="322" /&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;pre&gt;Note that above UI is a little crude, the HtmlTextBlock control was used to format only the the middle part of the above image.
&lt;/pre&gt;
&lt;pre&gt;The complete source for the HtmlTextBlock control can be found here: 
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2009%2f5%2fDaisleyHarrison.Silverlight.HtmlTextBlock.v2.zip"&gt;DaisleyHarrison.Silverlight.HtmlTextBlock.v2.zip (774.80 kb)&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/9v-KoOoY98o" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/9v-KoOoY98o/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Displaying-SharePoint-Rich-Text-Formated-(RTF)-Text-fields-in-Silverlight.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=10285f91-efb8-4a64-9b24-5c2921342014</guid>
      <pubDate>Wed, 29 Apr 2009 02:56:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>C#</category>
      <category>SharePoint</category>
      <category>Silverlight</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=10285f91-efb8-4a64-9b24-5c2921342014</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=10285f91-efb8-4a64-9b24-5c2921342014</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Displaying-SharePoint-Rich-Text-Formated-(RTF)-Text-fields-in-Silverlight.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=10285f91-efb8-4a64-9b24-5c2921342014</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=10285f91-efb8-4a64-9b24-5c2921342014</feedburner:origLink></item>
    <item>
      <title>Practical Silverlight and SharePoint Integration: Part Four</title>
      <description>&lt;p&gt;
In &lt;a href="http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx"&gt;Part Three&lt;/a&gt;&amp;nbsp;of this series we continued to expand our sample Silverlight/SharePoint list application by adding an additional call to retrieve list detail.&amp;nbsp; In&amp;nbsp;this article we will use the results of our call for list detail to determine which columns should be displayed when we retrieve SharePoint list items.&amp;nbsp; To simplify list item data retrieve we will also explorer a SharePointList helper class that is useful for building CAML queries and encapsulating list items results. 
&lt;/p&gt;
&lt;p&gt;
So far the calls we have made from our Silverlight application to the SharePoint lists web services have require only simple parameters.&amp;nbsp; Our first call to GetListCollectionAsync required no parameters. Our call to GetListAsync required only the name of the list.&amp;nbsp; Now we will up the anti and make calls to GetListItemsAsync. 
&lt;/p&gt;
&lt;p&gt;
GetListItemsAsync requires the caller to specify the name of the list, the view name, the fields to return, a CAML query, and other options. 
&lt;/p&gt;
&lt;p&gt;
The method looks like this: 
&lt;/p&gt;
&lt;font size="2" color="#2b91af"&gt;
&lt;p&gt;
ListsSoapClient.GetListitemsAsync( string &lt;font color="#000000"&gt;listName&lt;/font&gt;, string &lt;font color="#000000"&gt;viewName&lt;/font&gt;, XElement &lt;font color="#000000"&gt;query&lt;/font&gt;, XElement &lt;font color="#000000"&gt;viewFields&lt;/font&gt;, string &lt;font color="#000000"&gt;rowLimit&lt;/font&gt;, XElement &lt;font color="#000000"&gt;queryOptions&lt;/font&gt;, string &lt;font color="#000000"&gt;webID&lt;/font&gt;, object &lt;font color="#000000"&gt;userState&lt;/font&gt; ) 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/font&gt;
&lt;table border="0" style="padding: 5px"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th&gt;Parameter&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;string&lt;/font&gt; listName&lt;/td&gt;
			&lt;td&gt;The name of the list from which to retrieve list items.&amp;nbsp; This can be either the list title or a GUID surrounded by curly braces e.g. &amp;ldquo;UserInfo&amp;rdquo; or &amp;ldquo;{D5098B8F-1C04-4dc7-AB86-65AD591A008B}&amp;rdquo;.&amp;nbsp; Though the MSDN documents recommend using a GUID here instead of the actual list name, you should note that SharePoint list GUIDs are unique for each site implementation.&amp;nbsp; If you are writing Silverlight components to be used on multiple SharePoint sites,&amp;nbsp; the use of list names is a little more portable.&amp;nbsp; If you insist on using a list GUID, you should retrieve the list GUID by first calling the GetList method.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;string&lt;/font&gt; viewName&lt;/td&gt;
			&lt;td&gt;The GUID, surrounded by curly braces,&amp;nbsp;of the view used to retrieve list items.&amp;nbsp; Setting the viewName to string.empty or &amp;ldquo;&amp;rdquo; causes the default view for the specified list to be used.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;XElement&lt;/font&gt; query&lt;/td&gt;
			&lt;td&gt;
			&lt;p&gt;
			A SharePoint CAML query.&amp;nbsp; Microsoft&amp;rsquo;s reference for the CAML query language can be found here: &lt;a href="http://msdn.microsoft.com/en-us/library/aa134893.aspx"&gt;CAML Overview&lt;/a&gt;.&amp;nbsp; The CAML query used here starts with the &amp;lt;Query&amp;gt; element.&amp;nbsp; For example:&lt;br /&gt;
			&lt;font color="#993366"&gt;&amp;lt;Query&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OrderBy&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldRef Name=&amp;rdquo;Name&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/OrderBy&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Where&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Or&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Eq&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldRef Name=&amp;rdquo;Status&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Value DataType=&amp;rdquo;Text&amp;rdquo;&amp;gt;Completed&amp;lt;/Value&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Eq&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IsNull&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldRef Name=&amp;rdquo;Status&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/IsNull&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Or&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Where&amp;gt;&lt;br /&gt;
			&amp;lt;/Query&amp;gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;XElement&lt;/font&gt; viewFields&lt;/td&gt;
			&lt;td&gt;
			&lt;p&gt;
			This fields to be returned for each list item found.&amp;nbsp; If null, all fields of the view will be returned.&lt;br /&gt;
			This xml fragment is of the form: &lt;br /&gt;
			&lt;font color="#993366"&gt;&amp;lt;ViewFields&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldRef Name=&amp;rdquo;field1-name&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldRef Name=&amp;rdquo;field2-name&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldRef Name=&amp;rdquo;fieldN-name&amp;rdquo;/&amp;gt;&lt;br /&gt;
			&amp;lt;/ViewFields&amp;gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;string&lt;/font&gt; rowLimit&lt;/td&gt;
			&lt;td&gt;A string representation of the maximum number of list items to be returned, or an empty string, if unspecified.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;XElement&lt;/font&gt; queryOptions&lt;/td&gt;
			&lt;td&gt;
			&lt;p&gt;
			A null if not specified, or an xml fragment containing a list of parameter setting based on the parameter of the SharePoint SPQuery object.&amp;nbsp; SPQuery parameter documentation can be found here: &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery_properties.aspx"&gt;SPQuery&lt;/a&gt;.&lt;br /&gt;
			For example:&lt;br /&gt;
			&lt;font color="#993366"&gt;&amp;lt;QueryOptions&amp;gt;&lt;br /&gt;
			&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ExpandUserField&amp;gt;True&amp;lt;/ExpandUserField&amp;gt;&lt;br /&gt;
			&amp;lt;/QueryOptions&amp;gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;string&lt;/font&gt; webID&lt;/td&gt;
			&lt;td&gt;The GUID it of the SharePoint parent web site that contains the list, or a null if the site specified by the url of the web service should be used.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="right" valign="top"&gt;&lt;font color="#3366ff"&gt;object&lt;/font&gt; userState&lt;/td&gt;
			&lt;td&gt;Any object that you wish to be passed to the asynchronous event handler that wil be called when this async method completes.&amp;nbsp; userState be null.&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;The Microsoft MSDN documentation for this method can be found here: &lt;a href="http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx"&gt;Lists.GetListitems method&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;Now that we know what method to use to enumerate list items from a SharePoint list, the next step is to modify the user interface of the application from &lt;a href="http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx"&gt;Part Three&lt;/a&gt;&amp;nbsp; of this series to allow us to select a list then view the list items.&amp;nbsp; You will note that I have also added some additional radio buttons and check boxes toggle between list detail and list items or show the data as raw xml or in list format.&amp;nbsp; I&amp;rsquo;ve added the &amp;ldquo;All&amp;rdquo; check box to toggle between passing a null value for the viewFields parameter (returns all fields) or a list of standard fields.&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;img style="border-width: 1px" src="http://blog.daisley-harrison.com/blog/file.axd?file=PageA.png" border="0" alt="PageA" width="533" height="300" /&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;&amp;nbsp;The XAML code to display this page is a follows:&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_3').style.display = document.getElementById('snippet_3').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;XML-Code: XMAL Code&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_3" class="codeContainer"&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt; &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;basics&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Class&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;SharePointListExample.Page&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;x&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;local&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:SharePointListExample&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;525&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Height&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#C71585"&gt;local&lt;/span&gt;:&lt;span style="color:#800000"&gt;XAttributeConverter&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Key&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;FromXAttribute&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Key&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;ListDataTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=Title}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Key&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;ListItemTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_Title}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_ID}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_Last_x0020_Modified}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_Editor}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_Created}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=ows_Author}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MaxHeight&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;auto&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListOfLists&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;ItemTemplate&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{StaticResource ListDataTemplate}&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;SelectionChanged&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListOfLists_SelectionChanged&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Height&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;32&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,5,5,5&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RadioButton&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;rbListDetail&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;List Detail&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsChecked&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Checked&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;rbListDetail_Checked&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RadioButton&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;rbListItems&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;List Items&amp;quot;&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Checked&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;rbListItems_Checked&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;CheckBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;cbAll&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;All&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsChecked&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Click&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;cbAll_Click&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;CheckBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;cbRaw&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Raw&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsChecked&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Click&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;cbRaw_Click&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;viewOutput&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;HorizontalScrollBarVisibility&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Visible&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtOutput&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsReadOnly&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;viewListItems&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;HorizontalScrollBarVisibility&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Visible&amp;quot;&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;Visibility&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Collapsed&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListItems&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;ItemTemplate&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{StaticResource ListItemTemplate}&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,5,5,5&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,5,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;Sharepoint Url:&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MinWidth&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtSharePointUrl&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://mysharepointserver.com/sites/mysite&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Button&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Go&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Click&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo_Click&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_3').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;Next we need to modify the list selection changed event handler, from &lt;a href="http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx"&gt;Part Three&lt;/a&gt;, to now call GetListItemsAsync when a list is selected. The original code looked like this: 
&lt;/p&gt;
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_4').style.display = document.getElementById('snippet_4').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: original list selection changed event handler&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_4" class="codeContainer"&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; lbxListOfLists_SelectionChanged(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; XElement)
                {
                    XElement listItem = lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; XElement;
                    &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; listName = listItem.Attribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Title&lt;/span&gt;&amp;quot;).Value;
                    ListsSoapClient listsSoapClient = createListsSoapClient();
                    listsSoapClient.GetListCompleted += &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; EventHandler&amp;lt;GetListCompletedEventArgs&amp;gt;(listsSoapClient_GetListCompleted);
                    listsSoapClient.GetListAsync(listName);
                }


            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
                handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;getList Failed&lt;/span&gt;&amp;quot;, exception);
            }
        }

}
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_4').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
In order to support the new radio buttons and check boxes I extracted the call to the listsSoapClient and created a new updateListDetailPanel() function to make the call based on the option selected by the user. The orginally call to listsSoapClient is now in it&amp;#39;s own method, called getListDetail. The code to make the new call to GetListItemsAsync is in the getListItems method. Note that when the &amp;quot;All&amp;quot; check box is checked a null is passed to the viewFields parameter which causes all fields specified in the view to be returned. When the &amp;quot;All&amp;quot; check box is unchecked a only a select subset of the standard SharePoint built-in fields are returned. &lt;br /&gt;
The new code looks like this: 
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_5').style.display = document.getElementById('snippet_5').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: new list selection changed event handler&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_5" class="codeContainer"&gt;        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Get the list details by calling GetListAsync&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;listName&amp;quot;&amp;gt;The name of the list&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; getListDetail(&lt;span style="color:#0000FF"&gt;string&lt;/span&gt; listName)
        {
            ListsSoapClient listsSoapClient = createListsSoapClient();
            listsSoapClient.GetListCompleted += &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; EventHandler&amp;lt;GetListCompletedEventArgs&amp;gt;(listsSoapClient_GetListCompleted);
            listsSoapClient.GetListAsync(listName);
        }
        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Get the list items by calling GetListeItemsAsync&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;listName&amp;quot;&amp;gt;The name of the list&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; getListItems(&lt;span style="color:#0000FF"&gt;string&lt;/span&gt; listName)
        {
            ListsSoapClient listsSoapClient = createListsSoapClient();
            listsSoapClient.GetListItemsCompleted += &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; EventHandler&amp;lt;GetListItemsCompletedEventArgs&amp;gt;(listsSoapClient_GetListItemsCompleted);
            XElement query = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;Query&lt;/span&gt;&amp;quot;,
                                    &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;OrderBy&lt;/span&gt;&amp;quot;,
                                            &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;ID&lt;/span&gt;&amp;quot;))));
            XElement viewFields;
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (cbAll.IsChecked.HasValue &amp;amp;&amp;amp; cbAll.IsChecked.Value)
            {
                &lt;span style="color:#008000"&gt;//get all fields&lt;/span&gt;

                viewFields = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
            {
                &lt;span style="color:#008000"&gt;//get some of the standard fields&lt;/span&gt;

                viewFields = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;ViewFields&lt;/span&gt;&amp;quot;,
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;Title&lt;/span&gt;&amp;quot;)),
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;ID&lt;/span&gt;&amp;quot;)),
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;Modified&lt;/span&gt;&amp;quot;)),
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;Editor&lt;/span&gt;&amp;quot;)),
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;Created&lt;/span&gt;&amp;quot;)),
                        &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XElement(&amp;quot;&lt;span style="color:#8B0000"&gt;FieldRef&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; XAttribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Name&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8B0000"&gt;Author&lt;/span&gt;&amp;quot;)));
            }
            listsSoapClient.GetListItemsAsync(listName, &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;.Empty, query, viewFields, &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;.Empty, &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;, &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;);
        }
        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Called to display the details for a selected list&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;listData&amp;quot;&amp;gt;The XElement code holding the currently selected list data&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; updateListDetailPanel(XElement listData)
        {
            &lt;span style="color:#0000FF"&gt;this&lt;/span&gt;.currentListData = listData;

            &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; listName = listData.Attribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Title&lt;/span&gt;&amp;quot;).Value;

            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (rbListDetail.IsChecked.HasValue &amp;amp;&amp;amp; rbListDetail.IsChecked.Value)
            {
                getListDetail(listName);
            }
            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (rbListItems.IsChecked.HasValue &amp;amp;&amp;amp; rbListItems.IsChecked.Value)
            {
                getListItems(listName);
            }
        }
        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Called when the user selects a specific list&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; lbxListOfLists_SelectionChanged(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; XElement)
                {
                    XElement listItem = lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; XElement;
                    updateListDetailPanel(listItem);
                }


            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
                handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;getList Failed&lt;/span&gt;&amp;quot;, exception);
            }
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_5').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;
The next piece of code to write is the listsSoapClient_GetListItemsCompleted handler which is called when GetListItemsAysnc completes. Remember that all methods of the ListsSoapClient complete asynchronously. When the listsSoapClient is called, the Result property of the GetListItemsCompletedEventArgs will contain the root XElement node of the result set. An example of an xml tree returned by a call to GetListItemsAysnc can be seen here: 
&lt;/p&gt;
&lt;table border="0" style="backgroud-color: #fcfcfc"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;listitems&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:s&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:dt&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:rs&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;urn:schemas-microsoft-com:rowset&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;xmlns:z&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;#RowsetSchema&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;http://schemas.microsoft.com/sharepoint/soap/&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; 
			&lt;blockquote&gt;
				&amp;lt;&lt;font size="2" color="#a31515"&gt;rs:data&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ItemCount&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;3&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; 
				&lt;blockquote&gt;
					&amp;lt;&lt;font size="2" color="#a31515"&gt;z:row&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Attachments&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;0&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_LinkTitle&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;A&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Alpha&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;A&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Gamma&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Choice 1&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;...&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; 
					&lt;p&gt;
					&amp;lt;&lt;font size="2" color="#a31515"&gt;z:row&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Attachments&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;0&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_LinkTitle&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;B&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Alpha&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;B&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Gamma&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Choice 2&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;...&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; /&amp;gt;&amp;lt;&lt;/font&gt; 
					&lt;/p&gt;
					&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;z:row&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Attachments&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;0&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_LinkTitle&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;C&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Alpha&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;C&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;ows_Gamma&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Choice 3&lt;/font&gt;&lt;font size="2"&gt;&amp;quot;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;...&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt; 
				&lt;/blockquote&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;rs:data&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt; 
				&lt;p&gt;
				&amp;lt;/&lt;font size="2" color="#a31515"&gt;listitems&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;/font&gt;
			&lt;/blockquote&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
To set the itemsSource of our ListView control we will need to extract an enumeration of the &amp;lt;z:row&amp;gt; element from the returned xml document. To do this we will use the Descendants() method of the XElement node. The Descendents() method returns an enumeration of all matching child elements. It is important to note here though that the namespace prefix &amp;quot;z&amp;quot; is defined in the root element as the namespace &amp;quot;#rowset-schema&amp;quot; so you will need to specify both the name of the elmeent &amp;quot;row&amp;quot; and the namespace &amp;quot;#rowset-schema&amp;quot; using XName, it order for the call to Decendents() to return any matches. 
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_6').style.display = document.getElementById('snippet_6').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: listsSoapClient_GetListItemsCompleted event handler&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_6" class="codeContainer"&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Called when GetListItemsAysnc completes&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; listsSoapClient_GetListItemsCompleted(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, GetListItemsCompletedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                txtOutput.Text = e.Result.ToString();
                &lt;span style="color:#0000FF"&gt;this&lt;/span&gt;.lbxListItems.ItemsSource = e.Result.Descendants(XName.Get(&amp;quot;&lt;span style="color:#8B0000"&gt;row&lt;/span&gt;&amp;quot;, SHAREPOINT_ROWSET_NAMESPACE));
            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
                handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;GetListItems Failed&lt;/span&gt;&amp;quot;, exception);
            }
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_6').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;
I&amp;#39;ve cheated a little here by using the XAttributeConverter helper class that was introduced in Part Three. This helper class allows us to pass the XElement node enumeration directly to the ListView control as it&amp;#39;s ItemsSource. Normaly Silverlight controls and data templates to not know how to bind to an XElement node nor how to extract XAttribute values. The XAttributeConverter helper class allows us to directly bind to attributes of an XMl node. To see how this is used take a look at the XAML code again, you should notice the data templates defined in the resources section of the XAML definition as follows: 
&lt;/p&gt;
&lt;table border="0" style="backgroud-color: #fcfcfc"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="2" color="#a31515"&gt;
			&lt;p&gt;
			&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;UserControl.Resources&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
			&lt;blockquote&gt;
				&lt;p&gt;
				&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;local&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;XAttributeConverter&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; x&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;Key&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;FromXAttribute&amp;quot;/&amp;gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;font size="2" color="#a31515"&gt;
				&lt;p&gt;
				&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;DataTemplate&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; x&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;Key&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;ListDataTemplate&amp;quot;&amp;gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
				&lt;blockquote&gt;
					&lt;p&gt;
					&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StackPanel&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Orientation&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Horizontal&amp;quot;&amp;gt;&lt;/font&gt; 
					&lt;/p&gt;
					&lt;font size="2" color="#a31515"&gt;
					&lt;blockquote&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=Title}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
					&lt;/blockquote&gt;
					&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
					&lt;p&gt;
					&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StackPanel&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
					&lt;/p&gt;
					&lt;/font&gt;
				&lt;/blockquote&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
				&lt;p&gt;
				&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;DataTemplate&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
				&lt;p&gt;
				&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;DataTemplate&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; x&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;:&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt;Key&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;ListItemTemplate&amp;quot;&amp;gt;&lt;/font&gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
				&lt;blockquote&gt;
					&lt;p&gt;
					&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StackPanel&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Orientation&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;Horizontal&amp;quot;&amp;gt;&lt;/font&gt; 
					&lt;/p&gt;
					&lt;font size="2" color="#a31515"&gt;
					&lt;blockquote&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_Title}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;font size="2" color="#a31515"&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_ID}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_Last_x0020_Modified}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_Editor}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_Created}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
						&lt;p&gt;
						&lt;font size="2" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;TextBlock&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Margin&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;5&amp;quot;&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Text&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;Binding&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; Converter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;={&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; FromXAttribute&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;},&lt;/font&gt;&lt;font size="2" color="#ff0000"&gt; ConverterParameter&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;=ows_Author}&amp;quot;/&amp;gt;&lt;/font&gt; 
						&lt;/p&gt;
						&lt;/font&gt;
					&lt;/blockquote&gt;
					&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
					&lt;p&gt;
					&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;StackPanel&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
					&lt;/p&gt;
					&lt;/font&gt;
				&lt;/blockquote&gt;
				&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
				&lt;p&gt;
				&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;DataTemplate&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt; 
				&lt;/p&gt;
				&lt;/font&gt;
			&lt;/blockquote&gt;
			&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;
			&lt;p&gt;
			&lt;font size="2" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;UserControl.Resources&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;/font&gt; 
			&lt;/p&gt;
			&lt;/font&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;If you wish to display other fields in the ListView, first look at the list with the &amp;quot;Raw&amp;quot; checkbox checked. Note that all user field names are prefixed by SharePoint with &amp;quot;ows_&amp;quot;. Just add or remove bindings in the ListItemTemplate. 
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
Compiling and running the code should produce something similar to the following images: 
&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 align="center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=RunA.png" border="0" alt="RunA" width="869" height="491" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=RunB.png" border="0" alt="RunB" width="995" height="297" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=RunC.png" border="0" alt="RunC" width="995" height="297" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img src="http://blog.daisley-harrison.com/blog/file.axd?file=RunD.png" border="0" alt="RunD" width="995" height="297" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Note if you wish for the Silverlight control to take up the entire browser page just delete the Width and Height specified in the UserControl element of the XAML definition. 
&lt;/p&gt;
&lt;p&gt;
Complete source for Part&amp;nbsp;4 of Practical Silverlight and SharePoint Integration can be found here: &lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2009%2f4%2fPracticalSilverlightAndSharePointIntegration.Part4.zip"&gt;PracticalSilverlightAndSharePointIntegration.Part4.zip (1.76 mb)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=ca06c0e3-4677-4c96-a71a-ed0138c0e1f5"&gt;Part One&lt;/a&gt;| &lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=727df8b5-89e9-41f6-999d-77f27ec2309b"&gt;Part Two&lt;/a&gt;| &lt;a href="http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx"&gt;Part Three&lt;/a&gt;&amp;nbsp;| Part Four&amp;nbsp;(To be done) 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/Po5Z0IGFBOk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/Po5Z0IGFBOk/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Four.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=bc3aa645-958b-4c28-bda5-09f4e6f43263</guid>
      <pubDate>Mon, 20 Apr 2009 22:26:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>C#</category>
      <category>SharePoint</category>
      <category>Silverlight</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=bc3aa645-958b-4c28-bda5-09f4e6f43263</pingback:target>
      <slash:comments>72</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=bc3aa645-958b-4c28-bda5-09f4e6f43263</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Four.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=bc3aa645-958b-4c28-bda5-09f4e6f43263</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=bc3aa645-958b-4c28-bda5-09f4e6f43263</feedburner:origLink></item>
    <item>
      <title>The Lost Art of User Interface Design</title>
      <description>&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;The art of user interface design has been around for as long as people have built and used tools.&amp;nbsp;&amp;nbsp; User interface design principles were well understood prior to the &amp;ldquo;web revolution&amp;rdquo; and most well known computer applications can, and still do, attribute their popularity to the successful application of these principles.&amp;nbsp; When thin client interfaces exploded during the .com era, the tried and true princples of user interface design were left behind in the rush to build web presents and attract as many customers as possible.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Customers it turns out are a fickle group.&amp;nbsp;Attracting a customer to a web site is only part of the problem.&amp;nbsp;&amp;nbsp; Keeping customers and having them return to the site turns out to be the larger issue.&amp;nbsp; Aside from the products and services a web site may offer, if the user experience is not satisfying, the user may not return.&amp;nbsp; If they can get the same products and services elsewhere, they will not return.&amp;nbsp; First impressions are everything.&amp;nbsp; In most cases&amp;nbsp;the site only gets one shot at pleasing a customer before loosing them forever.&amp;nbsp;&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Enter the re-emergence of user interface design principles.&amp;nbsp; It turns out, not so supprisingly, that the application of well known user interface design principles are as applicable to web site design as they are to desktop application interface design,&amp;nbsp;car dashboard design, or mobile device design, etc.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;The design of a successful user interface is an iterative and highly interactive process.&lt;span&gt;&amp;nbsp; &lt;/span&gt;A great deal of dedicated time from&amp;nbsp; system stakeholders and users&amp;nbsp;is required for this effort to be successful.&lt;span&gt;&amp;nbsp;&amp;nbsp; If an existing system is being redesigned, &lt;/span&gt;Input from both new users of the system and experienced users of the system are considered important to acquire an accurate understanding of the design flaws that need to be corrected and the design successes that need to be preserved.&amp;nbsp; If a new system is being design a great deal of attention must be paid to identifing and categorizing the sites audience groups.&amp;nbsp; Senarios need to be developed, and potential new users need to be exposed to the user interface repeatedly for the design to take shape.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Although low tech prototypes such as wireframes or whiteboard drawings may&amp;nbsp;facilitate initial communications between users and designers NOTHING can take the place of interacting with either a prototype or a fully working user interface.&amp;nbsp; The higher the fidelity used to elicit feedback from stakeholders and users, the&amp;nbsp;better the quality of feedback received.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;&lt;span&gt;Agile development techiques are particularly useful when user interfaces are being created.&amp;nbsp; The inherent iterative nature of agile development gives time for repeated user exposure to high fidelity interfaces.&amp;nbsp; Each iteration&amp;rsquo;s review and accepance meeting results in f&lt;/span&gt;indings and suggested changes that can then be incorporated into requirements for future iterations.&amp;nbsp; &lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Each iteration gives the opportunity to improve on the user interface shown in the previous iteration.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri"&gt;&lt;font size="3"&gt;With proper application of the user interface design principles outlined below,&amp;nbsp;web sites developed with&amp;nbsp;Agile techniques stand a very good chance of attracting&amp;nbsp;return customers.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Calibri" size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Usability&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="Calibri" size="3"&gt;The user interface should be user-centered and not system-centered.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Common tasks that the user performs on the system should be easily found and accomplished.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The interface should be easy to understand: simplicity over complexity; discoverability over concealment.&lt;span&gt;&amp;nbsp; &lt;/span&gt;All of the user interface design principles discussed here contribute to the overall usability of the system.&lt;/font&gt;&amp;nbsp;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Learnability&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;The system should be easy to learn.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Every effort should be made to reduce the learning curve required for new users of the system.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Usability and learnability are not mutually exclusive; both goals can be achieved by providing flexibility in the user interface (see below).&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Flexibility&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Understand that users of the system move though a continuum of competency during their interactions with the system:&lt;span&gt;&amp;nbsp; &lt;/span&gt;From first exposure or novice, to competent user, to expert user.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This scale is not linear and users can move both forward and backward on the scale depending on how often they access a section of the system, their level of metal acuity, focus etc.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The system should accommodate all levels of user interactive by providing multiple ways of accomplishing the same goal. &lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Allowing the end-user to choose their own path through the system, rather than having the system be rigid and inflexible gives the user the feeling of &amp;ldquo;empowerment&amp;rdquo;, makes interactions with the system less stressful, and greatly aids in the adoption of the system.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Metaphor&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Where possible, pattern the user interactions with the system after common place real world experiences.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Choose one or more metaphors that are familiar to the user population and were possible help tie the real-world job function to the virtual representation that the system represents.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Coherence&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;strong&gt;&lt;span style="font-weight: normal; font-family: 'Calibri','sans-serif'"&gt;&lt;font size="3"&gt;The behavior of the system should be internally and externally consistent.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The system should be logically consistent and easy to follow.&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;State Visualization&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Change in behavior of the system should be at all times reflected in the user interface.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Change of state, such as the concept of current selection should be visually obvious in the user interface.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Safety&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Allow the system to provide a level of safety for the user.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Provide a ways to back-out changes and/or prompt when an operation is unrecoverable.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Providing a safety net for the user will allow then to quickly feel comfortable with the system.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Context &lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Limit the user&amp;rsquo;s activity to a single well-defined context where ever possible.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The current system context should be highly visible and easily changed.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Limiting the users activity to a single context helps promote a consistent, less confusing mental image of the system.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 style="margin: 10pt 0in 0pt"&gt;&lt;font face="Cambria" size="3" color="#4f81bd"&gt;Help&lt;/font&gt;&lt;/h3&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;font face="Calibri" size="3"&gt;Provide a number of different types of help to the user based on the type of questions the user may ask during their learning experience.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Most questions can be defined as goal-oriented, descriptive, procedural, Interpretive or navigational in nature.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Understanding of, and providing support for, these basic help categories will be critical to providing complete support for the users learning experience.&lt;/font&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/1kDwTxv_bZk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/1kDwTxv_bZk/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/The-Lost-Art-of-User-Interface-Design.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=e3f456a8-9049-48a1-99a3-b4429ac7fbca</guid>
      <pubDate>Wed, 25 Mar 2009 23:09:00 +0400</pubDate>
      <category>Software Engineering</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=e3f456a8-9049-48a1-99a3-b4429ac7fbca</pingback:target>
      <slash:comments>98</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=e3f456a8-9049-48a1-99a3-b4429ac7fbca</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/The-Lost-Art-of-User-Interface-Design.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=e3f456a8-9049-48a1-99a3-b4429ac7fbca</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=e3f456a8-9049-48a1-99a3-b4429ac7fbca</feedburner:origLink></item>
    <item>
      <title>Practical Silverlight and SharePoint Integration: Part Three</title>
      <description>&lt;p&gt;In &lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=727df8b5-89e9-41f6-999d-77f27ec2309b"&gt;Part Two&lt;/a&gt;&amp;nbsp;of this series we expanded on the out-of-the-box connectivity to the SharePoint Lists web service and added the ability to dynamically connect to any SharePoint server URL.&amp;nbsp; In this article we will make a more complex call to retrieve list detail and show how data retrieved from the SharePoint lists web service can be bound to Silverlight controls.&lt;/p&gt;
&lt;p&gt;The first step we are going to need to do is enhance our existing sample code base and update the user interface to give us a little more flexability to select a list and get some details.&amp;nbsp;&amp;nbsp; So lets start with our previous code base which can be found in &lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=727df8b5-89e9-41f6-999d-77f27ec2309b"&gt;Part Two&lt;/a&gt;&amp;nbsp;or you can get it directly here: &lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=PracticalSilverlightAndSharePointIntegration.Part2.zip"&gt;PraticalSiverlightAndSharePointIntegration.Part2.zip&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First lets split our single output text box into two sections, on the left a list of list, and on the right a original output text box for additional detail about the list.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what the new user interface looks like:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="Page.xaml" src="http://blog.daisley-harrison.com/blog/file.axd?file=Page.xaml.jpg" border="0" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;The XAML for the above page should now look like:&lt;/p&gt;&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_7').style.display = document.getElementById('snippet_7').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;XML-Code: Page.xaml&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_7" class="codeContainer"&gt;
&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt; &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;basics&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Class&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;SharePointListExample.Page&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;x&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;local&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:SharePointListExample&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;400&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Height&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MaxHeight&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;25&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;auto&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListOfLists&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtOutput&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsReadOnly&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;LightGray&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,5,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;Sharepoint Url:&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MinWidth&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtSharePointUrl&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://mysharepointserver.com/sites/mysite&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Button&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Go&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Click&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo_Click&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_7').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;Now lets update the list data returned from SharePoint so that our &amp;ldquo;list of lists&amp;rdquo; will be populated.&lt;/p&gt;
&lt;p&gt;The old code to catch and display our results in just the text box looked like this:&lt;/p&gt;
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_8').style.display = document.getElementById('snippet_8').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: listSoapClient_GetListCollectionCompleted&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_8" class="codeContainer"&gt;
         &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Handle the completed web service request to retrieve the list collection&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;The soap client&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;The completed event args&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; listSoapClient_GetListCollectionCompleted(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, GetListCollectionCompletedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                txtOutput.Text = e.Result.ToString();
            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
               handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;Failed to get list collection&lt;/span&gt;&amp;quot;, exception);
            }
        }

&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_8').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;/font&gt;Since we&amp;nbsp;want to let Silverlight to&amp;nbsp;most of the work in displaying our&amp;nbsp;&amp;ldquo;list of lists&amp;rdquo;&amp;nbsp;all we need to do here is to bind&amp;nbsp;the ItemsSource property of the&amp;nbsp;Silverlight Listbox to the collection of list elements returned by SharePoint.&amp;nbsp;&amp;nbsp;In this case we are only interested in the individual List elements so we used the Linq&amp;nbsp;Descendants function to get the collection of List elements as follows:&lt;font size="2"&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_9').style.display = document.getElementById('snippet_9').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: listSoapClient_GetListCollectionCompleted&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_9" class="codeContainer"&gt;
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;const&lt;/span&gt; &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; SHAREPOINT_SOAP_NAMESPACE = &amp;quot;&lt;span style="color:#8B0000"&gt;http://schemas.microsoft.com/sharepoint/soap/&lt;/span&gt;&amp;quot;;
        &lt;span style="color:#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// Handle the completed web service request to retrieve the list collection&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;The soap client&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#808080"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;The completed event args&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; listSoapClient_GetListCollectionCompleted(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, GetListCollectionCompletedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                txtOutput.Text = e.Result.ToString();
                lbxListOfLists.ItemsSource = e.Result.Descendants(XName.Get(&amp;quot;&lt;span style="color:#8B0000"&gt;List&lt;/span&gt;&amp;quot;, SHAREPOINT_SOAP_NAMESPACE));
            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
               handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;Failed to get list collection&lt;/span&gt;&amp;quot;, exception);
            }
        }

&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_9').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Now compiling and running the application we should see something like the following when&amp;nbsp;&amp;ldquo;Go&amp;rdquo; is pressed:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="FirstRun" src="http://blog.daisley-harrison.com/blog/file.axd?file=FirstRun.jpg" border="0" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;Ok so the output still isn&amp;rsquo;t very appealling&amp;hellip; We will need to add a little more xaml code to our page to take advantage of Silverlight&amp;rsquo;s data templating.&amp;nbsp; In addition to xaml code, the out-of-the-box data binding doesn&amp;rsquo;t understand how to read directly from XML nodes,&amp;nbsp;&amp;nbsp;so to start with we will use an IValueConverter class that will assist the Silverlight binding in accessing data directly from the XElement classes that are returned by the call to Descendants.&amp;nbsp; Below is the code for this new helper class:&lt;/p&gt;&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_10').style.display = document.getElementById('snippet_10').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: XAttributeConverter&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_10" class="codeContainer"&gt;
&lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;class&lt;/span&gt; XAttributeConverter : IValueConverter 
    {
        [Flags]
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;enum&lt;/span&gt; ConvertionOptions
        {
           None = 0x00,
           Uri = 0x01,
           Html = 0x02
        }
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;const&lt;/span&gt; &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; PROPERTY_BASEURI = &amp;quot;&lt;span style="color:#8B0000"&gt;baseuri&lt;/span&gt;&amp;quot;;
        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;object&lt;/span&gt; Convert(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color:#0000FF"&gt;object&lt;/span&gt; parameter, System.Globalization.CultureInfo culture) 
        {
            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;value&lt;/span&gt; &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; XElement &amp;amp;amp;&amp;amp;amp; parameter &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;)
            {
                XElement element = &lt;span style="color:#0000FF"&gt;value&lt;/span&gt; &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; XElement;
                &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; parameters = parameter &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;;
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (parameters != &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
                {
                    &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;[] parameterItems = parameters.Split(&lt;span style="color:#0000FF"&gt;new&lt;/span&gt; &lt;span style="color:#0000FF"&gt;char&lt;/span&gt;[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (parameterItems.Length &amp;amp;gt; 0)
                    {
                        Dictionary&amp;lt;&lt;span style="color:#0000FF"&gt;string&lt;/span&gt;, &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;&amp;gt; properties = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color:#0000FF"&gt;string&lt;/span&gt;, &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;&amp;gt;();
                        ConvertionOptions options = ConvertionOptions.None;
                        &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; attributeName = &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                        &lt;span style="color:#0000FF"&gt;int&lt;/span&gt; i = 0;
                        &lt;span style="color:#0000FF"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000FF"&gt;string&lt;/span&gt; item &lt;span style="color:#0000FF"&gt;in&lt;/span&gt; parameterItems)
                        {
                            &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; trimmedItem = item.Trim();
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (i == 0)
                            {
                                attributeName = trimmedItem;
                            }
                            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt; &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; ( item.Contains(&amp;quot;&lt;span style="color:#8B0000"&gt;=&lt;/span&gt;&amp;quot;))
                            {
                                &lt;span style="color:#0000FF"&gt;string&lt;/span&gt;[] itemElements = item.Split('=');
                                properties[itemElements[0].Trim().ToLower()] = itemElements[1].Trim();
                            }
                            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                            {
                                &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
                                {
                                    ConvertionOptions option = (ConvertionOptions)Enum.Parse(&lt;span style="color:#0000FF"&gt;typeof&lt;/span&gt;(ConvertionOptions), item, &lt;span style="color:#0000FF"&gt;true&lt;/span&gt; );
                                    options |= option;
                                }
                                &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt;
                                {
                                    Debug.WriteLine( &amp;quot;&lt;span style="color:#8B0000"&gt;Unrecongnized XAttributeConverter parameter \&amp;quot;{0}\&amp;quot;&lt;/span&gt;&amp;quot;, item);
                                }
                            }
                            i++;
                        }
                        XAttribute attribute = element.Attribute(attributeName);
                        &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (attribute == &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;)
                        {
                            Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Attribute \&amp;quot;{0}\&amp;quot; not found in XElement \&amp;quot;{1}\&amp;quot;.&lt;/span&gt;&amp;quot;, attributeName, element.Name.ToString());
                            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
                        }
                        &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                        {
                            &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; parameterValue = attribute.Value;
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; ( (options &amp;amp;amp; ConvertionOptions.Uri ) == ConvertionOptions.Uri )
                            {
                                Uri baseUri = &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Uri(properties[PROPERTY_BASEURI]);
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; Uri(baseUri, parameterValue);
                            }
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; ((options &amp;amp;amp; ConvertionOptions.Html) == ConvertionOptions.Html)
                            {
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; parameterValue.Replace(&amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;lt;&lt;/span&gt;&amp;quot;,&amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;lt;&lt;/span&gt;&amp;quot;).Replace(&amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot;,&amp;quot;&lt;span style="color:#8B0000"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot;);
                            }
                            &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (targetType != &lt;span style="color:#0000FF"&gt;typeof&lt;/span&gt;(&lt;span style="color:#0000FF"&gt;string&lt;/span&gt;) &amp;amp;amp;&amp;amp;amp; &lt;span style="color:#0000FF"&gt;typeof&lt;/span&gt;(IConvertible).IsAssignableFrom(targetType))
                            {
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; System.Convert.ChangeType(parameterValue, targetType, &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;);
                            }
                            &lt;span style="color:#0000FF"&gt;else&lt;/span&gt;
                            {
                                &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; parameterValue;
                            }
                        }
                    }
                }
            }
            Debug.WriteLine(&amp;quot;&lt;span style="color:#8B0000"&gt;Invalid parameters from XAttributeConverter&lt;/span&gt;&amp;quot;);
            &lt;span style="color:#0000FF"&gt;return&lt;/span&gt; &lt;span style="color:#0000FF"&gt;null&lt;/span&gt;;
        }

        &lt;span style="color:#0000FF"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF"&gt;object&lt;/span&gt; ConvertBack(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; &lt;span style="color:#0000FF"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color:#0000FF"&gt;object&lt;/span&gt; parameter, System.Globalization.CultureInfo culture)
        {
            &lt;span style="color:#0000FF"&gt;throw&lt;/span&gt; &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; NotImplementedException();
        }
    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_10').style.display='none';
&lt;/script&gt;&lt;/pre&gt;
&lt;p align="left"&gt;We will need to modify the xaml code to use the XAttributeConverter as follows:&lt;/p&gt;
&lt;pre&gt;
&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_11').style.display = document.getElementById('snippet_11').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;XML-Code: Page.xaml&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_11" class="codeContainer"&gt;
&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt; &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;basics&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/span&gt;  &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Class&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;SharePointListExample.Page&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;x&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    &lt;span style="color:#FF0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;local&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;clr-namespace:SharePointListExample&amp;quot;&lt;/span&gt;
    &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;400&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Height&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#C71585"&gt;local&lt;/span&gt;:&lt;span style="color:#800000"&gt;XAttributeConverter&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Key&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;FromXAttribute&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Key&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;ListDataTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{Binding Converter={StaticResource FromXAttribute}, ConverterParameter=Title}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MaxHeight&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;25&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;auto&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListOfLists&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;ItemTemplate&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;{StaticResource ListDataTemplate}&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;SelectionChanged&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;lbxListOfLists_SelectionChanged&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ListBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#C71585"&gt;basics&lt;/span&gt;:&lt;span style="color:#800000"&gt;GridSplitter&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Column&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
                &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtOutput&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;IsReadOnly&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Grid&lt;/span&gt;.&lt;span style="color:#FF0000"&gt;Row&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Orientation&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;LightGray&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,5,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;Sharepoint Url:&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt; &lt;span style="color:#FF0000"&gt;MinWidth&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;txtSharePointUrl&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;http://mysharepointserver.com/sites/mysite&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;TextBox&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Button&lt;/span&gt; &lt;span style="color:#FF0000"&gt;x&lt;/span&gt;:&lt;span style="color:#FF0000"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;5,0,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Content&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;Go&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000"&gt;Click&lt;/span&gt;=&lt;span style="color:#0000FF"&gt;&amp;quot;btnGo_Click&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;UserControl&lt;/span&gt;&lt;span style="color:#0000FF"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_11').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p align="left"&gt;Now compiling and running the application, should produce results simliar to this:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="SecondRun" src="http://blog.daisley-harrison.com/blog/file.axd?file=SecondRun.jpg" align="middle" border="0" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;So far so good.&amp;nbsp; Now lets get into make our &amp;ldquo;list of lists&amp;rdquo; clickable so that we can see more detail in our output text box when a list item is selected.&amp;nbsp; First we modify the xaml code to include a SelectionChanged&amp;nbsp;event handler then we add the following code to handle the event in the code behind:&lt;/p&gt;&lt;pre&gt;&lt;div class="codeSnippet"&gt;
	&lt;div class="codeHeader"&gt;
		&lt;img src="http://blog.daisley-harrison.com/blog/pics/page_white_code.png" /&gt;&amp;nbsp;&lt;a href="" onclick="document.getElementById('snippet_12').style.display = document.getElementById('snippet_12').style.display == 'none' ? 'block' : 'none'; return false;" title="Click here to expanding code.."&gt;C#-Code: lbxListOfLists_SelectionChanged&lt;/a&gt;
	&lt;/div&gt;
	&lt;pre id="snippet_12" class="codeContainer"&gt;
       &lt;span style="color:#0000FF"&gt;private&lt;/span&gt; &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; lbxListOfLists_SelectionChanged(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                &lt;span style="color:#0000FF"&gt;if&lt;/span&gt; (lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;is&lt;/span&gt; XElement)
                {
                    XElement listItem = lbxListOfLists.SelectedItem &lt;span style="color:#0000FF"&gt;as&lt;/span&gt; XElement;
                    &lt;span style="color:#0000FF"&gt;string&lt;/span&gt; listName = listItem.Attribute(&amp;quot;&lt;span style="color:#8B0000"&gt;Title&lt;/span&gt;&amp;quot;).Value;
                    ListsSoapClient listsSoapClient = createListsSoapClient();
                    listsSoapClient.GetListCompleted += &lt;span style="color:#0000FF"&gt;new&lt;/span&gt; EventHandler&amp;lt;getlistcompletedeventargs&amp;gt;(listsSoapClient_GetListCompleted);
                    listsSoapClient.GetListAsync(listName);
                }


            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
                handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;getList Failed&lt;/span&gt;&amp;quot;, exception);
            }
        }

        &lt;span style="color:#0000FF"&gt;void&lt;/span&gt; listsSoapClient_GetListCompleted(&lt;span style="color:#0000FF"&gt;object&lt;/span&gt; sender, GetListCompletedEventArgs e)
        {
            &lt;span style="color:#0000FF"&gt;try&lt;/span&gt;
            {
                txtOutput.Text = e.Result.ToString();
            }
            &lt;span style="color:#0000FF"&gt;catch&lt;/span&gt; (Exception exception)
            {
                handleException(&amp;quot;&lt;span style="color:#8B0000"&gt;listsSoapClient_GetListCompleted Failed&lt;/span&gt;&amp;quot;, exception);
            }
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
	document.getElementById('snippet_12').style.display='none';
&lt;/script&gt;
&lt;/pre&gt;
&lt;p align="left"&gt;Note in the code above:&amp;nbsp; Now that we are requiring a bound ListsSoapClient in more than one place in our application, it makes sense to place the code for doing this in it&amp;rsquo;s own method called CreateListsSoapClient.&lt;/p&gt;
&lt;p align="left"&gt;Running our application now will give us the same results when we press &amp;ldquo;Go&amp;rdquo;, but when we select a list item, the right handle textbox panel should now show the results of a call to GetListAsync.&amp;nbsp; GetListAsync returns details about each list selected.&lt;/p&gt;
&lt;p align="left"&gt;Selecting a list item should result in something like the following image:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="ThirdRun" src="http://blog.daisley-harrison.com/blog/file.axd?file=ThirdRun.jpg" border="0" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;The complete source code for this article can be found here: &lt;a href="http://blog.daisley-harrison.com/blog/file.axd?file=2009%2f3%2fPracticalSilverlightAndSharePointIntegration.Part3.zip"&gt;PracticalSilverlightAndSharePointIntegration.Part3.zip (1.39 mb)&lt;/a&gt;&lt;/p&gt;
&lt;p align="left"&gt;Stay tuned, part four in this series will exand on this code to allow us to retrieve and display list items.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=ca06c0e3-4677-4c96-a71a-ed0138c0e1f5"&gt;Part One&lt;/a&gt;| &lt;a href="http://blog.daisley-harrison.com/blog/post.aspx?id=727df8b5-89e9-41f6-999d-77f27ec2309b"&gt;Part Two&lt;/a&gt;| Part Three | &lt;a href="http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Four.aspx"&gt;Part Four&lt;/a&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;font size="1"&gt;(c) Copyright 2009 &amp;ndash; Aaron G. Daisley-Harrison &amp;ndash; All Rights Reserved.&lt;/font&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/daisley-harrison/LUSE/~4/z9fawc1l2sc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/daisley-harrison/LUSE/~3/z9fawc1l2sc/post.aspx</link>
      <author>aarondh</author>
      <comments>http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.daisley-harrison.com/blog/post.aspx?id=80ab6dbb-5c03-4fcb-bd08-d1d9b846124e</guid>
      <pubDate>Mon, 09 Mar 2009 19:54:00 +0400</pubDate>
      <category>Software Engineering</category>
      <category>.NET</category>
      <category>C#</category>
      <category>SharePoint</category>
      <category>Silverlight</category>
      <dc:publisher>aarondh</dc:publisher>
      <pingback:server>http://blog.daisley-harrison.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.daisley-harrison.com/blog/post.aspx?id=80ab6dbb-5c03-4fcb-bd08-d1d9b846124e</pingback:target>
      <slash:comments>76</slash:comments>
      <trackback:ping>http://blog.daisley-harrison.com/blog/trackback.axd?id=80ab6dbb-5c03-4fcb-bd08-d1d9b846124e</trackback:ping>
      <wfw:comment>http://blog.daisley-harrison.com/blog/post/Practical-Silverlight-and-SharePoint-Integration-Part-Three.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.daisley-harrison.com/blog/syndication.axd?post=80ab6dbb-5c03-4fcb-bd08-d1d9b846124e</wfw:commentRss>
    <feedburner:origLink>http://blog.daisley-harrison.com/blog/post.aspx?id=80ab6dbb-5c03-4fcb-bd08-d1d9b846124e</feedburner:origLink></item>
  </channel>
</rss>
