<?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.timheuer.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Method ~ of ~ failed by Tim Heuer</title>
        <link>https://timheuer.com/blog/Default.aspx</link>
        <description>ramblings from the digital underbelly</description>
        <language>en-US</language>
        <copyright>Tim Heuer</copyright>
        <generator>Subtext Version 2.1.0.5</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
        <image>
            <title>Method ~ of ~ failed by Tim Heuer</title>
            <url>https://timheuer.com/blog/images/RSS2Image.gif</url>
            <link>https://timheuer.com/blog/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.timheuer.com/timheuer-silverlight" type="application/rss+xml" /><item>
            <title>Silverlight FloatableWindow update: start position and resizable</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/b1_hr_SeGeY/silverlight-floatablewindow-updated-with-resizing-capabilities.aspx</link>
            <description>&lt;p&gt;A while back I wrote a post where I refactored the &lt;a href="http://silverlight.net/"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;ChildWindow to create a non-modal window and I called it &lt;a href="http://timheuer.com/blog/archive/2009/05/10/silverlight-childwindow-non-modal-refactor.aspx"&gt;&lt;strong&gt;FloatableWindow&lt;/strong&gt;&lt;/a&gt; (you can see why I’m not a good marketer…hey I could have called it Microsoft Silverlight ChildWindow Refactored Edition Express).  A few folks found it useful, for which I’m appreciative of the comments.&lt;/p&gt;  &lt;p&gt;My buddy &lt;a href="http://karlshifflett.wordpress.com/"&gt;&lt;strong&gt;Karl Shifflett&lt;/strong&gt;&lt;/a&gt; decided to use it in &lt;strong&gt;&lt;a href="http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/"&gt;Glimpse&lt;/a&gt;&lt;/strong&gt; as the diagnostic window – thanks Karl!  Karl even added some code to it to basically provide a start position (HorizontalOffset and VerticalOffset).  Another request Karl had was to add resizing capabilities to the window.&lt;/p&gt;  &lt;p&gt;I’m pleased to say that I added both of these features to the source.  I modified Karl’s offset properties a bit to not only include them in the Show() override, but also as public properties that would be used if available.  For resizing, I added a ResizeMode property which matches the System.Window.ResizeMode enumeration.  I chose to use that enumeration for some consistency with WPF APIs, but frankly it really only supports CanResize and NoResize with the default being CanResize.  You can see an example of the resizing capabilities here in this animation:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://s3.amazonaws.com:80/storage.timheuer.com/FloatableWindowResize2.gif" /&gt;&lt;/p&gt;  &lt;p&gt;As you can see (sorry for the horrible animated image but just wanted to make it simple), the resizing handle will appear in the lower right corner of the window.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE: Based on Laurent/yaip’s feedback I reverted back to my original design, here’s the mouse out (normal) and mouse over states for the handle:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/float-mouseout.png" /&gt; &lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/float-mouseover.png" /&gt;&lt;/p&gt;  &lt;p&gt; &lt;strike&gt; I chose to make it invisible unless someone moves their mouse into that position.  &lt;em&gt;Is that the wrong UX do you think?&lt;/em&gt;  I know it isn’t entirely consistent with something like WinForms, but I wanted to be a little different.&lt;/strike&gt;  &lt;/p&gt;  &lt;p&gt;Additionally I wanted to use the SizeNWSE Cursor as a normal WPF/WinForm window would use, but unfortunately that’s not a valid Cursor for Silverlight right now.&lt;/p&gt;  &lt;p&gt;I did try to make the resizing adorner a template part so you could make it something else (right now it is just a path).  I haven’t really tried messing with it that much though.&lt;/p&gt;  &lt;p&gt;I think my math might be a bit off in some scenarios and I’m still frustrated with the Popup and ZIndex issue in Silverlight, but I know there is an open issue for Silverlight to look at this so I’m trying to stay calm about it.  Anyhow, some subtle adds to make it hopefully just a bit more useful for anyone who cares (or cares to learn from it).&lt;/p&gt;  &lt;p&gt;You can download the source code here: &lt;a href="http://s3.amazonaws.com:80/storage.timheuer.com/FloatableWindow_1.3.zip"&gt;FloatableWindow_1.3.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps and I appreciate any comments regarding the update or if you see issues in your scenarios.  &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:0767317B-992E-4b12-91E0-4F059A8CECA8:a03f88b6-b2d3-48f3-b881-5d7708ecc848" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/floatablewindow/default.aspx" rel="tag"&gt;floatablewindow&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/mdi/default.aspx" rel="tag"&gt;mdi&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/childwindow/default.aspx" rel="tag"&gt;childwindow&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/toolkit/default.aspx" rel="tag"&gt;toolkit&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/silverlight+toolkit/default.aspx" rel="tag"&gt;silverlight toolkit&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/glimpse/default.aspx" rel="tag"&gt;glimpse&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/karl+shifflet/default.aspx" rel="tag"&gt;karl shifflet&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/modal/default.aspx" rel="tag"&gt;modal&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14629.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D06t_YxMPBnHZjveAXFIOEJ_etE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D06t_YxMPBnHZjveAXFIOEJ_etE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D06t_YxMPBnHZjveAXFIOEJ_etE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D06t_YxMPBnHZjveAXFIOEJ_etE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/b1_hr_SeGeY" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/07/08/silverlight-floatablewindow-updated-with-resizing-capabilities.aspx</guid>
            <pubDate>Wed, 08 Jul 2009 18:47:32 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14629.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/07/08/silverlight-floatablewindow-updated-with-resizing-capabilities.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14629.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/07/08/silverlight-floatablewindow-updated-with-resizing-capabilities.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight Coding Competition &amp;ndash; win USD $10,000!</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/DryR6ahE0uM/win-10-thousand-dollars-silverlight-coding-competition.aspx</link>
            <description>&lt;p&gt;I was honored to be asked by ComponentArt to participate in a judging panel for their just now released &lt;strong&gt;&lt;a href="http://www.componentart.com/community/competition2009/"&gt;2009 Summer Silverlight Coding Competition&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;.  &lt;/strong&gt;The grand prize is USD $10,000.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yes, that’s right: USD $10,000!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.componentart.com/community/competition2009/"&gt;&lt;img border="0" style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="ComponentArt Silverlight Coding Competition" alt="ComponentArt Silverlight Coding Competition" src="http://s3.amazonaws.com:80/storage.timheuer.com/componentartcodingcomp.png" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;strong&gt;  &lt;/strong&gt;
