<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Silverlight' and 'Silverlight'</title><link>http://msmvps.com/search/SearchResults.aspx?q=&amp;tag=Silverlight%2cSilverlight&amp;orTags=0&amp;o=DateDescending</link><description>Search results matching tags 'Silverlight' and 'Silverlight'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Deep Zoom Composer in production</title><link>http://msmvps.com/blogs/outcoldman/archive/2009/10/25/deep-zoom-composer-in-production.aspx</link><pubDate>Sun, 25 Oct 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1734870</guid><dc:creator>Outcoldman</dc:creator><description>&lt;p&gt;Recently Konstantin Kishinsky (Microsoft Russia) presented in his blog &lt;a href="http://blogs.msdn.com/kichinsky/archive/2009/09/03/Deep-Zoom-Composer-1.0-overview.aspx"&gt;Deep Zoom Composer 1.0&lt;/a&gt; (in russian), which everyone can download from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=457b17b7-52bf-4bda-87a3-fa8a4673f8bf&amp;amp;displaylang=en"&gt;Microsoft site&lt;/a&gt;. What is it and how it works - you can find in &lt;a href="http://blogs.msdn.com/expression/archive/2008/03/05/deep-zoom-composer-user-guide.aspx"&gt;user guide&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;And now i want to show you how we can use it in production.&lt;/p&gt;  &lt;p&gt;First of all pay your attention on export: Deep Zoom Composer can export project to Silverlight Deep Zoom and to &lt;a href="http://livelabs.com/seadragon-ajax/"&gt;Seadragon Ajax&lt;/a&gt;. Using Silverlight the main question is: on how many PCs Silverlight is installed? In comparison with Flash a very small percentage (statistic from &lt;a href="http://www.riastats.com/"&gt;http://www.riastats.com/&lt;/a&gt;):&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="0006c8xf" border="0" alt="0006c8xf" src="https://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/outcoldman.metablogapi/2100.0006c8xf_5F00_14CC6389.png" width="500" height="232" /&gt; &lt;/p&gt;  &lt;p&gt;So when it isn’t possible to use Silverlight it’s better to use the same functionality with JavaScript + Ajax (most users are afraid of installing new software). And why can’t we just use only JavaScript. It’s simple: Deep Zoom by Silverlight looks better and is more interactive then Seadragon. In comparison with Flash, Silverlight scales bitmaps better. You may export one project to Silverlight and Seadragon Ajax and compare them. By the way Deep Zoom Composer lets you to do it simple. &lt;/p&gt;  &lt;p&gt;Lets take a look at it. After creating and preparing project in Deep Zoom Composer you’ll see the third tab “Export”. First – make export to Silverlight and then to Seadragon Ajax to the same folder.&lt;/p&gt;  &lt;p&gt;Then you’ll see some files and folders in export folder. Pay your attention to file &lt;em&gt;GeneratedImages/scene.xml&lt;/em&gt;: this file contains the main style of Silverlight application. You can correct it if needed. For example, you may change styles of tooltips and toolbar.&lt;/p&gt;  &lt;p&gt;Next step: open to edit file &lt;em&gt;test.html&lt;/em&gt;. When you open it you’ll see the Silverlight object declaration. There are parameters and presentation: how it might look if Silverlight isn’t installed on users PC. By default a picture with the request of installing the latest version of Silverlight. We can change presentation: place div container from file &lt;em&gt;seadragonajax.html&lt;/em&gt;, you’ll see:&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:&amp;#39;Courier New&amp;#39;, 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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; data=&lt;span style="color:#006080;"&gt;&amp;quot;data:application/x-silverlight-2,&amp;quot;&lt;/span&gt; type=&lt;span style="color:#006080;"&gt;&amp;quot;application/x-silverlight-2&amp;quot;&lt;/span&gt;  &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;            width=&lt;span style="color:#006080;"&gt;&amp;quot;800&amp;quot;&lt;/span&gt; height=&lt;span style="color:#006080;"&gt;&amp;quot;500&amp;quot;&lt;/span&gt;&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;minRuntimeVersion&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;3.0.40307.0&amp;quot;&lt;/span&gt; /&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;autoUpgrade&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; /&amp;gt; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;source&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;Default.xap&amp;quot;&lt;/span&gt;/&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;onerror&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;onSilverlightError&amp;quot;&lt;/span&gt; /&amp;gt; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;background&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;white&amp;quot;&lt;/span&gt; /&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;param name=&lt;span style="color:#006080;"&gt;&amp;quot;initParams&amp;quot;&lt;/span&gt; value=&lt;span style="color:#006080;"&gt;&amp;quot;adFile=GeneratedImages&amp;quot;&lt;/span&gt; /&amp;gt; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;div id=&lt;span style="color:#006080;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&amp;gt; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &amp;lt;/div&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;/&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;From &lt;em&gt;seadragonajax.html&lt;/em&gt; we also get the script, which initializing Seadragon Ajax on load. A little correction: place check, whether div container is presented on the page:&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:&amp;#39;Courier New&amp;#39;, 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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script src=&lt;span style="color:#006080;"&gt;&amp;quot;http://seadragon.com/ajax/0.8/seadragon-min.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    Seadragon.Config.imagePath = &lt;span style="color:#006080;"&gt;&amp;quot;img/&amp;quot;&lt;/span&gt;; &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; start() { &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; container = document.getElementById(&lt;span style="color:#006080;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;); &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (container != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) { &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; viewer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Seadragon.Viewer(&lt;span style="color:#006080;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;); &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;            viewer.openDzi(&lt;span style="color:#006080;"&gt;&amp;quot;GeneratedImages/dzc_output.xml&amp;quot;&lt;/span&gt;); &lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        } &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    } &lt;/pre&gt;


    &lt;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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Next we can place dynamic script load for Seadragon Ajax. It’s easy. First of all check whether element container exists on the page, and if true we load the script and initialize Seadragon object:&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:&amp;#39;Courier New&amp;#39;, 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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; start() {&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; container = document.getElementById(&lt;span style="color:#006080;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (container != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) {&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; script = document.getElementById(&lt;span style="color:#006080;"&gt;&amp;#39;seadragon_javascript&amp;#39;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        script.src = &lt;span style="color:#006080;"&gt;&amp;#39;http://seadragon.com/ajax/0.8/seadragon-min.js&amp;#39;&lt;/span&gt;;&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        script.onreadystatechange = &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;() {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        Seadragon.Config.imagePath = &lt;span style="color:#006080;"&gt;&amp;quot;img/&amp;quot;&lt;/span&gt;;&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; viewer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Seadragon.Viewer(&lt;span style="color:#006080;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        viewer.openDzi(&lt;span style="color:#006080;"&gt;&amp;quot;GeneratedImages/dzc_output.xml&amp;quot;&lt;/span&gt;);&lt;/pre&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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;        }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;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:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And of course good practice is to show message “You may install Silverlight to see more interactive gallery.” with hyperlink to Silverlight installer.&lt;/p&gt;

