<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Jesse Liberty - Silverlight Geek</title><link>http://blogs.silverlight.net/blogs/jesseliberty/default.aspx</link><description>More Signal - Less Noise</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/JesseLiberty-SilverlightGeek?format=skin</thespringbox:skin><geo:lat>42.477142</geo:lat><geo:long>-71.442205</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><image><link>http://silverlight.net/blogs/JesseLiberty</link><url>http://silverlight.net/blogs/jesseliberty/BlogImages/SLLogo.jpg</url><title>Silverlight Geek Blog</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/JesseLiberty-SilverlightGeek" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/JesseLiberty-SilverlightGeek" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FJesseLiberty-SilverlightGeek" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:browserFriendly>More signal; less noise.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Commitments</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/P7Elx2NYxdk/commitments.aspx</link><pubDate>Sat, 07 Nov 2009 16:14:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:316150</guid><dc:creator>jesseliberty</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=316150</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=316150</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/07/commitments.aspx#comments</comments><description>&lt;P&gt;I’ve received a number of messages along the lines of, “Seems like things have really slowed down on your blog” or even “Hey, where’s the signal? Too much noise.”&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fair enough&lt;/STRONG&gt;; though this is a common effect of the run up to a major “show” such as PDC (I get caught up in creating material that won’t be released until after the show and things go a bit wobbly here) &lt;EM&gt;vacation’s over!&lt;/EM&gt; &lt;STRONG&gt;Time to Party&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;So here are my commitments to &lt;EM&gt;you&lt;/EM&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;In the coming weeks you’ll see:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;H3&gt;A series of new and better videos – look for the first ones during PDC.&lt;/H3&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;H3&gt;At least two &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx"&gt;Silverlight From Zero&lt;/A&gt;&amp;nbsp; mini-tutorials per month, and at least two Intermediate to Advanced &lt;A href="http://silverlight.net/learn/tutorials/mini/1/" target=_blank mce_href="http://silverlight.net/learn/tutorials/mini/1/"&gt;mini-tutorials&lt;/A&gt; each month. &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/pages/ecqg.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/pages/ecqg.aspx"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=ecqg50Pct border=0 alt=ecqg50Pct align=right src="http://blogs.silverlight.net/blogs/jesseliberty/ecqg50Pct_3403BD02.jpg" width=101 height=100 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/ecqg50Pct_3403BD02.jpg"&gt;&lt;/A&gt;&lt;/H3&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;H3&gt;&lt;STRONG&gt;Revitalization of the “&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/pages/ecqg.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/pages/ecqg.aspx"&gt;Example Code Quality Guarantee&lt;/A&gt;” page noting the development environment for all demos. &lt;/STRONG&gt;&lt;/H3&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;H3&gt;The &lt;A href="http://silverlightgeek.me/pages/The-HyperVideo-Project-FAQ.aspx" target=_blank mce_href="http://silverlightgeek.me/pages/The-HyperVideo-Project-FAQ.aspx"&gt;HyperVideo Project&lt;/A&gt; Spec will be complete by&amp;nbsp; November 23 (if you wish to contribute to the spec, please send email to &lt;A href="mailto:jliberty@microsoft.com" mce_href="mailto:jliberty@microsoft.com"&gt;jliberty@microsoft.com&lt;/A&gt; ) and &lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Coding begins for the&amp;nbsp; &lt;A href="http://silverlightgeek.me/pages/The-HyperVideo-Project-FAQ.aspx" target=_blank mce_href="http://silverlightgeek.me/pages/The-HyperVideo-Project-FAQ.aspx"&gt;HyperVideo Project&lt;/A&gt; Tuesday November 24.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/H3&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/jessesig_019FE983.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/jessesig_019FE983.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=jessesig border=0 alt=jessesig align=left src="http://blogs.silverlight.net/blogs/jesseliberty/jessesig_thumb_0852F306.jpg" width=125 height=57 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/jessesig_thumb_0852F306.jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=316150" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P7Elx2NYxdk:wZHxv822ZIE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P7Elx2NYxdk:wZHxv822ZIE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P7Elx2NYxdk:wZHxv822ZIE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P7Elx2NYxdk:wZHxv822ZIE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/P7Elx2NYxdk" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Perspective/default.aspx">Perspective</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Hypervideo/default.aspx">Hypervideo</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/VideoWiki/default.aspx">VideoWiki</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/HyperVideoProject/default.aspx">HyperVideoProject</category><evnet:views>1380</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=316150</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/07/commitments.aspx</feedburner:origLink></item><item><title>Subscribe to 62 Silverlight Twitter’ers.</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/FM11jjo1d64/subscribe-to-62-silverlight-twitter-ers.aspx</link><pubDate>Sat, 07 Nov 2009 15:06:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:316125</guid><dc:creator>jesseliberty</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=316125</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=316125</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/07/subscribe-to-62-silverlight-twitter-ers.aspx#comments</comments><description>&lt;p&gt;I’ve created &lt;a href="http://twitter.com/direct_messages/sent#/list/JesseLiberty/must-read-silverlight" target="_blank"&gt;a list&lt;/a&gt; that currently follows 62 top-notch Silverlight Twitter participants. &lt;a href="http://twitter.com/jesseliberty" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="twitterBirdSidebar" border="0" alt="twitterBirdSidebar" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/twitterBirdSidebar_2379854B.gif" width="108" height="92" /&gt;&lt;/a&gt;The list will grow (and be culled) over time, but you can easily sign up to receive tweets from everyone on the list just by clicking on &lt;a href="http://twitter.com/JesseLiberty/must-read-silverlight" target="_blank"&gt;this link&lt;/a&gt; and subscribing to the list as a whole.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://feeds.feedburner.com/JesseLiberty-SilverlightGeek" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px 10px 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="icon-rss" border="0" alt="icon-rss" align="left" src="http://blogs.silverlight.net/blogs/jesseliberty/iconrss_02F24599.png" width="128" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;While you are at it, please take a moment and subscribe to &lt;a href="http://twitter.com/jesseliberty" target="_blank"&gt;my tweets&lt;/a&gt; and to &lt;a href="http://feeds.feedburner.com/JesseLiberty-SilverlightGeek" target="_blank"&gt;this blog&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=316125" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=FM11jjo1d64:DxXlksBFQNs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=FM11jjo1d64:DxXlksBFQNs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=FM11jjo1d64:DxXlksBFQNs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=FM11jjo1d64:DxXlksBFQNs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/FM11jjo1d64" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Recommended+Resources/default.aspx">Recommended Resources</category><evnet:views>1286</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=316125</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/07/subscribe-to-62-silverlight-twitter-ers.aspx</feedburner:origLink></item><item><title>Designer v Xaml v Code</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/-1ug5CtNzQM/designer-v-xaml-v-code.aspx</link><pubDate>Fri, 06 Nov 2009 19:28:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:315727</guid><dc:creator>jesseliberty</dc:creator><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=315727</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=315727</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/06/designer-v-xaml-v-code.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://silverlight.net/learn/tutorials/mini/1/" target=_blank mce_href="http://silverlight.net/learn/tutorials/mini/1/"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=MiniTutorialLogo2 border=0 alt=MiniTutorialLogo2 src="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo2_051ADA26.jpg" width=240 height=70 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo2_051ADA26.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This is the second in my new series on &lt;STRONG&gt;Getting Started With Silverlight &lt;/STRONG&gt;(please see &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx"&gt;the first article&lt;/A&gt; for information on the series and where to get the software you need). &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#990000&gt;[updated11/8]&lt;/FONT&gt;&lt;/P&gt;
&lt;H2&gt;Don’t Start with Xaml…&lt;/H2&gt;
&lt;P&gt;Until recently, just about every introduction to Silverlight started out by talking about Xaml; the markup language of Silverlight, WPF and Workflow. I believe it is time to stop.&lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=5 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P&gt;A quick note on Xaml – we all agree how to pronounce it: zam-el to rhyme with camel, but not on how to spell it; most folks use upper case, but&amp;nbsp; &lt;FONT color=#990000&gt;&lt;A href="http://blogs.windowsclient.net/rob_relyea/default.aspx" target=_blank mce_href="http://blogs.windowsclient.net/rob_relyea/default.aspx"&gt;Rob Relyea&lt;/A&gt;&lt;/FONT&gt; told me in private correspondence that Xaml &lt;FONT color=#990000&gt;was released via MS Open Specification Promise&lt;/FONT&gt;, and prefers it aesthetically, even if he does conform and write XAML like most others programmers. But I’m starting a movement.&lt;/P&gt;
&lt;P&gt;(Apologies to &lt;FONT color=#990000&gt;Rob and his brother Dave&lt;/FONT&gt; for initially pointing to the latter when I meant the former and confusing MS OSP with ECMA, for which I should be flogged.)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Teaching Xaml first made sense when Xaml was the only (or best) way to create controls. But with a working design surface, Xaml is too high a bar to set just to get started.&lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=5 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;Many development environments have gone though a similar evolution: start with HTML, then get a WYSIWYGIYAVL (What You See Is What You Get If You Are Very Lucky) editor.&amp;nbsp; ASP.NET by hand, then ASP.NET from the toolbox. Etc.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;I recommend that if you do not know Xaml you not try to learn it (at first)&lt;/STRONG&gt; as you can go very far &lt;EM&gt;without&lt;/EM&gt; doing so, it can be a stumbling block, and the tool will provide incredible help for learning the markup as you need it.&lt;/P&gt;
&lt;P&gt;I may be the first person to write down that advice. (I may be stoned to death.) But I suspect I won’t be the last.&lt;/P&gt;
&lt;H1&gt;Silverlight Without Xaml&lt;/H1&gt;
&lt;P&gt;To get started, open VS2010 and create a new Silverlight project (I use C# but feel free to use any supported language).&amp;nbsp; Let’s name it ThreeApproaches&lt;/P&gt;
&lt;P&gt;When Visual Studio settles down you’ll probably see a split window with the designer on top and Xaml on the bottom.&amp;nbsp; Let’s close the Xaml by clicking on the “make top window the only window” button on the far right of the splitter bar&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/CollapsePane_6FBD24BD.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/CollapsePane_6FBD24BD.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=CollapsePane border=0 alt=CollapsePane align=right src="http://blogs.silverlight.net/blogs/jesseliberty/CollapsePane_thumb_440C5AC1.jpg" width=117 height=94 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/CollapsePane_thumb_440C5AC1.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Open the Toolbox if it is not already open ( Ctrl-W X) and pin it in place.&amp;nbsp; Then click on the Grid that is the default layout control.&amp;nbsp; When you click on it, margins will appear and putting the cursor into the top or left margin will offer you a preview of where you might click to create columns or rows respectively. Go ahead and create two rows and two columns, and then shrink the entire grid down to small enough to look ok.&lt;/P&gt;
&lt;H2&gt;Add Your First Control&lt;/H2&gt;
&lt;P&gt;Drag a Textblock out of the toolbox and place it more or less in the upper left box and then open the properties window. If the TextBlock’s properties are not displayed, click on the TextBlock to make it the selected control.&lt;/P&gt;
&lt;P&gt;Somewhat unusually you set the name of the control at the very top of the &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/NameProperty_67C5825B.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/NameProperty_67C5825B.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=NameProperty border=0 alt=NameProperty align=right src="http://blogs.silverlight.net/blogs/jesseliberty/NameProperty_thumb_4333F4D7.jpg" width=249 height=191 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/NameProperty_thumb_4333F4D7.jpg"&gt;&lt;/A&gt; Properties window&lt;/P&gt;
&lt;P&gt;Notice that there are two tabs: Properties and events. Make sure you have Properties selected, and below that you may want to click on the Categorized button rather than the A-Z to make this a bit easier to follow.&lt;/P&gt;
&lt;P&gt;Expand the Layout property and by clicking in the black triangle next to both Height and Width (and clicking Reset) you can set the TextBlock’s dimensions to be set in accordance with whatever string (characters) are begin displayed. Set &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/Layout_0F977018.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/Layout_0F977018.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 10px 10px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=Layout border=0 alt=Layout align=left src="http://blogs.silverlight.net/blogs/jesseliberty/Layout_thumb_0401B2D9.jpg" width=293 height=263 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/Layout_thumb_0401B2D9.jpg"&gt;&lt;/A&gt;the remaining values as shown in the next image, and the TextBlock should&amp;nbsp; show in the designer as placed in the upper right hand box, 5 pixels from the right and bottom margins. &lt;/P&gt;
&lt;P&gt;(To save space I cut out some rows, but you can leave those set to their default values).&lt;/P&gt;
&lt;P&gt;Wasn’t that cool? No Xaml needed. But if you want to learn Xaml, aha! there are two great features to help. First, click on the horizontal split button on the far right of the design window. This will restore the split window you started out with.&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/HorizontalSplit_0CE2CCC8.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/HorizontalSplit_0CE2CCC8.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=HorizontalSplit border=0 alt=HorizontalSplit align=right src="http://blogs.silverlight.net/blogs/jesseliberty/HorizontalSplit_thumb_6C5B8D15.jpg" width=164 height=82 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/HorizontalSplit_thumb_6C5B8D15.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Notice that the Xaml is now shown. Scroll down to line 20 and you should see the definition of the TextBlock, now in Xaml. Notice the 1:1 correspondence with the properties you’ve set.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/XamlToProperties_0C0A66DE.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/XamlToProperties_0C0A66DE.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 10px 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=XamlToProperties border=0 alt=XamlToProperties src="http://blogs.silverlight.net/blogs/jesseliberty/XamlToProperties_thumb_79556D26.jpg" width=403 height=300 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/XamlToProperties_thumb_79556D26.jpg"&gt;&lt;/A&gt;&amp;nbsp; &lt;BR&gt;(click on image for full size)&lt;/P&gt;
&lt;H2&gt;Xaml and Intellisense&lt;/H2&gt;
&lt;P&gt;Let’s write the second control (TextBox) in Xaml. Click into the Xaml window, &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/XamlIntellisense_2AE0DABC.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/XamlIntellisense_2AE0DABC.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=XamlIntellisense border=0 alt=XamlIntellisense align=right src="http://blogs.silverlight.net/blogs/jesseliberty/XamlIntellisense_thumb_4370780C.jpg" width=345 height=250 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/XamlIntellisense_thumb_4370780C.jpg"&gt;&lt;/A&gt;and below the TextBlock, type an open angle brace. Intellisense immediately springs forward offering to help you pick the control you want. The more you type, the more Intellisense will narrow in on your choice.&lt;/P&gt;
&lt;P&gt;Once you select TextBox, and hit the space bar, again Intellisense jumps in, this time offering suggestions as to the properties you might want to set.&lt;/P&gt;
&lt;P&gt;Fill in the property / value pairs as shown below,&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;TextBox&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Name"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;HorizontalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Left"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;VerticalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Bottom"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;Height&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="25"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;Width&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="75"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;FontFamily&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Georgia"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;FontSize&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="14"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;Grid&lt;/SPAN&gt;.&lt;SPAN class=attr&gt;Row&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;Grid&lt;/SPAN&gt;.&lt;SPAN class=attr&gt;Column&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;             &lt;SPAN class=attr&gt;Margin&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="5"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;
&lt;/P&gt;
&lt;P&gt;Your TextBox will appear in the upper right corner of the designer, with all the properties set to correspond with what you’ve written in the Xaml.&lt;/P&gt;
&lt;P&gt;To make the &lt;EM&gt;TextBlock&lt;/EM&gt;&amp;nbsp; (the first control) consistent with this, click on it in the&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/SetTheTextProperty_62B31EDF.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/SetTheTextProperty_62B31EDF.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=SetTheTextProperty border=0 alt=SetTheTextProperty align=right src="http://blogs.silverlight.net/blogs/jesseliberty/SetTheTextProperty_thumb_7DEB77E0.jpg" width=271 height=258 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/SetTheTextProperty_thumb_7DEB77E0.jpg"&gt;&lt;/A&gt; designer, and scroll down to Text Category and drop down the FontFamily to pick “Georgia.” &lt;/P&gt;
&lt;P&gt;Set the size to 14 and click the &lt;img src="http://blogs.silverlight.net/emoticons/emotion-22.gif" alt="Beer" /&gt; bold button to set it to Bold.&lt;/P&gt;
&lt;P&gt;Return to the Text property (above Layout) and change it from TextBlock to Name? and make sure that the margin is set to 5 in the Layout section. &lt;/P&gt;
&lt;P&gt;When all of that is done, hit Control-F5 to run the application and you should see a prompt and a textBox into which you can enter your name.&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/RunTheProgram_4872B5BB.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/RunTheProgram_4872B5BB.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 10px 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="RunThe Program" border=0 alt="RunThe Program" align=left src="http://blogs.silverlight.net/blogs/jesseliberty/RunTheProgram_thumb_68218F83.jpg" width=276 height=138 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/RunTheProgram_thumb_68218F83.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;If you like, you can click in the grid but not on one of the two controls and bring up the properties for the Grid. Scroll down to, and expand, the “Other” category and click the checkbox next to “Show Grid Lines” to reveal the rows and columns you created.&lt;/P&gt;
&lt;P&gt;Okay, now you know you &lt;EM&gt;can &lt;/EM&gt;write your controls in Xaml, but why bother when you can just drag them onto the designer from the toolbox and set their properties in the Properties window.&amp;nbsp; I truly believe that the latter approach is faster, less error prone and generally a much better way to get started.&lt;/P&gt;
&lt;P&gt;Will you want to hand-code Xaml eventually? Maybe, but my guess is less and less as you get better and better at Visual Studio and, eventually, Expression Blend.&lt;/P&gt;
&lt;H2&gt;Dynamic Creation of Controls in Code&lt;/H2&gt;
&lt;P&gt;There is a third way to create controls: dynamically in code. &lt;/P&gt;
&lt;P&gt;You can stop reading right here. You won’t need to know this for a long time. I am putting this into this article because (a) this can be a powerful technique when you do need it and (b) for some folks understanding the relationship between dynamically (C#) and declaratively (Xaml) created versions of the same object can be very helpful in groking what Xaml is about.&lt;/P&gt;
&lt;P&gt;But your mileage may vary. &lt;/P&gt;
&lt;H3&gt;It’s All Just Objects&lt;/H3&gt;
&lt;P&gt;Every object you create in Xaml can also be created at run time in code. To see this, let’s create a second set of prompt and TextBox that will appear when the project is run.&lt;/P&gt;
&lt;P&gt;To do so, turn the expander next to MainPage.xaml to reveal the code behind page, MainPage.xaml.cs. (or MainPage.xaml.vb if you are working in VB). &lt;/P&gt;
&lt;P&gt;In the constructor, we’ll put a handler for the Loaded event (the loaded event runs when the page is loaded) and we’ll do our work in the event handler Visual Studio creates.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;To do this, click into the constructor and type &lt;STRONG&gt;Loaded +=&lt;/STRONG&gt;&amp;nbsp; then hit Tab twice to let Intellisense create your handler for you.&amp;nbsp; Click in the handler and delete the exception that Intellisense put there to remind you to implement the handler logic.&lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=5 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;We’ll talk about events and event handlers in an upcoming mini-tutorial; but for now, you can ignore the details or feel free to experiment (you can’t break anything). &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H2&gt;Creating The TextBlock Dynamically&lt;/H2&gt;
&lt;P&gt;As noted above, every control can be created as a CLR object, and again Intellisense will help enormously. Begin by instantiating a TextBlock. the Identifier you use (in this case AddressPrompt) will become the Name property. &lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; MainPage_Loaded( &lt;SPAN class=kwrd&gt;object&lt;/SPAN&gt; sender, RoutedEventArgs e )&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;    {&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;      TextBlock AddressPrompt = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; TextBlock();&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;    }&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;You will now add each property to the instance of TextBlock, though here you must be sure to be type-safe. Let’s walk through it.&lt;/P&gt;
&lt;P&gt;First, you’ll want to set the HorizontalAlignment, which turns out to be an &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/HorizAlignment_07D0694C.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/HorizAlignment_07D0694C.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=HorizAlignment border=0 alt=HorizAlignment align=right src="http://blogs.silverlight.net/blogs/jesseliberty/HorizAlignment_thumb_67492999.jpg" width=339 height=72 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/HorizAlignment_thumb_67492999.jpg"&gt;&lt;/A&gt;enumerated constant. Again, Intellisense will help by offering the legitimate values &lt;/P&gt;
&lt;P&gt;Fill in the Vertical Alignment in the same way.&lt;/P&gt;
&lt;P&gt;When you try to fill in the Margin as a value, you’ll not the red squiggly line indicating something is&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/Margin_54942FE2.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/Margin_54942FE2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Margin border=0 alt=Margin align=right src="http://blogs.silverlight.net/blogs/jesseliberty/Margin_thumb_0D3ED9F0.jpg" width=427 height=50 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/Margin_thumb_0D3ED9F0.jpg"&gt;&lt;/A&gt; wrong. Hover over the Margin property and the tag will indicate the type of the Margin: Thickness. At this point you can open the help files to read about the Thickness type, or you can just instantiate one and see how that goes. I personally prefer the latter. Not only&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/ThicknessHelp_73D6D6B5.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/ThicknessHelp_73D6D6B5.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Thickness Help" border=0 alt="Thickness Help" align=right src="http://blogs.silverlight.net/blogs/jesseliberty/ThicknessHelp_thumb_534F9703.jpg" width=325 height=72 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/ThicknessHelp_thumb_534F9703.jpg"&gt;&lt;/A&gt; does Intellisense show you that there are three possible constructors (which you can scroll through with the arrow keys) but it identifies the purpose of each parameter and guides you through filling them in. While I show the third constructor here, which lets you set the left, top, right and bottom margin, we’ll actually use the second constructor which lets you assign one value for all four.&lt;/P&gt;
&lt;P&gt;Next we want to set the Height and Width. Hovering over each will reveal that they are doubles, but in this case we want to set them to “auto” – a quick check of the documentation reveals that this is accomplished by assigning the static value&amp;nbsp; Double.NAN – a flag for the compiler to set them automatically.&lt;/P&gt;
&lt;P&gt;You can set the FontFamily and FontSize as a string and a double &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/FontWeights_0BFA4111.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/FontWeights_0BFA4111.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=FontWeights border=0 alt=FontWeights align=right src="http://blogs.silverlight.net/blogs/jesseliberty/FontWeights_thumb_5DA0BB63.jpg" width=241 height=163 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/FontWeights_thumb_5DA0BB63.jpg"&gt;&lt;/A&gt;respectively, but set the FontWeight using the enumeration. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is the code we have so far&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;TextBlock AddressPrompt = new TextBlock();&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;      AddressPrompt.HorizontalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;          System.Windows.HorizontalAlignment.Left;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;      AddressPrompt.VerticalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;          System.Windows.VerticalAlignment.Bottom;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;      AddressPrompt.Margin = new Thickness( 5d );&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;      AddressPrompt.Height = double.NaN;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;      AddressPrompt.Width = double.NaN;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;      AddressPrompt.FontFamily = &lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;          new FontFamily( "Georgia" );&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;      AddressPrompt.FontSize = 14d;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;      AddressPrompt.FontWeight = FontWeights.Bold;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Placing the Control into the Grid&lt;/H2&gt;
&lt;P&gt;We placed the first controls into the Grid by writing&lt;/P&gt;&lt;PRE class=csharpcode&gt;Grid.Row = &lt;SPAN class=str&gt;"0"&lt;/SPAN&gt;
Grid.Column = &lt;SPAN class=str&gt;"1"&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;But of course, neither TextBlock nor TextBox has a Grid.Row property.&amp;nbsp; These &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/GridSetColumn_4AEBC1AC.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/GridSetColumn_4AEBC1AC.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=GridSetColumn border=0 alt=GridSetColumn align=right src="http://blogs.silverlight.net/blogs/jesseliberty/GridSetColumn_thumb_637B5EFC.jpg" width=320 height=68 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/GridSetColumn_thumb_637B5EFC.jpg"&gt;&lt;/A&gt;are &lt;EM&gt;Extended Properties&lt;/EM&gt;, properties defined in Grid but borrowed by other elements to assist in their placement. The C# equivalent is to call the ??? methods of the Grid class, passing the UIElement (in this case, AddressPrompt) that you want to place in the grid, and then the column number and&amp;nbsp; row respectively. &lt;/P&gt;&lt;PRE class=csharpcode&gt;Grid.SetColumn( AddressPrompt, 0 );
Grid.SetRow( AddressPrompt, 1 );&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;P&gt;That done, the last step is to add the new element to the Grid itself, by referencing the Children collection of the particular Grid instance, and calling the Add method on that collection, passing in our Element:&lt;/P&gt;&lt;PRE class=csharpcode&gt;LayoutRoot.Children.Add( AddressPrompt );&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can then follow a very similar process for the Address text box. The one interesting addition I’ll make is to set the color on the text in the TextBox. You do this by setting the &lt;EM&gt;Foreground&lt;/EM&gt; property, and you must assign it a SolidColorBrush as its value. You can instantiate a SolidColorBrush by passing in a Color from the Colors enumeration,&lt;/P&gt;&lt;PRE class=csharpcode&gt;AddressInput.Foreground = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; SolidColorBrush( Colors.Blue );&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;STYLE type=text/css&gt;.csharpcode {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.csharpcode PRE {
	BACKGROUND-COLOR: #ffffff; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; FONT-SIZE: small
}
.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; MARGIN: 0em; WIDTH: 100%
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;

&lt;P&gt;When you look at the designer, you will not see either of these controls; they &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/RunningProgram_10FC7EC0.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/RunningProgram_10FC7EC0.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=RunningProgram border=0 alt=RunningProgram align=right src="http://blogs.silverlight.net/blogs/jesseliberty/RunningProgram_thumb_7B9EC957.jpg" width=253 height=164 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/RunningProgram_thumb_7B9EC957.jpg"&gt;&lt;/A&gt;won’t exist until the program runs. Press Control-F5 and try out your new program, however, and you’ll see that the dynamically instantiated controls are indistinguishable from the declarative (Xaml) controls; at least to all appearances:&lt;/P&gt;
&lt;H2&gt;You Can, But Don’t.&lt;/H2&gt;
&lt;P&gt;Even though dynamic declaration of elements takes many more lines of code; C# developers are often tempted to eschew Xaml and go with C# – after all; it is a tool they know.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Xaml has many advantages, however, not least of which is that it is highly &lt;EM&gt;toolable&lt;/EM&gt;.&amp;nbsp; That means that it works extremely well with the Visual Studio Designer and with Expression Blend, which in the long run means far faster development, better looking and easier to maintain applications, and a much easier interaction with designers.&lt;/P&gt;
&lt;H1&gt;The Source Code&lt;/H1&gt;
&lt;P&gt;For completeness, here is the Xaml file followed by the C# file:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;MainPage.Xaml&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;UserControl&lt;/SPAN&gt; &lt;SPAN class=attr&gt;x:Class&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ThreeApproaches.MainPage"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=attr&gt;xmlns:x&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=attr&gt;xmlns:d&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=attr&gt;xmlns:mc&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=attr&gt;mc:Ignorable&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="d"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=attr&gt;d:DesignHeight&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="300"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;d:DesignWidth&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="400"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid&lt;/SPAN&gt; &lt;SPAN class=attr&gt;x:Name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="LayoutRoot"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Background&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="White"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=attr&gt;Height&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="135"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=attr&gt;Width&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="250"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid.RowDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;RowDefinition&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Height&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1*"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;RowDefinition&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Height&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1*"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid.RowDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid.ColumnDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;ColumnDefinition&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Width&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1*"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;ColumnDefinition&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Width&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="2*"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid.ColumnDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;TextBlock&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Grid&lt;/SPAN&gt;.&lt;SPAN class=attr&gt;ColumnSpan&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;               &lt;SPAN class=attr&gt;HorizontalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Right"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;               &lt;SPAN class=attr&gt;Margin&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="5"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;               &lt;SPAN class=attr&gt;Name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="myFirstTextBlock"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;               &lt;SPAN class=attr&gt;Text&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Name?"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;               &lt;SPAN class=attr&gt;VerticalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Bottom"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;TextBox&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Name"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;             &lt;SPAN class=attr&gt;HorizontalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Left"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;             &lt;SPAN class=attr&gt;VerticalAlignment&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Bottom"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;             &lt;SPAN class=attr&gt;Height&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="25"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;             &lt;SPAN class=attr&gt;Width&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="75"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;             &lt;SPAN class=attr&gt;FontFamily&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Georgia"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;             &lt;SPAN class=attr&gt;FontSize&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="14"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;             &lt;SPAN class=attr&gt;Grid&lt;/SPAN&gt;.&lt;SPAN class=attr&gt;Row&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;             &lt;SPAN class=attr&gt;Grid&lt;/SPAN&gt;.&lt;SPAN class=attr&gt;Column&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;             &lt;SPAN class=attr&gt;Margin&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="5"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;Grid&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;UserControl&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;[Note that I cleaned up the Grid columns and rows, using relative sizing (1*) and making the relative sizes of the columns 1:2 – all of this to be explained in an upcoming Mini-tutorial]&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;MainPage.Xaml.cs&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Collections.Generic;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Linq;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Net;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Controls;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Documents;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Input;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Media;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Media.Animation;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; System.Windows.Shapes;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=kwrd&gt;namespace&lt;/SPAN&gt; ThreeApproaches&lt;/PRE&gt;&lt;PRE&gt;{&lt;/PRE&gt;&lt;PRE class=alt&gt;  &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;partial&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; MainPage : UserControl&lt;/PRE&gt;&lt;PRE&gt;  {&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; MainPage()&lt;/PRE&gt;&lt;PRE&gt;    {&lt;/PRE&gt;&lt;PRE class=alt&gt;      InitializeComponent();&lt;/PRE&gt;&lt;PRE&gt;      Loaded += &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; RoutedEventHandler( MainPage_Loaded );&lt;/PRE&gt;&lt;PRE class=alt&gt;    }&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; MainPage_Loaded( &lt;SPAN class=kwrd&gt;object&lt;/SPAN&gt; sender, RoutedEventArgs e )&lt;/PRE&gt;&lt;PRE&gt;    {&lt;/PRE&gt;&lt;PRE class=alt&gt;      TextBlock AddressPrompt = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; TextBlock();&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.HorizontalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;        System.Windows.HorizontalAlignment.Left;&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.VerticalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;        System.Windows.VerticalAlignment.Bottom;&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.Margin = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Thickness( 5d );&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressPrompt.Height = &lt;SPAN class=kwrd&gt;double&lt;/SPAN&gt;.NaN;&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.Width = &lt;SPAN class=kwrd&gt;double&lt;/SPAN&gt;.NaN;&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressPrompt.FontFamily = &lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; FontFamily( &lt;SPAN class=str&gt;"Georgia"&lt;/SPAN&gt; );&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressPrompt.FontSize = 14d;&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.FontWeight = &lt;/PRE&gt;&lt;PRE class=alt&gt;        FontWeights.Bold;&lt;/PRE&gt;&lt;PRE&gt;      AddressPrompt.Text = &lt;SPAN class=str&gt;"Address ?"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;PRE class=alt&gt;      Grid.SetRow( AddressPrompt, 1 );&lt;/PRE&gt;&lt;PRE&gt;      Grid.SetColumn( AddressPrompt, 0 );&lt;/PRE&gt;&lt;PRE class=alt&gt;      LayoutRoot.Children.Add( AddressPrompt );&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;      TextBox AddressInput = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; TextBox();&lt;/PRE&gt;&lt;PRE&gt;      AddressInput.HorizontalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;        System.Windows.HorizontalAlignment.Left;&lt;/PRE&gt;&lt;PRE&gt;      AddressInput.VerticalAlignment = &lt;/PRE&gt;&lt;PRE class=alt&gt;        System.Windows.VerticalAlignment.Bottom;&lt;/PRE&gt;&lt;PRE&gt;      AddressInput.Margin = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Thickness( 5d );&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressInput.FontFamily = &lt;/PRE&gt;&lt;PRE&gt;        &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; FontFamily( &lt;SPAN class=str&gt;"Georgia"&lt;/SPAN&gt; );&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressInput.FontSize = 14d;&lt;/PRE&gt;&lt;PRE&gt;      AddressInput.Foreground = &lt;/PRE&gt;&lt;PRE class=alt&gt;        &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; SolidColorBrush( Colors.Blue );&lt;/PRE&gt;&lt;PRE&gt;      AddressInput.Width = 100d;&lt;/PRE&gt;&lt;PRE class=alt&gt;      AddressInput.Height = 25d;&lt;/PRE&gt;&lt;PRE&gt;      Grid.SetColumn( AddressInput, 1 );&lt;/PRE&gt;&lt;PRE class=alt&gt;      Grid.SetRow( AddressInput, 1 );&lt;/PRE&gt;&lt;PRE&gt;      LayoutRoot.Children.Add( AddressInput );&lt;/PRE&gt;&lt;PRE class=alt&gt;    }&lt;/PRE&gt;&lt;PRE&gt;  }&lt;/PRE&gt;&lt;PRE class=alt&gt;}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Next in this series:&lt;/STRONG&gt; Creating Input Forms with the Silverlight Toolkit&lt;/P&gt;
&lt;P&gt;(Note, when the article is posted, the name of the next posting will become a link)&lt;/P&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=315727" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=-1ug5CtNzQM:Ota5fkQjuX4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=-1ug5CtNzQM:Ota5fkQjuX4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=-1ug5CtNzQM:Ota5fkQjuX4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=-1ug5CtNzQM:Ota5fkQjuX4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/-1ug5CtNzQM" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Xaml/default.aspx">Xaml</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Mini-Tutorial/default.aspx">Mini-Tutorial</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Getting+Started/default.aspx">Getting Started</category><evnet:views>1390</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=315727</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/06/designer-v-xaml-v-code.aspx</feedburner:origLink></item><item><title>Silverlight From Zero</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/p4x1VPmc9_I/silverlight-from-zero.aspx</link><pubDate>Mon, 02 Nov 2009 14:44:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:313079</guid><dc:creator>jesseliberty</dc:creator><slash:comments>14</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=313079</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=313079</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://silverlight.net/learn/tutorials/mini/1/" target=_blank mce_href="http://silverlight.net/learn/tutorials/mini/1/"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=MiniTutorialLogo2 border=0 alt=MiniTutorialLogo2 src="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo2_4CD8B517.jpg" width=256 height=75 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo2_4CD8B517.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This is the first of a series of blog posts directed at folks who are new to Silverlight and/or want to brush up on the fundamentals.&amp;nbsp; It will consist of mini-tutorials on topics I think need more coverage, and links to existing &lt;A href="http://silverlight.net/learn/tutorials/mini/1/" target=_blank mce_href="http://silverlight.net/learn/tutorials/mini/1/"&gt;mini-tutorials&lt;/A&gt;, &lt;A href="http://silverlight.net/learn/tutorials/full/1/" target=_blank mce_href="http://silverlight.net/learn/tutorials/full/1/"&gt;tutorials&lt;/A&gt; and &lt;A href="http://silverlight.net/learn/videos/silverlight-videos/" target=_blank mce_href="http://silverlight.net/learn/videos/silverlight-videos/"&gt;videos&lt;/A&gt;. We begin… at the beginning.&lt;/P&gt;
&lt;H1&gt;&lt;BR&gt;What is Silverlight, Why Do I care? &lt;BR&gt;&lt;/H1&gt;
&lt;P&gt;This is the traditional place to start, but in all probability if you are here, you know the answer. In brief: Silverlight is Microsoft’s Rich Internet Application enabling technology. The goal is to create applications that are delivered by the browser but which offer the user experience of a desktop application.&amp;nbsp; There is no question that using a RIA technology offers the ability to create a quality of experience that cannot be matched by more traditional approaches.&lt;/P&gt;
&lt;H1&gt;&lt;BR&gt;Where Do I Get It? &lt;BR&gt;&lt;/H1&gt;
&lt;P&gt;&lt;EM&gt;Everything &lt;/EM&gt;you need to start writing Silverlight applications is available on our &lt;A href="http://silverlight.net/getstarted" target=_blank mce_href="http://silverlight.net/getstarted"&gt;Get Started&lt;/A&gt; page.&lt;A href="http://www.microsoft.com/web/gallery/install.aspx?appsxml=www.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml%3Bwww.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml&amp;amp;appid=78%3B121" target=_blank mce_href="http://www.microsoft.com/web/gallery/install.aspx?appsxml=www.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml%3Bwww.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml&amp;amp;appid=78%3B121"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=WebPlatform border=0 alt=WebPlatform align=right src="http://blogs.silverlight.net/blogs/jesseliberty/WebPlatform_4C6C8222.jpg" width=193 height=46 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/WebPlatform_4C6C8222.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;If you don’t already have Visual Studio, consider starting with &lt;A href="http://www.microsoft.com/express/vwd/" target=_blank mce_href="http://www.microsoft.com/express/vwd/"&gt;Visual Web Developer&lt;/A&gt; (VWD). You can download both VWD and Silverlight together using the &lt;A href="http://www.microsoft.com/web/gallery/install.aspx?appsxml=www.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml%3Bwww.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml&amp;amp;appid=78%3B121" target=_blank mce_href="http://www.microsoft.com/web/gallery/install.aspx?appsxml=www.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml%3Bwww.microsoft.com%2Fweb%2Fwebpi%2F2.0%2FWebProductList.xml&amp;amp;appid=78%3B121"&gt;Web Platform Installer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Otherwise,&amp;nbsp; you may want to take a look at the more powerful&amp;nbsp; Visual Studio &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/professional/default.mspx" target=_blank mce_href="http://www.microsoft.com/visualstudio/en-us/products/professional/default.mspx"&gt;2008&lt;/A&gt; or the new beta of Visual Studio &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx?CR_CC=100253207&amp;amp;WT.mc_id=SEARCH&amp;amp;WT.srch=1&amp;amp;CR_SCC=100253207" target=_blank mce_href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx?CR_CC=100253207&amp;amp;WT.mc_id=SEARCH&amp;amp;WT.srch=1&amp;amp;CR_SCC=100253207"&gt;2010&lt;/A&gt;.&amp;nbsp; Once you get serious with Silverlight you’ll really want&amp;nbsp; &lt;A href="http://www.microsoft.com/expression/" target=_blank mce_href="http://www.microsoft.com/expression/"&gt;Expression&lt;/A&gt; Blend.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;H2&gt;&lt;BR&gt;&lt;FONT color=#000000 size=4&gt;Navigating the Get Started Page&lt;/FONT&gt; &lt;BR&gt;&lt;/H2&gt;
&lt;P&gt;On &lt;A href="http://silverlight.net/getstarted" target=_blank mce_href="http://silverlight.net/getstarted"&gt;Get Started&lt;/A&gt; you’ll find an array of options. The first option tells you how to get Visual Studio or VWD, and options 2, 3 and 5 while incredibly useful, are not required for your initial foray into Silverlight… so just grab option 4.&lt;/P&gt;
&lt;H3&gt;Quick Tour?&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/StartLearningAbridged_452FDE24.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/StartLearningAbridged_452FDE24.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=StartLearningAbridged border=0 alt=StartLearningAbridged align=right src="http://blogs.silverlight.net/blogs/jesseliberty/StartLearningAbridged_thumb_6B91C16F.jpg" width=244 height=164 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/StartLearningAbridged_thumb_6B91C16F.jpg"&gt;&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;In the next section on the Get Started page, you’ll find a quick tour of Silverlight.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This is a great way to get going. On the other hand, if you are going to follow &lt;EM&gt;this &lt;/EM&gt;series, you may want to watch just #1 (Getting Started video) and hold off on the rest as I’m&amp;nbsp; going to integrate all of that material (including Tim’s terrific 8 part blog series) as we go. &lt;/P&gt;
&lt;H2&gt;&lt;FONT color=#000000 size=4&gt;The Tools&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;Tim’s &lt;A href="http://timheuer.com/blog/articles/silverlight-get-started-part-1-hello-world.aspx" target=_blank mce_href="http://timheuer.com/blog/articles/silverlight-get-started-part-1-hello-world.aspx"&gt;excellent first video&lt;/A&gt; in his series will definitely get you started on the right foot using the tools.&amp;nbsp; &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/TimH_0319B75A.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/TimH_0319B75A.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=TimH border=0 alt=TimH align=right src="http://blogs.silverlight.net/blogs/jesseliberty/TimH_thumb_0DD70EAF.jpg" width=171 height=136 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/TimH_thumb_0DD70EAF.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I’ve never fully understood why developers don’t spend more time learning the details of Visual Studio; it is, after all, our fundamental tool, the environment in which we live all day. Time spent on getting all you can out of Visual Studio will pay dividends for a long time.&lt;/P&gt;
&lt;H2&gt;&lt;FONT color=#000000 size=4&gt;Diving In&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;With that, you are ready to dive into Silverlight. Arguably, the best way to get a handle on what Silverlight is, is to write a program that uses it to accomplish something reasonably useful. A good starter video on building an application (a bit old, but still correct) is &lt;A href="http://silverlight.net/learn/videos/all/using-the-silverlight-canvas/" target=_blank mce_href="http://silverlight.net/learn/videos/all/using-the-silverlight-canvas/"&gt;this gentle intro&lt;/A&gt; to creating a Silverlight application with Visual Studio, using the Canvas to lay out controls.&amp;nbsp; Then read &lt;A href="http://timheuer.com/blog/articles/silverlight-get-started-part-2-defining-layout.aspx" target=_blank mce_href="http://timheuer.com/blog/articles/silverlight-get-started-part-2-defining-layout.aspx"&gt;Part 2&lt;/A&gt; in Tim’s series on layout. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Next in this series:&lt;/STRONG&gt; &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/06/designer-v-xaml-v-code.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/06/designer-v-xaml-v-code.aspx"&gt;Three Approaches: Designer, Xaml or Dynamic&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=313079" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=p4x1VPmc9_I:7BTXwVVXvds:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=p4x1VPmc9_I:7BTXwVVXvds:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=p4x1VPmc9_I:7BTXwVVXvds:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=p4x1VPmc9_I:7BTXwVVXvds:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/p4x1VPmc9_I" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Mini-Tutorial/default.aspx">Mini-Tutorial</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Getting+Started/default.aspx">Getting Started</category><evnet:views>1981</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=313079</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx</feedburner:origLink></item><item><title>Silverlight Synchronicity</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/jz3LDKaBq1o/silverlight-synchronicity.aspx</link><pubDate>Tue, 27 Oct 2009 14:32:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:309885</guid><dc:creator>jesseliberty</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=309885</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=309885</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/27/silverlight-synchronicity.aspx#comments</comments><description>&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/SilverlightConsulting_1D469EF4.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/SilverlightConsulting_1D469EF4.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=SilverlightConsulting border=0 alt=SilverlightConsulting align=right src="http://blogs.silverlight.net/blogs/jesseliberty/SilverlightConsulting_thumb_5C381F8F.jpg" width=244 height=141 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/SilverlightConsulting_thumb_5C381F8F.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;At &lt;A href="http://visitmix.com/" target=_blank mce_href="http://visitmix.com/"&gt;Mix&lt;/A&gt; ‘07 I watched &lt;A href="http://en.wikipedia.org/wiki/Scott_Guthrie" target=_blank mce_href="http://en.wikipedia.org/wiki/Scott_Guthrie"&gt;Scott Guthrie’s&lt;/A&gt; keynote introduction of &lt;STRONG&gt;Silverlight&lt;/STRONG&gt;,&amp;nbsp; and it was a watershed moment in my career.&amp;nbsp; Within 48 hours I had pivoted my consulting business to focus entirely on this new and game-changing&amp;nbsp; technology; a few months later I ended 15 years as an independent to join Microsoft as Silverlight Geek, a job that has been immensely rewarding.&lt;/P&gt;
&lt;P&gt;On a personal (and seemingly unrelated) note; while my older daughter was in &lt;A href="http://www.csw.org/" target=_blank mce_href="http://www.csw.org/"&gt;high school&lt;/A&gt; she became fluent in &lt;STRONG&gt;American Sign Language&lt;/STRONG&gt; (&lt;A href="http://en.wikipedia.org/wiki/American_Sign_Language" target=_blank mce_href="http://en.wikipedia.org/wiki/American_Sign_Language"&gt;ASL&lt;/A&gt;) under the tutelage of two terrific teachers, one hearing, one deaf. She joined the school’s justifiably famous Pocket Players bi-lingual (ASL and spoken English) theater group under the&amp;nbsp; direction of the incomparable and greatly &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/RobinWood_10D563EB.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/RobinWood_10D563EB.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 10px 10px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=RobinWood border=0 alt=RobinWood align=left src="http://blogs.silverlight.net/blogs/jesseliberty/RobinWood_thumb_14737EC8.jpg" width=117 height=141 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/RobinWood_thumb_14737EC8.jpg"&gt;&lt;/A&gt;missed &lt;A href="http://www.boston.com/bostonglobe/obituaries/articles/2009/03/26/robin_wood_spread_her_love_of_theater_to_varied_audiences/" target=_blank mce_href="http://www.boston.com/bostonglobe/obituaries/articles/2009/03/26/robin_wood_spread_her_love_of_theater_to_varied_audiences/"&gt;Robin Wood&lt;/A&gt;, and the extraordinary&amp;nbsp; natural-born-teacher Ron Galiazzo, (who has been patient&amp;nbsp; enough to teach me a little faltering ASL as well). My daughter learned, and taught us, great respect for Deaf culture,&amp;nbsp; and I had the incredible pleasure of watching her perform and then taking part with her in a celebration of Chinese American Deaf culture in Boston, where I spent the evening talking happily in broken-ASL with my tablemates. &lt;/P&gt;
&lt;P&gt;The third piece of yesterday’s synchronicity touches on the person who most famously embodied the stereotype-shattering new awareness of all that the hearing world has historically gotten wrong about Deaf culture, and the abilities and supposed limitations of deaf people, Marlee Matlin. Her singular and award winning performances in &lt;A href="http://en.wikipedia.org/wiki/Children_of_a_lesser_god" target=_blank mce_href="http://en.wikipedia.org/wiki/Children_of_a_lesser_god"&gt;Children of&amp;nbsp; A Lesser God&lt;/A&gt; and &lt;A href="http://en.wikipedia.org/wiki/The_West_Wing" target=_blank mce_href="http://en.wikipedia.org/wiki/The_West_Wing"&gt;The West Wing&lt;/A&gt; have had an impact on me and so many others,&amp;nbsp; for over twenty years. &lt;/P&gt;
&lt;P&gt;All of this came together spectacularly yesterday when I posted &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/26/hypervideo-closed-caption-amp-accessibility.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/26/hypervideo-closed-caption-amp-accessibility.aspx"&gt;a small blog entry&lt;/A&gt; on the ability of Silverlight to support &lt;A href="http://en.wikipedia.org/wiki/Closed_captioning" target=_blank mce_href="http://en.wikipedia.org/wiki/Closed_captioning"&gt;closed captioning&lt;/A&gt; and my commitment to including Accessibility in the design of &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx"&gt;the HyperVideo project.&lt;/A&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/MatlinTweet_21DCA9AE.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/MatlinTweet_21DCA9AE.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 0px 10px 10px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=MatlinTweet border=0 alt=MatlinTweet align=right src="http://blogs.silverlight.net/blogs/jesseliberty/MatlinTweet_thumb_52FBE44E.jpg" width=244 height=185 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/MatlinTweet_thumb_52FBE44E.jpg"&gt;&lt;/A&gt; This was picked up, I’m incredibly happy to say, by Ms. Matlin who tweeted about it to the &lt;A href="http://www.nad.org/" target=_blank mce_href="http://www.nad.org/"&gt;National Association of the Deaf&lt;/A&gt;&amp;nbsp; (NAD) and “everyone.”&amp;nbsp; I have to say, that not only made my day (week, month!) but brought home how much impact Silverlight can have.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I don’t want in any way to exploit Ms. Matlin’s tweet; this is not about promoting our technology as much as enjoying having made indirect contact with someone whose work I admire, and sharing that joy with the Silverlight community. It was very cool to see what she wrote, but it is also a reminder how vital it is, to get these things “right,” including remembering that adding Accessibility isn’t a trivial decision; but one that affects the ability of a great many people to use the products that Silverlight enables.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=309885" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jz3LDKaBq1o:7I__-FnfjUM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jz3LDKaBq1o:7I__-FnfjUM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jz3LDKaBq1o:7I__-FnfjUM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jz3LDKaBq1o:7I__-FnfjUM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/jz3LDKaBq1o" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Cool+Stuff/default.aspx">Cool Stuff</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/VideoWiki/default.aspx">VideoWiki</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Accessibility/default.aspx">Accessibility</category><evnet:views>2361</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=309885</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/27/silverlight-synchronicity.aspx</feedburner:origLink></item><item><title>Hypervideo, Closed Captions &amp; Accessibility</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/jakDlkZFN5k/hypervideo-closed-caption-amp-accessibility.aspx</link><pubDate>Mon, 26 Oct 2009 21:46:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:309454</guid><dc:creator>jesseliberty</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=309454</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=309454</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/26/hypervideo-closed-caption-amp-accessibility.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;Closed Captioning For Silverlight Media page &lt;/EM&gt;at &lt;A href="http://t2sami.com/t2samisite/AccessibleMediaPlayer.html" mce_href="http://t2sami.com/t2samisite/AccessibleMediaPlayer.html"&gt;T2Sami.com&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;says in its commentary:&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;A number of very sophisticated Silverlight Video players are under development: some open source, some proprietary…. The commitment to captioning in Silverlight is not so well supported. If it is included at all, it is frequently an afterthought.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In my initial series on &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/28/hypervideo.aspx" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/28/hypervideo.aspx"&gt;HyperVideo&lt;/A&gt; I started with the media player emitted by Encoder, and stripped out the Closed Captioning button. That was unnecessary and I regret it. Please take this posting as my pledge not to have closed captioning and other accessibility issues be an afterthought; but rather they will be an integral part of the spec I will deliver for HyperVideo on December 1 for the &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx"&gt;renewed HyperVideo project&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;In the&amp;nbsp; interim, please take a look at &lt;A href="http://amp.codeplex.com/wikipage?title=tutorial_1" target=_blank mce_href="http://amp.codeplex.com/wikipage?title=tutorial_1"&gt;this excellent tutorial&lt;/A&gt; on Captioning In Silverlight on the Accessible Media Project and also be sure to check out these two open source projects: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://amp.codeplex.com/" target=_blank mce_href="http://amp.codeplex.com"&gt;Accessible Silverlight media player&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://buttercupreader.codeplex.com/" target=_blank mce_href="http://buttercupreader.codeplex.com/"&gt;Accessible Silverlight application for e-books.&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=309454" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jakDlkZFN5k:t81W5IuKebI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jakDlkZFN5k:t81W5IuKebI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=jakDlkZFN5k:t81W5IuKebI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=jakDlkZFN5k:t81W5IuKebI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/jakDlkZFN5k" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Hypervideo/default.aspx">Hypervideo</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Cool+Stuff/default.aspx">Cool Stuff</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Recommended+Resources/default.aspx">Recommended Resources</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Blog/default.aspx">Blog</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Accessibility/default.aspx">Accessibility</category><evnet:views>2926</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=309454</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/26/hypervideo-closed-caption-amp-accessibility.aspx</feedburner:origLink></item><item><title>Expectations Are Everything</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/zBekyKQ1T-Y/expectations-are-everything.aspx</link><pubDate>Fri, 23 Oct 2009 02:53:43 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:307686</guid><dc:creator>jesseliberty</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=307686</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=307686</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/22/expectations-are-everything.aspx#comments</comments><description>&lt;h3&gt;&lt;em&gt;Quick Bit&lt;/em&gt;&lt;/h3&gt;  &lt;p&gt;Anyone who has ever debugged a program knows that you tend to see what you expect. I’ve learned that lesson a dozen times, in a dozen ways.&amp;#160; &lt;/p&gt;  &lt;p&gt;A classic example is to ask someone to read the following illustration aloud (don’t over-think it but when you’re sure you’re done, see the answer &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/pages/paris.aspx" target="_blank"&gt;here&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/ParisInTheSpring_640BD622.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="ParisInTheSpring" border="0" alt="ParisInTheSpring" src="http://blogs.silverlight.net/blogs/jesseliberty/ParisInTheSpring_thumb_4318637B.jpg" width="240" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Expectations&lt;/h1&gt;  &lt;p&gt;   &lt;br /&gt;Today, I got smacked in the face with the power of expectations.&amp;#160; One of the best dog trainers I ever met recently recommended a new kind of dog harness to us; saying “you never tug or pull the dog; you just walk and it makes it more comfortable for him to come with you than to do anything else.”&lt;/p&gt;  &lt;p&gt;So, we plopped down our $20 for a Gentle Leader Easy Walk harness, and then it sat in the mudroom&amp;#160; &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/HarnessOnDog_1B71E751.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HarnessOnDog" border="0" alt="HarnessOnDog" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/HarnessOnDog_thumb_214C8AEA.jpg" width="244" height="172" /&gt;&lt;/a&gt; for three weeks before I finally got around to trying it.&amp;#160; I put it on and – wow! what a difference. Just like Jen said, no pulling, no tugging, I didn’t have to “correct” him at all (I hate being corrected, myself).&amp;#160; It was really quite impressive until I got home and took it off him and found I’d accidentally attached his lead to his traditional collar, and the new harness had not been at work at all. &lt;/p&gt;  &lt;p&gt;Lesson learned? For about 5 minutes. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PS: Jen is also the trainer who told me “A tired dog is a good dog, and an exhausted dog is a &lt;em&gt;great&lt;/em&gt; dog.”&amp;#160; For two ultra-short movies of Charlie please see &lt;a href="http://tinyurl.com/charlieFlick-1" target="_blank"&gt;here&lt;/a&gt; or &lt;a href="http://tinyurl.com/charlieFlick-2" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=307686" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=zBekyKQ1T-Y:kMYkdXLk6EE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=zBekyKQ1T-Y:kMYkdXLk6EE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=zBekyKQ1T-Y:kMYkdXLk6EE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=zBekyKQ1T-Y:kMYkdXLk6EE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/zBekyKQ1T-Y" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Perspective/default.aspx">Perspective</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Quick+Bits/default.aspx">Quick Bits</category><evnet:views>2520</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=307686</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/22/expectations-are-everything.aspx</feedburner:origLink></item><item><title>Building A Product For Real</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/DacpDKZSgis/building-a-product-for-real.aspx</link><pubDate>Mon, 19 Oct 2009 19:34:26 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:305170</guid><dc:creator>jesseliberty</dc:creator><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=305170</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=305170</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx#comments</comments><description>&lt;p&gt;As some of you know; I’ve been showing a number of Silverlight features in terms of &lt;em&gt;&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/pages/turing-faq.aspx" target="_blank"&gt;Project Turing.&lt;/a&gt;&amp;#160; &lt;/em&gt;It was never my intention to finish that project; rather to use it as a mooring point to ensure that the mini-tutorials were realistic about building applications.&lt;/p&gt;  &lt;p&gt;The second purpose of the Turing project was as a proof of concept. I now have the green light to go for a full development process, with the clear goal of creating a working application that will be:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A &lt;em&gt;complete&lt;/em&gt; design to delivery project&lt;/li&gt;    &lt;li&gt;A source of frequent mini-tutorials and videos&lt;/li&gt;    &lt;li&gt;An opportunity for much more intense community contribution&lt;/li&gt;    &lt;li&gt;An opportunity to work with designers and the Expression team&lt;/li&gt;    &lt;li&gt;A product we can put to use here on Silverlight.net&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It just doesn’t get any better than that.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Who, What, When, Where and Why&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Who&lt;/strong&gt;:&amp;#160; If all goes as planned, this project will be moderated open-source with active participation and contributions from as many in the community as care to participate. Until now, I’ve been doing what I refer to as “glass house” programming; that is, designing and programming myself, but openly and documented.&amp;#160; It is possible that the initial stages will be glass house, but the plan of record is to move to Open Source. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What&lt;/strong&gt;: The &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/07/30/video-wiki-status-and-overview.aspx" target="_blank"&gt;VideoWiki&lt;/a&gt; project lends itself to being completed in two discrete phases.&amp;#160; Phase 1 will be the creation of a Silverlight &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/28/hypervideo.aspx" target="_blank"&gt;HyperVideo&lt;/a&gt; player targeted at enhanced How-Do-I videos. Phase 2, moving from HyperVideo to VideoWiki will follow if time and interest allows.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt;&amp;#160; While I already have a number of postings on HyperVideo, it is time to re-think, redesign and to create a detailed specification.&amp;#160; I’ll deliver that, here on my blog, by November 30.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Design and Coding begin December 1, 2009 and will be completed by July 1, 2010. &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Where: &lt;/strong&gt;For now the project will live on my blog; but if this is to be truly open source then it must move to CodePlex. That is the goal.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Why:&amp;#160; &lt;/strong&gt;To meet the needs of both novice and intermediate Silverlight programmers, and if Silverlight 4 comes along during our development time, to provide a great basis for introducing new features. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;It shouldn’t be all that hard&lt;/h3&gt;  &lt;p&gt;The truth is that this is not all that big a project, and a quick look at the work done last year reveals that the tools will do a lot of the work for us. That said, there are some interesting subtleties we should be able to explore along the way.&lt;/p&gt;  &lt;p&gt;If you have early thoughts about what should/must/must-not be in the project, be sure to &lt;a href="http://mailto:jliberty@microsoft.com" target="_blank"&gt;let me know&lt;/a&gt;.&lt;/p&gt;  &lt;table border="3" cellspacing="0" cellpadding="5" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;With PDC on the way, there will be a short-term drop in the release of videos and mini-tutorials for the next couple weeks., though I will make sure that there are some very substantive posts during that period. Expect a sharp uptick afterwards.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=305170" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DacpDKZSgis:xs19pbSwOyY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DacpDKZSgis:xs19pbSwOyY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DacpDKZSgis:xs19pbSwOyY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DacpDKZSgis:xs19pbSwOyY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/DacpDKZSgis" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Hypervideo/default.aspx">Hypervideo</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Blog/default.aspx">Blog</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/VideoWiki/default.aspx">VideoWiki</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Project+Turing/default.aspx">Project Turing</category><evnet:views>4216</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=305170</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/building-a-product-for-real.aspx</feedburner:origLink></item><item><title>Time To Update My Favorites</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/g-BJrcI_-Ws/time-to-update-my-favorites.aspx</link><pubDate>Mon, 19 Oct 2009 18:00:39 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:305084</guid><dc:creator>jesseliberty</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=305084</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=305084</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/time-to-update-my-favorites.aspx#comments</comments><description>&lt;p&gt;Periodically I take a shot at listing my favorites: some folks find useful items they hadn’t looked at and it forces me to take a long hard look at whether it is time to try something new.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Today: Favorite Utilities &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/iStock_happy_crowdatcomputerXSmall_3204B38E.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 10px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Business success team" border="0" alt="Business success team" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/iStock_happy_crowdatcomputerXSmall_thumb_10A50DF2.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Upcoming:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Favorite Mac Utilities &lt;/li&gt;    &lt;li&gt;Favorite iPhone Apps &lt;/li&gt;    &lt;li&gt;Favorite Programmer Utilities &lt;/li&gt;    &lt;li&gt;Favorite Non-fiction &lt;/li&gt;    &lt;li&gt;Favorite Fiction &lt;/li&gt;    &lt;li&gt;Favorite Programming Books &lt;/li&gt;    &lt;li&gt;Favorite Music (uh oh) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;On the one hand, I can’t imagine why you’d care. On the other hand, building a community is more than just code; and sharing favorites can be more than just utilitarian.&amp;#160; In any case, you (no, really, &lt;em&gt;you&lt;/em&gt;) are strongly encouraged, asked, pleaded with;&amp;#160; to comment, add your fave’s and etc.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Favorite Utilities 2009&lt;/h3&gt;  &lt;p&gt;NB: This list does not include my favorite programming utilities, and&amp;#160; is just those utilities that run on Win 7 (which is now on all my Win machines)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/gp/ays/ref=yml_wid_item?view=ut;required&amp;amp;viewType=coverlist&amp;amp;asin=&amp;amp;viewShared=1&amp;amp;targetCustomerId=AS6H78AHJTF38&amp;amp;searchTerms=&amp;amp;sortCol=dateAcquired&amp;amp;sortDir=desc"&gt;Amazon's Media Library&lt;/a&gt; - one of the better ways to share what you're reading and listening to. Dynamic, configurable, pretty easy to cope with.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.autohotkey.com/" target="_blank"&gt;Auto Hot Key&lt;/a&gt; – Finally! Add macros to a simple text file and they work &lt;em&gt;everwhere&lt;/em&gt;.&amp;#160; I have two files: auto-correct (fixes common spelling errors instantly) and my macros. For example “@me” instantly changes to &lt;a href="http://www.SilverlightGeek.me"&gt;http://www.SilverlightGeek.me&lt;/a&gt;&amp;#160; The syntax is simple and adding or modifying a macro takes seconds.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bluemars.org/clipx/" target="_blank"&gt;ClipX&lt;/a&gt; – Very sweet, small, easy to use clipboard manager, with “yank-pop” and with reserved phrases you can reach easily.&amp;#160; Learning time: 2 min.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evernote.com/"&gt;Evernote&lt;/a&gt; – Create (or clip) notes about anything, organize to the extent you want, find them instantly, access via PC, Mac, phone, web. Truly brilliant. Truly indispensable.&amp;#160; Uses include everything from meeting notes to taking a picture of your car and asking it to lead you back using the GPS. You can also ask “show me every note I wrote in the past 2 years when I was within 50 miles of right here” – great for biz travel.&amp;#160; See iPhone Utilities. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.prestosoft.com/ps.asp?page=edp_examdiffpro"&gt;Exam Diff Pro&lt;/a&gt; - best I know for examining differences in files and directories.&amp;#160; More coverage under Programming utilities, but I also use it for comparing documents. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.fineprint.com/"&gt;FinePrint &lt;/a&gt;- print pages 2-up and much more. Can save a lot of paper and a surprising amount of printing time. Installs as a printer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gotomypc.com/"&gt;GoToMyPC&lt;/a&gt; - access your pc securely from anywhere. Just great, though I may give it up if the built in functionality in Win7 is sufficient.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.goodsync.com/" target="_blank"&gt;GoodSync&lt;/a&gt; – Easy, efficient backup or synchronization between computers.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/iMo_1D9EEE03.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="iMo" border="0" alt="iMo" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/iMo_thumb_15A74BA1.jpg" width="244" height="133" /&gt; Hulu Desktop&lt;/a&gt; – Changed the way I deal with TV. I’m not much of a TV watcher, but the ability to queue up shows, subscribe and watch on my PC (for which I highly recommend the &lt;a href="http://www.mimomonitors.com/products/imo" target="_blank"&gt;iMo Pivot 7” USB screen&lt;/a&gt;) has meant watching the Daily Shows that I’d otherwise miss.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hyperionics.com/"&gt;Hypersnap DX &lt;/a&gt;- My screen capture of choice for many years and I still really like it, but it is time to check out &lt;a href="http://www.techsmith.com/" target="_blank"&gt;Snaggit&lt;/a&gt; combined with &lt;a href="http://www.getpaint.net/" target="_blank"&gt;Paint.Net&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://get.live.com/"&gt;Live Writer&lt;/a&gt; - Best blog authoring software I know of. Be sure to pick the best of the plugins. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.pandora.com/"&gt;Pandora&lt;/a&gt; - The Music Genome Project. Single best music site on the net, now on phones as well and I swear it is getting better. Be certain to find their technical background material and to explore how the service works. This is not “wisdom of the crowds” this is “quantify all you can about music and then find other music that is similar in meaningful ways. See this good intro from the &lt;a href="http://tinyurl.com/yfbddw3" target="_blank"&gt;NY Times&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.roboform.com/"&gt;Roboform&lt;/a&gt; – Individual passwords for every site, generates strong passwords, master password to protect them all. Easy, fast, effective, customizable and totally reliable. Now supports sharing across multiple PCs. Partial integration &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/Stacks_02F251EA.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="Stacks" border="0" alt="Stacks" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/Stacks_thumb_08CCF583.jpg" width="153" height="244" /&gt;&lt;/a&gt;with &lt;a href="http://agilewebsolutions.com/" target="_blank"&gt;1Password&lt;/a&gt; (see Mac Utilities). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.alastria.com/index.php?p=software-7s" target="_blank"&gt;7Stacks&lt;/a&gt; – Nice small utility that lets you create a stack of links on your toolbar. In the image shown, my stack is linked to a folder; anything in the folder pops up in the stack.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://trillian.cc/"&gt;Trillian&lt;/a&gt; – All your IM Services in one place. I particularly like the ability to tie actions to events. I’ve set it up so that adding the word urgent to the text causes it to make a special sound. Very flexible.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.slysoft.com/en/virtual-clonedrive.html" target="_blank"&gt;Virtual Clone Drive&lt;/a&gt; Allows you to mount an ISO, BIN or other image file onto what appears to be a physical drive, but is actually a virtual drive. Very slick (and free!)&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=305084" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=g-BJrcI_-Ws:JiJldqQ1HxM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=g-BJrcI_-Ws:JiJldqQ1HxM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=g-BJrcI_-Ws:JiJldqQ1HxM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=g-BJrcI_-Ws:JiJldqQ1HxM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/g-BJrcI_-Ws" height="1" width="1"/&gt;</description><evnet:views>2733</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=305084</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/19/time-to-update-my-favorites.aspx</feedburner:origLink></item><item><title>Bayesian Probability</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/c52a30r9ufc/bayesian-probability.aspx</link><pubDate>Mon, 12 Oct 2009 21:16:59 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:301596</guid><dc:creator>jesseliberty</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=301596</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=301596</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/12/bayesian-probability.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Spent the early hours of this morning reading a great blog post by &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff Atwood&lt;/a&gt; which makes reference to a Elizer S. Yudkowsky’s &lt;a href="http://yudkowsky.net/rational/bayes"&gt;Intuitive Explanation&lt;/a&gt; of&amp;#160; &lt;a href="http://en.wikipedia.org/wiki/Baysian"&gt;Bayesian Probability.&lt;/a&gt; The timing was good as I had just finished the (highly recommended) book &lt;i&gt;The Drunkard’s Walk&lt;/i&gt; which agreed with Jeff that most humans simply are not wired to deal with probability very well. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0307275175/libertyassocia00A"&gt;&lt;img border="0" align="left" src="http://images.amazon.com/images/P/0307275175.01.MZZZZZZZ.jpg" /&gt;The Drunkard's Walk: How Randomness Rules Our Lives (Vintage) (9780307275172): Leonard Mlodinow: Books&lt;/a&gt;    &lt;br /&gt;&lt;b&gt;ISBN&lt;/b&gt;: 0307275175    &lt;br /&gt;&lt;b&gt;ISBN-13&lt;/b&gt;: 9780307275172&lt;/p&gt;  &lt;p&gt;Yudkowsky poses the following canonical problem:&lt;/p&gt;  &lt;p&gt;1% of women at age forty who participate in routine screening have breast cancer. 80% of women with breast cancer will get positive mammographies. 9.6% of women without breast cancer will also get positive mammographies. A woman in this age group had a positive mammography in a routine screening. What is the probability that she actually has breast cancer?&lt;/p&gt;  &lt;p&gt;The frightening thing is that according to Atwood, only 15% of &lt;i&gt;doctors&lt;/i&gt; get this right. And they’re off by &lt;i&gt;a lot&lt;/i&gt;. That is, the average answer is in the range of 80% while the correct answer is 7.8%.&amp;#160; Apparently, there is something about the way we think about the problem that makes 7.8% hard to accept, and Yudkowsky does a great job of walking you through the logic in painfully small steps. &lt;/p&gt;  &lt;p&gt;To me, however, there is a pretty straight-forward way to think about this (though it may only be intuitive since I’ve been through this a few times).&lt;/p&gt;  &lt;h6&gt;What Do We Know &amp;amp; What Does It Imply?&lt;/h6&gt;  &lt;p&gt;We have three pieces of information:&lt;/p&gt;  &lt;p&gt;1% of sample are TRUE&amp;#160; (that is have cancer)&lt;/p&gt;  &lt;p&gt;80% of sample who are TRUE will &lt;i&gt;test&lt;/i&gt; TRUE&lt;/p&gt;  &lt;p&gt;9.6% of sample who are FALSE will &lt;i&gt;test &lt;/i&gt;TRUE.&lt;/p&gt;  &lt;p&gt;On the face of it, we should guess that the percentage of women who test TRUE who actually &lt;i&gt;are&lt;/i&gt; TRUE (test positive and actually have cancer)&amp;#160; is pretty small based on two facts provided: the actual percentage of women from the sample who are TRUE (regardless of testing) is only 1%, and the test has a false positive for 9.6% of those tested.&lt;/p&gt;  &lt;p&gt;So, my reasoning to solve this is: &lt;/p&gt;  &lt;p&gt;1. Assume we have a sample of 1000 women (I use 1000 to reduce the amount I have to talk about fractional people, but I don’t use 10,000 as I get lost in the zeros). &lt;/p&gt;  &lt;p&gt;2. We know that the reality is that of the 1,000 women, 10 will have cancer (1%). &lt;/p&gt;  &lt;p&gt;990 = no cancer    &lt;br /&gt;10 = cancer&lt;/p&gt;  &lt;p&gt;3. Of the 10 who have cancer, 8 will test positive    &lt;br /&gt;8 out 1000 women tested will test True and are True&lt;/p&gt;  &lt;p&gt;4. Of the 990 with no cancer 9.6% will also test positive = 990 * .096 = 95.04.&amp;#160; &lt;br /&gt;95.04 women out of 1,000 will test True but are False.&lt;/p&gt;  &lt;p&gt;5. The total number testing true is 8 + 95.04 = 103.04.&amp;#160; &lt;br /&gt;Of these, 8 actually have Cancer. &lt;/p&gt;  &lt;p&gt;6. So the value for &lt;i&gt;tests&lt;/i&gt; positive (103.04) versus &lt;i&gt;is&lt;/i&gt; positive (8) is 8:103.4 or 0.773&amp;#160; or 7.8%&amp;#160; &lt;br /&gt;(8 of the 103.4 = 8/103.4)&lt;/p&gt;  &lt;h6&gt;Not Being Misled&lt;/h6&gt;  &lt;p&gt;The key to this and many problems like it is to realize that what you are trying to find is the relationship between those who Test positive vs. the reality of those who are positive, which is why you need all three numbers.&lt;/p&gt;  &lt;h6&gt;Probability is Weird and Cancer Is Scary&lt;/h6&gt;  &lt;p&gt;True story: I have a friend who is the head of breast cancer surgery at a &lt;i&gt;very&lt;/i&gt; respected hospital. I was at a dinner party where he mentioned that a “very small percentage of those who show up with a positive test actually have cancer.”&amp;#160; This caused a lot of confusion, and that is because we (a) don’t deal with probability well and (b) don’t understand policy tradeoffs as a result. &lt;/p&gt;  &lt;p&gt;From a policy point of view, it is too expensive (money, time, etc.) to test everyone with a biopsy, etc.&amp;#160; The preliminary screening is sufficient to move your knowledge from the general 1% probability to the more specific 7.8%, which is enough to pursue. The fact that 20% of women with cancer will get a false negative doesn’t mean that it is better to test everyone, and the fact that out of every 1,000 tested 95 will falsely test positive (and be subjected to needless worry) also does not mean that it isn’t worth using the screening test. &lt;/p&gt;  &lt;p&gt;That said, it would be good if, before you took the test, you were told that a positive result means you have less than an 8% chance of actually being positive and that in any case, the test doesn’t change the reality of whether or not you &lt;i&gt;are &lt;/i&gt;positive!&lt;/p&gt;  &lt;p&gt;This kind of confusion leads to people not flying to countries where there has been a terrorist incident but happily driving across country. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;It is estimated that after the 9/11 attack, more people lost their lives by choosing to drive when they otherwise would have flown than were killed in the actual attack.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;===&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;[Migrating the best of Quick Bits to my blog – items of interest to Geeks, tagged Quick Bits]&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=301596" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=c52a30r9ufc:Xsi8COMzDXY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=c52a30r9ufc:Xsi8COMzDXY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=c52a30r9ufc:Xsi8COMzDXY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=c52a30r9ufc:Xsi8COMzDXY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/c52a30r9ufc" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Cool+Stuff/default.aspx">Cool Stuff</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Quick+Bits/default.aspx">Quick Bits</category><evnet:views>3169</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=301596</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/12/bayesian-probability.aspx</feedburner:origLink></item><item><title>Review: Microsoft Web Cam (QB)</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/5qVyek5Gtpg/review-microsoft-web-cam-qb.aspx</link><pubDate>Mon, 12 Oct 2009 17:35:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:301495</guid><dc:creator>jesseliberty</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=301495</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=301495</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/12/review-microsoft-web-cam-qb.aspx#comments</comments><description>&lt;p&gt;My boss sent me a &lt;a href="https://www.microsoft.com/hardware/digitalcommunication/ProductDetails.aspx?pid=008" target="_blank" mce_href="https://www.microsoft.com/hardware/digitalcommunication/ProductDetails.aspx?pid=008"&gt;Microsoft High Def Web Cam&lt;/a&gt;, (we do a lot of teleconferencing).&amp;#160; &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/CameraDimensions_0D237862.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/CameraDimensions_73C1D8B3.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px; display: inline; border-top: 0px; border-right: 0px" title="CameraDimensions" border="0" alt="CameraDimensions" align="left" src="http://blogs.silverlight.net/blogs/jesseliberty/CameraDimensions_thumb_2546E2BD.jpg" width="163" height="244" mce_src="http://blogs.silverlight.net/blogs/jesseliberty/CameraDimensions_thumb_59816F8F.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I admit to being somewhat skeptical initially; I had a web camera, seemed to work fine.&amp;#160; This new camera blew me out of my seat.&amp;#160; &lt;/p&gt;  &lt;p&gt;The overall quality was awesome, and the depth of field extraordinaire (so much so that I had re-tilt the camera so as not to show my messy office!) &lt;/p&gt;  &lt;p&gt;The built-in digital microphone appears to be good enough that I can use it with my dictation software and eschew my regular headset, which is very nice.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'm particularly fond of the WebCam base. It is made of extremely flexible material, and allows me to attach the camera both to my flatscreen monitor and to my laptop with zero difficulty. &lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/WebCamBase_0B72AC8E.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/WebCamBase_26B1691B.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px; display: inline; border-top: 0px; border-right: 0px" title="WebCamBase" border="0" alt="WebCamBase" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/WebCamBase_thumb_18D8BF94.jpg" width="198" height="137" mce_src="http://blogs.silverlight.net/blogs/jesseliberty/WebCamBase_thumb_6A196A7D.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This really is the best webcam I've seen. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A quick note on Quick Bits:&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/LifeCamHD_4FD79DA2.jpg" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/LifeCamHD_7E328706.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px; display: inline; border-top: 0px; border-right: 0px" title="LifeCamHD" border="0" alt="LifeCamHD" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/LifeCamHD_thumb_55B2413B.jpg" width="324" height="184" mce_src="http://blogs.silverlight.net/blogs/jesseliberty/LifeCamHD_thumb_3604CB2A.jpg" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I tried the experiment of presenting “Quick Bits” (too large for twitter, too small for the blog) on separate pages. After reviewing usage and listening to reader feedback, I’ve decided to reintegrate Quick Bits back into the main Blog, but with the &lt;em&gt;Quick Bits&lt;/em&gt; tag so that you can read (or avoid) them as they appear.&amp;#160; I’ll migrate the existing ones that are worth keeping over the next week or so.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=301495" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=5qVyek5Gtpg:HeYvmaoV620:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=5qVyek5Gtpg:HeYvmaoV620:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=5qVyek5Gtpg:HeYvmaoV620:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=5qVyek5Gtpg:HeYvmaoV620:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/5qVyek5Gtpg" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Cool+Stuff/default.aspx">Cool Stuff</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Recommended+Resources/default.aspx">Recommended Resources</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Quick+Bits/default.aspx">Quick Bits</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Review/default.aspx">Review</category><evnet:views>2850</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=301495</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/10/12/review-microsoft-web-cam-qb.aspx</feedburner:origLink></item><item><title>What Makes A How-Do-I Video Great ?</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/Q0sb9nwAsfE/what-makes-a-how-do-i-video-great.aspx</link><pubDate>Thu, 01 Oct 2009 00:20:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:295094</guid><dc:creator>jesseliberty</dc:creator><slash:comments>15</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=295094</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=295094</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/30/what-makes-a-how-do-i-video-great.aspx#comments</comments><description>&lt;p&gt;I have been thinking a lot about how differently each of us (inside and out of Microsoft) approaches creating How-Do-I videos. &lt;/p&gt;  &lt;p&gt;Let’s start by agreeing that no one instructor will please everyone, and the best way to create truly excellent videos is to step away from ego and try to zero in on what it is that this community values in instructional videos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.silverlight.net/learn/videos/all/" target="_blank" mce_href="http://www.silverlight.net/learn/videos/all/"&gt;&lt;img style="border-right-width: 0px; margin: 10px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Videos" border="0" alt="Videos" align="right" src="http://blogs.silverlight.net/blogs/jesseliberty/Videos_4EF84BD1.jpg" width="240" height="158" mce_src="http://blogs.silverlight.net/blogs/jesseliberty/Videos_0B4FAB38.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;Create A List, Check It Twice&lt;/h1&gt;  &lt;p&gt;What follows are the characteristics that I look for and pay attention to, both when I'm creating videos and when I'm watching them.&amp;#160; &lt;/p&gt;  &lt;table border="2" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;One of the things that I hope will come out of this posting is a healthy, strong, ongoing discussion about what makes for &amp;quot;good&amp;quot; videos; that is videos that are worth your time to watch.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;Depends on whether your meaning of “good” is good.&amp;#160; &lt;/h1&gt;  &lt;p&gt;We can probably all agree that &lt;i&gt;good sound quality&lt;/i&gt; is better than poor sound quality, and even agree on whether a given video &lt;i&gt;has &lt;/i&gt;good (or good enough) sound quality. We may not all agree on what makes for &lt;i&gt;good pacing&lt;/i&gt; – that is,&amp;#160; some people prefer a faster pace, others prefer a more deliberate pace.&amp;#160; &lt;/p&gt;  &lt;p&gt;When thinking about these characteristics, we also need to consider the &lt;i&gt;relative importance&lt;/i&gt; of any given characteristic. Once again, we can probably all agree that it is very important that the video have sufficiently good audio and video quality to be watchable and understandable, but we may differ in how much value we assign to the length of the video or smooth transitions. &lt;/p&gt;  &lt;p&gt;Thus, if we were doing a survey we might want the user to answer paired questions such as: &amp;quot;Do you prefer to see videos that move along more quickly or more deliberately? &amp;quot; and&amp;#160; &amp;quot;How important is the pacing of the video to you?&lt;/p&gt;  &lt;h2&gt;Instructional Quality&lt;/h2&gt;  &lt;p&gt;I’ll arbitrarily break instructional quality into &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Instructional approach &lt;/li&gt;    &lt;li&gt;Pacing of the material &lt;/li&gt;    &lt;li&gt;Signal to noise &lt;/li&gt;    &lt;li&gt;How well a single topic is encapsulated &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Instructional approach. &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Does the presenter approach the topic in a logical fashion? &lt;/li&gt;    &lt;li&gt;Does the presenter provide &amp;quot;motivation&amp;quot; (that is, what you're about to learn and why you care)? &lt;/li&gt;    &lt;li&gt;Is the example sufficiently clean and simple to understand the key point of the video? &lt;/li&gt;    &lt;li&gt;Is the example sufficiently &amp;quot;mappable&amp;quot; to your own problem domain that you can see how to go from this example to work you might want to do? &lt;/li&gt;    &lt;li&gt;Does the presenter (A.) ignore best practices, (B.) follow best practices, (C.) violate best practices. &lt;/li&gt;    &lt;li&gt;Does the presenter used obscure, esoteric, techniques that lead to confusion? &lt;/li&gt;    &lt;li&gt;Does the presenter skipped over interim steps, leaving you a bit confused? &lt;/li&gt;    &lt;li&gt;Does the presenter dwell over-much on the obvious? &lt;/li&gt;    &lt;li&gt;Does it seem that the presenter knows what he or she is talking about? &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Pacing &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Do you find the overall pacing: too slow, too fast, about right? &lt;/li&gt;    &lt;li&gt;Is the presenter making the right assumptions about what you already know? &lt;/li&gt;    &lt;li&gt;Is the instructor speaking: too slow, too fast, about right? &lt;/li&gt;    &lt;li&gt;Is the instructor adding code to the demo: too slow, too fast, about right? &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Signal-to-noise ratio&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;What percentage of the video do wish the presenter had edited out? &lt;/li&gt;    &lt;li&gt;Was this video worth the time to watch it? &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Encapsulation&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Does this video teaching single topic, or does it cover number of related topics? &lt;/li&gt;    &lt;li&gt;How well do the name and description of the video map to the content? &lt;/li&gt;    &lt;li&gt;Does this video makes forward references to other videos? &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Production Quality And Other Factors&lt;/h2&gt;  &lt;h3&gt;Audio/ Video quality. &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Is the quality of the video high enough that you can easily see what is being described? &lt;/li&gt;    &lt;li&gt;Is the quality of the audio high enough that you can easily hear every word? &lt;/li&gt;    &lt;li&gt;Is the video, unobtrusive (no sudden and unexplained jumps, no dropouts, etc.). &lt;/li&gt;    &lt;li&gt;Is there anything in the video or audio that is distracting (background noises, instructor chewing, etc.). &lt;/li&gt;    &lt;li&gt;Did the presenter take the time to make sure that the most important part of the screen is easily visible without making you dizzy with excessive zooming? &lt;/li&gt;    &lt;li&gt;Does the presenter take the time to add callouts (circles arrows etc.), where that is necessary to understand what the presenters say? &lt;/li&gt;    &lt;li&gt;Are transitions smooth? &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Entertainment/charisma value&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Is the video: so boring you want to claw your eyes out/ reasonably interesting/ a fair amount of fun? &lt;/li&gt;    &lt;li&gt;Overall, is the instructor interesting to listen to? &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Duration &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Given the topic, was this video too long, too short, or just about right? &lt;/li&gt;    &lt;li&gt;Overall be fine if the presenters videos are: too long, too short, or just about right? &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Questions For You:&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;What am I missing in this list? &lt;/li&gt;    &lt;li&gt;Which of these are very important? &lt;/li&gt;    &lt;li&gt;Which of these are nearly irrelevant? &lt;/li&gt;    &lt;li&gt;To what extent is all of this secondary to having videos on the right topics? &lt;/li&gt;    &lt;li&gt;When a new version of Silverlight appears, would you rather see more videos of lower quality, or fewer videos of higher quality? &lt;/li&gt;    &lt;li&gt;What have you seen in other videos that you wish we would do here? &lt;/li&gt;    &lt;li&gt;What are we doing in our videos that you wish we would stop? &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;What?&amp;#160; No survey?&lt;/h2&gt;  &lt;p&gt;It's tempting at this point to create a survey based on these questions; but that would presume that I already know what all the right questions are, and more important, that would kill the discussion before it even begins. &lt;/p&gt;  &lt;p&gt;While blog comments are not the ideal discussion framework, I invite you please to respond in any way you like; answering one or more questions; adding, deleting or otherwise editing my lists; or just commenting on the overall topic.&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=295094" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=Q0sb9nwAsfE:JlDyga0P0yA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=Q0sb9nwAsfE:JlDyga0P0yA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=Q0sb9nwAsfE:JlDyga0P0yA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=Q0sb9nwAsfE:JlDyga0P0yA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/Q0sb9nwAsfE" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Videos/default.aspx">Videos</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Better+Videos/default.aspx">Better Videos</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Opinion+Requested/default.aspx">Opinion Requested</category><evnet:views>3571</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=295094</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/30/what-makes-a-how-do-i-video-great.aspx</feedburner:origLink></item><item><title>RIA: Data Source Control</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/8HY_rcraBHY/ria-svcs-data-source-control.aspx</link><pubDate>Fri, 25 Sep 2009 22:42:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:292818</guid><dc:creator>jesseliberty</dc:creator><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=292818</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=292818</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/25/ria-svcs-data-source-control.aspx#comments</comments><description>&lt;TABLE padding="2"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colSpan=2&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo_4D232A01.png"&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=MiniTutorialLogo border=0 alt=MiniTutorialLogo align=left src="http://blogs.silverlight.net/blogs/jesseliberty/MiniTutorialLogo_thumb_25107AE2.png" width=240 height=63&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowSpan=3&gt;&lt;B&gt;&lt;A href="http://silverlightgeek.me/pages/turing-faq.aspx#logo" target=_blank mce_href="http://SilverlightGeek.me/pages/turing-faq.aspx#logo"&gt;&lt;IMG title=ProjectTuringLogo border=0 alt=ProjectTuringLogo align=left src="http://silverlight.net/blogs/jesseliberty/ProjectTuringLogo_2BB2F6E1.jpg" width=89 height=98 mce_src="http://silverlight.net/blogs/jesseliberty/ProjectTuringLogo_2BB2F6E1.jpg"&gt;&lt;/A&gt; &lt;/B&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;B&gt;Turing Project&lt;/B&gt; Page&lt;B&gt;:&lt;/B&gt; [Novice: 11 | Advanced: 8 ] &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx"&gt;FAQ&lt;/A&gt; | &lt;A href="http://silverlight.net/blogs/jesseliberty/pages/Turing-Project-Table-Of-Contents.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/Turing-Project-Table-Of-Contents.aspx"&gt;Table of Contents&lt;/A&gt; | &lt;A href="http://silverlight.net/blogs/jesseliberty/pages/Definitions.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/Definitions.aspx"&gt;Definitions&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx"&gt;What is this&lt;/A&gt; and &lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2009/07/30/agopensource-project-touring.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2009/07/30/agopensource-project-touring.aspx"&gt;where do I start&lt;/A&gt;? &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H1&gt;Part 3 of 3&lt;/H1&gt;
&lt;P&gt;This is the last of a three part sub-series on using Entity Frameworks and RIA Data Services to move data from our Sql Server database to our Silverlight Application’s DataGrid.&lt;/P&gt;
&lt;P&gt;In &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx"&gt;Part 2&lt;/A&gt;, we explored returning an object graph by using the Entity Frameworks and by decorating the metadata for the RIA Services with the properties we wanted to retrieve from the contained object. &lt;/P&gt;
&lt;P&gt;Until now, however, all of our code has instantiated via RIA Services context programmatically, invoked the query function programmatically, and assign the returned collection to the items source property of the data grid programmatically. In this post, I’ll look at a declarative approach. &lt;/P&gt;
&lt;H1&gt;Using the RIA Services DomainDataSource Control&lt;/H1&gt;
&lt;P&gt;We’ll begin with the program as we left it after the previous blog post, but we’ll immediately remove the three lines in blogs.xaml.cs that manipulates the data context. &lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; Blogs : Page&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt; {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;     &lt;SPAN style="COLOR: #008000"&gt;//  private readonly BlogsContext bc = new BlogsContext();&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;   &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; Blogs()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;   {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;     InitializeComponent();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;     &lt;SPAN style="COLOR: #008000"&gt;//    bc.Load( bc.GetBlogsQuery() );&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt;     &lt;SPAN style="COLOR: #008000"&gt;//    this.blogsDataGrid.ItemsSource = bc.Blogs;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum9&gt;   9:&lt;/SPAN&gt;   }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Having removed the programmatic interface to the data context, let's now open up blogs.xaml&amp;nbsp; and provide it with information about the data context by way of teh DomainDataSource&amp;nbsp; control, which we must first add to the toolbox. To do so, right-click on the Silverlight Xaml Controls tab, and then click on Choose Items. &lt;/P&gt;
&lt;P&gt;Within the Choose Toolbox Items dialog box click on the Silverlight Components tab, and then click the browse button. Navigate to your program files -&amp;gt;Microsoft SDKs -&amp;gt; RIA Services, pick the folder for the latest version, within that:&amp;nbsp; Libraries-&amp;gt; Silverlight.&amp;nbsp; Double-click on System.Windows.RIA Controls.dll&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You should find that the DomainDataSource control has been added to the bottom of your list of controls; you may want to right-click and choose to sort them alphabetically. &lt;/P&gt;
&lt;P&gt;Drag a DomainDataSource control onto the Xaml page just above the DataGrid.&amp;nbsp; By dragging it on rather than writing it yourself Visual Studio will create the namespace for you set up your using statement and your references. &lt;/P&gt;
&lt;P&gt;The four attributes you'll typically want to set, if no others, are the Name , LoadSize, QueryName, and the AutoLoad property. We will examine each of these in turn below. &lt;/P&gt;
&lt;P&gt;You will also want to set the domain context property which you will do it explicitly as shown in the code that follows:&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &amp;lt;riaControls:DomainDataSource x:Name=&lt;SPAN style="COLOR: #006080"&gt;"BlogsDataSource"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt;                               LoadSize=&lt;SPAN style="COLOR: #006080"&gt;"15"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;                               QueryName=&lt;SPAN style="COLOR: #006080"&gt;"GetBlogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;                               AutoLoad=&lt;SPAN style="COLOR: #006080"&gt;"True"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;       &amp;lt;ds:BlogsContext /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt; &amp;lt;/riaControls:DomainDataSource&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The LoadSize property instructs the DomainDataSource control as to how many records to get for each query to the database.&amp;nbsp; This allows you to fine tune the performance of your application (too small load size, and you are making many calls to the database, to larg a load size and there will be a noticeable wait for the data to arrive). &lt;/P&gt;
&lt;P&gt;The QueryName parameter references the query We created in the RIA Services class, you will remember setting GetBlogs to include bloggers. Notice that here you use the name of the method (GetBlogs ).&amp;nbsp; Rather than "GetBlogsQuery()" as you did in C#.&lt;/P&gt;
&lt;P&gt;Setting Autoload to true tells the DomainDataSource control to load the first set of data when it is initialized. &lt;/P&gt;
&lt;P&gt;Note that the namespace for BlogsContext is DS as opposed to RIAControls the namespace for the DomainDataSource.&amp;nbsp; DS is a namespace that refers to the Web project (you’ll need to add that to the top of the file)&lt;/P&gt;
&lt;P&gt;Build and run the application.&amp;nbsp; The results, that is the running application, are identical to what you had before.&amp;nbsp; However now you are not creating this programmatically but rather declaratively in the Xaml. &lt;/P&gt;
&lt;H2&gt;Sorting&lt;/H2&gt;
&lt;P&gt;Is relatively straightforward to add sorting declaratively as well. You do so by adding a sort descriptor to your DomainDataSource control.&amp;nbsp; In the case shown below (Lines 9 through 11), we are setting the SortDescriptor property explicitly, and having it sort on BlogName.&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &amp;lt;riaControls:DomainDataSource x:Name=&lt;SPAN style="COLOR: #006080"&gt;"BlogsDataSource"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt;                               LoadSize=&lt;SPAN style="COLOR: #006080"&gt;"20"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;                               QueryName=&lt;SPAN style="COLOR: #006080"&gt;"GetBlogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;                               AutoLoad=&lt;SPAN style="COLOR: #006080"&gt;"true"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;       &amp;lt;ds:BlogsContext /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.SortDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum9&gt;   9:&lt;/SPAN&gt;       &amp;lt;riaData:SortDescriptor PropertyPath=&lt;SPAN style="COLOR: #006080"&gt;"BlogName"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum10&gt;  10:&lt;/SPAN&gt;                               Direction=&lt;SPAN style="COLOR: #006080"&gt;"Ascending"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum11&gt;  11:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.SortDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum12&gt;  12:&lt;/SPAN&gt; &amp;lt;/riaControls:DomainDataSource&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Sending the sort column in this way it causes the data grid to open with that column sorted.&amp;nbsp; The user, of course, can sort on any column by clicking on the column header.&lt;/P&gt;
&lt;H2&gt;Filtering&lt;/H2&gt;
&lt;P mce_keep="true"&gt;Before we leave the DomainDataSource control, let's take a quick look at filtering, which works much like sorting. &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/Sorted_522567B0.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Sorting the grid" border=0 alt="Sorting the grid" align=right src="http://blogs.silverlight.net/blogs/jesseliberty/Sorted_thumb_7F3A547E.png" width=205 height=80&gt;&lt;/A&gt; In this case rather than explicitly putting into our filter what it is we are filtering on, we will instead set the "Control Parameter" to point to another control on the same page that will provide the text on which to sort.&lt;/P&gt;
&lt;P&gt;To begin, we'll add a text box into which the user can type the desired filter.&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;lt;StackPanel Orientation=&lt;SPAN style="COLOR: #006080"&gt;"Horizontal"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            HorizontalAlignment=&lt;SPAN style="COLOR: #006080"&gt;"Right"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            Margin=&lt;SPAN style="COLOR: #006080"&gt;"0,-16,0,0"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   &amp;lt;TextBlock VerticalAlignment=&lt;SPAN style="COLOR: #006080"&gt;"Center"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;              Text=&lt;SPAN style="COLOR: #006080"&gt;"Name Contains Filter"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   &amp;lt;TextBox x:Name=&lt;SPAN style="COLOR: #006080"&gt;"filterText"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            Width=&lt;SPAN style="COLOR: #006080"&gt;"75"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            FontSize=&lt;SPAN style="COLOR: #006080"&gt;"11"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            Margin=&lt;SPAN style="COLOR: #006080"&gt;"4"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            Text=&lt;SPAN style="COLOR: #006080"&gt;"Silverlight"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;lt;/StackPanel&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This code can be placed directly above the DomainDataSource, and as you can see it provides a textblock with a prompt and a text box, which will gather in the desired filter. Next We'll add a FilterDescriptors element to the DomainDataSource control, and tell it to get its value from that text box:&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &amp;lt;riaControls:DomainDataSource x:Name=&lt;SPAN style="COLOR: #006080"&gt;"BlogsDataSource"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt;                               LoadSize=&lt;SPAN style="COLOR: #006080"&gt;"20"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;                               QueryName=&lt;SPAN style="COLOR: #006080"&gt;"GetBlogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;                               AutoLoad=&lt;SPAN style="COLOR: #006080"&gt;"true"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;       &amp;lt;ds:BlogsContext /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.DomainContext&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.SortDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum9&gt;   9:&lt;/SPAN&gt;       &amp;lt;riaData:SortDescriptor PropertyPath=&lt;SPAN style="COLOR: #006080"&gt;"BlogName"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum10&gt;  10:&lt;/SPAN&gt;                               Direction=&lt;SPAN style="COLOR: #006080"&gt;"Ascending"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum11&gt;  11:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.SortDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum12&gt;  12:&lt;/SPAN&gt;    &amp;lt;riaControls:DomainDataSource.FilterDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum13&gt;  13:&lt;/SPAN&gt;       &amp;lt;riaData:FilterDescriptorCollection&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum14&gt;  14:&lt;/SPAN&gt;          &amp;lt;riaData:FilterDescriptor PropertyPath=&lt;SPAN style="COLOR: #006080"&gt;"BlogName"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum15&gt;  15:&lt;/SPAN&gt;                                    Operator=&lt;SPAN style="COLOR: #006080"&gt;"Contains"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum16&gt;  16:&lt;/SPAN&gt;             &amp;lt;riaData:ControlParameter ControlName=&lt;SPAN style="COLOR: #006080"&gt;"filterText"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum17&gt;  17:&lt;/SPAN&gt;                                       PropertyName=&lt;SPAN style="COLOR: #006080"&gt;"Text"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum18&gt;  18:&lt;/SPAN&gt;                                       RefreshEventName=&lt;SPAN style="COLOR: #006080"&gt;"TextChanged"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum19&gt;  19:&lt;/SPAN&gt;          &amp;lt;/riaData:FilterDescriptor&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum20&gt;  20:&lt;/SPAN&gt;       &amp;lt;/riaData:FilterDescriptorCollection&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum21&gt;  21:&lt;/SPAN&gt;    &amp;lt;/riaControls:DomainDataSource.FilterDescriptors&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum22&gt;  22:&lt;/SPAN&gt; &amp;lt;/riaControls:DomainDataSource&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The filter descriptors begin online 12 and run through line 21.&amp;nbsp; Notice on lines 14 and 15 that you are indicating which property is being filtered on and that you have your choice of operators such as contains, is, etc.&amp;nbsp; On lines 16 through 18, you indicate the name of the control that has the filter, the name of the property of the control from which to extract the filter, and the event on which you will update the filter. &lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P&gt;N.B.: the code is showing updates each time a letter is typed in the text box.&amp;nbsp; This will cause a call to the database for every letter that's typed.&amp;nbsp; You can solve this by using the Load Delay parameter.&amp;nbsp; Of course having a low delay will make the page initially load more slowly, so you may want to add the load delay programmatically after you initialize the page.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Finally to give it a bit of polish, let's add a DataPager, just below the DataGrid.&amp;nbsp; Note that the binding for the DataPager is identical to that for the DataGrid, and that the DataPager retrieves 10 records at a time; we'll go up so that and change the DomainDataSource load size to 30, so that it will retrieve 3 pages-worth at a time. &lt;/P&gt;
&lt;DIV&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;lt;data:DataPager PageSize=&lt;SPAN style="COLOR: #006080"&gt;"10"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  Source=&lt;SPAN style="COLOR: #006080"&gt;"{Binding Data, ElementName=BlogsDataSource}"&lt;/SPAN&gt;  /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;/FORM&gt;
&lt;P&gt;&lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/SortedAndFiltered_026C3C67.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 10px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=SortedAndFiltered border=0 alt=SortedAndFiltered align=left src="http://blogs.silverlight.net/blogs/jesseliberty/SortedAndFiltered_thumb_1CCC2F7E.png" width=640 height=333&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/FORM&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=292818" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=8HY_rcraBHY:OS9mcH7cKcQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=8HY_rcraBHY:OS9mcH7cKcQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=8HY_rcraBHY:OS9mcH7cKcQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=8HY_rcraBHY:OS9mcH7cKcQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/8HY_rcraBHY" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Mini-Tutorial/default.aspx">Mini-Tutorial</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Project+Turing/default.aspx">Project Turing</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/RIA+Services/default.aspx">RIA Services</category><evnet:views>3244</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=292818</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/25/ria-svcs-data-source-control.aspx</feedburner:origLink></item><item><title>Silverlight Twitter Tips Launches</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/DdEfCekugM8/silverlight-twitter-tips-launches.aspx</link><pubDate>Fri, 25 Sep 2009 13:15:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:292575</guid><dc:creator>jesseliberty</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=292575</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=292575</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/25/silverlight-twitter-tips-launches.aspx#comments</comments><description>&lt;p&gt;Very proud to announce the launch of #stwip -&amp;#160; &lt;font color="#ff0000"&gt;si&lt;/font&gt;lverlight &lt;font color="#ff0000"&gt;tw&lt;/font&gt;itter t&lt;font color="#ff0000"&gt;ip&lt;/font&gt;s. &lt;/p&gt;  &lt;p&gt;Find them by &lt;a href="http://twitter.com/jesseliberty" target="_blank"&gt;following my Tweets&lt;/a&gt; or by the &lt;a href="http://twemes.com/stwip" target="_blank"&gt;meme&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=292575" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DdEfCekugM8:dBNJ_cONu6A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DdEfCekugM8:dBNJ_cONu6A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=DdEfCekugM8:dBNJ_cONu6A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=DdEfCekugM8:dBNJ_cONu6A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/DdEfCekugM8" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Cool+Stuff/default.aspx">Cool Stuff</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Recommended+Resources/default.aspx">Recommended Resources</category><evnet:views>5427</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=292575</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/25/silverlight-twitter-tips-launches.aspx</feedburner:origLink></item><item><title>Project Turing: Beginning RIA Svcs</title><link>http://feedproxy.google.com/~r/JesseLiberty-SilverlightGeek/~3/P8EePLEe_dI/project-turing-beginning-ria-svcs.aspx</link><pubDate>Thu, 24 Sep 2009 20:48:00 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:292256</guid><dc:creator>jesseliberty</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.silverlight.net/blogs/jesseliberty/rsscomments.aspx?PostID=292256</wfw:commentRss><wfw:comment>http://blogs.silverlight.net/blogs/jesseliberty/commentapi.aspx?PostID=292256</wfw:comment><comments>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/24/project-turing-beginning-ria-svcs.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://beta.silverlight.net/learn/tutorials/?__tab=mini" mce_href="http://beta.silverlight.net/learn/tutorials/?__tab=mini"&gt;&lt;IMG title=MiniTutorialLogo border=0 alt=MiniTutorialLogo src="http://silverlight.net/blogs/jesseliberty/MiniTutorialLogo_50448465.jpg" width=304 height=90 mce_src="http://silverlight.net/blogs/jesseliberty/MiniTutorialLogo_50448465.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;A href="http://silverlight.net/controlpanel/blogs/http:silverlight.net/blogs/jesseliberty/pages/turing-faq.aspx#logo" mce_href="http://silverlight.net/controlpanel/blogs/http:silverlight.net/blogs/jesseliberty/pages/turing-faq.aspx#logo"&gt;&lt;IMG title=ProjectTuringLogo border=0 alt=ProjectTuringLogo align=left src="http://silverlight.net/blogs/jesseliberty/ProjectTuringLogo_2BB2F6E1.jpg" width=89 height=98 mce_src="http://silverlight.net/blogs/jesseliberty/ProjectTuringLogo_2BB2F6E1.jpg"&gt;&lt;/A&gt; &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Turing Project&lt;/B&gt; Page&lt;B&gt;:&lt;/B&gt; [Novice:&amp;nbsp;9 | Advanced:&amp;nbsp;6 ]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx"&gt;FAQ&lt;/A&gt; | &lt;A href="http://silverlight.net/blogs/jesseliberty/pages/Turing-Project-Table-Of-Contents.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/Turing-Project-Table-Of-Contents.aspx"&gt;Table of Contents&lt;/A&gt; | &lt;A href="http://silverlight.net/blogs/jesseliberty/pages/Definitions.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/Definitions.aspx"&gt;Definitions&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/pages/turing-FAQ.aspx"&gt;What is this&lt;/A&gt; and &lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2009/07/30/agopensource-project-touring.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2009/07/30/agopensource-project-touring.aspx"&gt;where do I start&lt;/A&gt;?&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;From Database to DataGrid&lt;/H3&gt;
&lt;P&gt;The next step in Project Turing is to create a first iteration of the Silverlight application that will retrieve data from our database.&amp;nbsp; Using our technology of choice: the Data Entity Framework coupled with .Net RIA Services. &lt;/P&gt;
&lt;P&gt;.Net RIA Services will allow us to create business logic on the server and to access that same set of classes on the client.&amp;nbsp; We will retrieve the data from these business classes and display them in a data grid within a business application, that is a multipage Silverlight application.&lt;/P&gt;
&lt;H4&gt;.NET RIA Services&lt;/H4&gt;
&lt;P&gt;While a great deal has been written about RIA Services, I find when talking with Silverlight developers that there is still some confusion about where RIA Services are best used and what the key benefits are.&amp;nbsp; This really&amp;nbsp; isn't terribly surprising given how new the RIA Services platform is. Despite the incredible work done by &lt;A href="http://blogs.msdn.com/brada/archive/2009/08/02/business-apps-example-for-silverlight-3-rtm-and-net-ria-services-july-update-summary.aspx" target=_blank mce_href="http://blogs.msdn.com/brada/archive/2009/08/02/business-apps-example-for-silverlight-3-rtm-and-net-ria-services-july-update-summary.aspx"&gt;Brad Abrams&lt;/A&gt; and &lt;A href="http://www.nikhilk.net/NET-RIA-Services-Vision-Architecture.aspx" target=_blank mce_href="http://www.nikhilk.net/NET-RIA-Services-Vision-Architecture.aspx"&gt;others&lt;/A&gt; on the dev team&amp;nbsp; to document RIA Services,&amp;nbsp; it will take a while for many Silverlight programmers to fully integrate the platform into their designs &lt;/P&gt;
&lt;P&gt;Project Turing offers an ideal opportunity to provide an incremental introduction to&amp;nbsp; RIA Services and an illustration of the immediate benefits of the platform. &lt;/P&gt;
&lt;P&gt;Just before the progress took the digression into &lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2009/08/13/linq-for-silverlight-developers.aspx" target=_blank mce_href="http://silverlight.net/blogs/jesseliberty/archive/2009/08/13/linq-for-silverlight-developers.aspx"&gt;Li&lt;/A&gt;nq, we created our basic database tables, and the initial architecture of Project Turing. Here is a snapshot of the database as it exists at this point in the project:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/Turing0/DataBaseDesing.jpg" target=_blank mce_href="http://silverlightgeek.me/Turing0/DataBaseDesing.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=DataBaseDesign border=0 alt=DataBaseDesign src="http://blogs.silverlight.net/blogs/jesseliberty/DataBaseDesign_2A5E10A1.jpg" width=304 height=331 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/DataBaseDesign_2A5E10A1.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(click on image for full size)&lt;/P&gt;
&lt;P&gt;Our goal now is to retrieve this data using the Data Entity Framework and to make it available to the DataGrid using .NET RIA Services. &lt;/P&gt;
&lt;H4&gt;What You Need To Program With RIA Services Project&lt;/H4&gt;
&lt;P&gt;For this part of Project Turing you're going you need to install the latest .Net RIA Services framework.&amp;nbsp; You can find complete instructions and all of the libraries that you need &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&amp;amp;displaylang=en"&gt;here&lt;/A&gt;. (There is no cost.)&lt;/P&gt;
&lt;P&gt;You also want to create or download the Turing database, which you can install to SQL Server 2005, SQL Server 2008, or SQL express.&amp;nbsp; You can download a backup of this database and restore it to your system, from &lt;A href="http://silverlight.net/blogs/jesseliberty/1%20Turing/TuringDB.zip" target=_blank mce_href="http://silverlight.net/blogs/jesseliberty/1%20Turing/TuringDB.zip"&gt;here&lt;/A&gt;.&amp;nbsp; Alternatively you can download a script to re-create the database from &lt;A href="http://silverlight.net/blogs/jesseliberty/1%20Turing/TuringDB.sql" target=_blank mce_href="http://silverlight.net/blogs/jesseliberty/1%20Turing/TuringDB.sql"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;Getting Started&lt;/H4&gt;
&lt;P&gt;We will build the application incrementally, starting with a simple version and adding complexity as we go.&amp;nbsp; Specifically, we will break down the steps of interacting with the database into a series of smaller tasks. &lt;/P&gt;
&lt;P&gt;The goal in this &lt;EM&gt;first&lt;/EM&gt; example will be to create a shell of a multipage application, and within that a page to which we’ll add a basic&amp;nbsp; DataGrid. To get started open Visual Studio and create a new project. In the Project Type, select Visual C#/Silverlight, and in the templates select Silverlight Business Application.&amp;nbsp; I named my project TuringRIAServices. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/CreatingBizApps.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/CreatingBizApps.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=CreatingBizApps border=0 alt=CreatingBizApps src="http://blogs.silverlight.net/blogs/jesseliberty/CreatingBizApps_1089DA72.jpg" width=304 height=208 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/CreatingBizApps_1089DA72.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;A fairly sophisticated Silverlight application is created for you out-of-the-box.&amp;nbsp; Your solution consists of two projects, and your Xaml project has three subdirectories: Assets, Libs, and Views. &lt;/P&gt;
&lt;P&gt;The views folder contains the initial pages already provided in the application.&amp;nbsp; These include Xaml files for logging in, a Home page, a custom error window and an about box. &lt;/P&gt;
&lt;P&gt;MainPage.xaml acts as a shell and a dispatcher to the pages that are in the Views folder.&amp;nbsp; The Assets folder contains your first styles Xaml page, but you are free to add more (as you are to all the folders). &lt;/P&gt;
&lt;P&gt;To begin open MainPage.xaml and let’s examine some of what has been put in place by Visual Studio.&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &amp;lt;Grid x:Name=&lt;SPAN style="COLOR: #006080"&gt;"LayoutRoot"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LayoutRootGridStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt;   &amp;lt;Border x:Name=&lt;SPAN style="COLOR: #006080"&gt;"ContentBorder"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource ContentBorderStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;           &amp;lt;navigation:Frame x:Name=&lt;SPAN style="COLOR: #006080"&gt;"ContentFrame"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource ContentFrameStyle}"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;                             Source=&lt;SPAN style="COLOR: #006080"&gt;"/Home"&lt;/SPAN&gt; Navigated=&lt;SPAN style="COLOR: #006080"&gt;"ContentFrame_Navigated"&lt;/SPAN&gt; NavigationFailed=&lt;SPAN style="COLOR: #006080"&gt;"ContentFrame_NavigationFailed"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;               &amp;lt;navigation:Frame.UriMapper&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;                 &amp;lt;uriMapper:UriMapper&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;                   &amp;lt;uriMapper:UriMapping Uri=&lt;SPAN style="COLOR: #006080"&gt;""&lt;/SPAN&gt; MappedUri=&lt;SPAN style="COLOR: #006080"&gt;"/Views/Home.xaml"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt;                   &amp;lt;uriMapper:UriMapping Uri=&lt;SPAN style="COLOR: #006080"&gt;"/{pageName}"&lt;/SPAN&gt; MappedUri=&lt;SPAN style="COLOR: #006080"&gt;"/Views/{pageName}.xaml"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum9&gt;   9:&lt;/SPAN&gt;                 &amp;lt;/uriMapper:UriMapper&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum10&gt;  10:&lt;/SPAN&gt;               &amp;lt;/navigation:Frame.UriMapper&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum11&gt;  11:&lt;/SPAN&gt;           &amp;lt;/navigation:Frame&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum12&gt;  12:&lt;/SPAN&gt;   &amp;lt;/Border&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum13&gt;  13:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum14&gt;  14:&lt;/SPAN&gt;   &amp;lt;Grid Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource NavigationOuterGridStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum15&gt;  15:&lt;/SPAN&gt;     &amp;lt;Grid x:Name=&lt;SPAN style="COLOR: #006080"&gt;"NavigationGrid"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource NavigationGridStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum16&gt;  16:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum17&gt;  17:&lt;/SPAN&gt;       &amp;lt;Border x:Name=&lt;SPAN style="COLOR: #006080"&gt;"BrandingBorder"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource BrandingBorderStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum18&gt;  18:&lt;/SPAN&gt;         &amp;lt;StackPanel x:Name=&lt;SPAN style="COLOR: #006080"&gt;"BrandingStackPanel"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource BrandingStackPanelStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum19&gt;  19:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum20&gt;  20:&lt;/SPAN&gt;           &amp;lt;ContentControl Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LogoIcon}"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum21&gt;  21:&lt;/SPAN&gt;           &amp;lt;TextBlock x:Name=&lt;SPAN style="COLOR: #006080"&gt;"ApplicationNameTextBlock"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource ApplicationNameStyle}"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum22&gt;  22:&lt;/SPAN&gt;                              Text=&lt;SPAN style="COLOR: #006080"&gt;"Application Name"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum23&gt;  23:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum24&gt;  24:&lt;/SPAN&gt;         &amp;lt;/StackPanel&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum25&gt;  25:&lt;/SPAN&gt;       &amp;lt;/Border&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum26&gt;  26:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum27&gt;  27:&lt;/SPAN&gt;       &amp;lt;Border x:Name=&lt;SPAN style="COLOR: #006080"&gt;"LinksBorder"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LinksBorderStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum28&gt;  28:&lt;/SPAN&gt;         &amp;lt;StackPanel x:Name=&lt;SPAN style="COLOR: #006080"&gt;"LinksStackPanel"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LinksStackPanelStyle}"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum29&gt;  29:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum30&gt;  30:&lt;/SPAN&gt;           &amp;lt;HyperlinkButton x:Name=&lt;SPAN style="COLOR: #006080"&gt;"Link1"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LinkStyle}"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum31&gt;  31:&lt;/SPAN&gt;                                    NavigateUri=&lt;SPAN style="COLOR: #006080"&gt;"/Home"&lt;/SPAN&gt; TargetName=&lt;SPAN style="COLOR: #006080"&gt;"ContentFrame"&lt;/SPAN&gt; Content=&lt;SPAN style="COLOR: #006080"&gt;"home"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum32&gt;  32:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum33&gt;  33:&lt;/SPAN&gt;           &amp;lt;Rectangle x:Name=&lt;SPAN style="COLOR: #006080"&gt;"Divider1"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource DividerStyle}"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum34&gt;  34:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum35&gt;  35:&lt;/SPAN&gt;           &amp;lt;HyperlinkButton x:Name=&lt;SPAN style="COLOR: #006080"&gt;"Link2"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LinkStyle}"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum36&gt;  36:&lt;/SPAN&gt;                                    NavigateUri=&lt;SPAN style="COLOR: #006080"&gt;"/About"&lt;/SPAN&gt; TargetName=&lt;SPAN style="COLOR: #006080"&gt;"ContentFrame"&lt;/SPAN&gt; Content=&lt;SPAN style="COLOR: #006080"&gt;"about"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum37&gt;  37:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum38&gt;  38:&lt;/SPAN&gt;         &amp;lt;/StackPanel&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum39&gt;  39:&lt;/SPAN&gt;       &amp;lt;/Border&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum40&gt;  40:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum41&gt;  41:&lt;/SPAN&gt;     &amp;lt;/Grid&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum42&gt;  42:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum43&gt;  43:&lt;/SPAN&gt;     &amp;lt;Border x:Name=&lt;SPAN style="COLOR: #006080"&gt;"loginContainer"&lt;/SPAN&gt; Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource LoginContainerStyle}"&lt;/SPAN&gt;/&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum44&gt;  44:&lt;/SPAN&gt;   &amp;lt;/Grid&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum45&gt;  45:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum46&gt;  46:&lt;/SPAN&gt; &amp;lt;/Grid&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;.&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Before taking this apart lets look at what is created if you build and run this without making any changes.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlightgeek.me/0turing/RunningOutOfTheBox.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/RunningOutOfTheBox.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=RunningOutOfTheBox border=0 alt=RunningOutOfTheBox src="http://blogs.silverlight.net/blogs/jesseliberty/RunningOutOfTheBox_61C421CF.jpg" width=304 height=259 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/RunningOutOfTheBox_61C421CF.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;You can see in the image that there is a frame around the home page, which has within it a logo, the name of the application, a button for the currently selected page, a button for the about page, and a small button for the login dialog. &lt;/P&gt;
&lt;P&gt;This corresponds directly of course to the Xaml above.&lt;/P&gt;
&lt;P&gt;On line 2, we&amp;nbsp; create a border, which uses the static resource predefined by Visual Studio and stored in&amp;nbsp; Styles.Xaml within the Assets folder.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Within that border a Frame object is defined on line 3 through 11, within the navigation namespace defined at the top of the file. &lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;xmlns:navigation=&lt;SPAN style="COLOR: #006080"&gt;"clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;The frame has three critical properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The source. &lt;/LI&gt;
&lt;LI&gt;The name of the method to call after successfully navigating to the page. &lt;/LI&gt;
&lt;LI&gt;The name of the method to call in the event of failure. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Nested within the frame is a mapper, whose job is to map pages to URIs.&lt;/P&gt;
&lt;P&gt;Note on line 8, the generic mapping that is used with the substitution parameter pagename.&amp;nbsp; This is a subtle but very powerful capability that allows you to create essentially a template of the relationship between pages in their URI and avoid duplicating this code for every page.&lt;/P&gt;
&lt;P&gt;The second major UI area within this Xaml file begins on lines 14 and 15 with the creation of an outer and inner grid. &lt;/P&gt;
&lt;P&gt;The content control defined on line 20 is used to display the logo and on line 21 is a standard textblock, where the text is set to Application Name.&amp;nbsp; This would be a good opportunity to change that text to "Project Turing RIA Services" &lt;/P&gt;
&lt;P&gt;The second area is itself divided in to two areas each with its own water, and in the lower area beginning on line 27.&amp;nbsp; Line 30 shows the hyperlink button for the homepage and on line 35 is the hyperlink button for the about page.&amp;nbsp; Adding a new button only requires an additional hyperlink button.&amp;nbsp; In this section, the navigation is handled by the section about.&lt;/P&gt;
&lt;P&gt;You may find it worthwhile and interesting to open up the style.xaml&amp;nbsp; file, and take a look at the static resources that were created by this template. &lt;/P&gt;
&lt;H4&gt;Adding A DataGrid&lt;/H4&gt;
&lt;P&gt;We will add the Silverlight control DataGrid to a new Silverlight page.&amp;nbsp; To do so, right-click on the project and choose Add --&amp;gt; New Item.&amp;nbsp; In the Add Item dialog box, choose Silverlight under categories and Silverlight Page in the templates pane. &lt;/P&gt;
&lt;P&gt;Name the new page BlogsDataGrid and click Add. &lt;/P&gt;
&lt;P&gt;At the top of this page, we will place a header as we will on each new page.&amp;nbsp; The header consistents of a&amp;nbsp; ScrollViewer, within which we will place a StackPanel, within which we will place a Toolbox with the name of the page as shown here:&lt;/P&gt;
&lt;P&gt;Note: this design, and much in these examples, comes from the Walk-Through created by the development team and used here with their permission, for which I and my Carpal Tunnel Syndrome are very grateful.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;lt;ScrollViewer BorderThickness=&lt;SPAN style="COLOR: #006080"&gt;"0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;              VerticalScrollBarVisibility=&lt;SPAN style="COLOR: #006080"&gt;"Auto"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;              Padding=&lt;SPAN style="COLOR: #006080"&gt;"12,0,12,0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;              Margin=&lt;SPAN style="COLOR: #006080"&gt;"-12"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &amp;lt;StackPanel Margin=&lt;SPAN style="COLOR: #006080"&gt;"0,12,0,12"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                Orientation=&lt;SPAN style="COLOR: #006080"&gt;"Vertical"&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &amp;lt;TextBlock Text=&lt;SPAN style="COLOR: #006080"&gt;"Blogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                   Style=&lt;SPAN style="COLOR: #006080"&gt;"{StaticResource HeaderTextStyle}"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &amp;lt;/StackPanel&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;lt;/ScrollViewer&amp;gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Finally, drag a DataGrid from the toolbox into the grid. &lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P&gt;Note: the advantage of dragging from the toolbox rather than writing the Xaml by hand is that Visual Studio will create the necessary namespace and use that as a prefix for the DataGrid&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;xmlns:data=&lt;SPAN style="COLOR: #006080"&gt;"clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Once Visual Studio has fixed up the namespace, modify the data grid element to include the properties Name (BlogsDataGrid), MinHeight (150), and IsReadOnly (true). &lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Page&lt;/SPAN&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:data&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;x:Class&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="TuringRiaServices.Blogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:d&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:mc&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:navigation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;mc:Ignorable&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="d"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;d:DesignWidth&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="640"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;d:DesignHeight&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="480"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  &lt;SPAN style="COLOR: #ff0000"&gt;Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blogs Page"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="LayoutRoot"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;BorderThickness&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                      &lt;SPAN style="COLOR: #ff0000"&gt;VerticalScrollBarVisibility&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Auto"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                      &lt;SPAN style="COLOR: #ff0000"&gt;Padding&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="12,0,12,0"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                      &lt;SPAN style="COLOR: #ff0000"&gt;Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="-12"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="0,12,0,12"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        &lt;SPAN style="COLOR: #ff0000"&gt;Orientation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Vertical"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource HeaderTextStyle}"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;data:DataGrid&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="blogsDataGrid"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                       &lt;SPAN style="COLOR: #ff0000"&gt;MinHeight&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="150"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                       &lt;SPAN style="COLOR: #ff0000"&gt;IsReadOnly&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="True"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;data:DataGrid&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&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;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Page&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your page is ready, but there is no way to navigate to it.&amp;nbsp; Return to MainPage.Xaml and let's add the logic for an additional button.&lt;/P&gt;
&lt;P&gt;First, take a look at the solution Explorer, and if BlogsDataGrid.Xaml is not in the views folder&amp;nbsp;&amp;nbsp; drag it there now. &lt;/P&gt;
&lt;P&gt;As noted above, all we need to do here is add a hyperlink button for our new page.&amp;nbsp; This will go immediately below the hyperlink button for the about box&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;HyperlinkButton&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Link3"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                 &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinkStyle}"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                 &lt;SPAN style="COLOR: #ff0000"&gt;NavigateUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/Blogs"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                 &lt;SPAN style="COLOR: #ff0000"&gt;TargetName&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                 &lt;SPAN style="COLOR: #ff0000"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blogs"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Build and run the application and be sure to click on the new button for the Blogs page. Please take note of the very elegant handling of the exception that is thrown, because we wired up for a same blogs.&amp;nbsp; But our actual page is named BlogsDataGrid. &lt;/P&gt;
&lt;P&gt;While we're fixing that link, lets take note of the fact that Visual Studio has named each of the hyperlink buttons.&amp;nbsp; Link one, link two etc. , while it is natural and common to continue this as we have done above, I greatly prefer to name the hyperlink buttons to indicate their function.&amp;nbsp; And so I will rename Link1&amp;nbsp; HomeLinkButton; Link2&amp;nbsp; AboutLinkButton and our Link3 BlogsLinkButton. I will also fix up the NavigateURI to the full name of the page.&lt;/P&gt;
&lt;P&gt;One defensible choice is to continue the pattern provided by Visual Studio, but it is my personal approach to rename all three on the premise that good naming practice makes for good documentation.&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&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;x:Class&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="TuringRIA_Services.MainPage"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:navigation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:uriMapper&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:dataControls&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:d&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;xmlns:mc&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;mc:Ignorable&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="d"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;d:DesignWidth&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="640"&lt;/SPAN&gt;&lt;BR&gt;     &lt;SPAN style="COLOR: #ff0000"&gt;d:DesignHeight&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="480"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="LayoutRoot"&lt;/SPAN&gt;&lt;BR&gt;         &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LayoutRootGridStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentBorder"&lt;/SPAN&gt;&lt;BR&gt;              &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource ContentBorderStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Frame&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource ContentFrameStyle}"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Source&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/Home"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Navigated&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame_Navigated"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;NavigationFailed&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame_NavigationFailed"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Frame.UriMapper&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;               &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;uriMapper:UriMapper&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;uriMapper:UriMapping&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;Uri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;=""&lt;/SPAN&gt;&lt;BR&gt;                                        &lt;SPAN style="COLOR: #ff0000"&gt;MappedUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/Views/Home.xaml"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;uriMapper:UriMapping&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;Uri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/{pageName}"&lt;/SPAN&gt;&lt;BR&gt;                                        &lt;SPAN style="COLOR: #ff0000"&gt;MappedUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/Views/{pageName}.xaml"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;               &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;uriMapper:UriMapper&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Frame.UriMapper&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;navigation:Frame&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource NavigationOuterGridStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="NavigationGrid"&lt;/SPAN&gt;&lt;BR&gt;               &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource NavigationGridStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="BrandingBorder"&lt;/SPAN&gt;&lt;BR&gt;                    &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource BrandingBorderStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="BrandingStackPanel"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource BrandingStackPanelStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ContentControl&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LogoIcon}"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&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;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ApplicationNameTextBlock"&lt;/SPAN&gt;&lt;BR&gt;                             &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource ApplicationNameStyle}"&lt;/SPAN&gt;&lt;BR&gt;                             &lt;SPAN style="COLOR: #ff0000"&gt;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Project Turing RIA Services"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&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;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="LinksBorder"&lt;/SPAN&gt;&lt;BR&gt;                    &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinksBorderStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="LinksStackPanel"&lt;/SPAN&gt;&lt;BR&gt;                           &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinksStackPanelStyle}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;HyperlinkButton&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="HomeLinkButton"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinkStyle}"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;NavigateUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/Home"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;TargetName&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="home"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Rectangle&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Divider1"&lt;/SPAN&gt;&lt;BR&gt;                             &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource DividerStyle}"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;HyperlinkButton&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="AboutLinkButton"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinkStyle}"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;NavigateUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/About"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;TargetName&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="about"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;                  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;HyperlinkButton&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="BlogsLinkButton"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LinkStyle}"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;NavigateUri&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/BlogsDataGrid"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;TargetName&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ContentFrame"&lt;/SPAN&gt;&lt;BR&gt;                                   &lt;SPAN style="COLOR: #ff0000"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blogs"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&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;BR&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&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;BR&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Border&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="loginContainer"&lt;/SPAN&gt;&lt;BR&gt;                 &lt;SPAN style="COLOR: #ff0000"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{StaticResource LoginContainerStyle}"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&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;BR&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;BR&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;BR&gt;&lt;/DIV&gt;
&lt;P&gt;This time clicking on the blogs hyperlink does not throw an exception but rather brings you to the blogs page, where the outline of the DataGrid is drawn but of course there is as of yet no data.&amp;nbsp; Let's fix that now.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;A title=_Toc234746040 name=_Toc234746040&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;Adding Business Logic &lt;/FONT&gt;And Data&lt;/H4&gt;
&lt;P&gt;Our next principal task is to retrieve data from the database and present it to the DataGrid.&amp;nbsp; As noted in previous mini tutorials and postings for this project, there are a number options for retrieving data from a database.&amp;nbsp; One of the most powerful is to use the Entity Framework. &lt;/P&gt;
&lt;P&gt;When a developer says technology is "powerful," we typically mean that it does a lot of the routine plumbing for us, and that it is highly flexible.&amp;nbsp; Certainly both are true of the Entity Framework. &lt;/P&gt;
&lt;P&gt;A quick look at Julia Lerman's Programming Entity Framework (O'Reilly Media, 2009) is both reassuring and somewhat intimidating; her book is over 750 pages.&amp;nbsp; This stands as testimony to the enormous flexibility of the Entity Framework.&amp;nbsp; &lt;/P&gt;
&lt;DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id=scid:7dc1bd33-94bd-46fd-a20b-0131235bcd47:710e0590-6ec6-4558-8fd5-89dc8a672be6 class=wlWriterSmartContent&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P&gt;&lt;A title="Programming Entity Framework (9780596520281): Julia Lerman: Books" href="http://www.amazon.com/exec/obidos/ASIN/059652028X/libertyassocia00A" mce_href="http://www.amazon.com/exec/obidos/ASIN/059652028X/libertyassocia00A"&gt;&lt;IMG style="FLOAT: left" border=0 align=left src="http://images.amazon.com/images/P/059652028X.01.MZZZZZZZ.jpg" mce_src="http://images.amazon.com/images/P/059652028X.01.MZZZZZZZ.jpg"&gt;Programming Entity Framework (9780596520281): Julia Lerman: Books&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;B&gt;ISBN&lt;/B&gt;: 059652028X &lt;BR&gt;&lt;B&gt;ISBN-13&lt;/B&gt;: 9780596520281&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;That said, using the Entity Framework to retrieve data from a relatively straightforward relational database can be explained quite quickly. I will demonstrate enough of the Entity Framework to get a feel for the role that it plays and the level of abstraction that it provides, but in no way will this be a comprehensive survey of the Entity Framework in its entirety.&lt;/P&gt;
&lt;P&gt;To begin, add a new item to Turing RIA Services.web.&amp;nbsp; In the Add New Item dialog select Data in the Categories pane, and choose ADO.net Entity Data Model in the templates pane, and name the new Entity Data Model &lt;EM&gt;TuringBlogs&lt;/EM&gt;.&amp;nbsp; Indicate to the Entity Data Model Wizard that you wish to generate your model from an existing database. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/AddingEntityDataModel" target=_blank mce_href="http://silverlightgeek.me/0turing/AddingEntityDataModel"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=AddingEntityDataModel border=0 alt=AddingEntityDataModel src="http://blogs.silverlight.net/blogs/jesseliberty/AddingEntityDataModel_60EBBBE5.jpg" width=304 height=213 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/AddingEntityDataModel_60EBBBE5.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;You'll be prompted to create or reuse a connection string for your database &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/CreateDataConnection.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/CreateDataConnection.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=CreateDataConnection border=0 alt=CreateDataConnection src="http://blogs.silverlight.net/blogs/jesseliberty/CreateDataConnection_67329273.jpg" width=304 height=308 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/CreateDataConnection_67329273.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;Note that using the second radio button "include the sensitive data in the connection string,"&amp;nbsp; will slightly simplify your code, but expose a significant security hole.&lt;/P&gt;
&lt;P&gt;After connecting to your database, you'll be asked to choose which objects you wish to include.&amp;nbsp; Expand the tables, and select the Blogs table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/SelectBlogsTable" mce_href="http://silverlightgeek.me/0turing/SelectBlogsTable"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=SelectBlogsTable border=0 alt=SelectBlogsTable src="http://blogs.silverlight.net/blogs/jesseliberty/SelectBlogsTable_386CD9D1.jpg" width=304 height=225 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/SelectBlogsTable_386CD9D1.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;When you click finish, the entity data model will appear in the designer. To verify that everything is correct, build the solution.&lt;/P&gt;
&lt;H4&gt;Transporting the Data Class To The Client With .Net RIA Services&lt;/H4&gt;
&lt;P&gt;You're halfway home.&amp;nbsp; You now have an entity (object) that represents the data that is stored in relational tables in SQL Server.&amp;nbsp; The next step is to create business classes that will represent and manipulate that data on the server, and be equally available on the client.&amp;nbsp; That is in a nutshell, what.net RIA Services does for a living. &lt;/P&gt;
&lt;P&gt;Once again right-click on the Turing RIA Services Web project, and add a new item. However this time, in the Categories pane, select Web and in the templates pane Domain Service Class.&amp;nbsp; Name the new item BlogsService and click Add.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/AddingBlogService.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/AddingBlogService.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=AddingBlogService border=0 alt=AddingBlogService src="http://blogs.silverlight.net/blogs/jesseliberty/AddingBlogService_10C65DA7.jpg" width=304 height=176 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/AddingBlogService_10C65DA7.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;P&gt;Click Add which will open the Add New Domain Service Class dialog. Select Blogs from the list of entities (okay, in this case it's the only item in the list).&amp;nbsp; In the same dialog, be sure to check Enable Editing, which enables the CRUD functionality, and at the bottom of the dialog, click "Generate associated classes for metadata." Then click OK.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/NewDomainServiceClass.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/NewDomainServiceClass.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=NewDomainServiceClassDialog border=0 alt=NewDomainServiceClassDialog src="http://blogs.silverlight.net/blogs/jesseliberty/NewDomainServiceClassDialog_24DF7A30.jpg" width=304 height=244 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/NewDomainServiceClassDialog_24DF7A30.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size) &lt;/P&gt;
&lt;P&gt;Open the class of this generates for you: BlogsService.cs and modifying the GetBlogs method as follows:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;//Replace this generated code:&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;public IQueryable&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Blogs&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; GetBlogs()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   return this.Context.Blogs;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;// with this custom code:&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;public IQueryable&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;Blogs&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; GetBlogs()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;  return this.Context.Blogs.OrderBy(b =&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; b.BlogName);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;In this first example, our customization is ordering the results by the name of the blog. &lt;BR&gt;&lt;/P&gt;
&lt;H4&gt;Define It on the Server, Invoke It on the Client&lt;/H4&gt;
&lt;P&gt;When you rebuild the solution not only will the classes that you've created in the server be built, but a corresponding set of proxy classes will be built in the client project. &lt;/P&gt;
&lt;P&gt;Thus the class and its method will be available on the client side, and therefore available to our DataGrid.&amp;nbsp; At the top of the code behind page will need to add three using statements; one to bring in the web project, and the other two for RIA Services:&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; TuringRIAServices.Web;          &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Ria.Data;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Ria.ApplicationServices;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;In the generated code in the client project, the &lt;EM&gt;BlogsContext&lt;/EM&gt; is generated based on&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;the&lt;STRONG&gt; &lt;/STRONG&gt;BlogsService you created on the server. To see the definition, turn on show all files, and locate the file TuringRIAServices.web.g.cs Inside the previously hidden Generated_Code folder. In that file, you will find the definition for the BlogsContext. &lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;sealed&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; BlogsContext : DomainContext&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnCreated();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; BlogsContext() : &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; HttpDomainClient(&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;              &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; Uri(&lt;SPAN style="COLOR: #006080"&gt;"DataService.axd/TuringRIA_Services-Web-BlogsService/"&lt;/SPAN&gt;, System.UriKind.Relative))) {}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; BlogsContext(Uri serviceUri) : &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; HttpDomainClient(serviceUri)) {}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; BlogsContext(DomainClient domainClient) : &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;(domainClient)&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    { &lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;.OnCreated(); }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; EntityList&amp;lt;Blogs&amp;gt; Blogs&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        get { &lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.Entities.GetEntityList&amp;lt;Blogs&amp;gt;();  }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; EntityQuery&amp;lt;Blogs&amp;gt; GetBlogsQuery()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.CreateQuery&amp;lt;Blogs&amp;gt;(&lt;SPAN style="COLOR: #006080"&gt;"GetBlogs"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #0000ff"&gt;null&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #0000ff"&gt;false&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;override&lt;/SPAN&gt; EntityContainer CreateEntityContainer()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; BlogsContextEntityContainer();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;internal&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;sealed&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; BlogsContextEntityContainer : EntityContainer&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; BlogsContextEntityContainer()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;.CreateEntityList&amp;lt;Blogs&amp;gt;(EntityListOperations.All);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Returning to BlogsDataGrid.xaml.cs, instantiate a BlogsContext as a member variable,&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;private&lt;/SPAN&gt; BlogsContext blogsContext = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; BlogsContext();&lt;/PRE&gt;
&lt;P&gt;&lt;!--CRLF--&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Here is the complete BlogsDataGrid.xaml.cs:&lt;/P&gt;
&lt;DIV id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Controls;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Navigation;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; TuringRIA_Services.Web;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Ria.Data;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Windows.Ria.ApplicationServices;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;namespace&lt;/SPAN&gt; TuringRIA_Services&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; BlogsDataGrid : Page&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;private&lt;/SPAN&gt; BlogsContext blogsContext = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; BlogsContext();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; BlogsDataGrid()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;         InitializeComponent();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;.blogsDataGrid.ItemsSource = blogsContext.Blogs;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;         blogsContext.Load( blogsContext.GetBlogsQuery() );&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnNavigatedTo( NavigationEventArgs e )&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;      }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;   }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;In the constructor, you ask the BlogsContext object to retrieve its Blogs property (an entity list of Blogs) and this collection is assigned as the ItemsSource of the DataGrid. The following line instructs the Blog Context to call its Load member method, passing in the query retrieved by calling GetBlogQuery().&amp;nbsp; This will be the query that we customized earlier. &lt;/P&gt;
&lt;P&gt;The query as you remember, retrieves all of the blogs, ordered by the name of each blog.&amp;nbsp; This collection is assigned to the DataGrid and the page is displayed when you click on the blogs button.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://silverlightgeek.me/0turing/DataGridRunning.jpg" target=_blank mce_href="http://silverlightgeek.me/0turing/DataGridRunning.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DataGrid Running" border=0 alt="DataGrid Running" src="http://blogs.silverlight.net/blogs/jesseliberty/DataGridRunning_0F1591D3.jpg" width=304 height=178 mce_src="http://blogs.silverlight.net/blogs/jesseliberty/DataGridRunning_0F1591D3.jpg"&gt;&lt;/A&gt; &lt;BR&gt;(Click image for full size)&lt;/P&gt;
&lt;H4&gt;What have you learned, Dorothy?&lt;/H4&gt;
&lt;P&gt;In this first iteration of moving data from our SQL Server database to the DataGrid on our client, we have examined using the Entity Framework for creating an object orientated model of the data in the database, and using RIA Services both to provide a common set of business classes on the server and the client and to provide transportation of the data from server-side to client-side. &lt;/P&gt;
&lt;P&gt;In the next posting on Project Turing,&amp;nbsp; I will examine more complex, data retrieval. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlightgeek.me/pages/Turing-Code.aspx" target=_blank mce_href="http://silverlightgeek.me/pages/Turing-Code.aspx"&gt;Download source code&lt;/A&gt;&lt;/P&gt;
&lt;TABLE border=2 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P&gt;Please note that due to Carpal Tunnel Syndrome this posting was dictated and then transcribed by computer.&amp;nbsp; I apologize for any resulting absurdities.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=517&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=75&gt;&lt;B&gt;Novice&lt;/B&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=200&gt;&lt;STRONG&gt;Previous&lt;/STRONG&gt;:&amp;nbsp; &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/08/16/linqtosql-a-detailed-review.aspx" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/08/16/linqtosql-a-detailed-review.aspx"&gt;LinqToSql&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=333&gt;&lt;STRONG&gt;Next&lt;/STRONG&gt;: &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx"&gt;Multiple tables and RIA Services&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=75&gt;&lt;STRONG&gt;Advanced&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=200&gt;&lt;STRONG&gt;Previous&lt;/STRONG&gt;:&amp;nbsp; &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/08/16/linqtosql-a-detailed-review.aspx" mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/08/16/linqtosql-a-detailed-review.aspx"&gt;LinqToSql&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=333&gt;&lt;STRONG&gt;Next&lt;/STRONG&gt;: &lt;A href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx" target=_blank mce_href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx"&gt;Multiple tables and RIA Services&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=292256" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P8EePLEe_dI:aP1lyFq-LXM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P8EePLEe_dI:aP1lyFq-LXM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?i=P8EePLEe_dI:aP1lyFq-LXM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?a=P8EePLEe_dI:aP1lyFq-LXM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JesseLiberty-SilverlightGeek?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JesseLiberty-SilverlightGeek/~4/P8EePLEe_dI" height="1" width="1"/&gt;</description><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Data+Binding/default.aspx">Data Binding</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Mini-Tutorial/default.aspx">Mini-Tutorial</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Building+Apps/default.aspx">Building Apps</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Project+Turing/default.aspx">Project Turing</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.silverlight.net/blogs/jesseliberty/archive/tags/RIA+Services/default.aspx">RIA Services</category><evnet:views>993</evnet:views><evnet:viewtrackingurl>http://blogs.silverlight.net/aggbug.aspx?PostID=292256</evnet:viewtrackingurl><feedburner:origLink>http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/24/project-turing-beginning-ria-svcs.aspx</feedburner:origLink></item></channel></rss>