&lt;p&gt;ComponentArt is even kicking in 2 runner-up prizes of licensing to their products, which is also a sweet deal!  The contest is simple, and you are not required to use ComponentArt controls…in their words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Applicants are not required to use ComponentArt's products to enter the competition (or as the legal jargon requires us to say: NO PURCHASE NECESSARY). We'll obviously &lt;/em&gt;&lt;a href="http://www.componentart.com/community/competition2009/experience.aspx"&gt;&lt;em&gt;let you use our products&lt;/em&gt;&lt;/a&gt;&lt;em&gt; if you want to, but the purpose of this contest is to increase awareness of Silverlight features and applications already released, so we would like to keep it open to the entire Silverlight developer community. &lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Be sure to &lt;a href="http://www.componentart.com/community/competition2009/rules.aspx"&gt;read the full contest rules&lt;/a&gt; for all the details.  There is a number of judging criteria that will be ranked by 9 total judges: myself, &lt;a href="http://blogs.msdn.com/webnext"&gt;Laurence Moroney&lt;/a&gt;, &lt;a href="http://silverlight.net/blogs/msnow"&gt;Mike Snow&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/despos"&gt;Dino Esposito&lt;/a&gt;, &lt;a href="http://johnpapa.net"&gt;John Papa&lt;/a&gt;, &lt;a href="http://stevesmithblog.com"&gt;Steve Smith&lt;/a&gt;, &lt;a href="http://componentart.com/blogs/milos"&gt;Milos Glisic&lt;/a&gt;, &lt;a href="http://componentart.com/blogs/phil"&gt;Phil Tucker&lt;/a&gt;, and &lt;a href="http://componentart.com/blogs/corey"&gt;Corey Cahill&lt;/a&gt;.  As you can see, this is a judging panel made up of Microsoft, ComponentArt and community leaders.&lt;/p&gt;
&lt;p&gt;Obviously your application needs to be a &lt;a href="http://silverlight.net/" style="font-weight: bold;"&gt;Silverlight&lt;/a&gt; application, I hope that’s clear.  It must be accessible via a public entry point and if authentication is required, adequate credentials will need to be supplied.  If after reading the rules you have questions, please ensure you contact the email provided in the rules and FAQ for the contest.&lt;/p&gt;
&lt;p&gt;What are you waiting for?  $10K up for grabs!!!!&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:33034eaa-663f-456c-9852-1418a18c9123" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/componentart/default.aspx" rel="tag"&gt;componentart&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/component+art/default.aspx" rel="tag"&gt;component art&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/silverlight+coding+competition/default.aspx" rel="tag"&gt;silverlight coding competition&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/moroney/default.aspx" rel="tag"&gt;moroney&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="wlWriterHeaderFooter" style="margin: 0px; padding: 0px;"&gt;&lt;hr /&gt;
&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14627.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pXEUbty99XaqH9sl35ySvfym47M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pXEUbty99XaqH9sl35ySvfym47M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pXEUbty99XaqH9sl35ySvfym47M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pXEUbty99XaqH9sl35ySvfym47M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/DryR6ahE0uM" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/06/25/win-10-thousand-dollars-silverlight-coding-competition.aspx</guid>
            <pubDate>Thu, 25 Jun 2009 20:41:08 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14627.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/06/25/win-10-thousand-dollars-silverlight-coding-competition.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14627.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/06/25/win-10-thousand-dollars-silverlight-coding-competition.aspx</feedburner:origLink></item>
        <item>
            <title>.NET RIA Services roadmap update</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/UH8rjtfbs6I/ria-services-roadmap-updated.aspx</link>
            <description>&lt;p&gt;Today, we posted on the &lt;strong&gt;.NET RIA Services&lt;/strong&gt; forum an updated roadmap for the timing and thoughts around the product offering.  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;What is .NET RIA Services?&lt;/p&gt;    &lt;p&gt;Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data&lt;b&gt; &lt;/b&gt;validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Here is the current thoughts around the offering…&lt;/p&gt;  &lt;h2&gt;July 2009: Updated CTP&lt;/h2&gt;  &lt;p&gt;We will have an updated build of RIA Services in CTP form.  This is still considered a preview.  The current thinking is that we’ll remove any production (go-live) restrictions, but it will be a ‘use at your own risk’ product, not the typical official “go live” support license.  This is based on feedback our users are asking for.  We want to continue to evolve the product based on feedback, but also heard loudly that people want to use it now.&lt;/p&gt;  &lt;p&gt;This build will have the goal of getting most significant breaking changes out there and remedied.  We’ll also update better shared code, extensibility and code-gen features.  This will also bring a first pass at better integration with ADO.NET Data Services.&lt;/p&gt;  &lt;h2&gt;PDC 2009: Beta&lt;/h2&gt;  &lt;p&gt;The obvious continued bug fixes based on what we know as well as customer feedback submitted via the &lt;a href="http://silverlight.net/forums/53.aspx"&gt;.NET RIA Services forum&lt;/a&gt;.  The list of feature enhancements at this build stage is still being determined but some things being considered include better presentation model support and deeper hierarchy support.&lt;/p&gt;  &lt;p&gt;This stage will also aim to bring support for VS2010 and .NET 4 and move to ADO.NET Data Services as the underlying protocol.  This builds on the path being taken for the July 2009 CTP.&lt;/p&gt;  &lt;h2&gt;First part of 2010: RTW &lt;/h2&gt;  &lt;p&gt;At this stage we’d polish up the product/tooling and prepare for the version 1 release.  Localization, stress, additional security analysis, perf…all these things happen between the beta and RTW.  We’ll also keep in line with current product changes if they occur (i.e., Visual Studio/Silverlight).&lt;/p&gt;  &lt;p&gt;These are the current plans.  At each stage we will be keeping up with the associated Silverlight builds as they are available.&lt;/p&gt;  &lt;h2&gt;Seeking feedback&lt;/h2&gt;  &lt;p&gt;Right now, the RTW is targeted for VS2010 and .NET 4 as the primary tool/framework story.  We would love feedback on this (essentially, how important is .NET 3.5 SP1/VS2008 support).  We’re also asking that based on your work with .NET RIA Services that you provide feedback of key scenarios that are essential for you in a v1 release.  What do you think of alignment with ADO.NET Data Services?  What about ASP.NET MVC, etc?&lt;/p&gt;  &lt;p&gt;Please use the &lt;a href="http://silverlight.net/forums/t/101160.aspx"&gt;&lt;strong&gt;.NET RIA Services forum&lt;/strong&gt;&lt;/a&gt; to give your feedback.  The team there is very active and listening.  It is the best place to communicate with the RIA Services team.&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:0767317B-992E-4b12-91E0-4F059A8CECA8:1e1372e9-ab91-4df1-ba17-51230c331b23" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://technorati.com/tags/silverlight" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://technorati.com/tags/riaservices" rel="tag"&gt;riaservices&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ria" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xaml" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://technorati.com/tags/astoria" rel="tag"&gt;astoria&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ado.net" rel="tag"&gt;ado.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/visual+studio" rel="tag"&gt;visual studio&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14624.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X871S0vTM8x6DXgD1_tf4kLKYAY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X871S0vTM8x6DXgD1_tf4kLKYAY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X871S0vTM8x6DXgD1_tf4kLKYAY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X871S0vTM8x6DXgD1_tf4kLKYAY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/UH8rjtfbs6I" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/06/09/ria-services-roadmap-updated.aspx</guid>
            <pubDate>Tue, 09 Jun 2009 14:43:08 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14624.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/06/09/ria-services-roadmap-updated.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14624.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/06/09/ria-services-roadmap-updated.aspx</feedburner:origLink></item>
        <item>
            <title>Check your Silverlight 2 apps for compatibility with Silverlight 3</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/7UUtaoLPVXI/verify-your-silverlight-application-compatibility.aspx</link>
            <description>&lt;p&gt;One of the goals of new versions of &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; is to be be backward compatible with previous versions.  We make this a priority goal so that people can keep their previous applications deployed while not worrying that people with newer Silverlight will have a broken experience.&lt;/p&gt;  &lt;p&gt;Silverlight 3 has been out in beta form since March 2009 and hopefully if you are a Silverlight developer you’ve had a chance to work with the new features and tools.  If you have existing Silverlight 2 applications that are deployed, I wanted to draw your attention to some action items if you haven’t done them already.&lt;/p&gt;  &lt;h2&gt;Call to action: Test your Silverlight 2 applications for compatibility!&lt;/h2&gt;  &lt;p&gt;What does this mean?  Well, we want your &lt;em&gt;existing &lt;/em&gt;applications to be successful and want to ensure their compatible.  Here’s you’re call to action:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Keep your Silverlight 2 applications deployed. &lt;/li&gt;    &lt;li&gt;Set up some test “user” machines to browse to those applications.  Install either the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143433"&gt;Windows&lt;/a&gt; or &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143434"&gt;Mac&lt;/a&gt; runtime of SL3 beta respectively (ideally both if you have access to both operating systems) &lt;/li&gt;    &lt;li&gt;On the &lt;em&gt;test machines&lt;/em&gt; start browsing and working with your Silverlight 2 applications…test your normal scenarios &lt;/li&gt;    &lt;li&gt;If you find issues, &lt;a href="http://silverlight.net/forums/51.aspx"&gt;report them immediately to the forums&lt;/a&gt; with repro steps and as much detail as you can.  Might I suggest making the topic &lt;em&gt;SL2Compat: &amp;lt;your issue&amp;gt;&lt;/em&gt; so as an example: SL2Compat: my app stopped calling web services. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As I mentioned, our goal is backward compatibility, so hopefully your applications will be unaffected.  As you might expect there &lt;em&gt;will&lt;/em&gt; be breaking changes among Silverlight 3 beta to release as well as &lt;em&gt;some&lt;/em&gt; fixes in Silverlight 3 that we’ve found needed to be fixed.  How will these fixes potentially affect your applications?  Hopefully very little due to quirks mode.&lt;/p&gt;  &lt;h2&gt;A word on quirks mode&lt;/h2&gt;  &lt;p&gt;The Silverlight team wanted to fix some things in Silverlight 2 in the new version of the runtime, Silverlight 3.  However by fixing some of these things it was possible to change behavior of existing Silverlight 2 applications.  In order to get around this, we made these potentially problematic changes “quirk mode changes.”  A quirk mode change is one that the Silverlight 3 runtime will not enforce if the runtime detects that the application being run was designed for Silverlight 2. &lt;/p&gt;  &lt;p&gt;The runtime detects which target version by the RuntimeVersion attribute in the application’s AppManifest.xml file.  If you’ve never modified it, that’s fine.  The Silverlight build tools automatically append the correct runtime version into this file at compile time.  So if you are working with Silverlight 2 release tools, the attribute is 2.0.31005.0.  If you work with Silverlight 3 tools, it will be the Silverlight 3 version number.  &lt;strong&gt;The bottom line here is that your Silverlight 2 compiled apps will still run under Silverlight 3 without modification – quirks mode happens automatically.&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;What happens at Silverlight 3 release?&lt;/h2&gt;  &lt;p&gt;Nothing.  If your Silverlight 2 applications work under the SL3 runtime, which they should, then you are fine.  You may want to take advantage of the many new features of Silverlight 3.  At the time when you do this, you will be working in Silverlight 3 and anything that may have been fixed from Silverlight 2 will now be affected (see quirks mode diagram above).  &lt;/p&gt;  &lt;p&gt;When you do update your Silverlight application to use version 3 and redeploy the XAP, make sure that you also update your deployment mechanism (i.e., the &amp;lt;object&amp;gt; tag or the Javascript method to create the Silverlight object).  You’ll want to ensure you update the new &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc917842(VS.95).aspx"&gt;minRuntimeVersion&lt;/a&gt;&lt;/em&gt; attribute to the Silverlight 3 ones to ensure the end-user has the correct version.&lt;/p&gt;  &lt;p&gt;If you have a Silverlight 2 application, we encourage you to ensure you’ve done your compat testing.  If you find issues, &lt;strong&gt;&lt;a href="http://silverlight.net/forums/51.aspx"&gt;report them in the forums&lt;/a&gt;, not here&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Hope this helps!  Onward to Silverlight 3!&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:0767317B-992E-4b12-91E0-4F059A8CECA8:46537b84-b1ef-48ec-a402-e47de6e603b7" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/expression/default.aspx" rel="tag"&gt;expression&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/minruntimeversion/default.aspx" rel="tag"&gt;minruntimeversion&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/appcompat/default.aspx" rel="tag"&gt;appcompat&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14622.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SdPMD_izKvi4R7nTI-cNDua-x1I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdPMD_izKvi4R7nTI-cNDua-x1I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SdPMD_izKvi4R7nTI-cNDua-x1I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdPMD_izKvi4R7nTI-cNDua-x1I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/7UUtaoLPVXI" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/06/05/verify-your-silverlight-application-compatibility.aspx</guid>
            <pubDate>Fri, 05 Jun 2009 22:15:27 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14622.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/06/05/verify-your-silverlight-application-compatibility.aspx#feedback</comments>
            <slash:comments>33</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14622.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/06/05/verify-your-silverlight-application-compatibility.aspx</feedburner:origLink></item>
        <item>
            <title>Google Wave: the sky is falling and Flash/Silverlight are dead</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/DoYvrqFqs10/google-wave-forces-out-silverlight-flash-ria-platforms.aspx</link>
            <description>&lt;p&gt;At the Google I/O conference this past week, they announced &lt;a href="http://wave.google.com"&gt;&lt;strong&gt;Google Wave&lt;/strong&gt;&lt;/a&gt;.  Almost immediately, I started seeing &lt;a href="http://twitter.com/timheuer"&gt;Twitter&lt;/a&gt; replies, blog posts and various articles talking about how Google Wave is going to kill Flash/&lt;a href="http://silverlight.net/"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt;/JavaFX.  None of these made sense to me…and at that point I’d yet to see anything about Wave anyway.  I posed a few questions on Twitter as to why people felt Wave was an RIA &lt;em&gt;platform&lt;/em&gt; killer (that’s what I was reading into a lot of the buzz against things like Silverlight).  I got more confused with all the replies :-).  So I had a moment this morning to listen to the &lt;a href="http://google-code-updates.blogspot.com/2009/05/google-io-2009-day-2-recap.html"&gt;Google I/O Wave keynote&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I first heard &lt;strong&gt;Vic Gundotra&lt;/strong&gt; come out and describe Wave as a “…personal collaboration and communication tool…” followed very soon by an introduction of &lt;strong&gt;Lars Rasmussen&lt;/strong&gt; who immediately also came out and introduced it as a “…communications and collaboration tool…” as well.  Hmm, okay, so it’s a tool?  This is where I was at so far less than 10 minutes of the presentation.  In fact everywhere it is being described so much as a tool rather than a platform.  In &lt;a href="http://googleblog.blogspot.com/2009/05/went-walkabout-brought-back-google-wave.html"&gt;their post&lt;/a&gt; they help differentiate a bit more calling it a product, platform and protocol.  The keynote session finally got to this point as well.  Great, now I get to learn about the platform.&lt;/p&gt;