&lt;p&gt;By the end you can see result like this &lt;a href="http://4g-soft.com/etpGallery.aspx"&gt;http://4g-soft.com/etpGallery.aspx&lt;/a&gt;&lt;/p&gt;
&lt;iframe style="padding-bottom:0px;background-color:#fcfcfc;padding-left:0px;width:98px;padding-right:0px;height:115px;padding-top:0px;" title="Preview" src="http://cid-ed105c18939cfcb7.skydrive.live.com/embedicon.aspx/LiveJournal/DZCSample.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmsmvps.com%2fblogs%2foutcoldman%2farchive%2f2009%2f10%2f25%2fdeep-zoom-composer-in-production.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmsmvps.com%2fblogs%2foutcoldman%2farchive%2f2009%2f10%2f25%2fdeep-zoom-composer-in-production.aspx" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Deep-Zoom-Composer-in-production-Denis-Gladkikh" rev="vote-for"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fmsmvps.com%2Fblogs%2Foutcoldman%2Farchive%2F2009%2F10%2F25%2Fdeep-zoom-composer-in-production.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Nederlandse CodeCamp 2009</title><link>http://msmvps.com/blogs/theproblemsolver/archive/2009/10/19/nederlandse-codecamp-2009.aspx</link><pubDate>Mon, 19 Oct 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1732965</guid><dc:creator>Maurice</dc:creator><description>&lt;p&gt;Op 21 november 2009 organiseren de &lt;a href="http://www.sdn.nl"&gt;SDN&lt;/a&gt;, &lt;a href="http://www.dotned.nl"&gt;Stichting dotNed&lt;/a&gt; en &lt;a href="http://www.VBcentral.nl"&gt;VBcentral&lt;/a&gt; samen het derde Nederlandse &lt;a href="http://www.codecamp.nl"&gt;Code Camp&lt;/a&gt;. Dit is een dag lang met code, code sharing, freaking en gezellig samenzijn. Een evenement door ontwikkelaars, voor ontwikkelaars. De regie ligt voor een belangrijk deel bij de deelnemers! Het aantal plaatsen voor deelnemers is wel beperkt tot maximaal 150. Wacht dus niet te lang met beslissen want voor je het weet is er geen plaats meer. Vergeet bij je aanmelding niet op te geven welke onderwerpen je interesse hebben. Bovendien nodigen we iedereen graag uit om zelf een sessie in te vullen.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Op de website, &lt;a href="http://www.codecamp.nl"&gt;www.codecamp.nl&lt;/a&gt;, vind je meer informatie en kan je je aanmelden.&lt;/p&gt;</description></item><item><title>Silverlight 4 Previewed in Amsterdam</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/09/18/silverlight-4-previewed-in-amsterdam.aspx</link><pubDate>Fri, 18 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1724804</guid><dc:creator>NunoGodinho</dc:creator><description>&lt;p&gt;&amp;#160;&amp;#160; Silverlight 3 just got out and already we are hearing about the new version, and this is one of the huge advantages that Silverlight has (IMHO of course), because we know that they are always trying to get more into there without sacrificing the size and the cross-browser and platform of the technology.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; One of the first sneaks about the new Silverlight 4 was in Amsterdam as you can &lt;a href="http://www.theinquirer.net/inquirer/news/1532879/microsoft-previews-silverlight-amsterdam" target="_blank"&gt;read more here&lt;/a&gt;, in this &lt;a href="http://www.theinquirer.net" target="_blank"&gt;The Inquirer&lt;/a&gt; article.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“(…)&lt;em&gt;In an early preview of Silverlight 4 media-specific features, the Vole showed off what its next generation of movie experiences could do even when saddled with its offline PlayReady DRM. (…)&lt;/em&gt;”&lt;/p&gt;    &lt;p&gt;“(…) &lt;em&gt;A spokes Vole said that Silverlight 4 will enable movie studios to offer network-delivered updates, special offers and live events, and flog more than just one or two movies to punters (…)&lt;/em&gt;”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I say, hum interesting, I would love to know more about the new features so I’ll keep blogging when that happens.&lt;/p&gt;</description></item><item><title>Placing Thumbnail Images in the Database</title><link>http://msmvps.com/blogs/burrows/archive/2009/09/13/placing-thumbnail-images-in-the-database.aspx</link><pubDate>Sun, 13 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1723054</guid><dc:creator>Burrows</dc:creator><description>&lt;p&gt;In my entry titled &lt;a target="_blank" href="http://msmvps.com/blogs/burrows/archive/2009/09/13/net-ria-data-services-amp-images.aspx"&gt;.NET RIA Data Services &amp;amp; Images&lt;/a&gt;, it was pointed out that the July Preview of .NET RIA Data Services did not handle database images stored in the database very well (it produced large files returned to the client). It was also pointed out that this situation was being addressed and would be resolved.&lt;/p&gt;
&lt;p&gt;Placing actual images into the database is generally not a good idea. Instead, storing URI&amp;rsquo;s to the actual file in the database is generally a better idea. Using this approach, the images can be easily changed without impacting the actual database. In addition, one can avoid downloading the larger image bits if the image is not used by the application. [&lt;em&gt;Note that Silverlight components, like the DataGrid, do not work with public anonymous types, so generally the entire entity, including any images, are downloaded to the client.&lt;/em&gt;]&lt;/p&gt;
&lt;p&gt;So you might ask &amp;ldquo;Why did I include the thumbnail images in the database?&amp;rdquo; The answer is simple; I didn&amp;rsquo;t. I was using the &lt;a target="_blank" href="http://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407"&gt;AdventureWorks Lite database&lt;/a&gt; provided by Microsoft. In the Product table, there are two fields defined that deal with the product images:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/burrows.metablogapi/0383.image_5F00_16B47846.png"&gt;&lt;img height="81" width="443" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/burrows.metablogapi/1856.image_5F00_thumb_5F00_60CF832B.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;While this design may have been OK for relational database queries, where a subset of fields could be retrieved, but it presents a problem for other technologies where the only practical choice is to retrieve all the fields. &lt;/p&gt;
&lt;p&gt;Perhaps the best solution would be to work within Silverlight to make it possible to bind a DataGrid (or other components) to a public anonymous type (such as a subset of the properties of the Product entity).&lt;/p&gt;
&lt;p&gt;bill&lt;/p&gt;</description></item><item><title>.NET RIA Data Services &amp;amp; Images</title><link>http://msmvps.com/blogs/burrows/archive/2009/09/13/net-ria-data-services-amp-images.aspx</link><pubDate>Sun, 13 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1723052</guid><dc:creator>Burrows</dc:creator><description>&lt;p&gt;In my tutorial &lt;a target="_blank" href="http://www.myvbprof.com/2007_Version/DataStrategies.aspx"&gt;Silverlight LOB Data Strategies&lt;/a&gt;, I provided a comparison of the three different data strategies I compared:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/burrows.metablogapi/1778.image_5F00_7957705E.png"&gt;&lt;img height="357" width="460" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/burrows.metablogapi/7635.image_5F00_thumb_5F00_64C1FB13.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I recently heard from Deepesh Mohnani who is part of the Microsoft RIA team. His concern was the large &amp;ldquo;Download Package Size&amp;rdquo; of .NET RIA Data Services compared to the other two options. Deepesh stated that&lt;/p&gt;
&lt;p&gt;&amp;ldquo;&lt;em&gt;I noticed you are returning thumb nails with every product and with the bits you have we were very inefficient. We have made significant changes from our last public release and are now handling thumbnails more efficiently.&amp;rdquo;&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;Deepesh has offered to make the newer &amp;ldquo;bits&amp;rdquo; available for my testing and when I get them, I&amp;rsquo;ll run the application again to see what the new package size turns out to be. Regarding the fact that the application is downloading thumbnails, I&amp;rsquo;ll address that in another blog entry.&lt;/p&gt;
&lt;p&gt;You should remember that the RIA product is still at the CTP stage and that a lot of changes should be expected before the product is released; please keep this in mind before drawing any conclusions.&lt;/p&gt;
&lt;p&gt;bill&lt;/p&gt;</description></item><item><title>MVVM Pattern and Silverlight</title><link>http://msmvps.com/blogs/burrows/archive/2009/09/12/mvvm-pattern-and-silverlight.aspx</link><pubDate>Sat, 12 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1722859</guid><dc:creator>Burrows</dc:creator><description>&lt;p&gt;I have been trying to understand the Model-View-ViewModel pattern for a while and to be honest, getting a good grip on the idea was eluding me. I read many articles; some were too general to be helpful, some were written specifically for WPF (which does not map well to Silverlight because of Silverlight&amp;rsquo;s lack of commands and triggers), or were shown in applications that were just too complex to really see what was happening.&lt;/p&gt;
&lt;p&gt;Then I read &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx"&gt;Shawn Wildermuth&amp;rsquo;s article in MSDN Magazine&lt;/a&gt;. Shawn showed a fairly simple MVVM example using Silverlight and C#. Thanks to the efforts of &lt;a target="_blank" href="http://blogs.msdn.com/vbteam/archive/tags/Lisa+Feigenbaum/default.aspx"&gt;Lisa Feigenbaum&lt;/a&gt;, Shawn&amp;rsquo;s code was provided not only in C#, but also in VB.NET in the &lt;a target="_blank" href="http://code.msdn.microsoft.com/mag200903MVVMSL2"&gt;MSDN Code Gallery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I decided that I would create my own simple Silverlight client using the MVVM ideas presented by Shawn. I just posted a &lt;a target="_blank" href="http://www.myvbprof.com/2007_Version/MVVM.aspx"&gt;new tutorial&lt;/a&gt; that shows how this application is designed. In this tutorial, I look at a very simple ViewModel that deals with displaying all products from the AdventureWorks database. It shows two versions of the data contract, one using .NET RIA Services and a second using ADO.NET Data Services. In this example, the view is defined as a Silverlight client.&lt;/p&gt;</description></item><item><title>Prism and .NET RIA Services</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/09/07/prism-and-net-ria-services.aspx</link><pubDate>Mon, 07 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1721439</guid><dc:creator>NunoGodinho</dc:creator><description>&lt;p&gt;&amp;#160;&amp;#160; Prism is a real interesting Guidance and was built for Silverlight 2.0, and some of the feedback I’ve received is if it works well with the new version 3.0, and so I remembered blogging about this.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; The most usual questions are:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Does this work well with Silverlight 3 ?&lt;/p&gt; &lt;/blockquote&gt;  &lt;ol&gt;   &lt;ul&gt;     &lt;li&gt;Yes it works fine with this new version of Silverlight. &lt;/li&gt;   &lt;/ul&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Does this work well with .NET RIA Services ?&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Yes. They don’t only work well together, they actually complement each other, since one of the elements in the product backlog of the Prism Team was the access to server data, and since they didn’t had time to do this, .NET RIA Services can do this for them. &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;In order to know more about the subject &lt;a href="http://blogs.msdn.com/dphill/archive/2009/08/17/prism-and-net-ria-services.aspx" target="_blank"&gt;read this David Hill’s post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;About how to have quick starts about Prism &lt;a href="http://blogs.msdn.com/dphill/archive/2009/06/15/prism-quick-start-kit-update.aspx" target="_blank"&gt;read this other David Hill’s post&lt;/a&gt;. &lt;/p&gt;</description></item><item><title>ADO.NET Data Services v1.5 CTP2 usage in Silverlight</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/09/07/ado-net-data-services-v1-5-ctp2-usage-in-silverlight.aspx</link><pubDate>Mon, 07 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1721437</guid><dc:creator>NunoGodinho</dc:creator><description>&lt;p&gt;&amp;#160;&amp;#160; After all the information’s regarding the ADO.NET Data Services v1.5 CTP2, now the Product Team launched a tutorial in how to use this version with Silverlight from another domain and also out-of-browser. And so I think this is important for everybody that is working in Silverlight.&lt;/p&gt;  &lt;p&gt;In order to know more about the subject &lt;a href="http://blogs.msdn.com/astoriateam/archive/2009/09/03/using-the-ado-net-data-services-silverlight-client-in-x-domain-and-out-of-browser-scenarios-i.aspx" target="_blank"&gt;read this post from the Product Team&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>New Features in CTP2 ADO.NET Data Services v1.5 Explained</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/09/02/new-features-in-ctp2-ado-net-data-services-v1-5-explained.aspx</link><pubDate>Wed, 02 Sep 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1720315</guid><dc:creator>NunoGodinho</dc:creator><description>&lt;p&gt;After yesterdays &lt;a href="http://msmvps.com/blogs/nunogodinho/archive/2009/09/01/new-version-ctp-of-ado-net-data-services-v1-5-is-now-available.aspx" target="_blank"&gt;post about the availability of the CTP2 of ADO.NET Data Services v1.5&lt;/a&gt; here are some more details regarding the Projections, Feed Customization and Data Binding.&lt;/p&gt;  &lt;p&gt;As told before &lt;strong&gt;Projections, &lt;/strong&gt;the possibility of getting only the columns chosen instead of retrieving all the columns. With this we have now a new set of expressions to provide this ability on the URI, and in order to achieve we have now two new keywords available, that are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;$select, &lt;/em&gt;allow us to define which columns we want to be get       &lt;ul&gt;       &lt;li&gt;Instead of using only the &lt;a href="http://127.0.0.1/NorthwindService.svc/Customers"&gt;http://127.0.0.1/NorthwindService.svc/Customers&lt;/a&gt; that will return every column of the Entity Customer, we want to define that we only get the CustomerID and the ContactName, and in order to achieve this we use the new $select keyword like this &lt;a href="http://127.0.0.1/NorthwindService.svc/Customers?$select=CustomerID,ContactName"&gt;http://127.0.0.1/NorthwindService.svc/Customers?$select=CustomerID,ContactName&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;The way to define the several columns is to use commas to separate the column names. &lt;/li&gt;        &lt;li&gt;If we want to use this keyword and define all columns is the following &lt;a href="http://127.0.0.1/NorthwindService.svc/Customers?$select"&gt;http://127.0.0.1/NorthwindService.svc/Customers?$select&lt;/a&gt;=* &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;$expand, &lt;/em&gt;defines that along with the results from the requested entity, we also want to get the results from a specific relationship       &lt;ul&gt;       &lt;li&gt;Usage: &lt;a href="http://127.0.0.1/NorthwindService.svc/Customers?$expand=Orders/OrderDetails"&gt;http://127.0.0.1/NorthwindService.svc/Customers?$expand=Orders/OrderDetails&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;But in order for this to work we need to add the following 2 properties to the service:      &lt;ul&gt;       &lt;li&gt;First, make projections available using the URI.          &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:449px;padding-right:5px;height:52px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: config.DataServiceBehavior.AcceptProjectionRequests = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;/pre&gt;
      &lt;/li&gt;

      &lt;li&gt;Secondly, make the protocol version to V2 
        &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:451px;padding-right:5px;height:52px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2;&lt;/pre&gt;&lt;/pre&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;For more information’s regarding this subject read this &lt;a title="http://blogs.msdn.com/astoriateam/archive/2009/09/01/ado-net-data-services-v1-5-ctp2-projections-overview-server.aspx" href="http://blogs.msdn.com/astoriateam/archive/2009/09/01/ado-net-data-services-v1-5-ctp2-projections-overview-server.aspx"&gt;post&lt;/a&gt; from the Product Team. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feed Customizations&lt;/strong&gt; are the possibility to customize the way the feed is created instead of using only the default AtomPub version.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In order to achieve this customization we must use the EntityPropertyMappingAttribute that will define the relationship between the Property and the name that will be used in the feed. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; In the following sample we are defining that when building the feed, instead of using the complete type definition&lt;/p&gt;