&lt;p&gt;After about 40 minutes of the presentation I’ve seen a very interesting project/product, but haven’t seen it as a platform that is replacing anything like Silverlight.  &lt;strong&gt;Stephanie Hannon&lt;/strong&gt;, the lead product manager, unveiled the Wave &lt;em&gt;product&lt;/em&gt; as an HTML5 application built using &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit&lt;/a&gt; (GWT).  Since GWT can be used today, I was curious what aspects were HTML5 in the app – I didn’t feel they elaborated at all – someone correct me if they did please.&lt;/p&gt;
&lt;p&gt;At least 40-50 minutes of the demonstration was all about the Wave experience, a lot of looked to me like a tight(er) integration of Gmail and Google Talk…both of which are products I admire and are great examples of rich web applications.  There absolutely were some cool features such as the real-time communication updates (no more waiting for &lt;em&gt;Tim is typing&lt;/em&gt;).  The “playback” feature was pretty cool/fun to see as well, but I’m not sure how much I’d use it.  Obviously demos at conferences are contrived and so as cool as it was, I can’t wait to test it out in the “real” interwebs.&lt;/p&gt;
&lt;p&gt;The drag/drop feature of images from desktop to the Wave was also cool and raised my eyebrow.  Then Stephanie points out that this is something HTML5 cannot support and that feature requires Google Gears.  They mentioned they are working on a proposal to HTML5 to accommodate.&lt;/p&gt;
&lt;p&gt;The other promise of Wave was that it would be “open” – a phrase that seems to have become a buzzword among anything web.  Open at what level I wonder?  Even Lars himself mentioned that they would “…open source the lion’s share…” of the Wave product experience (and demonstrated one minor skin customization).  But what isn’t in the lion’s share I wonder.&lt;/p&gt;
&lt;p&gt;So the &lt;em&gt;product&lt;/em&gt; got a lot of attention then about 20 minutes or less of the &lt;em&gt;platform/protocol&lt;/em&gt;.  The platform seemed to have been demonstrated with the use of gadgets (embedding a map in the Wave, embedding the Wave in Blogger, etc.).  In fact the only aspect of the platform I felt was shown was embedding (they even referred to an embedding API).  The &lt;em&gt;protocol&lt;/em&gt; also claims to be open.  Great!  There were some minor demonstrations of this (I admit, kind of hard to ‘show’ a protocol), but didn’t really get emphasis I felt.  So of 3 pillars of the Wave announcement, really only one of them (product) got any real depth.  Granted (and they admitted &lt;em&gt;several&lt;/em&gt; times) that the whole Wave concept is in early form and limited access given to developers.  Frankly I was surprised no Android-Wave integration was shown.&lt;/p&gt;
&lt;p&gt;From a product standpoint, it looks like a fun collaboration tool.  I have some concerns about the user experience like collaborating with LOTS of people.  Their UI seemed to make use of avatars and make the assumption of collaboration of 3 or less.  I routinely collaborate professionally with large groups and personally with groups more than 6 (think homeowner association).  What does Wave look like with groups or large collaboration…could a Wave look so spaghetti that it becomes unusable?  I suppose that is the intent behind playback.&lt;/p&gt;
&lt;p&gt;Nothing that I personally saw (and I’ve yet to get my hands on it) led me to draw comparisons/conclusions to Wave threatening RIA platforms like Flash, Silverlight or JavaFX.  Sure, Wave as a &lt;em&gt;product&lt;/em&gt; is a demonstration of a great web app/RIA…but that’s an implementation, not a platform.  So is HTML5 really what people are talking about here?  Okay, help me understand how HTML5 Wave in the scenarios they demonstrated?  Even they admitted that some of them were using Gears.&lt;/p&gt;
&lt;p&gt;One of the more forwarded articles was one by the Zoho executive staff titled &lt;em&gt;&lt;a href="http://blogs.zoho.com/general/microsoft-silverlight-vs-google-wave-a-study-in-contrasts"&gt;Microsoft Silverlight vs Google Wave: Why Karma Matters&lt;/a&gt;&lt;/em&gt;.  Sridhar in that article should really change the title.  It’s misleading and he doesn’t prove the point of the title.  What he explains is the buzz behind early alpha like Wave versus early stuff from Microsoft.  The excitement around Google announcements is generally huge and positive (although &lt;a href="http://gigaom.com/2009/05/28/google-climbs-to-new-heights-of-arrogance-with-wave/"&gt;some don’t think it’s the cat’s meow&lt;/a&gt;) contrasted with Microsoft releasing something and everyone usually being a skeptic.  Sridhar tries to draw some analogy to Silverlight, but I think fails.  He’s just throwing more FUD around Microsoft in general.&lt;/p&gt;
&lt;p&gt;What I also find interesting is this buzzword of “open” – something Google is praised for.  Let’s take a look at &lt;a href="http://www.waveprotocol.org/"&gt;Google Wave Federation Protocol&lt;/a&gt;.  What’s open about it is that they’ve created something and put it out in specification form (and put a .org domain around it).  If that is the definition of open, then why is Microsoft hammered for XAML?  We have a spec out there?  What about C#?  Heck, that’s an ECMA standard.  I see a bit of a double-standard here.  I’m not saying that organizations like Google and Microsoft shouldn’t continue this practice…in fact, the opposite.  But it does seem odd that a protocol built to serve a specific need that wasn’t already available in existing standards is being praised when that is what other organizations have been specifically slandered for in the past.  Seems odd.&lt;/p&gt;
&lt;p&gt;So is Wave going to threaten RIA platforms?  I don’t know.  Is it even an RIA platform?  I just think that all the messages about how Wave is pushing out things like Flash, Silverlight or JavaFX are unfounded at this point.  They all serve purposes.  Is HTML5 really what people are talking about here?  Fine, then draw &lt;em&gt;that&lt;/em&gt; comparison and put some meat around it.  As far as I could tell, &lt;a href="http://www.w3.org/TR/html5/"&gt;HTML5 is a working draft&lt;/a&gt; still.  To me as a developer (and as a user) this means that even once ratified as a standard, browsers will have to decide to support that (I know some have already)…and even beyond that-&lt;em&gt;people have to use those new browsers&lt;/em&gt;.  The slowness of standards leads me to believe that RIA platforms will be around a while as there is some flexibility in providing RIA frameworks from commercial vendors.&lt;/p&gt;
&lt;p&gt;If I’ve misunderstood something, please correct me.  I really want to make sure I’m seeing the whole picture.  But in the short days after a keynote only demonstration that was admittedly baked, I’m not sure the sky is falling for RIA frameworks and platforms.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f2ed433f-d2b8-48a6-a06f-040aa49997a9" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;&lt;span class="tags"&gt;tags: &lt;a rel="tag" href="http://timheuer.com/blog/tags/silverlight/default.aspx"&gt;silverlight&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/ria/default.aspx"&gt;ria&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/wave/default.aspx"&gt;wave&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/xaml/default.aspx"&gt;xaml&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/html5/default.aspx"&gt;html5&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/google+wave/default.aspx"&gt;google wave&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/flash/default.aspx"&gt;flash&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px;" class="wlWriterHeaderFooter"&gt;&lt;hr /&gt;
&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14620.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pMdD4R1liMy7mRnedZe8YDFm_ac/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pMdD4R1liMy7mRnedZe8YDFm_ac/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pMdD4R1liMy7mRnedZe8YDFm_ac/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pMdD4R1liMy7mRnedZe8YDFm_ac/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/DoYvrqFqs10" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/30/google-wave-forces-out-silverlight-flash-ria-platforms.aspx</guid>
            <pubDate>Sat, 30 May 2009 21:13:29 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14620.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/30/google-wave-forces-out-silverlight-flash-ria-platforms.aspx#feedback</comments>
            <slash:comments>85</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14620.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/30/google-wave-forces-out-silverlight-flash-ria-platforms.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight DataForm helpers</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/-20JyXFAclU/customize-dataform-with-data-annotation-display-attributes.aspx</link>
            <description>&lt;p&gt;If you looked at the &lt;a href="http://timheuer.com/blog/archive/2009/05/19/silverlight-net-ria-services-updated.aspx"&gt;updated RIA Services Business Application&lt;/a&gt; template which had the authentication built-in, you may have seen the login screen with a little icon next to the password field:&lt;/p&gt;
  
&lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/bizapptemplate-register.png" alt="Biz App Login Template" title="Biz App Login Template" style="display: block; float: none; margin-left: auto; margin-right: auto;" /&gt;&lt;/p&gt;
  
&lt;p&gt;When you hover over this some helpful information displays in tool tip form:&lt;/p&gt;
  
&lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/bizapptemplate-passwordhelper.png" alt="Tooltip Helper" title="Tooltip Helper" style="display: block; float: none; margin-left: auto; margin-right: auto;" /&gt;&lt;/p&gt;
  
&lt;p&gt;So how did that get there?  The power of the data annotations.  If you look at your model definition, you can add a DisplayAttribute and provide some additional information.  Let’s take a look at a simple example.  Here’s the simple model:&lt;/p&gt;
  
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; font-size: 8pt; cursor: text;"&gt;   
&lt;div id="codeSnippet" style="border-style: none; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;     
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt; PersonModel&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; FirstName { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; LastName { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; EmailAddress { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; Gender { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; Age { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;and the DataForm generated:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/dataform-simplemodel1.png" alt="DataForm with no Attributes" title="DataForm with no Attributes" style="display: block; float: none; margin-left: auto; margin-right: auto;" /&gt;&lt;/p&gt;
&lt;p&gt;Not too helpful.  Now, let’s modify our model with some attributes:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; font-size: 8pt; cursor: text;"&gt;   
&lt;div id="codeSnippet" style="border-style: none; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;     
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt; PersonModel&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;     [Required()]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;     [Display(Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"First Name:"&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; FirstName { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;     [Required()]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt;     [Display(Name = &lt;span style="color: rgb(0, 96, 128);"&gt;"Last Name:"&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum9" style="color: rgb(96, 96, 96);"&gt;   9:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; LastName { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum10" style="color: rgb(96, 96, 96);"&gt;  10:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum11" style="color: rgb(96, 96, 96);"&gt;  11:&lt;/span&gt;     [Display(Name = &lt;span style="color: rgb(0, 96, 128);"&gt;"Email Address:"&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum12" style="color: rgb(96, 96, 96);"&gt;  12:&lt;/span&gt;         Description=&lt;span style="color: rgb(0, 96, 128);"&gt;"We do not sell your information!"&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum13" style="color: rgb(96, 96, 96);"&gt;  13:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; EmailAddress { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum14" style="color: rgb(96, 96, 96);"&gt;  14:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum15" style="color: rgb(96, 96, 96);"&gt;  15:&lt;/span&gt;     [Display(Description=&lt;span style="color: rgb(0, 96, 128);"&gt;"Used for demographics"&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum16" style="color: rgb(96, 96, 96);"&gt;  16:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; Gender { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum17" style="color: rgb(96, 96, 96);"&gt;  17:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum18" style="color: rgb(96, 96, 96);"&gt;  18:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; Age { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum19" style="color: rgb(96, 96, 96);"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And here is the new auto generated DataForm:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/dataform-simplemode2.png" alt="DataForm with Display Attributes" title="DataForm with Display Attributes" style="display: block; float: none; margin-left: auto; margin-right: auto;" /&gt;&lt;/p&gt;
&lt;p&gt;Much more friendly to the user, and from a code perspective, we wouldn’t have to change how we work with our model.  We get some free visuals and functionality with some simple attribute properties.&lt;/p&gt;
&lt;p&gt;Also, did you know that you could bind multiple items to the DataForm and get automatic paging and add new functionality?  Given this code:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; font-size: 8pt; cursor: text;"&gt;   
&lt;div id="codeSnippet" style="border-style: none; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;     
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; ObservableCollection&amp;lt;PersonModel&amp;gt; people = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; ObservableCollection&amp;lt;PersonModel&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 10; i++)&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;     PersonModel p = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; PersonModel() { FirstName = &lt;span style="color: rgb(0, 96, 128);"&gt;"First"&lt;/span&gt; + i.ToString(), LastName = &lt;span style="color: rgb(0, 96, 128);"&gt;"Last "&lt;/span&gt; + i.ToString(), Age = i };&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;     people.Add(p);&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt; DataBrowser.ItemsSource = people;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Check out what is generated:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://s3.amazonaws.com:80/storage.timheuer.com/dataform-simplemodel3.png" alt="DataForm multiple data binding" title="DataForm multiple data binding" style="display: block; float: none; margin-left: auto; margin-right: auto;" /&gt;&lt;/p&gt;
&lt;p&gt;Notice the pager and add new buttons.  Nice.  If you’re wondering how to get more granular control over the field displays, it is similar to DataGrid in that you can turn off auto generation of fields and provide your own implementation through custom DataFields:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; font-size: 8pt; cursor: text;"&gt;   
&lt;div id="codeSnippet" style="border-style: none; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;     
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataForm&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;x:Name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="DataBrowser"&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="400"&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;AutoGenerateFields&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="False"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataForm.Fields&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTextField&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{Binding FirstName}"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;                 &lt;span style="color: rgb(255, 0, 0);"&gt;FieldLabelContent&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="First Name: "&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTextField&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{Binding LastName}"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;                 &lt;span style="color: rgb(255, 0, 0);"&gt;FieldLabelContent&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Last Name: "&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;FieldLabelContent&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Age"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt;             &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField.DisplayTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum9" style="color: rgb(96, 96, 96);"&gt;   9:&lt;/span&gt;                 &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum10" style="color: rgb(96, 96, 96);"&gt;  10:&lt;/span&gt;                     &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;TextBlock&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{Binding Age}"&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;FontSize&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="24"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum11" style="color: rgb(96, 96, 96);"&gt;  11:&lt;/span&gt;                 &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;       &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum12" style="color: rgb(96, 96, 96);"&gt;  12:&lt;/span&gt;             &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField.DisplayTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum13" style="color: rgb(96, 96, 96);"&gt;  13:&lt;/span&gt;             &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField.EditTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum14" style="color: rgb(96, 96, 96);"&gt;  14:&lt;/span&gt;                 &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum15" style="color: rgb(96, 96, 96);"&gt;  15:&lt;/span&gt;                     &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{Binding Age}"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum16" style="color: rgb(96, 96, 96);"&gt;  16:&lt;/span&gt;                 &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum17" style="color: rgb(96, 96, 96);"&gt;  17:&lt;/span&gt;             &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField.EditTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum18" style="color: rgb(96, 96, 96);"&gt;  18:&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataFormTemplateField&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;       &lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum19" style="color: rgb(96, 96, 96);"&gt;  19:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataForm.Fields&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;      
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span id="lnum20" style="color: rgb(96, 96, 96);"&gt;  20:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;datacontrols:DataForm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Hope this helps!&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:eda0ca04-5e83-4ca9-85fd-0e4157dfbbf1" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;&lt;span class="tags"&gt;tags: &lt;a rel="tag" href="http://timheuer.com/blog/tags/silverlight/default.aspx"&gt;silverlight&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/dataform/default.aspx"&gt;dataform&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/riaservices/default.aspx"&gt;riaservices&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/ria/default.aspx"&gt;ria&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/xaml/default.aspx"&gt;xaml&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/data+annotations/default.aspx"&gt;data annotations&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/annotations/default.aspx"&gt;annotations&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/tags/model/default.aspx"&gt;model&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px;" class="wlWriterHeaderFooter"&gt;&lt;hr /&gt;
&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14619.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Bkcjnh2fV_5AN4hdkJftKs9QcUQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Bkcjnh2fV_5AN4hdkJftKs9QcUQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Bkcjnh2fV_5AN4hdkJftKs9QcUQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Bkcjnh2fV_5AN4hdkJftKs9QcUQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/-20JyXFAclU" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/25/customize-dataform-with-data-annotation-display-attributes.aspx</guid>
            <pubDate>Mon, 25 May 2009 16:19:19 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14619.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/25/customize-dataform-with-data-annotation-display-attributes.aspx#feedback</comments>
            <slash:comments>18</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14619.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/25/customize-dataform-with-data-annotation-display-attributes.aspx</feedburner:origLink></item>
        <item>
            <title>Clearing some air in Silverlight, Blend and Visual Studio Beta land</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/8nH6yOjOGvs/silverlight-blend-visual-studio-beta-confusion.aspx</link>
            <description>&lt;p&gt;In &lt;a href="http://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx"&gt;a previous post&lt;/a&gt; I wanted to call attention to the multi-targeting and design surface improvements for &lt;a href="http://silverlight.net/"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;developers with &lt;strong&gt;Visual Studio 2010 Beta 1&lt;/strong&gt;.  There has been some comments on that post and a few emails and &lt;a href="http://twitter.com/timheuer"&gt;Twitter&lt;/a&gt; replies as well with some great follow-up questions.  I thought I’d post a sort of &lt;em&gt;what works with what&lt;/em&gt; information to help you navigate Betaville as a Silverlight developer.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;NOTE: We’re talking about &lt;strong&gt;&lt;em&gt;Beta&lt;/em&gt;&lt;/strong&gt; technologies here.  That means things may not work, that you shouldn’t count on them for production releases at this time, etc.  In the ‘release early, release often’ mantra of things, I know Microsoft may not follow the ‘often’ side of things, but we sure do release early a lot of things.  It is important to have a perspective that this is for mutual benefit, but also remember that it is beta and things may just not work in harmony.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Being an early adopter usually means you are on the edge.  Standing on that edge of technology comes pain with betas at times.  Add to that &lt;em&gt;multiple&lt;/em&gt; beta technologies and you may feel like you are pulling your hair out constantly.  Me too.  Here’s the spectrum of things for a Silverlight developer from a current (as of May 2009) perspective.&lt;/p&gt;  &lt;h2&gt;&lt;a href="sl2"&gt;&lt;/a&gt;Silverlight 2 Development&lt;/h2&gt;  &lt;p&gt;Silverlight 2 has been released for a while now (since Oct 2008) and is production-ready for you to use.  There is full tool support in both Visual Studio 2008 SP1 (just &lt;a href="http://silverlight.net/getstarted"&gt;install the Silverlight tools for VS2008&lt;/a&gt;) and Blend 2 SP1.  Both VS2008 and Blend 2 can share project files in harmony and edit back and forth.&lt;/p&gt;  &lt;p&gt;The recent Visual Studio 2010 Beta 1 (referred to in this post VS10 so I don’t have to keep typing out beta) will also support Silverlight 2 development.  The Silverlight tools will &lt;u&gt;not&lt;/u&gt; install on top of VS10 and you’ll get a warning if you try.  If all you want is Silverlight 2 development in VS10 right now, install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8D933343-038F-499C-986C-C3C7E87A60B3&amp;amp;displaylang=en"&gt;Silverlight 2 SDK&lt;/a&gt; and the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=119972"&gt;Silverlight 2 developer runtime&lt;/a&gt;.  That’s it…you can then develop Silverlight 2 applications.&lt;/p&gt;  &lt;h2&gt;&lt;a href="sl3"&gt;&lt;/a&gt;Silverlight 3 Development&lt;/h2&gt;  &lt;p&gt;Silverlight 3 is currently in beta as are the associated tools (Silverlight 3 tools for VS2008 and Blend 3).  A lot of people have been working fine with these in beta and everything works well.  VS2008 can author SL3 projects and Blend 3 can open them no problem.  Both of these are still in beta right now, but it is important to know that Silverlight 3 release tools will be VS2008 and Blend 3.&lt;/p&gt;  &lt;p&gt;For VS10 and Silverlight 3, the situation with the tools is similar to Silverlight 2.  The Silverlight tools installer will still not run on VS10.  If you want to add Silverlight 3 development to your VS10 environment, you can follow my &lt;a href="http://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx"&gt;previous post instructions&lt;/a&gt;, which basically is to install the SL3 SDK and SL3 developer runtime.  At this time, VS10 will only target Silverlight 3 beta and will also not run the .NET RIA Services bits that you might be using.&lt;/p&gt;  &lt;h2&gt;&lt;a href="blend"&gt;&lt;/a&gt;What about Blend and Visual Studio 2010 Beta 1?&lt;/h2&gt;  &lt;p&gt;With VS10 there are some caveats.  With VS10 you can create multi-target solutions.  You can see this when you create a new project in VS10:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Visual Studio 10 multi-targeting" alt="Visual Studio 10 multi-targeting" src="http://s3.amazonaws.com:80/storage.timheuer.com/vs10-multitargetfx.png" /&gt;&lt;/p&gt;  &lt;p&gt;Now for the caveat.  If you select &lt;em&gt;.NET Framework 4&lt;/em&gt; in VS10, and then open your project in Blend 2 you will see this warning:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Blend warning on opening VS10 solution file" alt="Blend warning on opening VS10 solution file" src="http://s3.amazonaws.com:80/storage.timheuer.com/blendvs10-warn1.png" /&gt;&lt;/p&gt;  &lt;p&gt;In my experience under simple circumstances you can still open it and work with files.  Here’s where beta life starts getting confusing.  If your Silverlight application is just the application, you will see the above warnings and should be able to edit (regardless of if your target in the new project window was .NET Framework 4 or 3.5).  Now, &lt;strong&gt;if you also added a web project to your solution&lt;/strong&gt; and open it in &lt;a href="http://www.microsoft.com/expression/try-it/blendpreview.aspx"&gt;Blend 3 Preview&lt;/a&gt;, you will see this:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Blend warning on opening up .NET 4 project" alt="Blend warning on opening up .NET 4 project" src="http://s3.amazonaws.com:80/storage.timheuer.com/blendvs10-warn2.png" /&gt;&lt;/p&gt;  &lt;p&gt;Indicating that the web project type is not supported at this time in Blend 3.  The solution will open in blend (if you say yes) but your web project will have a “?” next to it and read (unsupported project).  You’ll still be able to edit the Silverlight application, but not do anything with the web project.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;What about WPF projects then?!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;If your target selection was &lt;em&gt;.NET Framework 3.5&lt;/em&gt; then you’ll still get the first warning, but should be able to work with the project.  If your target selection was &lt;em&gt;.NET Framework 4&lt;/em&gt;, then you’ll get the unsupported warning and won’t be able to work with this.  Oddly enough, Blend 2 will open the .NET 4 project, weird.  In either route, when you compile in blend you’ll see this note:&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; 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: #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="lnum1"&gt;   1:&lt;/span&gt; Project file contains ToolsVersion="4.0", which is not supported by this version of MSBuild.  &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; Treating the project as if it had ToolsVersion="3.5".&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;That should tell you something if you think Blend 2 is going to build your .NET 4 project just because it will open :-).&lt;/p&gt;

&lt;h2&gt;&lt;a href="future"&gt;&lt;/a&gt;Why is it this way and when will it all work?&lt;/h2&gt;

&lt;p&gt;Ah, the magic crystal ball.  If we could get all the teams on the same ship cycle it would be easy, but it just isn’t that way right now.  Basically VS10 went into beta 1 lockdown before certain things for Silverlight and Blend tools were able to hit certain milestones.  So given that, here’s where we stand.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;NOTE: Expression Encoder outputs either Silverlight 1.0 or Silverlight 2 templates and the output are completed projects.  If you open up the source for an Encoder project it will prompt the VS10 upgrade wizard, or in VS2008 just open for you to edit (assuming you have the Silverlight tools installed)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Blend 3 and VS10 projects to work in harmony, an update to the Expression Blend 3 preview that supports Visual Studio 2010 and .NET Framework 4 projects is expected to be available in Q3 of 2009.&lt;/p&gt;

&lt;p&gt;For VS10 and Silverlight 3 RTW/.NET RIA Services working, we’re looking at an update to VS10 would be needed and we haven’t determined a timeframe on that just yet.&lt;/p&gt;

&lt;h2&gt;What should I do?&lt;/h2&gt;

&lt;p&gt;Well, as a Silverlight developer, I’ve &lt;a href="http://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx"&gt;given my opinion&lt;/a&gt; already.  Until that update for VS10 happens to enable Silverlight 3 RTW and .NET RIA Services development, I think the best option will still be the released tools for the environment (VS2008, Blend 3).  Consider VS10 something to look at, but not ready just yet for full Silverlight 3 development.&lt;/p&gt;

&lt;p&gt;For other project types like ASP.NET, WPF, WinForms, etc. you’ll still be able to multi-target in VS10 and most of these are released right now so you should be in a decent environment.  WPF caveats above still apply as most WPF developers also rely on Blend as a tool for their projects.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;I know this is totally confusing and it sucks.  After re-reading this, my own head spins.  It is easy for us to say it is the pain of an early adopter…and it is.  By sitting on the edge with beta technologies we take risks and have to determine our own rewards.  Knowing this information should help you be informed about your projects.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Silverlight 2 + VS2008 + Blend 2 development: released, available, working &lt;/li&gt;

  &lt;li&gt;Silverlight 2 + VS10 + Blend 2 development: available, working (VS10 in beta) &lt;/li&gt;

  &lt;li&gt;Silverlight 3 + VS2008 + Blend 3 development: available, working (Silverlight 3 and Blend 3 in beta) &lt;/li&gt;

  &lt;li&gt;Silverlight 3 + VS10 + Blend 3 development: available, working with caveats (Silverlight 3 beta only, no RIA services) &lt;/li&gt;

  &lt;li&gt;WPF + VS10 + Blend 3 development: available, caveat of Blend 3 will not open .NET 4 projects from VS10 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, virtual machines can be your friend!  For some more general Visual Studio 2010 and .NET 4 training information check out the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;amp;displaylang=en"&gt;training kit here&lt;/a&gt;.  For information regarding ASP.NET MVC and VS10, check out &lt;a href="http://haacked.com/archive/2009/05/18/aspnetmvc-vs2010-beta1.aspx"&gt;Phil’s post&lt;/a&gt;.  Hope this helps!&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:0767317B-992E-4b12-91E0-4F059A8CECA8:8358e713-c7ef-4f6e-ad1f-0b590ea1ed60" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/blend/default.aspx" rel="tag"&gt;blend&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/expression+blend/default.aspx" rel="tag"&gt;expression blend&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/visual+studio/default.aspx" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/vs2010/default.aspx" rel="tag"&gt;vs2010&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/wpf/default.aspx" rel="tag"&gt;wpf&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14618.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2zQuCmKdewzzsbWcO1GmcUo5UyQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2zQuCmKdewzzsbWcO1GmcUo5UyQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2zQuCmKdewzzsbWcO1GmcUo5UyQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2zQuCmKdewzzsbWcO1GmcUo5UyQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/8nH6yOjOGvs" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/24/silverlight-blend-visual-studio-beta-confusion.aspx</guid>
            <pubDate>Sun, 24 May 2009 20:36:59 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14618.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/24/silverlight-blend-visual-studio-beta-confusion.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14618.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/24/silverlight-blend-visual-studio-beta-confusion.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight and Visual Studio 2010 Beta 1</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/QIhZrzB0WSo/silverlight-and-visual-studio-2010-beta.aspx</link>
            <description>&lt;p&gt;Well today was the public release of &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;&lt;strong&gt;Visual Studio 2010 Beta 1&lt;/strong&gt;&lt;/a&gt;.  It is the first time developers will have the chance to take it for a spin and kick the tires.  I wanted to share some information specific for &lt;a href="http://silverlight.net/"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt; developers with regard to Visual Studio 2010 Beta 1.&lt;/p&gt;  &lt;p&gt;Visual Studio 2010 is the first IDE that will support two key features for Silverlight developers: &lt;strong&gt;multi-targeted Silverlight development&lt;/strong&gt; and &lt;strong&gt;editable design surface for Silverlight&lt;/strong&gt;.  The second point also comes with things you might expect (like data binding wizards and dialogs as well – I’m lumping all of that in to ‘editable design surface’).  To get started there are a few things you should know.&lt;/p&gt;  &lt;p&gt;First, if you are installing from a “clean” environment (perhaps a virtual machine, etc.) &lt;em&gt;and want the multi-target support&lt;/em&gt;, here’s what you’ll do:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Install Visual Studio 2010 Beta 1&lt;/li&gt;    &lt;li&gt;Install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8D933343-038F-499C-986C-C3C7E87A60B3&amp;amp;displaylang=en"&gt;Silverlight 2 SDK&lt;/a&gt; (if you attempt to run the Silverlight 2 tools installer it will fail with an error message…just install the SDK).&lt;/li&gt;    &lt;li&gt;Install &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143435"&gt;Silverlight 3 Beta SDK&lt;/a&gt; (again, don’t attempt the tools installer as it will fail)&lt;/li&gt;    &lt;li&gt;Install &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143433"&gt;Silverlight 3 Beta Developer Runtime&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Once you have done this, you now have a Silverlight 2 and 3 development machine for Visual Studio 2010 Beta 1.  Congratulations!&lt;/p&gt;  &lt;h2&gt;Hey, where’s my multi-targeting?!&lt;/h2&gt;  &lt;p&gt;Be patient.  When you create a new project you’ll see just the standard Silverlight application templates.  Select that first and &lt;em&gt;then&lt;/em&gt; you will see the multi-target option in the next dialog:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Visual Studio 2010 Silverlight multi-targeting" alt="Visual Studio 2010 Silverlight multi-targeting" src="http://s3.amazonaws.com:80/storage.timheuer.com/vs2010-sl-1.png" /&gt;&lt;/p&gt;  &lt;p&gt;Once you select this option you will be starting development using that runtime version.  So remember, it is &lt;em&gt;after&lt;/em&gt; you select a Silverlight project type.  If you want to change the target version runtime &lt;em&gt;after&lt;/em&gt; you’ve created a project, just right-click on the Silverlight project, choose the properties and you’ll see &lt;em&gt;Target Silverlight Version&lt;/em&gt; and can change it there.&lt;/p&gt;  &lt;h2&gt;What about the editable design surface?&lt;/h2&gt;  &lt;p&gt;Once you have a Silverlight project ready, you can use the design surface for editing and dragging/dropping UI elements, arranging layout, etc.:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://s3.amazonaws.com:80/storage.timheuer.com/vs2010-sl-3.png" /&gt;&lt;/p&gt;  &lt;p /&gt;  &lt;p&gt;You can also now select items on the design surface and manipulate binding or other properties in the ‘normal’ Visual Studio way (property panes, dialogs).&lt;/p&gt;  &lt;h2&gt;Hey, what happened to my Silverlight Templates…and what about .NET RIA Services?!&lt;/h2&gt;  &lt;p&gt;For right now in Visual Studio 2010 Beta 1, the &lt;em&gt;Silverlight Navigation Application&lt;/em&gt; template is not available as a part of the SDK installer (it’s actually a part of the tools installer…which you can’t run for VS2010 Beta 1).  If you want that template, just export one from Visual Studio 2008 and import it into this environment.  It will then show up under the &lt;em&gt;My Templates&lt;/em&gt; section.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;.NET RIA Services&lt;/strong&gt; also will not install for VS2010 Beta 1 right now.  So if you want to play around with those bits, stick to VS2008 SP1.&lt;/p&gt;  &lt;p&gt;Both of these are known and will be resolved in the future.  Hopefully you understand that the products are in varying beta stages (VS2010, Silverlight 3 and RIA Services) and are not in sync right now.  Kind of a pain, but it’s the sting of early adoption I suppose.&lt;/p&gt;  &lt;h2&gt;My Recommendation&lt;/h2&gt;  &lt;p&gt;So what should you do?  Well I &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt; think you should try Visual Studio 2010 and play around with it.  If you need RIA Services development, then stick with Visual Studio 2008.  If you have the ability to run a second machine or a virtual machine, I recommend putting Visual Studio 2010 in that environment.  For Silverlight 3 we will be targeting VS2008 SP1 for release.  Obviously the team is working on supporting VS2010, but for beta 1, we just couldn’t get it in time.  So I’d personally recommend sticking with VS2008 as your primary dev environment for all Silverlight 3 goodness…and run VS2010 in a separate space to play around with.  &lt;/p&gt;  &lt;p&gt;Hope this helps!&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:0767317B-992E-4b12-91E0-4F059A8CECA8:e6f19475-000c-4a31-b639-cf2e38356cf9" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/visual+studio/default.aspx" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/vs2010/default.aspx" rel="tag"&gt;vs2010&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/multi-target/default.aspx" rel="tag"&gt;multi-target&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14617.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kTZmLQLXS-xjHeEoVR8P0V8tk98/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kTZmLQLXS-xjHeEoVR8P0V8tk98/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kTZmLQLXS-xjHeEoVR8P0V8tk98/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kTZmLQLXS-xjHeEoVR8P0V8tk98/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/QIhZrzB0WSo" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx</guid>
            <pubDate>Thu, 21 May 2009 00:23:34 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14617.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx#feedback</comments>
            <slash:comments>32</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14617.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/20/silverlight-and-visual-studio-2010-beta.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight powers Netflix in Media Center</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/fVy-H5ZLIzo/silverlight-powers-netflix-windows-media-center.aspx</link>
            <description>&lt;p&gt;I’ve not hidden my love affair for Netflix both as a &lt;a href="http://timheuer.com/blog/archive/2008/12/15/technology-gift-picks-for-holidays.aspx"&gt;consumer&lt;/a&gt; and as a &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; developer and how &lt;a href="http://timheuer.com/blog/archive/2008/12/02/silverlight-install-experience-best-practices-netflix.aspx"&gt;they’ve implemented the technology&lt;/a&gt;.  Long before the instant watch came to the desktop and the XBOX, there were a lot of folks wanting the Netflix experience on their &lt;strong&gt;Windows Media Center &lt;/strong&gt;boxes and extenders.  One such person was&lt;strong&gt; &lt;a href="http://www.anpark.com"&gt;Anthony Park&lt;/a&gt;&lt;/strong&gt; (who is now with Netflix as of this writing), who picked up a the &lt;a href="http://timheuer.com/blog/archive/2008/02/27/netflix-plugin-for-media-center-users.aspx"&gt;&lt;strong&gt;MyNetflix&lt;/strong&gt; media center plugin a while back&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Well, today &lt;a href="http://blog.netflix.com/2009/05/netflix-on-windows-media-center.html"&gt;Netflix officially has a Media Center solution&lt;/a&gt; for their customers.  I just got done firing my media center machine up and started the process of getting Netflix on the box.  It showed up under the Program Library and I followed the minimal instructions to get it working…restarted Media Center (not the machine) and boom, done.  I love how the branded experience of their application matches their online app as well as their overall brand identity very well:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Netflix Media Center Login" alt="Netflix Media Center Login" src="http://s3.amazonaws.com:80/storage.timheuer.com/netflix1.PNG" /&gt;&lt;/p&gt;  &lt;p&gt;After logging in, I’m able to view my Instant Queue, DVD Queue, genre’s and new releases.  &lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Netflix Media Center DVD Queue" alt="Netflix Media Center DVD Queue" src="http://s3.amazonaws.com:80/storage.timheuer.com/netflix2.PNG" /&gt;&lt;/p&gt;  &lt;p&gt;Once I find a movie from one of the categories not in my queues, I can even add it at that point!  Nice!&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Netflix Media Center Add to Queue" alt="Netflix Media Center Add to Queue" src="http://s3.amazonaws.com:80/storage.timheuer.com/netflix3.PNG" /&gt;&lt;/p&gt;  &lt;p&gt;Once you choose to watch a movie through the experience, you’ll notice something familiar – yep, that’s &lt;strong&gt;Silverlight powering the playback of the Netflix Instant Watch feature &lt;em&gt;in Media Center&lt;/em&gt;&lt;/strong&gt;.  Nice.  This is a great continuum story for the platform and for Netflix to be able to re-use their platform and their custom implementations in various areas: online (browser), XBOX, and Media Center.  Very cool to see this.  I still think the coolest feature of Instant Watch is how all the experiences are synchronized…I can pause anywhere and pick up another medium (XBOX) and start where I left off – awesome.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;NOTE: It looks like at this time it is Media Center for Vista only and Windows 7 RC machines are not enabled.  Additionally, I am guessing that the same licensing rules apply for the media content, so probably only US customers.  &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Kudos to the Netflix team for enabling this feature and extending their reach to where (and how) people want to view their media.  If you want to figure out how to enable it on your media center machine, you can watch this video (just try to disregard the creepy mitten-wearing hands…odd): &lt;a href="http://www.microsoft.com/video/en/us/details/bc2e36bc-dcb2-48bc-862f-cdb31cee413c?vp_evt=eref&amp;amp;vp_video=Getting+Netflix+in+Windows+Media+Center"&gt;Get Netflix on your Media Center&lt;/a&gt;.&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:0767317B-992E-4b12-91E0-4F059A8CECA8:5dcc7055-172d-46a8-9a3b-c1ef28424c72" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/netflix/default.aspx" rel="tag"&gt;netflix&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/instant+watch/default.aspx" rel="tag"&gt;instant watch&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/media/default.aspx" rel="tag"&gt;media&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/media+center/default.aspx" rel="tag"&gt;media center&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/mynetflix/default.aspx" rel="tag"&gt;mynetflix&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14616.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bjCoSxZG-xHXQV6T2wWmLU4e5hE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bjCoSxZG-xHXQV6T2wWmLU4e5hE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bjCoSxZG-xHXQV6T2wWmLU4e5hE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bjCoSxZG-xHXQV6T2wWmLU4e5hE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/fVy-H5ZLIzo" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/20/silverlight-powers-netflix-windows-media-center.aspx</guid>
            <pubDate>Wed, 20 May 2009 21:12:58 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14616.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/20/silverlight-powers-netflix-windows-media-center.aspx#feedback</comments>
            <slash:comments>27</slash:comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14616.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/20/silverlight-powers-netflix-windows-media-center.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight Visual Studio helper files</title>
            <link>http://feeds.timheuer.com/~r/timheuer-silverlight/~3/r5AmzfrasBc/14615.aspx</link>
            <description>&lt;p&gt;For things that aren’t a part of the &lt;strong&gt;Visual Studio&lt;/strong&gt; tools (yet) and things that help me move faster in my development, I like to take advantage of the power of Visual Studio’s templates and snippets capabilities.  I’ve created a few and modified a few of others that I use regularly.  I’ve shown them in a few presentations and thought I’d package them up in a single bundle for your convenience if you choose to use them.  I was going to package &lt;a href="http://blog.nerdplusart.com/archives/silverlight-code-snippets"&gt;Robby’s snippets&lt;/a&gt; up as well, but didn’t think he’d appreciate that…you should get his &lt;a href="http://silverlight.net/"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt; snippets as well (and he’s packaged them in a VS community installer also).&lt;/p&gt;  &lt;p&gt;Here’s the ones that I have in my package right now:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;FloatableWindow &lt;/strong&gt;item template – this is from &lt;a href="http://timheuer.com/blog/archive/2009/05/10/silverlight-childwindow-non-modal-refactor.aspx"&gt;my adaptation of ChildWindow&lt;/a&gt;.  You’ll of course need the binary for this to make any sense as well.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Silverlight Pixel Shader &lt;/strong&gt;item template – adapted from the WPF template, with making the minor adjustments needed by default to make it work in one shot.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ResourceDictionary &lt;/strong&gt;item template – using Nick Kramer’s base for adding stand alone ResourceDictionary files to your project (to take advantage of the &lt;a href="http://timheuer.com/blog/archive/2009/03/18/silverlight-3-whats-new-a-guide.aspx#merged"&gt;merged resource feature&lt;/a&gt; in &lt;strong&gt;Silverlight 3&lt;/strong&gt;).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Cross-domain policy file &lt;/strong&gt;item template – rapidly add one just like you would web.config.  You still have to set the desired security – I chose not to imply one for you :-)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Cross-domain policy code snippet &lt;/strong&gt;– this actually goes along with the policy file (or replacement) which is a VS code snippet template if you want to just use that instead&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’m sure I’ll add more over time and package it in this update but for now this is what I could pull together.  Sorry the package isn’t signed as a verified publisher…if I could figure out how to do that I would have tried :-).  You can download them here: &lt;a href="http://s3.amazonaws.com:80/storage.timheuer.com/SilverlightVSHelpers_1.vsi"&gt;SilverlightVSHelpers_1.vsi&lt;/a&gt;.  Oh and yes, they are for Visual Basic and C#.&lt;/p&gt;  &lt;p&gt;Hope this helps!&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:0767317B-992E-4b12-91E0-4F059A8CECA8:44f21021-3385-4b44-a960-84e97e53b5d7" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/code+snippet/default.aspx" rel="tag"&gt;code snippet&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/snippet/default.aspx" rel="tag"&gt;snippet&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/pixel+shader/default.aspx" rel="tag"&gt;pixel shader&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/resourcedictionary/default.aspx" rel="tag"&gt;resourcedictionary&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/cross+domain/default.aspx" rel="tag"&gt;cross domain&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/visual+studio/default.aspx" rel="tag"&gt;visual studio&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="https://timheuer.com/blog/aggbug/14615.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2cQ5_LIpWXu0eXGrtidrR7dzgWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2cQ5_LIpWXu0eXGrtidrR7dzgWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2cQ5_LIpWXu0eXGrtidrR7dzgWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2cQ5_LIpWXu0eXGrtidrR7dzgWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer-silverlight/~4/r5AmzfrasBc" height="1" width="1"/&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid isPermaLink="false">https://timheuer.com/blog/archive/2009/05/19/14615.aspx</guid>
            <pubDate>Wed, 20 May 2009 05:43:04 GMT</pubDate>
            <wfw:comment>https://timheuer.com/blog/comments/14615.aspx</wfw:comment>
            <comments>https://timheuer.com/blog/archive/2009/05/19/14615.aspx#feedback</comments>
            <wfw:commentRss>https://timheuer.com/blog/comments/commentRss/14615.aspx</wfw:commentRss>
        <feedburner:origLink>https://timheuer.com/blog/archive/2009/05/19/14615.aspx</feedburner:origLink></item>
    </channel>
</rss>