&lt;ul&gt;
  &lt;ul&gt;
    &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:451px;padding-right:5px;height:129px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;author&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2:    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Nuno Godinho&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;email&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;someone@company.com&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;email&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;author&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; we will have the Author element with the value that is on the Name Property of the Author class (considering that Author is a type that contains several properties and one of them is Name):&lt;/p&gt;

&lt;ul&gt;
  &lt;ul&gt;
    &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:453px;padding-right:5px;height:187px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: [EntityPropertyMapping(
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2:        &amp;quot;&lt;span style="color:#8b0000;"&gt;Author&lt;/span&gt;&amp;quot;,&lt;span style="color:#008000;"&gt;/*Source property path , the property of the Entity type to be mapped*/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:        SyndicationItemProperty.AuthorName,&lt;span style="color:#008000;"&gt;/* Syndication item to which the Source Property is mapped*/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4:        SyndicationTextContentKind.Plaintext,&lt;span style="color:#008000;"&gt;/* Syndication content kind for the syndication item this property is bound to */&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:        &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&lt;span style="color:#008000;"&gt;/* If  false the property value is only placed at the mapped location &amp;amp; removed from the &amp;lt;content&amp;gt; section of the atom:entry*/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:        )]&lt;/pre&gt;&lt;/pre&gt;
and so the result will be: 

    &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:452px;padding-right:5px;height:52px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;author&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Nuno Godinho&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;author&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;
For more information&amp;#39;s regarding this customization read the following posts: 

    &lt;ul&gt;
      &lt;p&gt;&lt;a href="http://blogs.msdn.com/phaniraj/archive/2009/08/31/introducing-web-friendly-feeds-aka-friendly-feeds-updated-for-ctp2.aspx" target="_blank"&gt;Introducing Web Friendly Feeds aka Friendly Feeds (Updated for CTP2)&lt;/a&gt;&lt;/p&gt;

      &lt;p&gt;&lt;a href="http://blogs.msdn.com/phaniraj/archive/2009/03/21/ado-net-data-services-friendly-feeds-mapping-clr-types.aspx" target="_blank"&gt;ADO.NET Data Services Friendly Feeds , Mapping CLR Types&lt;/a&gt;&lt;/p&gt;

      &lt;p&gt;&lt;a href="http://blogs.msdn.com/phaniraj/archive/2009/03/28/ado-net-data-services-friendly-feeds-mapping-edm-types-i.aspx" target="_blank"&gt;ADO.NET Data Services Friendly Feeds , Mapping EDM Types – I&lt;/a&gt;&lt;/p&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Binding &lt;/strong&gt;is now simplified, because using the DataServiceCollection class we can bind it directly to the Data Service.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;For more information’s regarding this subject read this &lt;a title="http://blogs.msdn.com/astoriateam/archive/2009/09/01/introduction-to-data-binding-in-ctp2.aspx" href="http://blogs.msdn.com/astoriateam/archive/2009/09/01/introduction-to-data-binding-in-ctp2.aspx"&gt;post&lt;/a&gt; from the Product Team. &lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Conferencia – Silverlight como Plataforma de Desarrollo</title><link>http://msmvps.com/blogs/juank/archive/2009/08/30/conferencia-silverlight-como-plataforma-de-desarrollo.aspx</link><pubDate>Sun, 30 Aug 2009 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719222</guid><dc:creator>JuanKRuiz</dc:creator><description>&lt;p&gt;&lt;b&gt;&lt;span style="color:#0000ff;"&gt;Puedes ver el art&amp;iacute;culo original en  mi blog: &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;

 &lt;a href="http://juank.black-byte.com/eventos-silverlight-plataforma-desarrollo/" target="_blank"&gt;&lt;b&gt;&lt;span style="color:#0000ff;"&gt;http://juank.black-byte.com/eventos-silverlight-plataforma-desarrollo/&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Fecha:&lt;/b&gt; Mi&amp;eacute;rcoles 2 de Septiembrea las 18:30 (-5 GMT)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lugar: &lt;/b&gt;Auditorio Fundaci&amp;oacute;n Universitaria CAFAM                &lt;br /&gt;AK 68 N&amp;deg; 90-88 CAFAM Floresta, Bogot&amp;aacute; &amp;ndash; Colombia                &lt;br /&gt;&amp;iexcl;&amp;iexcl;&amp;iexcl;..ENTRADA LIBRE&amp;hellip;!!!! &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;&lt;img src="http://bogotadotnet.org/getfile/2ed508e1-dce8-4fd6-bb9b-2da3f9a859db/btn_Registro_Presencial_2_175x95.aspx" border="0" alt="" /&gt;&lt;/a&gt;                                  &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Silverlight es una tecnolog&amp;iacute;a relativamente nueva en el mundo de las
Aplicaciones Enriquecidas para Internet, la cual nos permite extender
la funcionalidad de nuestras aplicaciones Web a trav&amp;eacute;s de un componente
ligero, multi-plataforma y multi-navegador. En esta sesi&amp;oacute;n podr&amp;aacute;s
conocer cu&amp;aacute;les son las caracter&amp;iacute;sticas de la &amp;uacute;ltima versi&amp;oacute;n de
Silverlight que la hacen una excelente opci&amp;oacute;n para construir este tipo
de aplicaciones. Ven y conoce qu&amp;eacute; es Silverlight y c&amp;oacute;mo lo puedes
utilizar como plataforma de desarrollo para aplicativos Web modernos.&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;a href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;&lt;img src="http://bogotadotnet.org/getfile/c629c433-7e53-4a6f-a600-9d1e441f86c5/Evento_090902_Silverlight_3_670x503.aspx" border="0" height="434" width="578" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description></item></channel></rss>