<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Snowball - The Blog - Efficiency</title>
    <link>http://www.snowball.be/</link>
    <description>Gill's blog on .net programming</description>
    <language>en-us</language>
    <copyright>Gill Cleeren</copyright>
    <lastBuildDate>Tue, 25 Jan 2011 21:06:53 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>gillcleeren@gmail.com</managingEditor>
    <webMaster>gillcleeren@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=1505aafc-ec38-4880-958f-d4eb432c857e</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,1505aafc-ec38-4880-958f-d4eb432c857e.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,1505aafc-ec38-4880-958f-d4eb432c857e.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=1505aafc-ec38-4880-958f-d4eb432c857e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, I got some great news: some of my sessions that I proposed for Mix 11 in Las
Vegas made the first cut! That means that you can now all vote for them via the <a href="http://live.visitmix.com/OpenCall">OpenCall</a> page
on the Mix 11 site! 
</p>
        <p>
          <strong>So, want me out of here? This is your chance to send me to Vegas, baby!! Voting
can be done here: </strong>
          <a title="http://live.visitmix.com/OpenCall" href="http://live.visitmix.com/OpenCall">
            <strong>http://live.visitmix.com/OpenCall</strong>
          </a>
          <strong> .
All votes are really appreciated, thanks in advance!</strong>
        </p>
        <p>
          <a href="http://live.visitmix.com/OpenCall">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="300x250_Mix11_011011_US_b" border="0" alt="300x250_Mix11_011011_US_b" src="http://www.snowball.be/content/binary/WindowsLiveWriter/SendmetoVegastospeakatMix_136FC/300x250_Mix11_011011_US_b_3.gif" width="244" height="204" />
          </a> 
</p>
        <p>
These are my sessions that made the first selection:
</p>
        <ul>
          <li>
            <a href="http://live.visitmix.com/OpenCall/Vote/Session/30">Data access from Windows
Phone 7</a>
            <br />
Gill Cleeren<br />
Windows Phone 7 apps need access to data, that's a sure thing. In this session, we'll
look at what of our knowledge from Silverlight we can leverage into the Windows Phone
platform. We'll look at what we need to keep track of on the service side and what
actions we need to do on the phone platform itself. 
<br />
Level 300<br />
Technology: Silverlight, Windows Phone 7, Services</li>
          <li>
            <a href="http://live.visitmix.com/OpenCall/Vote/Session/27">The session where Hello
World is forbidden: Advanced Silverlight</a>
            <br />
Gill Cleeren<br />
Byebye 'Hello World'. We've all had the time to play with Silverlight by now so it's
time to switch gears. In this advanced Silverlight session, Gill Cleeren will show
you advanced topics in Silverlight, such as unit testing, profiling, MEF, security
and authentication, advanced printing scenarios, sockets etc... You'll learn stuff
that you were afraid to ask about before!<br />
Level 400/Silverlight experience required. 
<br />
Technologies: Silverlight 4</li>
          <li>
            <a href="http://live.visitmix.com/OpenCall/Vote/Session/29">Advanced WCF RIA Services</a>
            <br />
Gill Cleeren<br />
Since Silverlight 4, WCF RIA Services has been part of the platform. We all had some
time to experiment with RIA Services a bit, didn't we? So now it's time for the serious
work. In this session, we won't be creating your basic "Hello RIA Services" application!
Instead, we'll take a deeper look at RIA services by answering questions such as:How
should we architect our applications around them?What patterns and best practices
can be applied? How can RIA Services be used in an MVVM scenario?How can I do validation
with RIA services?And much more!<br />
Level 300<br />
Technologies: Silverlight 4, WCF RIA Services</li>
          <li>
            <a href="http://live.visitmix.com/OpenCall/Vote/Session/28">Building custom controls
in Silverlight 4</a>
            <br />
Gill Cleeren<br />
While Silverlight has a rich set of controls on board, sometimes you still need a
control that does not exist. In Silverlight, there are more options than you ever
considered possible to do this. Varying from templating a control to building a control
from scratch, we'll cover it all. We'll also look at building a container from scratch!Level
300<br />
Technologies: Silverlight 4</li>
        </ul>
        <p>
Love one (or more) of these sessions? Please vote! Thanks!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1505aafc-ec38-4880-958f-d4eb432c857e" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Send me to Vegas to speak at Mix!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,1505aafc-ec38-4880-958f-d4eb432c857e.aspx</guid>
      <link>http://www.snowball.be/2011/01/25/Send+Me+To+Vegas+To+Speak+At+Mix.aspx</link>
      <pubDate>Tue, 25 Jan 2011 21:06:53 GMT</pubDate>
      <description>&lt;p&gt;
Today, I got some great news: some of my sessions that I proposed for Mix 11 in Las
Vegas made the first cut! That means that you can now all vote for them via the &lt;a href="http://live.visitmix.com/OpenCall"&gt;OpenCall&lt;/a&gt; page
on the Mix 11 site! 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;So, want me out of here? This is your chance to send me to Vegas, baby!! Voting
can be done here: &lt;/strong&gt;&lt;a title="http://live.visitmix.com/OpenCall" href="http://live.visitmix.com/OpenCall"&gt;&lt;strong&gt;http://live.visitmix.com/OpenCall&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; .
All votes are really appreciated, thanks in advance!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://live.visitmix.com/OpenCall"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="300x250_Mix11_011011_US_b" border="0" alt="300x250_Mix11_011011_US_b" src="http://www.snowball.be/content/binary/WindowsLiveWriter/SendmetoVegastospeakatMix_136FC/300x250_Mix11_011011_US_b_3.gif" width="244" height="204"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
These are my sessions that made the first selection:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://live.visitmix.com/OpenCall/Vote/Session/30"&gt;Data access from Windows
Phone 7&lt;/a&gt;
&lt;br&gt;
Gill Cleeren&lt;br&gt;
Windows Phone 7 apps need access to data, that's a sure thing. In this session, we'll
look at what of our knowledge from Silverlight we can leverage into the Windows Phone
platform. We'll look at what we need to keep track of on the service side and what
actions we need to do on the phone platform itself. 
&lt;br&gt;
Level 300&lt;br&gt;
Technology: Silverlight, Windows Phone 7, Services&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://live.visitmix.com/OpenCall/Vote/Session/27"&gt;The session where Hello
World is forbidden: Advanced Silverlight&lt;/a&gt;
&lt;br&gt;
Gill Cleeren&lt;br&gt;
Byebye 'Hello World'. We've all had the time to play with Silverlight by now so it's
time to switch gears. In this advanced Silverlight session, Gill Cleeren will show
you advanced topics in Silverlight, such as unit testing, profiling, MEF, security
and authentication, advanced printing scenarios, sockets etc... You'll learn stuff
that you were afraid to ask about before!&lt;br&gt;
Level 400/Silverlight experience required. 
&lt;br&gt;
Technologies: Silverlight 4&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://live.visitmix.com/OpenCall/Vote/Session/29"&gt;Advanced WCF RIA Services&lt;/a&gt;
&lt;br&gt;
Gill Cleeren&lt;br&gt;
Since Silverlight 4, WCF RIA Services has been part of the platform. We all had some
time to experiment with RIA Services a bit, didn't we? So now it's time for the serious
work. In this session, we won't be creating your basic "Hello RIA Services" application!
Instead, we'll take a deeper look at RIA services by answering questions such as:How
should we architect our applications around them?What patterns and best practices
can be applied? How can RIA Services be used in an MVVM scenario?How can I do validation
with RIA services?And much more!&lt;br&gt;
Level 300&lt;br&gt;
Technologies: Silverlight 4, WCF RIA Services&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://live.visitmix.com/OpenCall/Vote/Session/28"&gt;Building custom controls
in Silverlight 4&lt;/a&gt;
&lt;br&gt;
Gill Cleeren&lt;br&gt;
While Silverlight has a rich set of controls on board, sometimes you still need a
control that does not exist. In Silverlight, there are more options than you ever
considered possible to do this. Varying from templating a control to building a control
from scratch, we'll cover it all. We'll also look at building a container from scratch!Level
300&lt;br&gt;
Technologies: Silverlight 4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Love one (or more) of these sessions? Please vote! Thanks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1505aafc-ec38-4880-958f-d4eb432c857e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,1505aafc-ec38-4880-958f-d4eb432c857e.aspx</comments>
      <category>Efficiency</category>
      <category>Mix 11</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=4e173be4-e3f9-43c1-83bb-3b6a5807d3ee</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,4e173be4-e3f9-43c1-83bb-3b6a5807d3ee.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,4e173be4-e3f9-43c1-83bb-3b6a5807d3ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=4e173be4-e3f9-43c1-83bb-3b6a5807d3ee</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On January 24th, the first Belgian Web Camp takes place. Some updates have been done
to the agenda, including another speaker being added. 
</p>
        <p>
          <a href="http://bit.ly/gVWONY">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="WebCamps_signature_v2" border="0" alt="WebCamps_signature_v2" src="http://www.snowball.be/content/binary/WindowsLiveWriter/UpdatestoWebCampcalendar_85E8/WebCamps_signature_v2_3.jpg" width="467" height="191" />
          </a>
        </p>
        <p>
This is the final agenda:
</p>
        <p>
          <b>8:30 - 9:00 </b>
          <i>Welcome and registration</i>
        </p>
        <p>
          <b>9:00 - 11:00 </b>
          <b>Opening Keynote – What’s new in the Microsoft Web Platform </b>
          <b>(Scott
Hanselman, Principle Program Manager, Microsoft)<br /></b>Just recently, Microsoft have released a bunch of new products that web developers
can use to build websites and web applications.  Scott, Drew and Jonathan will
take you on a whirlwind tour of what’s new in the Microsoft Web Platform, including
ASP.NET MVC 3, NuGet and more.<b></b></p>
        <p>
          <b>11:00 - 11:30 </b>
          <i>Coffee Break</i>
        </p>
        <p>
          <b>11:30 - 12:30 </b>
          <b>HTML5: How about today? </b>
          <b>(Katrien De Graeve, Developer
Evangelist, Microsoft)<br /></b>What is HTML5? With more and more browsers supporting HTML5, ECMAScript 5 and
other web standards, developers now have a strong web platform they can use to create
a new class of web application that is more powerful and interactive than ever before. 
What's in HTML5 that lets us take our sites to the next level?<br />
Expect demos and code! 
</p>
        <p>
          <b>12:30 - 13:30 </b>
          <i>Lunch</i>
        </p>
        <p>
          <b>13:30 - 14:45 </b>
          <b>Come in as jQuery zero, go out as jQuery hero </b>
          <b>(Gill
Cleeren)<br /></b>jQuery is the web developers’ new favorite. This lightweight JavaScript library
has developers writing JavaScript code again, and loving it! What previously needed
20 lines of code can now be done in just 3 lines. Who wouldn’t be enthusiastic? Microsoft
showed its love for the library by fully integrating it in Visual Studio. I dare to
ask: should you stay behind? In this session, we’ll take a look at jQuery and we’ll
teach you what you need to know to get you on your way. More specifically, we’ll look
at selectors, attributes, working with WCF, jQuery UI, and much more. You could easily
walk out of this session wearing a sticker: “I love jQuery”! 
</p>
        <p>
          <b>14:45 - 15:15 </b>
          <i>Coffee Break</i>
        </p>
        <p>
          <b>15:15 - 16:30 </b>
          <b>OData: Open Data for the Open Web </b>
          <b>(Jonathan Carter,
Senior Technical Evangelist, Microsoft)<br /></b>There is no shortage of valuable data being generated by applications, reports,
tools, Web sites, etc. Unfortunately, this leaves many of us wishing we could programmatically
access the data and logic behind an app, report, or Web site. To break down data silos
and increase the shared value of data and its associated business logic through the
Web, Microsoft has recently announced the Open Data Protocol which enables exposing
any data source as a Web-friendly data feed. Join this session to understand what
the Open Data Protocol (OData) is and how it adds end-user and developer value to
many of Microsoft's leading products and services (such as SharePoint Server 2010,
Microsoft Codename "Dallas", Windows Azure, SQL Server Reporting Services, SQL Server
PowerPivot for Excel, Visual Studio, .NET, Silverlight, AJAX, etc.), as well as being
accessible from a range of platforms such as Java and PHP. " 
</p>
        <p>
          <b>16:30 - 17:30 </b>
          <i>Closing drink</i>
        </p>
        <p>
Registration can be completed <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032472434&amp;Culture=en-US">here</a> (there
are a few seats left!!)<br />
Location: 
<br /><strong>Business Faculty 
<br /></strong>St. Lendriksborre 6 / Font Saint Landry 6<br />
Brussel - Neder over Heembeek 1120<br />
Belgium<br /><br />
You can also watch the live stream but you need to register from <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032472819&amp;Culture=en-US">here</a>.
And if you want to view the event from within your company, you can get a free breakfast
(Register <a href="http://blogs.msdn.com/b/belux/archive/2011/01/06/web-camp-belgium-join-online-and-breakfast-is-on-us.aspx">here</a>) <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=4e173be4-e3f9-43c1-83bb-3b6a5807d3ee" /><br /><hr />
Snowball.be - The blog of Gill Cleeren 
</p>
      </body>
      <title>Updates to Web Camp calendar</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,4e173be4-e3f9-43c1-83bb-3b6a5807d3ee.aspx</guid>
      <link>http://www.snowball.be/2011/01/07/Updates+To+Web+Camp+Calendar.aspx</link>
      <pubDate>Fri, 07 Jan 2011 08:31:20 GMT</pubDate>
      <description>&lt;p&gt;
On January 24th, the first Belgian Web Camp takes place. Some updates have been done
to the agenda, including another speaker being added. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://bit.ly/gVWONY"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="WebCamps_signature_v2" border="0" alt="WebCamps_signature_v2" src="http://www.snowball.be/content/binary/WindowsLiveWriter/UpdatestoWebCampcalendar_85E8/WebCamps_signature_v2_3.jpg" width="467" height="191"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
This is the final agenda:
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;8:30 - 9:00 &lt;/b&gt;&lt;i&gt;Welcome and registration&lt;/i&gt; 
&lt;p&gt;
&lt;b&gt;9:00 - 11:00 &lt;/b&gt;&lt;b&gt;Opening Keynote – What’s new in the Microsoft Web Platform &lt;/b&gt;&lt;b&gt;(Scott
Hanselman, Principle Program Manager, Microsoft)&lt;br&gt;
&lt;/b&gt;Just recently, Microsoft have released a bunch of new products that web developers
can use to build websites and web applications.&amp;nbsp; Scott, Drew and Jonathan will
take you on a whirlwind tour of what’s new in the Microsoft Web Platform, including
ASP.NET MVC 3, NuGet and more.&lt;b&gt;&lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;11:00 - 11:30 &lt;/b&gt;&lt;i&gt;Coffee Break&lt;/i&gt; 
&lt;p&gt;
&lt;b&gt;11:30 - 12:30 &lt;/b&gt;&lt;b&gt;HTML5: How about today? &lt;/b&gt;&lt;b&gt;(Katrien De Graeve, Developer
Evangelist, Microsoft)&lt;br&gt;
&lt;/b&gt;What is HTML5? With more and more browsers supporting HTML5, ECMAScript 5 and
other web standards, developers now have a strong web platform they can use to create
a new class of web application that is more powerful and interactive than ever before.&amp;nbsp;
What's in HTML5 that lets us take our sites to the next level?&lt;br&gt;
Expect demos and code! 
&lt;p&gt;
&lt;b&gt;12:30 - 13:30 &lt;/b&gt;&lt;i&gt;Lunch&lt;/i&gt; 
&lt;p&gt;
&lt;b&gt;13:30 - 14:45 &lt;/b&gt;&lt;b&gt;Come in as jQuery zero, go out as jQuery hero &lt;/b&gt;&lt;b&gt;(Gill
Cleeren)&lt;br&gt;
&lt;/b&gt;jQuery is the web developers’ new favorite. This lightweight JavaScript library
has developers writing JavaScript code again, and loving it! What previously needed
20 lines of code can now be done in just 3 lines. Who wouldn’t be enthusiastic? Microsoft
showed its love for the library by fully integrating it in Visual Studio. I dare to
ask: should you stay behind? In this session, we’ll take a look at jQuery and we’ll
teach you what you need to know to get you on your way. More specifically, we’ll look
at selectors, attributes, working with WCF, jQuery UI, and much more. You could easily
walk out of this session wearing a sticker: “I love jQuery”! 
&lt;p&gt;
&lt;b&gt;14:45 - 15:15 &lt;/b&gt;&lt;i&gt;Coffee Break&lt;/i&gt; 
&lt;p&gt;
&lt;b&gt;15:15 - 16:30 &lt;/b&gt;&lt;b&gt;OData: Open Data for the Open Web &lt;/b&gt;&lt;b&gt;(Jonathan Carter,
Senior Technical Evangelist, Microsoft)&lt;br&gt;
&lt;/b&gt;There is no shortage of valuable data being generated by applications, reports,
tools, Web sites, etc. Unfortunately, this leaves many of us wishing we could programmatically
access the data and logic behind an app, report, or Web site. To break down data silos
and increase the shared value of data and its associated business logic through the
Web, Microsoft has recently announced the Open Data Protocol which enables exposing
any data source as a Web-friendly data feed. Join this session to understand what
the Open Data Protocol (OData) is and how it adds end-user and developer value to
many of Microsoft's leading products and services (such as SharePoint Server 2010,
Microsoft Codename "Dallas", Windows Azure, SQL Server Reporting Services, SQL Server
PowerPivot for Excel, Visual Studio, .NET, Silverlight, AJAX, etc.), as well as being
accessible from a range of platforms such as Java and PHP. " 
&lt;p&gt;
&lt;b&gt;16:30 - 17:30 &lt;/b&gt;&lt;i&gt;Closing drink&lt;/i&gt; 
&lt;p&gt;
Registration can be completed &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032472434&amp;amp;Culture=en-US"&gt;here&lt;/a&gt; (there
are a few seats left!!)&lt;br&gt;
Location: 
&lt;br&gt;
&lt;strong&gt;Business Faculty 
&lt;br&gt;
&lt;/strong&gt;St. Lendriksborre 6 / Font Saint Landry 6&lt;br&gt;
Brussel - Neder over Heembeek 1120&lt;br&gt;
Belgium&lt;br&gt;
&lt;br&gt;
You can also watch the live stream but you need to register from &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032472819&amp;amp;Culture=en-US"&gt;here&lt;/a&gt;.
And if you want to view the event from within your company, you can get a free breakfast
(Register &lt;a href="http://blogs.msdn.com/b/belux/archive/2011/01/06/web-camp-belgium-join-online-and-breakfast-is-on-us.aspx"&gt;here&lt;/a&gt;) &lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=4e173be4-e3f9-43c1-83bb-3b6a5807d3ee" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,4e173be4-e3f9-43c1-83bb-3b6a5807d3ee.aspx</comments>
      <category>.NET 4</category>
      <category>ASP.net</category>
      <category>ASP.net AJAX</category>
      <category>ASP.NET MVC</category>
      <category>Efficiency</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=a866dca3-e710-4749-8b38-84fa4e87b934</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,a866dca3-e710-4749-8b38-84fa4e87b934.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,a866dca3-e710-4749-8b38-84fa4e87b934.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=a866dca3-e710-4749-8b38-84fa4e87b934</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Light up your Silverlight skills with the all-new Global Silverlight Firestarter!</strong>
        </p>
        <p>
          <strong>
            <a href="http://jpapa.me//slfs10">
              <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SLFirestarter_300X250" border="0" alt="SLFirestarter_300X250" src="http://www.snowball.be/content/binary/WindowsLiveWriter/SilverlightFirestarteronDecember2nd_113/SLFirestarter_300X250_3.jpg" width="244" height="204" />
            </a>
          </strong>
        </p>
        <p>
          <strong>
            <em>
            </em>
          </strong>
        </p>
        <p>
          <strong>
            <em>What is the Silverlight Firestarter?</em>
          </strong>
        </p>
        <p>
-          <strong>An Event: </strong>A
one day, global, live streamed and on demand event keynoted by Scott Guthrie 
</p>
        <p>
-          <strong>Training:</strong> New
self-paced labs and walk through videos 
</p>
        <p>
-          <strong>Interactive: </strong>Got
questions? Get your answers! Watch live and ask the Silverlight product team questions
during the event. 
</p>
        <p>
-          <strong>Why Silverlight? </strong>Silverlight
is Microsoft’s strategic development platform for building interactive applications
across desktop, phone, and the browser. 
</p>
        <p>
          <strong>
            <em>
            </em>
          </strong>
        </p>
        <p>
          <strong>
            <em>Something for Everyone</em>
          </strong>
        </p>
        <p>
-          <strong>Just starting out
with Silverlight?</strong> Watch our On-Ramp sessions and work on hands on labs to
get you started. 
</p>
        <p>
-          <strong>Already Building business
applications?</strong> Watch the event live and learn how to create compelling business
applications with Silverlight. 
</p>
        <p>
-          <strong>Got questions?</strong> Engage
with the Silverlight product team live or in person with our interactive chat. 
</p>
        <p>
          <strong>
            <em>When</em>
          </strong>
          <br />
          <strong>
            <em>Register</em>
          </strong>
          <br />
          <strong>
            <em>How Much?</em>
          </strong>
        </p>
        <p>
December 2, 2010 8am to 5pm PT<em></em><br /><a href="http://jpapa.me/slfs10"><strong>Register Online, Now!</strong></a><br />
Nothing! This is a free event<strong><em></em></strong></p>
        <p>
          <strong>
            <em>After the live event keep fueling the fire! </em>
          </strong>
        </p>
        <p>
Dive deeper with additional hands on labs and videos that build on the live session
content, accelerating you ahead of the crowd. 
</p>
        <p>
-          Watch the entire event on
demand! 
</p>
        <p>
-          Plus, new self-paced labs
and walk through videos 
</p>
        <p>
-          On Ramp Labs (100 level) 
</p>
        <ul>
          <li>
Hands on labs specifically focused on helping new developers get up to speed quickly
on Silverlight 
</li>
          <li>
Do you know WinForms? HTML? ASP.NET? Want to learn Silverlight? We have a lab for
you!</li>
        </ul>
        <p>
-          Building Better Business Apps
(200-300 level) 
</p>
        <ul>
          <li>
Hands on labs focused on taking advantage of Silverlight to build real world business
applications 
</li>
          <li>
Apply Data Strategies, Patterns, Out of Browser, RIA Services, and much more using
Silverlight</li>
        </ul>
        <p>
-          <strong>Turnabout is fair
play</strong>! Watch a video of our experts doing the labs themselves. 
</p>
        <p>
          <strong>
            <em>
            </em>
          </strong>
        </p>
        <p>
          <strong>F I R E S T A R T E R     L I V E    
A G E N D A </strong>
        </p>
        <p>
          <strong>8:00 am<br /></strong>Silverlight Firestarter Keynote<br />
Scott Guthrie 
</p>
        <p>
          <strong>9:00 am<br /></strong>Masterful Data Strategies with Silverlight and WP7<br />
Jesse Liberty 
</p>
        <p>
          <strong>10:00 am<br /></strong>15 minute break 
</p>
        <p>
          <strong>10:15 am<br /></strong>Roll Out Your Business Apps Today with RIA Services<br />
Pete Brown 
</p>
        <p>
          <strong>11:15 am<br /></strong>MVVM: Why and How? Tips and Patterns using MVVM and Service Patterns<br />
John Papa 
</p>
        <p>
          <strong>12:15 pm<br /></strong>Lunch break 
</p>
        <p>
          <strong>1:00 pm<br /></strong>Silverlight Today and Tomorrow (Special Guest Panel)<br />
Panel 
</p>
        <p>
          <strong>1:30 pm<br /></strong>Building Real World Silverlight Apps<br />
Tim Heuer 
</p>
        <p>
          <strong>2:30 pm<br /></strong>15 minute break 
</p>
        <p>
          <strong>2:45 pm<br /></strong>Tune Your Application: Profiling and Performance Tips<br />
Mike Cook &amp; Jossef Goldberg 
</p>
        <p>
          <strong>3:45 pm<br /></strong>Killer Performance Tips for Silverlight Windows Phone 7<br />
Jaime Rodriguez 
</p>
        <p>
After Party! 
</p>
        <p>
        </p>
        <p>
          <strong>
            <em>
            </em>
          </strong>
        </p>
        <strong>
          <em>Spread the Word! </em>
        </strong>
        <p>
-          Blog and tweet to spread the
word about the Firestarter! 
</p>
        <p>
-          Ask people to add the Twitter
hash tag <strong>#slfs10</strong> to their tweets 
</p>
        <p>
-          Use the banners and blog bling
(attached) 
</p>
        <p>
          <strong>
            <em>Questions</em>
          </strong>
        </p>
        <p>
Got questions? Ask <a href="mailto:slfs@microsoft.com"><strong>slfs@microsoft.com</strong></a><img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a866dca3-e710-4749-8b38-84fa4e87b934" /><br /><hr />
Snowball.be - The blog of Gill Cleeren 
</p>
      </body>
      <title>Silverlight Firestarter on December 2nd</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,a866dca3-e710-4749-8b38-84fa4e87b934.aspx</guid>
      <link>http://www.snowball.be/2010/10/25/Silverlight+Firestarter+On+December+2nd.aspx</link>
      <pubDate>Mon, 25 Oct 2010 22:04:35 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Light up your Silverlight skills with the all-new Global Silverlight Firestarter!&lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://jpapa.me//slfs10"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SLFirestarter_300X250" border="0" alt="SLFirestarter_300X250" src="http://www.snowball.be/content/binary/WindowsLiveWriter/SilverlightFirestarteronDecember2nd_113/SLFirestarter_300X250_3.jpg" width="244" height="204"&gt;&lt;/a&gt; &lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;What is the Silverlight Firestarter?&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;An Event: &lt;/strong&gt;A
one day, global, live streamed and on demand event keynoted by Scott Guthrie 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Training:&lt;/strong&gt; New
self-paced labs and walk through videos 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Interactive: &lt;/strong&gt;Got
questions? Get your answers! Watch live and ask the Silverlight product team questions
during the event. 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Why Silverlight? &lt;/strong&gt;Silverlight
is Microsoft’s strategic development platform for building interactive applications
across desktop, phone, and the browser. 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Something for Everyone&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Just starting out
with Silverlight?&lt;/strong&gt; Watch our On-Ramp sessions and work on hands on labs to
get you started. 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Already Building business
applications?&lt;/strong&gt; Watch the event live and learn how to create compelling business
applications with Silverlight. 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Got questions?&lt;/strong&gt; Engage
with the Silverlight product team live or in person with our interactive chat. 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;When&lt;/em&gt;&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Register&lt;/em&gt;&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;&lt;em&gt;How Much?&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
December 2, 2010 8am to 5pm PT&lt;em&gt; &lt;/em&gt;
&lt;br&gt;
&lt;a href="http://jpapa.me/slfs10"&gt;&lt;strong&gt;Register Online, Now!&lt;/strong&gt;&lt;/a&gt;
&lt;br&gt;
Nothing! This is a free event&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;After the live event keep fueling the fire! &lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
Dive deeper with additional hands on labs and videos that build on the live session
content, accelerating you ahead of the crowd. 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Watch the entire event on
demand! 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Plus, new self-paced labs
and walk through videos 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Ramp Labs (100 level) 
&lt;ul&gt;
&lt;li&gt;
Hands on labs specifically focused on helping new developers get up to speed quickly
on Silverlight 
&lt;li&gt;
Do you know WinForms? HTML? ASP.NET? Want to learn Silverlight? We have a lab for
you!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Building Better Business Apps
(200-300 level) 
&lt;ul&gt;
&lt;li&gt;
Hands on labs focused on taking advantage of Silverlight to build real world business
applications 
&lt;li&gt;
Apply Data Strategies, Patterns, Out of Browser, RIA Services, and much more using
Silverlight&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Turnabout is fair
play&lt;/strong&gt;! Watch a video of our experts doing the labs themselves. 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;F I R E S T A R T E R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L I V E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
A G E N D A &lt;/strong&gt; 
&lt;p&gt;
&lt;strong&gt;8:00 am&lt;br&gt;
&lt;/strong&gt;Silverlight Firestarter Keynote&lt;br&gt;
Scott Guthrie 
&lt;p&gt;
&lt;strong&gt;9:00 am&lt;br&gt;
&lt;/strong&gt;Masterful Data Strategies with Silverlight and WP7&lt;br&gt;
Jesse Liberty 
&lt;p&gt;
&lt;strong&gt;10:00 am&lt;br&gt;
&lt;/strong&gt;15 minute break 
&lt;p&gt;
&lt;strong&gt;10:15 am&lt;br&gt;
&lt;/strong&gt;Roll Out Your Business Apps Today with RIA Services&lt;br&gt;
Pete Brown 
&lt;p&gt;
&lt;strong&gt;11:15 am&lt;br&gt;
&lt;/strong&gt;MVVM: Why and How? Tips and Patterns using MVVM and Service Patterns&lt;br&gt;
John Papa 
&lt;p&gt;
&lt;strong&gt;12:15 pm&lt;br&gt;
&lt;/strong&gt;Lunch break 
&lt;p&gt;
&lt;strong&gt;1:00 pm&lt;br&gt;
&lt;/strong&gt;Silverlight Today and Tomorrow (Special Guest Panel)&lt;br&gt;
Panel 
&lt;p&gt;
&lt;strong&gt;1:30 pm&lt;br&gt;
&lt;/strong&gt;Building Real World Silverlight Apps&lt;br&gt;
Tim Heuer 
&lt;p&gt;
&lt;strong&gt;2:30 pm&lt;br&gt;
&lt;/strong&gt;15 minute break 
&lt;p&gt;
&lt;strong&gt;2:45 pm&lt;br&gt;
&lt;/strong&gt;Tune Your Application: Profiling and Performance Tips&lt;br&gt;
Mike Cook &amp;amp; Jossef Goldberg 
&lt;p&gt;
&lt;strong&gt;3:45 pm&lt;br&gt;
&lt;/strong&gt;Killer Performance Tips for Silverlight Windows Phone 7&lt;br&gt;
Jaime Rodriguez 
&lt;p&gt;
After Party! 
&lt;p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;em&gt;Spread the Word! &lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blog and tweet to spread the
word about the Firestarter! 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ask people to add the Twitter
hash tag &lt;strong&gt;#slfs10&lt;/strong&gt; to their tweets 
&lt;p&gt;
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use the banners and blog bling
(attached) 
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Questions&lt;/em&gt;&lt;/strong&gt; 
&lt;p&gt;
Got questions? Ask &lt;a href="mailto:slfs@microsoft.com"&gt;&lt;strong&gt;slfs@microsoft.com&lt;/strong&gt;&lt;/a&gt;&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a866dca3-e710-4749-8b38-84fa4e87b934" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,a866dca3-e710-4749-8b38-84fa4e87b934.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=bcb2a2c7-7aa7-4845-8031-135ce109b221</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,bcb2a2c7-7aa7-4845-8031-135ce109b221.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,bcb2a2c7-7aa7-4845-8031-135ce109b221.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=bcb2a2c7-7aa7-4845-8031-135ce109b221</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This Wednesday, on October 27th, I’ll be doing another webinar for SilverlightShow.net.
Like always, these are free to attend. The topic for this webinar is <strong>“10 Tips
in Silverlight”</strong>. If you attend, you can win a copy of my book, <a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank">Silverlight
4 data and services cookbook</a> (which keeps getting <a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" target="_blank">great
reviews</a> by the way :) ).
</p>
        <p>
The tips that you’ll see are the following:
</p>
        <ol>
          <li>
Behaviors 
</li>
          <li>
PathListBox 
</li>
          <li>
Binding tricks 
</li>
          <li>
INavigationContentLoader 
</li>
          <li>
Debugging services 
</li>
          <li>
Securing service communication 
</li>
          <li>
Leveraging ASP.NET membership 
</li>
          <li>
Uploading and downloading files 
</li>
          <li>
Downloading functionality on-demand 
</li>
          <li>
Bag of tricks</li>
        </ol>
        <p>
Registration is free but required, you can register <a href="http://www.silverlightshow.net/news/Upcoming-Webinar-with-Gill-Cleeren-10-things-you-didn-t-know-about-Silverlight-4.aspx" target="_blank">here</a>.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bcb2a2c7-7aa7-4845-8031-135ce109b221" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Upcoming webinar: 10 tips in Silverlight</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,bcb2a2c7-7aa7-4845-8031-135ce109b221.aspx</guid>
      <link>http://www.snowball.be/2010/10/25/Upcoming+Webinar+10+Tips+In+Silverlight.aspx</link>
      <pubDate>Mon, 25 Oct 2010 21:47:24 GMT</pubDate>
      <description>&lt;p&gt;
This Wednesday, on October 27th, I’ll be doing another webinar for SilverlightShow.net.
Like always, these are free to attend. The topic for this webinar is &lt;strong&gt;“10 Tips
in Silverlight”&lt;/strong&gt;. If you attend, you can win a copy of my book, &lt;a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank"&gt;Silverlight
4 data and services cookbook&lt;/a&gt; (which keeps getting &lt;a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" target="_blank"&gt;great
reviews&lt;/a&gt; by the way :) ).
&lt;/p&gt;
&lt;p&gt;
The tips that you’ll see are the following:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Behaviors 
&lt;li&gt;
PathListBox 
&lt;li&gt;
Binding tricks 
&lt;li&gt;
INavigationContentLoader 
&lt;li&gt;
Debugging services 
&lt;li&gt;
Securing service communication 
&lt;li&gt;
Leveraging ASP.NET membership 
&lt;li&gt;
Uploading and downloading files 
&lt;li&gt;
Downloading functionality on-demand 
&lt;li&gt;
Bag of tricks&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Registration is free but required, you can register &lt;a href="http://www.silverlightshow.net/news/Upcoming-Webinar-with-Gill-Cleeren-10-things-you-didn-t-know-about-Silverlight-4.aspx" target="_blank"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bcb2a2c7-7aa7-4845-8031-135ce109b221" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,bcb2a2c7-7aa7-4845-8031-135ce109b221.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=24a05479-aa4d-4a76-a3dd-7d510119c63c</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,24a05479-aa4d-4a76-a3dd-7d510119c63c.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,24a05479-aa4d-4a76-a3dd-7d510119c63c.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=24a05479-aa4d-4a76-a3dd-7d510119c63c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After some time, I’m glad to announce that the official, <strong>world-renowned </strong><a href="http://www.silverlight-tour.com/" target="_blank"><strong>Silverlight
Tour</strong></a> is coming to <strong>Belgium, the Netherlands, the UK and more countries</strong>,
organized by<strong></strong><a href="http://www.ordina.be" target="_blank"><strong>Ordina
Belgium</strong></a>. The second thing I’m glad about is that<strong> I’ll be the
instructor for this training! </strong></p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/AnnouncingSilverlightTouriscomingtoEurop_D556/SilverlightTour_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SilverlightTour" border="0" alt="SilverlightTour" src="http://www.snowball.be/content/binary/WindowsLiveWriter/AnnouncingSilverlightTouriscomingtoEurop_D556/SilverlightTour_thumb.png" width="238" height="104" />
          </a>
        </p>
        <p>
The most important link for all this: <a href="http://bit.ly/SilverlightTour"><strong>http://bit.ly/SilverlightTour</strong></a>,
where you can find all <strong>information, registration and prices</strong>. Currently,
we have an <strong>early bird</strong> offering ending in a few weeks for the first
batch of sessions. 
</p>
        <p>
          <strong>What is Silverlight Tour?</strong>
        </p>
        <p>
The Silverlight Tour Workshop is a three-day course on Silverlight 4, given all around
the world throughout the USA, Asia and South-America. Ordina will organize the training
in several European countries starting Q4 2010. 
</p>
        <p>
The training divides the content into three distinct areas: Design, Development and
the Server-Side. Students should be able to develop Silverlight 4 applications once
attending the workshop. The Workshop is structured with a mix of didactic lessons,
demonstrations and hands-on labs. 
</p>
        <p>
Each student will leave the workshop having created several small Silverlight applications.
This variety of learning techniques will ensure that all students become proficient
in the technology quickly and in an exciting way. 
</p>
        <p>
          <strong>Key values of Silverlight Tour</strong>
        </p>
        <ul>
          <li>
Learning Silverlight from an expert in the technology 
</li>
          <li>
Hands-on labs with Visual Studio and Blend make sure you get to apply your acquired
knowledge 
</li>
          <li>
Architect Silverlight applications 
</li>
          <li>
Learn about LOB features such as data access and data binding 
</li>
        </ul>
        <p>
          <strong>Why Silverlight?</strong>
        </p>
        <p>
Silverlight is Microsoft's approach to building RIA (Rich Internet Applications).
The platform has since its introduction, taken the world by storm. Now at its fourth
iteration, Silverlight is ready for building Line-Of-Business applications, building
on the strong foundation of .NET. 
</p>
        <p>
Now is the time to learn Silverlight! Not only is Microsoft investing heavily in the
platform, but Silverlight is also the base for Windows Phone 7, Microsoft's new mobile
platform. And with WPF as the desktop variant, you can apply your knowledge on the
web, on the desktop and on mobile devices. 
</p>
        <p>
The Silverlight Tour can help you achieve the knowledge you need to start building
Silverlight applications today! 
</p>
        <p>
          <strong>Our offering</strong>
        </p>
        <p>
The Silverlight Tour comes in 2 flavors, depending on your Silverlight knowledge. 
</p>
        <p>
If you don't have any experience with Silverlight yet, the Silverlight 4 Tour workshop
is ideal for you. In this 3 day course, we are starting from scratch, teaching you
the foundation for your Silverlight endeavours. After this training, you'll feel comfortable
with the technology and can start building your own applications. 
</p>
        <p>
If you already have some experience with the platform, or you just followed the Silverlight
4 Tour, we advise you the Advanced Silverlight 4 workshop. In this 2 day training,
we'll tackle the more advanced concepts such as MVVM, advanced data access and IOC. 
</p>
        <p>
We offer the combined course (Silverlight 4 Tour Workshop + Advanced Silverlight 4
workshop) at a reduced price. <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=24a05479-aa4d-4a76-a3dd-7d510119c63c" /><br /><hr />
Snowball.be - The blog of Gill Cleeren 
</p>
      </body>
      <title>Announcing: Silverlight Tour is coming to European countries now!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,24a05479-aa4d-4a76-a3dd-7d510119c63c.aspx</guid>
      <link>http://www.snowball.be/2010/10/11/Announcing+Silverlight+Tour+Is+Coming+To+European+Countries+Now.aspx</link>
      <pubDate>Mon, 11 Oct 2010 13:10:14 GMT</pubDate>
      <description>&lt;p&gt;
After some time, I’m glad to announce that the official, &lt;strong&gt;world-renowned &lt;/strong&gt;&lt;a href="http://www.silverlight-tour.com/" target="_blank"&gt;&lt;strong&gt;Silverlight
Tour&lt;/strong&gt;&lt;/a&gt; is coming to &lt;strong&gt;Belgium, the Netherlands, the UK and more countries&lt;/strong&gt;,
organized by&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://www.ordina.be" target="_blank"&gt;&lt;strong&gt;Ordina
Belgium&lt;/strong&gt;&lt;/a&gt;. The second thing I’m glad about is that&lt;strong&gt; I’ll be the
instructor for this training! &lt;/strong&gt; 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/AnnouncingSilverlightTouriscomingtoEurop_D556/SilverlightTour_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SilverlightTour" border="0" alt="SilverlightTour" src="http://www.snowball.be/content/binary/WindowsLiveWriter/AnnouncingSilverlightTouriscomingtoEurop_D556/SilverlightTour_thumb.png" width="238" height="104"&gt;&lt;/a&gt; 
&lt;p&gt;
The most important link for all this: &lt;a href="http://bit.ly/SilverlightTour"&gt;&lt;strong&gt;http://bit.ly/SilverlightTour&lt;/strong&gt;&lt;/a&gt;,
where you can find all &lt;strong&gt;information, registration and prices&lt;/strong&gt;. Currently,
we have an &lt;strong&gt;early bird&lt;/strong&gt; offering ending in a few weeks for the first
batch of sessions. 
&lt;p&gt;
&lt;strong&gt;What is Silverlight Tour?&lt;/strong&gt; 
&lt;p&gt;
The Silverlight Tour Workshop is a three-day course on Silverlight 4, given all around
the world throughout the USA, Asia and South-America. Ordina will organize the training
in several European countries starting Q4 2010. 
&lt;p&gt;
The training divides the content into three distinct areas: Design, Development and
the Server-Side. Students should be able to develop Silverlight 4 applications once
attending the workshop. The Workshop is structured with a mix of didactic lessons,
demonstrations and hands-on labs. 
&lt;p&gt;
Each student will leave the workshop having created several small Silverlight applications.
This variety of learning techniques will ensure that all students become proficient
in the technology quickly and in an exciting way. 
&lt;p&gt;
&lt;strong&gt;Key values of Silverlight Tour&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Learning Silverlight from an expert in the technology 
&lt;li&gt;
Hands-on labs with Visual Studio and Blend make sure you get to apply your acquired
knowledge 
&lt;li&gt;
Architect Silverlight applications 
&lt;li&gt;
Learn about LOB features such as data access and data binding 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why Silverlight?&lt;/strong&gt; 
&lt;p&gt;
Silverlight is Microsoft's approach to building RIA (Rich Internet Applications).
The platform has since its introduction, taken the world by storm. Now at its fourth
iteration, Silverlight is ready for building Line-Of-Business applications, building
on the strong foundation of .NET. 
&lt;p&gt;
Now is the time to learn Silverlight! Not only is Microsoft investing heavily in the
platform, but Silverlight is also the base for Windows Phone 7, Microsoft's new mobile
platform. And with WPF as the desktop variant, you can apply your knowledge on the
web, on the desktop and on mobile devices. 
&lt;p&gt;
The Silverlight Tour can help you achieve the knowledge you need to start building
Silverlight applications today! 
&lt;p&gt;
&lt;strong&gt;Our offering&lt;/strong&gt; 
&lt;p&gt;
The Silverlight Tour comes in 2 flavors, depending on your Silverlight knowledge. 
&lt;p&gt;
If you don't have any experience with Silverlight yet, the Silverlight 4 Tour workshop
is ideal for you. In this 3 day course, we are starting from scratch, teaching you
the foundation for your Silverlight endeavours. After this training, you'll feel comfortable
with the technology and can start building your own applications. 
&lt;p&gt;
If you already have some experience with the platform, or you just followed the Silverlight
4 Tour, we advise you the Advanced Silverlight 4 workshop. In this 2 day training,
we'll tackle the more advanced concepts such as MVVM, advanced data access and IOC. 
&lt;p&gt;
We offer the combined course (Silverlight 4 Tour Workshop + Advanced Silverlight 4
workshop) at a reduced price. &lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=24a05479-aa4d-4a76-a3dd-7d510119c63c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,24a05479-aa4d-4a76-a3dd-7d510119c63c.aspx</comments>
      <category>.net 3.5</category>
      <category>.NET 4</category>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=7ef87c78-e5a5-453d-9a52-dea91f2d1596</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,7ef87c78-e5a5-453d-9a52-dea91f2d1596.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,7ef87c78-e5a5-453d-9a52-dea91f2d1596.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=7ef87c78-e5a5-453d-9a52-dea91f2d1596</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, I arrived back home after touring Sweden for a week. I gave presentations
in Malmö, Stockholm, Örebro and Götherborg. Each session was attended by a great number
of developers, all members of Swenug. The sessions were sponsored by the people at
Telerik: at each session, I got to give away some cool prices from Telerik, including
in each city a Telerik Ultimate Collection!
</p>
        <p>
Malmo pictures
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0405.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0405" border="0" alt="IMG_0405" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0405_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0406.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0406" border="0" alt="IMG_0406" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0406_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
Stockholm pictures
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0407.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0407" border="0" alt="IMG_0407" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0407_thumb.jpg" width="184" height="244" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0408.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0408" border="0" alt="IMG_0408" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0408_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0409.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0409" border="0" alt="IMG_0409" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0409_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0410.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0410" border="0" alt="IMG_0410" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0410_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
Örebro pictures
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0422.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0422" border="0" alt="IMG_0422" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0422_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0423.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0423" border="0" alt="IMG_0423" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0423_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0424.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0424" border="0" alt="IMG_0424" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0424_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0425.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0425" border="0" alt="IMG_0425" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0425_thumb.jpg" width="184" height="244" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0426.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0426" border="0" alt="IMG_0426" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0426_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0427.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0427" border="0" alt="IMG_0427" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0427_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
Göthenburg pictures
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0438.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0438" border="0" alt="IMG_0438" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0438_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0440.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0440" border="0" alt="IMG_0440" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0440_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0441.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0441" border="0" alt="IMG_0441" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0441_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0442.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0442" border="0" alt="IMG_0442" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0442_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0443.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0443" border="0" alt="IMG_0443" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0443_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0444.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0444" border="0" alt="IMG_0444" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0444_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0445.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0445" border="0" alt="IMG_0445" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0445_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0446.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0446" border="0" alt="IMG_0446" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0446_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
In the meantime, here are the <a href="http://www.snowball.be/data/presentations/SilverlightSweden/SilverlightRoadshow.zip" target="_blank">downloads
for the sessions</a>, including all demos and slide decks.
</p>
        <p>
I hope to be back in Sweden very soon! If you have any questions or remarks, please
let me know!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7ef87c78-e5a5-453d-9a52-dea91f2d1596" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Telerik Silverlight Sweden roadshow was a success!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,7ef87c78-e5a5-453d-9a52-dea91f2d1596.aspx</guid>
      <link>http://www.snowball.be/2010/10/11/Telerik+Silverlight+Sweden+Roadshow+Was+A+Success.aspx</link>
      <pubDate>Mon, 11 Oct 2010 12:58:33 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, I arrived back home after touring Sweden for a week. I gave presentations
in Malmö, Stockholm, Örebro and Götherborg. Each session was attended by a great number
of developers, all members of Swenug. The sessions were sponsored by the people at
Telerik: at each session, I got to give away some cool prices from Telerik, including
in each city a Telerik Ultimate Collection!
&lt;/p&gt;
&lt;p&gt;
Malmo pictures
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0405.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0405" border="0" alt="IMG_0405" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0405_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0406.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0406" border="0" alt="IMG_0406" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0406_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Stockholm pictures
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0407.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0407" border="0" alt="IMG_0407" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0407_thumb.jpg" width="184" height="244"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0408.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0408" border="0" alt="IMG_0408" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0408_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0409.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0409" border="0" alt="IMG_0409" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0409_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0410.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0410" border="0" alt="IMG_0410" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0410_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Örebro pictures
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0422.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0422" border="0" alt="IMG_0422" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0422_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0423.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0423" border="0" alt="IMG_0423" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0423_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0424.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0424" border="0" alt="IMG_0424" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0424_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0425.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0425" border="0" alt="IMG_0425" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0425_thumb.jpg" width="184" height="244"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0426.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0426" border="0" alt="IMG_0426" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0426_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0427.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0427" border="0" alt="IMG_0427" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0427_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Göthenburg pictures
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0438.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0438" border="0" alt="IMG_0438" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0438_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0440.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0440" border="0" alt="IMG_0440" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0440_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0441.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0441" border="0" alt="IMG_0441" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0441_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0442.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0442" border="0" alt="IMG_0442" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0442_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0443.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0443" border="0" alt="IMG_0443" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0443_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0444.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0444" border="0" alt="IMG_0444" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0444_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0445.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0445" border="0" alt="IMG_0445" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0445_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0446.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0446" border="0" alt="IMG_0446" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TelerikSilverlightSwedenroadshowwasasucc_D299/IMG_0446_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the meantime, here are the &lt;a href="http://www.snowball.be/data/presentations/SilverlightSweden/SilverlightRoadshow.zip" target="_blank"&gt;downloads
for the sessions&lt;/a&gt;, including all demos and slide decks.
&lt;/p&gt;
&lt;p&gt;
I hope to be back in Sweden very soon! If you have any questions or remarks, please
let me know!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7ef87c78-e5a5-453d-9a52-dea91f2d1596" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,7ef87c78-e5a5-453d-9a52-dea91f2d1596.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Silverlight</category>
      <category>sl4</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=19597a9a-f3a4-4959-8677-e66cc5d10a55</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,19597a9a-f3a4-4959-8677-e66cc5d10a55.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,19597a9a-f3a4-4959-8677-e66cc5d10a55.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=19597a9a-f3a4-4959-8677-e66cc5d10a55</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, I gave a presentation at ReMix 2010 in Belgium, the third edition of this
annual Microsoft event. My talk, Building an end-to-end Silverlight 4 application
– Writing your Christmas Cards with Silverlight, was focused around the new and existing
features in Silverlight 4, helping developers building Silverlight Line-Of-Business
applications. These included data access, data binding, hardware access, drag and
drop, right-clicking, Out-Of-Browser and Trusted applications.
</p>
        <p>
The slide deck can be downloaded <a href="http://www.snowball.be/data/Presentations/ReMix2010/ReMix 2010 - Building an end-to-end Silverlight 4 application.pptx" temp_href="http://www.snowball.be/data/Presentations/ReMix2010/ReMix 2010 - Building an end-to-end Silverlight 4 application.pptx">here</a> and
the entire demo can be found <a href="http://www.snowball.be/data/presentations/ReMix2010/TDD.ChristmasCreator.zip">here</a>.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=19597a9a-f3a4-4959-8677-e66cc5d10a55" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>ReMix 2010 demo and slide deck</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,19597a9a-f3a4-4959-8677-e66cc5d10a55.aspx</guid>
      <link>http://www.snowball.be/2010/09/29/ReMix+2010+Demo+And+Slide+Deck.aspx</link>
      <pubDate>Wed, 29 Sep 2010 08:20:40 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, I gave a presentation at ReMix 2010 in Belgium, the third edition of this
annual Microsoft event. My talk, Building an end-to-end Silverlight 4 application
– Writing your Christmas Cards with Silverlight, was focused around the new and existing
features in Silverlight 4, helping developers building Silverlight Line-Of-Business
applications. These included data access, data binding, hardware access, drag and
drop, right-clicking, Out-Of-Browser and Trusted applications.
&lt;/p&gt;
&lt;p&gt;
The slide deck can be downloaded &lt;a href="http://www.snowball.be/data/Presentations/ReMix2010/ReMix 2010 - Building an end-to-end Silverlight 4 application.pptx" temp_href="http://www.snowball.be/data/Presentations/ReMix2010/ReMix 2010 - Building an end-to-end Silverlight 4 application.pptx"&gt;here&lt;/a&gt; and
the entire demo can be found &lt;a href="http://www.snowball.be/data/presentations/ReMix2010/TDD.ChristmasCreator.zip"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=19597a9a-f3a4-4959-8677-e66cc5d10a55" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,19597a9a-f3a4-4959-8677-e66cc5d10a55.aspx</comments>
      <category>.NET 4</category>
      <category>Efficiency</category>
      <category>ppt</category>
      <category>Silverlight</category>
      <category>sl4</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=2b930ec4-f371-4a35-91ad-ae1091dfacc7</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,2b930ec4-f371-4a35-91ad-ae1091dfacc7.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,2b930ec4-f371-4a35-91ad-ae1091dfacc7.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=2b930ec4-f371-4a35-91ad-ae1091dfacc7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_3.png" width="656" height="186" />
        </p>
        <p>
Dear readers, I’m excited to announce the launch of <a href="http://www.dotnetshow.be/" target="_blank"><strong>.NET
Show</strong></a>, the <strong>Belgian podcast for .NET developers</strong>. I’ve
been working on this project for some time now and today, we are launching <a href="http://www.dotnetshow.be/" target="_blank">the
site</a> AND <a href="http://www.dotnetshow.be/post/Show-1-The-one-with-Maarten-Balliauw-and-Windows-Azure.aspx" target="_blank">the
first episode</a>!
</p>
        <p>
          <strong>What is .NET Show?</strong>
        </p>
        <p>
Together with Katrien De Graeve, I’ll be recording podcasts on .NET development (in
the broad sense of the word, so everything related to .NET) from now on. Our goal
is bringing you in contact with all corners of the Microsoft development stack, from
Silverlight to Azure, from COM interop to ALM... In our podcasts, we are focusing
(initially at least) on local guests and we will be doing most shows in Dutch. This
way, we can differentiate ourselves from the numerous podcasts already available.
The topics, while on .NET of course, can be something that the guests has been working
on (a professional project, a hobby project), a technology you have been investigating,
something you think that can be interesting for others to hear about etc.
</p>
        <p>
The first first episode can be downloaded already. In this first episode, we are talking
with Maarten Balliauw on Windows Azure and the Microsoft cloud strategy in general.<br />
In episode 2, which we’ll put online in the coming week, I’m talking with Pieter Gheysens
on ALM (Application Lifecycle Management) in Visual Studio 2010. And in episode 3,
I’m sitting down with my co-author Kevin Dockx and we will be discussing WCF RIA Services
in real-life projects.
</p>
        <p>
If you are interested in doing a podcast, let me know! Send me a mail at <a href="mailto:dotnetshow@snowball.be">dotnetshow@snowball.be</a> and
I’ll contact you. If you have any remarks or questions, send them to that address
as well!
</p>
        <p>
So, with that, I hope you’ll enjoy our podcasts! Head over to <a href="http://www.dotnetshow.be"><strong>www.dotnetshow.be</strong></a> where
you can find the first episode. If you want (and I know you will) to subscribe via
iTunes or another podcast downloader, use this link: <a href="http://www.dotnetshow.be/syndication.axd" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="podcastIcon" border="0" alt="podcastIcon" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/podcastIcon_3.jpg" width="105" height="88" /></a>To
add .NET Show to iTunes, go to Advanced – Subscribe to Podcast:<br /><a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_thumb_1.png" width="244" height="74" /></a></p>
        <p>
In the window that appears, enter the following URL: <a title="http://www.dotnetshow.be/syndication.axd" href="http://www.dotnetshow.be/syndication.axd">http://www.dotnetshow.be/syndication.axd</a>:
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/SNAGHTML304f17f.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SNAGHTML304f17f" border="0" alt="SNAGHTML304f17f" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/SNAGHTML304f17f_thumb.png" width="244" height="124" />
          </a>
        </p>
        <p>
.NET Show will now appear in your subscribed podcasts!
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_7.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_thumb_2.png" width="244" height="180" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=2b930ec4-f371-4a35-91ad-ae1091dfacc7" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Announcing .NET Show, the Belgian podcast for .NET developers</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,2b930ec4-f371-4a35-91ad-ae1091dfacc7.aspx</guid>
      <link>http://www.snowball.be/2010/09/26/Announcing+NET+Show+The+Belgian+Podcast+For+NET+Developers.aspx</link>
      <pubDate>Sun, 26 Sep 2010 21:50:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_3.png" width="656" height="186"&gt; 
&lt;/p&gt;
&lt;p&gt;
Dear readers, I’m excited to announce the launch of &lt;a href="http://www.dotnetshow.be/" target="_blank"&gt;&lt;strong&gt;.NET
Show&lt;/strong&gt;&lt;/a&gt;, the &lt;strong&gt;Belgian podcast for .NET developers&lt;/strong&gt;. I’ve
been working on this project for some time now and today, we are launching &lt;a href="http://www.dotnetshow.be/" target="_blank"&gt;the
site&lt;/a&gt; AND &lt;a href="http://www.dotnetshow.be/post/Show-1-The-one-with-Maarten-Balliauw-and-Windows-Azure.aspx" target="_blank"&gt;the
first episode&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What is .NET Show?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Together with Katrien De Graeve, I’ll be recording podcasts on .NET development (in
the broad sense of the word, so everything related to .NET) from now on. Our goal
is bringing you in contact with all corners of the Microsoft development stack, from
Silverlight to Azure, from COM interop to ALM... In our podcasts, we are focusing
(initially at least) on local guests and we will be doing most shows in Dutch. This
way, we can differentiate ourselves from the numerous podcasts already available.
The topics, while on .NET of course, can be something that the guests has been working
on (a professional project, a hobby project), a technology you have been investigating,
something you think that can be interesting for others to hear about etc.
&lt;/p&gt;
&lt;p&gt;
The first first episode can be downloaded already. In this first episode, we are talking
with Maarten Balliauw on Windows Azure and the Microsoft cloud strategy in general.&lt;br&gt;
In episode 2, which we’ll put online in the coming week, I’m talking with Pieter Gheysens
on ALM (Application Lifecycle Management) in Visual Studio 2010. And in episode 3,
I’m sitting down with my co-author Kevin Dockx and we will be discussing WCF RIA Services
in real-life projects.
&lt;/p&gt;
&lt;p&gt;
If you are interested in doing a podcast, let me know! Send me a mail at &lt;a href="mailto:dotnetshow@snowball.be"&gt;dotnetshow@snowball.be&lt;/a&gt; and
I’ll contact you. If you have any remarks or questions, send them to that address
as well!
&lt;/p&gt;
&lt;p&gt;
So, with that, I hope you’ll enjoy our podcasts! Head over to &lt;a href="http://www.dotnetshow.be"&gt;&lt;strong&gt;www.dotnetshow.be&lt;/strong&gt;&lt;/a&gt; where
you can find the first episode. If you want (and I know you will) to subscribe via
iTunes or another podcast downloader, use this link: &lt;a href="http://www.dotnetshow.be/syndication.axd" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="podcastIcon" border="0" alt="podcastIcon" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/podcastIcon_3.jpg" width="105" height="88"&gt;&lt;/a&gt;To
add .NET Show to iTunes, go to Advanced – Subscribe to Podcast:&lt;br&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_thumb_1.png" width="244" height="74"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the window that appears, enter the following URL: &lt;a title="http://www.dotnetshow.be/syndication.axd" href="http://www.dotnetshow.be/syndication.axd"&gt;http://www.dotnetshow.be/syndication.axd&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/SNAGHTML304f17f.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SNAGHTML304f17f" border="0" alt="SNAGHTML304f17f" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/SNAGHTML304f17f_thumb.png" width="244" height="124"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
.NET Show will now appear in your subscribed podcasts!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_7.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Announcing.NETShowtheBelgi.NETdevelopers_14F3D/image_thumb_2.png" width="244" height="180"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=2b930ec4-f371-4a35-91ad-ae1091dfacc7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,2b930ec4-f371-4a35-91ad-ae1091dfacc7.aspx</comments>
      <category>.NET 4</category>
      <category>.NET Show</category>
      <category>Efficiency</category>
      <category>Speaking</category>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=b8fb7d8f-65db-40d2-9f15-917da0677d56</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,b8fb7d8f-65db-40d2-9f15-917da0677d56.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,b8fb7d8f-65db-40d2-9f15-917da0677d56.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=b8fb7d8f-65db-40d2-9f15-917da0677d56</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In April, I was in the UK for speaking at the VBUG conference and I was impressed
by a demo given by <a href="http://www.thejoyofcode.com/">Josh Twist</a>. He built
using MEF and WPF a “marketplace” application. The goal of the application was mainly
showing the dynamic capabilities of adding new functionality to an application through
MEF (or in full, the Managed Extensibility Framework for Silverlight 4).
</p>
        <p>
For a presentation I’m giving shortly, I rebuilt something similar but in Silverlight:
the MEF Marketplace in Silverlight. The setup is the following: a user gets an overview
of apps he purchased in the market place and can run these on demand. The market place
app will download the applications available to the user after the application has
started, so this app mainly is a hosting shell for the other ‘purchased” applications
to run in. Of course, the sample is a demo and can be extended quite a lot. For example,
in the current implementation, I hard-coded the list of purchased apps and there’s
no option to buy new ones. Also, it could be extended so that when new apps are purchased,
a duplex service notifies the client of this and MEF downloads the new app in the
background. 
</p>
        <p>
But, instead of talking of what could be added, let’s take a look at what I currently
built already! Here’s a screenshot of the application showing the "purchased” applications.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLaf6bd.png">
            <img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="SNAGHTMLaf6bd" border="0" alt="SNAGHTMLaf6bd" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLaf6bd_thumb.png" width="244" height="185" />
          </a>
        </p>
        <p>
And here’s one of the apps (the Flickr Image search) running inside the "market place
shell”.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLb8796.png">
            <img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="SNAGHTMLb8796" border="0" alt="SNAGHTMLb8796" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLb8796_thumb.png" width="244" height="185" />
          </a>
        </p>
        <p>
Time for some code. Let’s begin with the market place itself.
</p>
        <p>
I defined a contract interface for all applications that can be loaded in the market
place, IMarketPlaceApplication.
</p>
        <div id="codeSnippetWrapper">
          <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">
            <pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">interface</span> IMarketPlaceApplication</pre>
            <!--CRLF-->
            <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">{</pre>
            <!--CRLF-->
            <pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">
              <span style="COLOR: #0000ff">string</span> ApplicationName
{ get; }</pre>
            <!--CRLF-->
            <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">    FrameworkElement MarketPlaceIcon { get; }</pre>
            <!--CRLF-->
            <pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    FrameworkElement MainView { get; }</pre>
            <!--CRLF-->
            <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">}</pre>
            <!--CRLF-->
          </div>
        </div>
This interface defines that all my apps will (of course) have a name, a default view
which will load as the landing screen when the app is loaded (MainView.xaml) and an
icon to show in the list (MarketPlaceIcon.xaml). As these 2 latest ones are XAML files,
you can put in whatever you like. 
<p>
A very easy application that will be possible to load from MEF is the HelloWorldApplication.
The project structure of this app is as follows:
</p><p><a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_2.png"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb.png" width="244" height="118" /></a></p><p>
As you can see, there’s a class called HelloWorldApplication, which implements the
IMarketPlaceApplication and 2 xaml files. The HelloWorldApplication code is shown
below:
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[Export(<span style="COLOR: #0000ff">typeof</span>(IMarketPlaceApplication))]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">class</span> HelloWorldApplication:
IMarketPlaceApplication</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #cc6633">#region</span> IMarketPlaceApplication
Members</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">string</span> ApplicationName</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        get { <span style="COLOR: #0000ff">return</span><span style="COLOR: #006080">"Hello
MEF world"</span>; }</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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">    [Import(<span style="COLOR: #0000ff">typeof</span>(Icon))]</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> FrameworkElement
MarketPlaceIcon</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        get;</pre><!--CRLF--><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">        set;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    [Import(<span style="COLOR: #0000ff">typeof</span>(HelloWorldView))]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span> FrameworkElement
MainView</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    {</pre><!--CRLF--><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">        get;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        set;</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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"><span style="COLOR: #cc6633">#endregion</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
This is our first encounter with MEF. The first line uses the Export attribute. This
class is saying that it is available for someone to use, when someone requests an
instance of IMarketPlaceApplication. A bit further, we are using the Import attribute
on both the MarketPlaceIcon and the MainView. Here we are saying: MEF, search us a
class that’s exporting itself as type Icon and HelloWorldView respectively. 
</p><p>
These 2 latter instances will be inserted by MEF upon executing the application, that
is, if MEF finds the corresponding export. These exports can be found in the 2 XAML
files (in the code-behind). The HelloWorldView.xaml.cs code is shown next. Note the
Export attribute: we’re telling to MEF that this type can be used where an Import
is requested of the HelloWorldView type.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[Export]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">partial</span><span style="COLOR: #0000ff">class</span> HelloWorldView
: UserControl</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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"></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> HelloWorldView()</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        InitializeComponent();</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
The Icon.xaml.cs is pretty similar code-behind-wise (I think I invented that term
here): here alse we are adding an Export attribute.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[Export]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">partial</span><span style="COLOR: #0000ff">class</span> Icon
: UserControl</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span> Icon()</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    {</pre><!--CRLF--><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">        InitializeComponent();</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p>
The HelloWorldApplication is at this point a stand-alone application (it compiles
to its own XAP file), but we’ll now build the Market Place shell that will host this
app. The code download at the end of the article contains several sample applications
(a Flickr app and a Facebook app). 
</p><p>
Similar to a real market place application, our implementation will get a list of
apps you purchased previously. Only these are available to you and will be shown.
To get this list, I wrote a basic Silverlight-enabled WCF service that fetches this
list of available applications. This service is hosted in this case in the hosting
website. The code below shows this service, which in this case returns a hard-coded
list of apps (note that I have some more apps already added here).
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[ServiceContract(Namespace = <span style="COLOR: #006080">""</span>)]</pre><!--CRLF--><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">[AspNetCompatibilityRequirements(RequirementsMode = </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    AspNetCompatibilityRequirementsMode.Allowed)]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">class</span> MarketPlaceService</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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">    [OperationContract]</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> List&lt;MefApplication&gt;
GetAvailableApplicationsForUser()</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">return</span><span style="COLOR: #0000ff">new</span> List&lt;MefApplication&gt;()</pre><!--CRLF--><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">        {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">new</span> MefApplication(){ApplicationName=<span style="COLOR: #006080">"Flickr
Image Search"</span>, </pre><!--CRLF--><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">                XapFileName=<span style="COLOR: #006080">"FlickImageSearch.xap"</span>}, </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">new</span> MefApplication(){ApplicationName=<span style="COLOR: #006080">"Hello
World"</span>, </pre><!--CRLF--><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">                XapFileName=<span style="COLOR: #006080">"HelloWorldApplication.xap"</span>},</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">new</span> MefApplication(){ApplicationName=<span style="COLOR: #006080">"MEFacebook"</span>, </pre><!--CRLF--><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">                XapFileName=<span style="COLOR: #006080">"FacebookApplication.xap"</span>}</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        };</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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"><span style="COLOR: #008000">//
Add more operations here and mark them with [OperationContract]</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[DataContract]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">class</span> MefApplication</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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">    [DataMember]</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">string</span> ApplicationName
{ get; set; }</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    [DataMember]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span><span style="COLOR: #0000ff">string</span> XapFileName
{ get; set; }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
The service uses the MefApplication class as a helper class: it contains the name
of the application and more importantly, the name of the XAP file (this could easily
be replaced with a Uri to the XAP file).
</p><p>
In the MefMarketPlace, the Silverlight Market Place application, we can create a web
reference to this service. In the App.xaml.cs, I add a call to a new method, DownloadMyApplicationList():
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">private</span><span style="COLOR: #0000ff">void</span> Application_Startup(<span style="COLOR: #0000ff">object</span> sender,
StartupEventArgs e)</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    DownloadMyApplicationsList();</pre><!--CRLF--><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"><span style="COLOR: #0000ff">this</span>.RootVisual
= <span style="COLOR: #0000ff">new</span> MainPage();</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p></p><p>
This new method makes the service call to get a list of available XAPs that I can
use (apps that I purchased).
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">void</span> DownloadMyApplicationsList()</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    AggregateCatalog = <span style="COLOR: #0000ff">new</span> AggregateCatalog();</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    container = <span style="COLOR: #0000ff">new</span> CompositionContainer(<span style="COLOR: #0000ff">this</span>.AggregateCatalog);</pre><!--CRLF--><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">    CompositionHost.Initialize(container);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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">    MarketPlaceService.MarketPlaceServiceClient client = </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">new</span> MarketPlaceService.MarketPlaceServiceClient();</pre><!--CRLF--><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">    client.GetAvailableApplicationsForUserCompleted += </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">new</span> EventHandler&lt;MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs&gt;</pre><!--CRLF--><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">            (client_GetAvailableApplicationsForUserCompleted);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    client.GetAvailableApplicationsForUserAsync();</pre><!--CRLF--><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">}</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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"><span style="COLOR: #0000ff">void</span> client_GetAvailableApplicationsForUserCompleted(<span style="COLOR: #0000ff">object</span> sender, </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs e)</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (e.Error
== <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        AvailableApplicationsForUser = e.Result;</pre><!--CRLF--><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">        InitializeCatalog();</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p>
In the callback method of the service, I call InitializeCatalog(). MEF has the concept
of Catalogs: a Catalog can be used to tell MEF where it has to look for Parts. Several
types of catalogs exist in MEF for Silverlight: the TypeCatalog, the AssemblyCatalog,
the DeploymentCatalog and the AggregateCatalog. A TypeCatalog basically allows us
to register a specific type with MEF: if I want MEF to know about a certain Export,
I can register it in a TypeCatalog. An AssemblyCatalog tells MEF to look for parts
in a specific assembly. The DeploymentCatalog allows us to specify a XAP file and
MEF will look in the assemblies therein for parts. It also allows us to asynchronously
download a XAP file. An AggregateCatalog can contain any number of other catalogs
and more catalogs can be added at any time.
</p><p>
By default, if we don’t specify a Catalog for our application, MEF looks at the current
XAP file and for each assembly it finds, it creates an AssemblyCatalog. It then combines
these with an AggregateCatalog. That means that we can omit creating a catalog in
our application: in this case, MEF will create a default one for us, with something
similar to this code:
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">void</span> InitializeCatalog()</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    AggregateCatalog catalog = <span style="COLOR: #0000ff">new</span> AggregateCatalog();</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">foreach</span> (var
deployedPart <span style="COLOR: #0000ff">in</span> Deployment.Current.Parts)</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        StreamResourceInfo resourceInfo = </pre><!--CRLF--><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">            Application.GetResourceStream(<span style="COLOR: #0000ff">new</span> Uri(deployedPart.Source,
UriKind.Relative));</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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">        Assembly assembly = deployedPart.Load(resourceInfo.Stream);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        catalog.Catalogs.Add(<span style="COLOR: #0000ff">new</span> AssemblyCatalog(assembly));</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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">    CompositionHost.Initialize(catalog);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
Back to our application. If we look at the available catalogs in MEF, we can see that
the DeploymentCatalog is a good candidate for what we need: we can use it to download
a XAP file (the application that we want to load). After that, we can add each DeploymentCatalog
to an AggregateCatalog. MEF will then make these available in our application and
we can run the downloaded applications.
</p><p>
In code, this gives the following:
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">private</span> CompositionContainer
container;</pre><!--CRLF--><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"><span style="COLOR: #0000ff">void</span> InitializeCatalog()</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">foreach</span> (var
item <span style="COLOR: #0000ff">in</span> AvailableApplicationsForUser)</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        DeploymentCatalog deploymentCatalog = </pre><!--CRLF--><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"><span style="COLOR: #0000ff">new</span> DeploymentCatalog(item.XapFileName);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">this</span>.AggregateCatalog.Catalogs.Add(deploymentCatalog);</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        deploymentCatalog.DownloadCompleted += (s, e) =&gt;</pre><!--CRLF--><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">        {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #008000">//extend
to give meaningful error handling</span></pre><!--CRLF--><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"><span style="COLOR: #0000ff">if</span> (e.Error
!= <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                MessageBox.Show(e.Error.Message);</pre><!--CRLF--><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">        };</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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">        deploymentCatalog.DownloadAsync();</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    container.ComposeParts(<span style="COLOR: #0000ff">this</span>);</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p>
You can see that I use a CompositionContainer here. The container is well, like the
word says it, a container where MEF puts all the parts, shakes it up and creates/composes
parts.
</p><p>
We now have the code that runs when we start the application: it gets a list of all
the applications we can use over the service and then it downloads the XAP files of
these apps asynchronously. Each XAP file is downloaded using a DeploymentCatalog and
these are added to an AggregateCatalog. This now makes our downloaded applications
available to run.
</p><p>
Let’s now take a look at the UI where we’ll run the apps from. The following screenshot
shows the UI:
</p><p><a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_6.png"><img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_2.png" width="244" height="240" /></a></p><p>
The “Load my apps'” button on the top right will execute a command on the viewmodel
that will load all available applications in the ListBox on the left.
</p><p><a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_8.png"><img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_3.png" width="244" height="142" /></a></p><p>
When clicking on the “Load app” button, the selected application (here the Flickr
app) is loaded:
</p><p><a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_10.png"><img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_4.png" width="244" height="127" /></a></p><p>
Clicking the “Home” button unloads the app and returns us to the list screen.
</p><p>
The complete XAML listing can be found in the code download. The most important part
is shown below. Note that there’s a ContentPresenter used here and it’s bound to the
MainView property of the SelectedApplication. The latter is a property exposed on
the viewmodel (see further). If no view/app is selected, this ContentPresenter won’t
be visible and we’ll see the default UI again.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Grid</span><span style="COLOR: #ff0000">x:Name</span><span style="COLOR: #0000ff">="LayoutRoot"</span><span style="COLOR: #ff0000">Background</span><span style="COLOR: #0000ff">="Black"</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Grid.RowDefinitions</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">RowDefinition</span><span style="COLOR: #ff0000">Height</span><span style="COLOR: #0000ff">="*"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">RowDefinition</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">RowDefinition</span><span style="COLOR: #ff0000">Height</span><span style="COLOR: #0000ff">="60"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">RowDefinition</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Grid.RowDefinitions</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Grid</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        ...</pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Grid</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ContentPresenter</span><span style="COLOR: #ff0000">Content</span><span style="COLOR: #0000ff">="{Binding
SelectedApplication.MainView}"</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ContentPresenter</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Button</span><span style="COLOR: #ff0000">Grid</span>.<span style="COLOR: #ff0000">Row</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #ff0000">Content</span><span style="COLOR: #0000ff">="Home"</span><span style="COLOR: #ff0000">Margin</span><span style="COLOR: #0000ff">="10"</span><span style="COLOR: #ff0000">Background</span><span style="COLOR: #0000ff">="#FFABE3FF"</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #ff0000">Command</span><span style="COLOR: #0000ff">="{Binding
HomeCommand}"</span><span style="COLOR: #ff0000">BorderBrush</span><span style="COLOR: #0000ff">="#FF00AAFF"</span></pre><!--CRLF--><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"><span style="COLOR: #ff0000">Style</span><span style="COLOR: #0000ff">="{StaticResource
ButtonStyle1}"</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #ff0000">Width</span><span style="COLOR: #0000ff">="130"</span><span style="COLOR: #ff0000">Height</span><span style="COLOR: #0000ff">="40"</span><span style="COLOR: #ff0000">HorizontalAlignment</span><span style="COLOR: #0000ff">="Center"</span></pre><!--CRLF--><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"><span style="COLOR: #ff0000">VerticalAlignment</span><span style="COLOR: #0000ff">="Center"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">Button</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Grid</span><span style="COLOR: #0000ff">&gt;</span></pre><!--CRLF--></div></div><p>
Time to look at the viewmodel now. Probably the most important part here is the ObservableCollection&lt;IMarketPlaceApplication&gt;:
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">[ImportMany(AllowRecomposition=<span style="COLOR: #0000ff">true</span>)]</pre><!--CRLF--><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"><span style="COLOR: #0000ff">public</span> ObservableCollection&lt;IMarketPlaceApplication&gt;
Applications</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">{</pre><!--CRLF--><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">    get</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    {</pre><!--CRLF--><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"><span style="COLOR: #0000ff">return</span> _applications;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p>
The ListBox in the UI is bound to this collection and since it’s an ObservableCollection,
the UI will reflect changes to this collection. That’s important here, since the list
of available apps won’t be known after the shell contacted the service. Note that
the collection property is attributed with the ImportMany attribute. This is a sign
for MEF that more than one part that is exposing itself with the same Export attribute
(same type) is allowed. By default, this isn’t allowed since MEF wouldn’t know which
one to use. Here, we want the ImportMany since we know that more than one app will
be available and they all need to be exported as an IMarketPlaceApplication. Another
important thing to note here is the AllowRecomposition option we used here. AllowRecomposition
tells MEF that if during the run of the app more Exports become available for this
Import, it’s OK to add them, in other words, to <strong>re</strong>build the <strong>composition</strong>. 
</p><p>
The ContentPresenter in the UI bound to SelectedApplication.MainView. The SelectedApplication
property is shown next.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">private</span> IMarketPlaceApplication
_selectedApplication;</pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> IMarketPlaceApplication
SelectedApplication </pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    get</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">return</span> _selectedApplication;</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    set</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        _selectedApplication = <span style="COLOR: #0000ff">value</span>;</pre><!--CRLF--><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">        NotifyPropertyChanged(<span style="COLOR: #006080">"SelectedApplication"</span>);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p>
NotifyPropertyChanged is a simple method that raises the PropertyChanged event of
the INotifyPropertyChanged interface. 
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">private</span><span style="COLOR: #0000ff">void</span> NotifyPropertyChanged(<span style="COLOR: #0000ff">string</span> p)</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (PropertyChanged
!= <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        PropertyChanged(<span style="COLOR: #0000ff">this</span>, <span style="COLOR: #0000ff">new</span> PropertyChangedEventArgs(p));</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
The “Load apps” button in the UI is bound to the LoadAppsCommand. I use the MVVM Light
RelayCommand here. In the execute code of the ICommand, I ask MEF to satisfy the Imports
of the current class (the viewmodel). This basically tells MEF to look at the catalogs
and bring all the Export(typeof(IMarketPlaceApplication)) into the ImportMany.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> RelayCommand
LoadAppsCommand</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    get</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (_loadAppsCommand
== <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><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">        {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">            _loadAppsCommand = <span style="COLOR: #0000ff">new</span> RelayCommand(</pre><!--CRLF--><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;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    {</pre><!--CRLF--><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">                        CompositionInitializer.SatisfyImports(<span style="COLOR: #0000ff">this</span>);</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                        loaded = <span style="COLOR: #0000ff">true</span>;</pre><!--CRLF--><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">                    },</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    () =&gt;</pre><!--CRLF--><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">                    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (loaded)</pre><!--CRLF--><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"><span style="COLOR: #0000ff">return</span><span style="COLOR: #0000ff">false</span>;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">return</span><span style="COLOR: #0000ff">true</span>;</pre><!--CRLF--><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">                    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                );</pre><!--CRLF--><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">        }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">return</span> _loadAppsCommand;</pre><!--CRLF--><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">    }</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">}</pre><!--CRLF--></div></div><p>
The LoadSelectedApplicationCommand and the HomeCommand respectively set the SelectedApplication
property to the selected application in the list or null.
</p><div id="codeSnippetWrapper"><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"><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> RelayCommand&lt;IMarketPlaceApplication&gt;
LoadSelectedAppCommand</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    get</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (_loadSelectedAppCommand
== <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><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">        {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">            _loadSelectedAppCommand = <span style="COLOR: #0000ff">new</span> RelayCommand&lt;IMarketPlaceApplication&gt;(</pre><!--CRLF--><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">                    (a) =&gt; </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    { </pre><!--CRLF--><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">                        SelectedApplication = a; </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    }</pre><!--CRLF--><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">                );</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        }</pre><!--CRLF--><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"><span style="COLOR: #0000ff">return</span> _loadSelectedAppCommand;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"> </pre><!--CRLF--><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"> </pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">public</span> RelayCommand
HomeCommand</pre><!--CRLF--><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">{</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    get</pre><!--CRLF--><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">    {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"><span style="COLOR: #0000ff">if</span> (_homeCommand
== <span style="COLOR: #0000ff">null</span>)</pre><!--CRLF--><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">        {</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">            _homeCommand = <span style="COLOR: #0000ff">new</span> RelayCommand(</pre><!--CRLF--><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;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    {</pre><!--CRLF--><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">                        SelectedApplication = <span style="COLOR: #0000ff">null</span>;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">                    }</pre><!--CRLF--><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">                );</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">        }</pre><!--CRLF--><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"><span style="COLOR: #0000ff">return</span> _homeCommand;</pre><!--CRLF--><pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px">    }</pre><!--CRLF--><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">}</pre><!--CRLF--></div></div><p></p><p>
With that, we have successfully implemented the MEF Marketplace. As said in the very
beginning, this can be extended quite a lot. Add a duplex service and a buying system
that pushes a message to the client and trigger the client to download the linked
XAP file is a nice way to start. The complete file can be downloaded below.
</p><p>
Enjoy!
</p><p>
Code download: <a href="http://www.snowball.be/content/binary/MefMarketPlace.zip">MefMarketPlace.zip
(868.99 KB)</a></p><img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b8fb7d8f-65db-40d2-9f15-917da0677d56" /><br /><hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Building an app marketplace with MEF (MEF/Silverlight 4 tutorial)</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,b8fb7d8f-65db-40d2-9f15-917da0677d56.aspx</guid>
      <link>http://www.snowball.be/2010/09/04/Building+An+App+Marketplace+With+MEF+MEFSilverlight+4+Tutorial.aspx</link>
      <pubDate>Sat, 04 Sep 2010 21:25:11 GMT</pubDate>
      <description>&lt;p&gt;
In April, I was in the UK for speaking at the VBUG conference and I was impressed
by a demo given by &lt;a href="http://www.thejoyofcode.com/"&gt;Josh Twist&lt;/a&gt;. He built
using MEF and WPF a “marketplace” application. The goal of the application was mainly
showing the dynamic capabilities of adding new functionality to an application through
MEF (or in full, the Managed Extensibility Framework for Silverlight 4).
&lt;/p&gt;
&lt;p&gt;
For a presentation I’m giving shortly, I rebuilt something similar but in Silverlight:
the MEF Marketplace in Silverlight. The setup is the following: a user gets an overview
of apps he purchased in the market place and can run these on demand. The market place
app will download the applications available to the user after the application has
started, so this app mainly is a hosting shell for the other ‘purchased” applications
to run in. Of course, the sample is a demo and can be extended quite a lot. For example,
in the current implementation, I hard-coded the list of purchased apps and there’s
no option to buy new ones. Also, it could be extended so that when new apps are purchased,
a duplex service notifies the client of this and MEF downloads the new app in the
background. 
&lt;/p&gt;
&lt;p&gt;
But, instead of talking of what could be added, let’s take a look at what I currently
built already! Here’s a screenshot of the application showing the "purchased” applications.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLaf6bd.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=SNAGHTMLaf6bd border=0 alt=SNAGHTMLaf6bd src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLaf6bd_thumb.png" width=244 height=185&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
And here’s one of the apps (the Flickr Image search) running inside the "market place
shell”.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLb8796.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=SNAGHTMLb8796 border=0 alt=SNAGHTMLb8796 src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/SNAGHTMLb8796_thumb.png" width=244 height=185&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Time for some code. Let’s begin with the market place itself.
&lt;/p&gt;
&lt;p&gt;
I defined a contract interface for all applications that can be loaded in the market
place, IMarketPlaceApplication.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;interface&lt;/span&gt; IMarketPlaceApplication&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt; ApplicationName
{ get; }&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;    FrameworkElement MarketPlaceIcon { get; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    FrameworkElement MainView { get; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
This interface defines that all my apps will (of course) have a name, a default view
which will load as the landing screen when the app is loaded (MainView.xaml) and an
icon to show in the list (MarketPlaceIcon.xaml). As these 2 latest ones are XAML files,
you can put in whatever you like. 
&lt;p&gt;
A very easy application that will be possible to load from MEF is the HelloWorldApplication.
The project structure of this app is as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_2.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb.png" width=244 height=118&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
As you can see, there’s a class called HelloWorldApplication, which implements the
IMarketPlaceApplication and 2 xaml files. The HelloWorldApplication code is shown
below:
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[Export(&lt;span style="COLOR: #0000ff"&gt;typeof&lt;/span&gt;(IMarketPlaceApplication))]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; HelloWorldApplication:
IMarketPlaceApplication&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #cc6633"&gt;#region&lt;/span&gt; IMarketPlaceApplication
Members&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt; ApplicationName&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        get { &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; &lt;span style="COLOR: #006080"&gt;"Hello
MEF world"&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    [Import(&lt;span style="COLOR: #0000ff"&gt;typeof&lt;/span&gt;(Icon))]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; FrameworkElement
MarketPlaceIcon&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        get;&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;        set;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    [Import(&lt;span style="COLOR: #0000ff"&gt;typeof&lt;/span&gt;(HelloWorldView))]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; FrameworkElement
MainView&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        get;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        set;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #cc6633"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This is our first encounter with MEF. The first line uses the Export attribute. This
class is saying that it is available for someone to use, when someone requests an
instance of IMarketPlaceApplication. A bit further, we are using the Import attribute
on both the MarketPlaceIcon and the MainView. Here we are saying: MEF, search us a
class that’s exporting itself as type Icon and HelloWorldView respectively. 
&lt;/p&gt;
&lt;p&gt;
These 2 latter instances will be inserted by MEF upon executing the application, that
is, if MEF finds the corresponding export. These exports can be found in the 2 XAML
files (in the code-behind). The HelloWorldView.xaml.cs code is shown next. Note the
Export attribute: we’re telling to MEF that this type can be used where an Import
is requested of the HelloWorldView type.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[Export]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; HelloWorldView
: UserControl&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; HelloWorldView()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        InitializeComponent();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The Icon.xaml.cs is pretty similar code-behind-wise (I think I invented that term
here): here alse we are adding an Export attribute.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[Export]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; Icon
: UserControl&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; Icon()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        InitializeComponent();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The HelloWorldApplication is at this point a stand-alone application (it compiles
to its own XAP file), but we’ll now build the Market Place shell that will host this
app. The code download at the end of the article contains several sample applications
(a Flickr app and a Facebook app). 
&lt;/p&gt;
&lt;p&gt;
Similar to a real market place application, our implementation will get a list of
apps you purchased previously. Only these are available to you and will be shown.
To get this list, I wrote a basic Silverlight-enabled WCF service that fetches this
list of available applications. This service is hosted in this case in the hosting
website. The code below shows this service, which in this case returns a hard-coded
list of apps (note that I have some more apps already added here).
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[ServiceContract(Namespace = &lt;span style="COLOR: #006080"&gt;""&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[AspNetCompatibilityRequirements(RequirementsMode = &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    AspNetCompatibilityRequirementsMode.Allowed)]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; MarketPlaceService&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    [OperationContract]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;MefApplication&amp;gt;
GetAvailableApplicationsForUser()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;MefApplication&amp;gt;()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; MefApplication(){ApplicationName=&lt;span style="COLOR: #006080"&gt;"Flickr
Image Search"&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                XapFileName=&lt;span style="COLOR: #006080"&gt;"FlickImageSearch.xap"&lt;/span&gt;}, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; MefApplication(){ApplicationName=&lt;span style="COLOR: #006080"&gt;"Hello
World"&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                XapFileName=&lt;span style="COLOR: #006080"&gt;"HelloWorldApplication.xap"&lt;/span&gt;},&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; MefApplication(){ApplicationName=&lt;span style="COLOR: #006080"&gt;"MEFacebook"&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                XapFileName=&lt;span style="COLOR: #006080"&gt;"FacebookApplication.xap"&lt;/span&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        };&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #008000"&gt;//
Add more operations here and mark them with [OperationContract]&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[DataContract]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; MefApplication&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    [DataMember]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt; ApplicationName
{ get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    [DataMember]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt; XapFileName
{ get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The service uses the MefApplication class as a helper class: it contains the name
of the application and more importantly, the name of the XAP file (this could easily
be replaced with a Uri to the XAP file).
&lt;/p&gt;
&lt;p&gt;
In the MefMarketPlace, the Silverlight Market Place application, we can create a web
reference to this service. In the App.xaml.cs, I add a call to a new method, DownloadMyApplicationList():
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; Application_Startup(&lt;span style="COLOR: #0000ff"&gt;object&lt;/span&gt; sender,
StartupEventArgs e)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    DownloadMyApplicationsList();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;.RootVisual
= &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; MainPage();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This new method makes the service call to get a list of available XAPs that I can
use (apps that I purchased).
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; DownloadMyApplicationsList()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    AggregateCatalog = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; AggregateCatalog();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    container = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; CompositionContainer(&lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;.AggregateCatalog);&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;    CompositionHost.Initialize(container);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    MarketPlaceService.MarketPlaceServiceClient client = &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; MarketPlaceService.MarketPlaceServiceClient();&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;    client.GetAvailableApplicationsForUserCompleted += &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; EventHandler&amp;lt;MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            (client_GetAvailableApplicationsForUserCompleted);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    client.GetAvailableApplicationsForUserAsync();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; client_GetAvailableApplicationsForUserCompleted(&lt;span style="COLOR: #0000ff"&gt;object&lt;/span&gt; sender, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs e)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (e.Error
== &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        AvailableApplicationsForUser = e.Result;&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;        InitializeCatalog();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
In the callback method of the service, I call InitializeCatalog(). MEF has the concept
of Catalogs: a Catalog can be used to tell MEF where it has to look for Parts. Several
types of catalogs exist in MEF for Silverlight: the TypeCatalog, the AssemblyCatalog,
the DeploymentCatalog and the AggregateCatalog. A TypeCatalog basically allows us
to register a specific type with MEF: if I want MEF to know about a certain Export,
I can register it in a TypeCatalog. An AssemblyCatalog tells MEF to look for parts
in a specific assembly. The DeploymentCatalog allows us to specify a XAP file and
MEF will look in the assemblies therein for parts. It also allows us to asynchronously
download a XAP file. An AggregateCatalog can contain any number of other catalogs
and more catalogs can be added at any time.
&lt;/p&gt;
&lt;p&gt;
By default, if we don’t specify a Catalog for our application, MEF looks at the current
XAP file and for each assembly it finds, it creates an AssemblyCatalog. It then combines
these with an AggregateCatalog. That means that we can omit creating a catalog in
our application: in this case, MEF will create a default one for us, with something
similar to this code:
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; InitializeCatalog()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    AggregateCatalog catalog = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; AggregateCatalog();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;foreach&lt;/span&gt; (var
deployedPart &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; Deployment.Current.Parts)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        StreamResourceInfo resourceInfo = &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;            Application.GetResourceStream(&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Uri(deployedPart.Source,
UriKind.Relative));&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        Assembly assembly = deployedPart.Load(resourceInfo.Stream);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        catalog.Catalogs.Add(&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; AssemblyCatalog(assembly));&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    CompositionHost.Initialize(catalog);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Back to our application. If we look at the available catalogs in MEF, we can see that
the DeploymentCatalog is a good candidate for what we need: we can use it to download
a XAP file (the application that we want to load). After that, we can add each DeploymentCatalog
to an AggregateCatalog. MEF will then make these available in our application and
we can run the downloaded applications.
&lt;/p&gt;
&lt;p&gt;
In code, this gives the following:
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; CompositionContainer
container;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; InitializeCatalog()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;foreach&lt;/span&gt; (var
item &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; AvailableApplicationsForUser)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        DeploymentCatalog deploymentCatalog = &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; DeploymentCatalog(item.XapFileName);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;.AggregateCatalog.Catalogs.Add(deploymentCatalog);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        deploymentCatalog.DownloadCompleted += (s, e) =&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #008000"&gt;//extend
to give meaningful error handling&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (e.Error
!= &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                MessageBox.Show(e.Error.Message);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        };&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        deploymentCatalog.DownloadAsync();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    container.ComposeParts(&lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can see that I use a CompositionContainer here. The container is well, like the
word says it, a container where MEF puts all the parts, shakes it up and creates/composes
parts.
&lt;/p&gt;
&lt;p&gt;
We now have the code that runs when we start the application: it gets a list of all
the applications we can use over the service and then it downloads the XAP files of
these apps asynchronously. Each XAP file is downloaded using a DeploymentCatalog and
these are added to an AggregateCatalog. This now makes our downloaded applications
available to run.
&lt;/p&gt;
&lt;p&gt;
Let’s now take a look at the UI where we’ll run the apps from. The following screenshot
shows the UI:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_6.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_2.png" width=244 height=240&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The “Load my apps'” button on the top right will execute a command on the viewmodel
that will load all available applications in the ListBox on the left.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_8.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_3.png" width=244 height=142&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When clicking on the “Load app” button, the selected application (here the Flickr
app) is loaded:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_10.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://www.snowball.be/content/binary/WindowsLiveWriter/BuildinganappmarketplacewithMEF_867E/image_thumb_4.png" width=244 height=127&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Clicking the “Home” button unloads the app and returns us to the list screen.
&lt;/p&gt;
&lt;p&gt;
The complete XAML listing can be found in the code download. The most important part
is shown below. Note that there’s a ContentPresenter used here and it’s bound to the
MainView property of the SelectedApplication. The latter is a property exposed on
the viewmodel (see further). If no view/app is selected, this ContentPresenter won’t
be visible and we’ll see the default UI again.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="LayoutRoot"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Background&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Black"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="*"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;RowDefinition&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="60"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;RowDefinition&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        ...&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;ContentPresenter&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Content&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="{Binding
SelectedApplication.MainView}"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;ContentPresenter&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Button&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Grid&lt;/span&gt;.&lt;span style="COLOR: #ff0000"&gt;Row&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="1"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Content&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Home"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Margin&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="10"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Background&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="#FFABE3FF"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #ff0000"&gt;Command&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="{Binding
HomeCommand}"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;BorderBrush&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="#FF00AAFF"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #ff0000"&gt;Style&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="{StaticResource
ButtonStyle1}"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #ff0000"&gt;Width&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="130"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="40"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Center"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;span style="COLOR: #ff0000"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Center"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Button&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Time to look at the viewmodel now. Probably the most important part here is the ObservableCollection&amp;lt;IMarketPlaceApplication&amp;gt;:
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;[ImportMany(AllowRecomposition=&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; ObservableCollection&amp;lt;IMarketPlaceApplication&amp;gt;
Applications&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    get&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _applications;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The ListBox in the UI is bound to this collection and since it’s an ObservableCollection,
the UI will reflect changes to this collection. That’s important here, since the list
of available apps won’t be known after the shell contacted the service. Note that
the collection property is attributed with the ImportMany attribute. This is a sign
for MEF that more than one part that is exposing itself with the same Export attribute
(same type) is allowed. By default, this isn’t allowed since MEF wouldn’t know which
one to use. Here, we want the ImportMany since we know that more than one app will
be available and they all need to be exported as an IMarketPlaceApplication. Another
important thing to note here is the AllowRecomposition option we used here. AllowRecomposition
tells MEF that if during the run of the app more Exports become available for this
Import, it’s OK to add them, in other words, to &lt;strong&gt;re&lt;/strong&gt;build the &lt;strong&gt;composition&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
The ContentPresenter in the UI bound to SelectedApplication.MainView. The SelectedApplication
property is shown next.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; IMarketPlaceApplication
_selectedApplication;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; IMarketPlaceApplication
SelectedApplication &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    get&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _selectedApplication;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    set&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        _selectedApplication = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        NotifyPropertyChanged(&lt;span style="COLOR: #006080"&gt;"SelectedApplication"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
NotifyPropertyChanged is a simple method that raises the PropertyChanged event of
the INotifyPropertyChanged interface. 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; NotifyPropertyChanged(&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt; p)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (PropertyChanged
!= &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        PropertyChanged(&lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; PropertyChangedEventArgs(p));&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The “Load apps” button in the UI is bound to the LoadAppsCommand. I use the MVVM Light
RelayCommand here. In the execute code of the ICommand, I ask MEF to satisfy the Imports
of the current class (the viewmodel). This basically tells MEF to look at the catalogs
and bring all the Export(typeof(IMarketPlaceApplication)) into the ImportMany.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; RelayCommand
LoadAppsCommand&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    get&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (_loadAppsCommand
== &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            _loadAppsCommand = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; RelayCommand(&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    () =&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        CompositionInitializer.SatisfyImports(&lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        loaded = &lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    },&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    () =&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (loaded)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                            &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _loadAppsCommand;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The LoadSelectedApplicationCommand and the HomeCommand respectively set the SelectedApplication
property to the selected application in the list or null.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; RelayCommand&amp;lt;IMarketPlaceApplication&amp;gt;
LoadSelectedAppCommand&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    get&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (_loadSelectedAppCommand
== &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            _loadSelectedAppCommand = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; RelayCommand&amp;lt;IMarketPlaceApplication&amp;gt;(&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    (a) =&amp;gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    { &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        SelectedApplication = a; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _loadSelectedAppCommand;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; RelayCommand
HomeCommand&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    get&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (_homeCommand
== &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            _homeCommand = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; RelayCommand(&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    () =&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        SelectedApplication = &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _homeCommand;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
With that, we have successfully implemented the MEF Marketplace. As said in the very
beginning, this can be extended quite a lot. Add a duplex service and a buying system
that pushes a message to the client and trigger the client to download the linked
XAP file is a nice way to start. The complete file can be downloaded below.
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;p&gt;
Code download: &lt;a href="http://www.snowball.be/content/binary/MefMarketPlace.zip"&gt;MefMarketPlace.zip
(868.99 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b8fb7d8f-65db-40d2-9f15-917da0677d56" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,b8fb7d8f-65db-40d2-9f15-917da0677d56.aspx</comments>
      <category>.net</category>
      <category>.NET 4</category>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
      <category>VS2010</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=aedce2c8-6f47-4078-9db6-8183d7d368f2</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,aedce2c8-6f47-4078-9db6-8183d7d368f2.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,aedce2c8-6f47-4078-9db6-8183d7d368f2.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=aedce2c8-6f47-4078-9db6-8183d7d368f2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was looking at Amazon today and noticed that there were now already 12 reviews on
our (Kevin and myself) book, giving the book a whopping 5 star rating, which is of
course great!
</p>
        <p align="center">
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/MorepraiseformySilverlight4book_8EE4/9843_Mockupcover_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/MorepraiseformySilverlight4book_8EE4/9843_Mockupcover_thumb.jpg" width="198" height="244" />
          </a>
        </p>
        <p>
Here are some of the excerpts: 
</p>
        <p>
          <b>Ideal for those who prefer a tutorial-oriented writing style</b>, August 30, 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
HOW THIS COOKBOOK WORKED FOR ME: In contrast, this book ("Microsoft Silverlight 4
Data and Services Cookbook" from PACKT) certainly proved valuable to me by appealing
to my learning style, and delivering what was advertised on the cover. I was able
to learn a reasonable amount of SL4 specifically for handling business data, using
"Microsoft Silverlight 4 Data and Services Cookbook". The format and approach is ideal
for those among us who prefer to "cut to the chase" instead of wading through lengthy
tirades. The examples build on one another which served to reinforce key concepts
through out the book-- money well spent from my perspective. 
</p>
        <p>
          <b>Great Book for Silverlight App Development</b>, June 22, 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
*Getting ready 
<br />
*How to do it... 
<br />
*How it works... 
<br />
*There's more... 
<br />
*See also 
<br />
The ample pictures of both the Visual Studio 2010 GUI and running Silverlight applications
augment the many code samples. The section that I have appreciated the most has been
the chapter on "Talking to WCF RIA Services" as I am working on developing a better
understanding of it. 
<br />
Now that the summer is here, it's a great time to pick up a book or two to read when
you're away from your computer. If you are building or want to build applications
with Silverlight, I highly recommend this book and suggest that you get a copy for
your summer reading.
</p>
        <p>
        </p>
        <p>
          <b>Best book for Developers.</b>, July 18, 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
Best book for beginner / intermediate developers who have prior knowledge about basics
of Silverlight.
</p>
        <p>
          <b>Best Silverlight 4 Book To Date</b>, June 19, 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
I have read through every well-known Silverlight 4 book on the market. I have even
read part of Microsoft Step by Step Silverlight 4 (released yesterday 2010-06-18 on
Safari and via ebook) - In my humble opinion, this is the best Silverlight 4 book
on the market to date. Most of what I have read from the other Silverlight books is
covered in Ian Griffith's Silverlight 4 labs up on the Microsoft Silverlight 4 page.
If you want a fast track to learn Silverlight 4 and are already familiar with C# .NET,
I would recommend picking up a top rated Silverlight 3 book (I personally like books
from the Apress series - "Pro Silverlight 3" and the Silverlight 3 Business Intelligence
one (forget the exact title) - then the labs on the official Silverlight 4 website
and this book.
</p>
        <p>
          <b>life savor</b>, August 25, 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
I had to write a web-application to demo the WCF Data Service I was writing on a very
short time budget. This book was a life savor; it had all the answers I needed for
consuming the service and displaying in the datagrid. For server side programming,
both Effective REST Services and Essential WCF are great.
</p>
        <p>
          <b>The best silverlight book i've seen...</b>, 24 Aug 2010<img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
This is an excellent book, packed with step by step exercises so you learn by doing
rather than just having reading a book as thick as a house brick. Personally I would
buy this book to learn Silverlight from scratch, while its true you wont learn a great
deal about the controls but you WILL learn the most important aspects which are accessing
and displaying data. 
<br />
I've been a software developer for 6 years after University and bought so many IT
books, so far, this has been the best and most readable. I enjoyed reading and practicing
the examples in it unlike so many 20 inch thick programming beasts that you dread
opening because they just send you to sleep! 
<br />
Dont hesitate, just buy it. 
<br />
My only gripe about this book is that when I brought it I thought it was a tad expensive
at £35... But, worth it though.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <b>Concise and relevant</b>, 11 Aug 2010 <img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12" /><br />
This book covers the essentials of Silverlight and WPF with practical examples that
you are going to follow when building your real world applications. It explains WPF
binding and DataTemplates well, and what interfaces your business layer objects need
to implement to notify when changes occur. 
<br />
The recipies on WCF communication (sockets, WCF, net.tcp) are great and give examples
of when you would best use them, and cover the config file changes needed too. 
<br />
A refreshingly slim book too - lets face it, who wants a 1000+ page book covering
everything and the kitchen sink. You want a straight to the point book that covers
the essentials you would use at work and touches all the major areas. Highly recommended.
</p>
        <p>
 
</p>
        <p>
If you want to read more reviews or order my Silverlight 4 Data and services cookbook,
head to <a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=pd_sim_b_4" target="_blank">Amazon.com</a> or <a href="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1283501115&amp;sr=8-1" target="_blank">Amazon.co.uk</a> or
alternatively you can order via the <a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank">Packt
website</a> as well!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=aedce2c8-6f47-4078-9db6-8183d7d368f2" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>More praise for my Silverlight 4 book</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,aedce2c8-6f47-4078-9db6-8183d7d368f2.aspx</guid>
      <link>http://www.snowball.be/2010/09/03/More+Praise+For+My+Silverlight+4+Book.aspx</link>
      <pubDate>Fri, 03 Sep 2010 08:09:44 GMT</pubDate>
      <description>&lt;p&gt;
I was looking at Amazon today and noticed that there were now already 12 reviews on
our (Kevin and myself) book, giving the book a whopping 5 star rating, which is of
course great!
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/MorepraiseformySilverlight4book_8EE4/9843_Mockupcover_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/MorepraiseformySilverlight4book_8EE4/9843_Mockupcover_thumb.jpg" width="198" height="244"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here are some of the excerpts: 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Ideal for those who prefer a tutorial-oriented writing style&lt;/b&gt;, August 30, 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
HOW THIS COOKBOOK WORKED FOR ME: In contrast, this book ("Microsoft Silverlight 4
Data and Services Cookbook" from PACKT) certainly proved valuable to me by appealing
to my learning style, and delivering what was advertised on the cover. I was able
to learn a reasonable amount of SL4 specifically for handling business data, using
"Microsoft Silverlight 4 Data and Services Cookbook". The format and approach is ideal
for those among us who prefer to "cut to the chase" instead of wading through lengthy
tirades. The examples build on one another which served to reinforce key concepts
through out the book-- money well spent from my perspective. 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Great Book for Silverlight App Development&lt;/b&gt;, June 22, 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
*Getting ready 
&lt;br&gt;
*How to do it... 
&lt;br&gt;
*How it works... 
&lt;br&gt;
*There's more... 
&lt;br&gt;
*See also 
&lt;br&gt;
The ample pictures of both the Visual Studio 2010 GUI and running Silverlight applications
augment the many code samples. The section that I have appreciated the most has been
the chapter on "Talking to WCF RIA Services" as I am working on developing a better
understanding of it. 
&lt;br&gt;
Now that the summer is here, it's a great time to pick up a book or two to read when
you're away from your computer. If you are building or want to build applications
with Silverlight, I highly recommend this book and suggest that you get a copy for
your summer reading.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Best book for Developers.&lt;/b&gt;, July 18, 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
Best book for beginner / intermediate developers who have prior knowledge about basics
of Silverlight.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Best Silverlight 4 Book To Date&lt;/b&gt;, June 19, 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
I have read through every well-known Silverlight 4 book on the market. I have even
read part of Microsoft Step by Step Silverlight 4 (released yesterday 2010-06-18 on
Safari and via ebook) - In my humble opinion, this is the best Silverlight 4 book
on the market to date. Most of what I have read from the other Silverlight books is
covered in Ian Griffith's Silverlight 4 labs up on the Microsoft Silverlight 4 page.
If you want a fast track to learn Silverlight 4 and are already familiar with C# .NET,
I would recommend picking up a top rated Silverlight 3 book (I personally like books
from the Apress series - "Pro Silverlight 3" and the Silverlight 3 Business Intelligence
one (forget the exact title) - then the labs on the official Silverlight 4 website
and this book.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;life savor&lt;/b&gt;, August 25, 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
I had to write a web-application to demo the WCF Data Service I was writing on a very
short time budget. This book was a life savor; it had all the answers I needed for
consuming the service and displaying in the datagrid. For server side programming,
both Effective REST Services and Essential WCF are great.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;The best silverlight book i've seen...&lt;/b&gt;, 24 Aug 2010&lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
This is an excellent book, packed with step by step exercises so you learn by doing
rather than just having reading a book as thick as a house brick. Personally I would
buy this book to learn Silverlight from scratch, while its true you wont learn a great
deal about the controls but you WILL learn the most important aspects which are accessing
and displaying data. 
&lt;br&gt;
I've been a software developer for 6 years after University and bought so many IT
books, so far, this has been the best and most readable. I enjoyed reading and practicing
the examples in it unlike so many 20 inch thick programming beasts that you dread
opening because they just send you to sleep! 
&lt;br&gt;
Dont hesitate, just buy it. 
&lt;br&gt;
My only gripe about this book is that when I brought it I thought it was a tad expensive
at £35... But, worth it though.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Concise and relevant&lt;/b&gt;, 11 Aug 2010 &lt;img border="0" alt="5.0 out of 5 stars" src="http://g-ecx.images-amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0._V192240867_.gif" width="64" height="12"&gt;
&lt;br&gt;
This book covers the essentials of Silverlight and WPF with practical examples that
you are going to follow when building your real world applications. It explains WPF
binding and DataTemplates well, and what interfaces your business layer objects need
to implement to notify when changes occur. 
&lt;br&gt;
The recipies on WCF communication (sockets, WCF, net.tcp) are great and give examples
of when you would best use them, and cover the config file changes needed too. 
&lt;br&gt;
A refreshingly slim book too - lets face it, who wants a 1000+ page book covering
everything and the kitchen sink. You want a straight to the point book that covers
the essentials you would use at work and touches all the major areas. Highly recommended.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
If you want to read more reviews or order my Silverlight 4 Data and services cookbook,
head to &lt;a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=pd_sim_b_4" target="_blank"&gt;Amazon.com&lt;/a&gt; or &lt;a href="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1283501115&amp;amp;sr=8-1" target="_blank"&gt;Amazon.co.uk&lt;/a&gt; or
alternatively you can order via the &lt;a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank"&gt;Packt
website&lt;/a&gt; as well!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=aedce2c8-6f47-4078-9db6-8183d7d368f2" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,aedce2c8-6f47-4078-9db6-8183d7d368f2.aspx</comments>
      <category>Book</category>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=d587c7de-404d-4187-9c44-75fba5763453</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,d587c7de-404d-4187-9c44-75fba5763453.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,d587c7de-404d-4187-9c44-75fba5763453.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=d587c7de-404d-4187-9c44-75fba5763453</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, I gave a talk for <a href="http://www.dotned.nl/" target="_blank">DotNed.nl</a>,
the Dutch usergroup at the Ordina offices in Nieuwegein. 55 people attended the sold-out
talk, I hope you enjoyed it. Any feedback is of course welcome via mail.
</p>
        <p>
The talk, Building an end-to-end Silverlight application consisted out of 10 topics
that we often encounter when building LOB applications:
</p>
        <ul>
          <li>
1.SketchFlow 
</li>
          <li>
2.WCF RIA Services 
</li>
          <li>
3.Data binding &amp; DataGrid 
</li>
          <li>
4.MVVM 
</li>
          <li>
5.MEF 
</li>
          <li>
6.Commanding &amp; behaviors 
</li>
          <li>
7.Messaging, navigation &amp; dialogs 
</li>
          <li>
8.Custom controls &amp; third party controls 
</li>
          <li>
9.OOB 
</li>
          <li>
10.Printing</li>
        </ul>
        <p>
The ZIP file below contains the PPTX and the demos (also of the 2 topics we didn’t
cover). 
</p>
        <p>
Remember that in 2 weeks, on September 14th, I’ll be again in the Netherlands for
2 sessions for SiXin, the Silverlight usergroup. Registration for this event is free
and can be done <a href="http://www.sixin.nl/Home.aspx" target="_blank">here</a>.
</p>
        <p>
          <strong>
            <a href="http://www.snowball.be/data/presentations/dotnednl/DotNed.NL.zip" target="_blank">PPTX
&amp; demos</a>
          </strong>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d587c7de-404d-4187-9c44-75fba5763453" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Slides and demos for DotNed.nl Silverlight session</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,d587c7de-404d-4187-9c44-75fba5763453.aspx</guid>
      <link>http://www.snowball.be/2010/08/27/Slides+And+Demos+For+DotNednl+Silverlight+Session.aspx</link>
      <pubDate>Fri, 27 Aug 2010 07:54:17 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, I gave a talk for &lt;a href="http://www.dotned.nl/" target=_blank&gt;DotNed.nl&lt;/a&gt;,
the Dutch usergroup at the Ordina offices in Nieuwegein. 55 people attended the sold-out
talk, I hope you enjoyed it. Any feedback is of course welcome via mail.
&lt;/p&gt;
&lt;p&gt;
The talk, Building an end-to-end Silverlight application consisted out of 10 topics
that we often encounter when building LOB applications:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
1.SketchFlow 
&lt;li&gt;
2.WCF RIA Services 
&lt;li&gt;
3.Data binding &amp;amp; DataGrid 
&lt;li&gt;
4.MVVM 
&lt;li&gt;
5.MEF 
&lt;li&gt;
6.Commanding &amp;amp; behaviors 
&lt;li&gt;
7.Messaging, navigation &amp;amp; dialogs 
&lt;li&gt;
8.Custom controls &amp;amp; third party controls 
&lt;li&gt;
9.OOB 
&lt;li&gt;
10.Printing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The ZIP file below contains the PPTX and the demos (also of the 2 topics we didn’t
cover). 
&lt;/p&gt;
&lt;p&gt;
Remember that in 2 weeks, on September 14th, I’ll be again in the Netherlands for
2 sessions for SiXin, the Silverlight usergroup. Registration for this event is free
and can be done &lt;a href="http://www.sixin.nl/Home.aspx" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.snowball.be/data/presentations/dotnednl/DotNed.NL.zip" target=_blank&gt;PPTX
&amp;amp; demos&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d587c7de-404d-4187-9c44-75fba5763453" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,d587c7de-404d-4187-9c44-75fba5763453.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Silverlight</category>
      <category>Slide decks</category>
      <category>Speaking</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=a536b0b6-b408-4c65-a52a-8bce06db3d11</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,a536b0b6-b408-4c65-a52a-8bce06db3d11.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,a536b0b6-b408-4c65-a52a-8bce06db3d11.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=a536b0b6-b408-4c65-a52a-8bce06db3d11</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
hNext week Thursday (August 26th 2010), I’ll be presenting at DotNed.nl. The presentation
is titled <em>Building an end-to-end Silverlight 4 application</em>. As the title
says, we’ll be looking at some of the common questions (and of course answers) you’ll
have when you are faced with the challenge of building a Line-of-Business application
from scratch. 
</p>
        <p>
          <img alt="" align="left" src="http://www.dotned.nl/userfiles/image/SilverlightLogo.jpg" width="210" height="169" />
        </p>
        <p>
          <em>Bring your demo hat today, as we’ll be building an end-to-end, real life Silverlight
application during this session! Looking at Silverlight today, we easily see that
the platform is getting larger and larger, with more frameworks such as MEF being
developed on the side. Advanced features such as COM interop and printing make the
Silverlight story complete. In this session, we’ll take a look at how we can use all
members of the Silverlight family to build an end-to-end application, based on MVVM
principles.</em>
        </p>
        <p>
 
</p>
        <p>
Registration is free but mandatory and can be done on the <a href="http://www.dotned.nl/" target="_blank">DotNed.nl</a> site.
And since it’s taking place in the Ordina.NL offices, I won’t be feeling all that
strange ;-) (FYI, I work at Ordina.BE!)
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a536b0b6-b408-4c65-a52a-8bce06db3d11" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Upcoming DotNed.nl session: Building an end-to-end Silverlight application with me!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,a536b0b6-b408-4c65-a52a-8bce06db3d11.aspx</guid>
      <link>http://www.snowball.be/2010/08/19/Upcoming+DotNednl+Session+Building+An+Endtoend+Silverlight+Application+With+Me.aspx</link>
      <pubDate>Thu, 19 Aug 2010 20:06:53 GMT</pubDate>
      <description>&lt;p&gt;
hNext week Thursday (August 26th 2010), I’ll be presenting at DotNed.nl. The presentation
is titled &lt;em&gt;Building an end-to-end Silverlight 4 application&lt;/em&gt;. As the title
says, we’ll be looking at some of the common questions (and of course answers) you’ll
have when you are faced with the challenge of building a Line-of-Business application
from scratch. 
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="" align=left src="http://www.dotned.nl/userfiles/image/SilverlightLogo.jpg" width=210 height=169&gt; 
&lt;p&gt;
&lt;em&gt;Bring your demo hat today, as we’ll be building an end-to-end, real life Silverlight
application during this session! Looking at Silverlight today, we easily see that
the platform is getting larger and larger, with more frameworks such as MEF being
developed on the side. Advanced features such as COM interop and printing make the
Silverlight story complete. In this session, we’ll take a look at how we can use all
members of the Silverlight family to build an end-to-end application, based on MVVM
principles.&lt;/em&gt; 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Registration is free but mandatory and can be done on the &lt;a href="http://www.dotned.nl/" target=_blank&gt;DotNed.nl&lt;/a&gt; site.
And since it’s taking place in the Ordina.NL offices, I won’t be feeling all that
strange ;-) (FYI, I work at Ordina.BE!)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a536b0b6-b408-4c65-a52a-8bce06db3d11" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,a536b0b6-b408-4c65-a52a-8bce06db3d11.aspx</comments>
      <category>Efficiency</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=7e3c7e07-52fc-4f21-a063-5fc55d958ed3</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,7e3c7e07-52fc-4f21-a063-5fc55d958ed3.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,7e3c7e07-52fc-4f21-a063-5fc55d958ed3.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=7e3c7e07-52fc-4f21-a063-5fc55d958ed3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft just announced that all of us can help deciding which sessions will be delivered
at Tech-Ed 2010 Berlin. That's a great way of making sure that the contents is what
the public wants!
</p>
        <p>
I've ran through the list and 4 of my proposals made the shortlist (which is good
news :)). 
</p>
        <ul>
          <li>
Treasures for the C# developer in Visual Studio 2010</li>
          <li>
AJAX Tips and tricks: things you never knew that could be done in ASP.NET Ajax</li>
          <li>
Silverlight data access and services not for the faint of heart</li>
          <li>
The good, the bad and… well, that’s it: Comparing good and bad practices in Silverlight
application development</li>
        </ul>
        <p>
If you would like me to deliver one of these sessions on the upcoming Tech-Ed, please
vote for them at <a href="http://europe.msteched.com/sessionpreference">http://europe.msteched.com/sessionpreference</a> .
Of course, there are many really other interesting sessions there as well: I'm sure
this will be a great conference!
</p>
        <p>
Thanks for voting!<br /></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7e3c7e07-52fc-4f21-a063-5fc55d958ed3" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Vote for sessions at TechEd 2010 Berlin</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,7e3c7e07-52fc-4f21-a063-5fc55d958ed3.aspx</guid>
      <link>http://www.snowball.be/2010/07/13/Vote+For+Sessions+At+TechEd+2010+Berlin.aspx</link>
      <pubDate>Tue, 13 Jul 2010 21:37:55 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft just announced that all of us can help deciding which sessions will be delivered
at Tech-Ed 2010 Berlin. That's a great way of making sure that the contents is what
the public wants!
&lt;/p&gt;
&lt;p&gt;
I've ran through the list and 4 of my proposals made the shortlist (which is good
news :)). 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Treasures for the C# developer in Visual Studio 2010&lt;/li&gt;
&lt;li&gt;
AJAX Tips and tricks: things you never knew that could be done in ASP.NET Ajax&lt;/li&gt;
&lt;li&gt;
Silverlight data access and services not for the faint of heart&lt;/li&gt;
&lt;li&gt;
The good, the bad and… well, that’s it: Comparing good and bad practices in Silverlight
application development&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you would like me to deliver one of these sessions on the upcoming Tech-Ed, please
vote for them at &lt;a href="http://europe.msteched.com/sessionpreference"&gt;http://europe.msteched.com/sessionpreference&lt;/a&gt;&amp;nbsp;.
Of course, there are many really other interesting sessions there as well: I'm sure
this will be a great conference!
&lt;/p&gt;
&lt;p&gt;
Thanks for voting!&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7e3c7e07-52fc-4f21-a063-5fc55d958ed3" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,7e3c7e07-52fc-4f21-a063-5fc55d958ed3.aspx</comments>
      <category>.NET 4</category>
      <category>Efficiency</category>
      <category>Personal</category>
      <category>Silverlight</category>
      <category>Speaking</category>
      <category>TechEd</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=1ba1a400-fc7b-4e2b-8c23-a931a627ae44</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,1ba1a400-fc7b-4e2b-8c23-a931a627ae44.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,1ba1a400-fc7b-4e2b-8c23-a931a627ae44.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=1ba1a400-fc7b-4e2b-8c23-a931a627ae44</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
With my book I wrote together with Kevin Dockx, <em><a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank">Microsoft
Silverlight 4 Data and Services Cookbook</a></em>available for a couple of weeks
now, I decided to do a small search on reviews. I’ll be honest, I took all I could
find right now. 
</p>
        <p align="center">
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Thejuryhasspokensomereviewsofmybook_13706/9843_Mockupcover_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Thejuryhasspokensomereviewsofmybook_13706/9843_Mockupcover_thumb.jpg" width="198" height="244" />
          </a>
        </p>
        <p>
Here’s the ones I found:
</p>
        <p>
          <strong>Richard Costall:</strong>
        </p>
        <p>
          <em>“Microsoft Silverlight 4 Data and Services Cookbook is a great publication, and
worthy of a place any Silverlight developers bookshelf. The formula of ‘recipes’ works
well, with well explained, yet simple examples covering almost everything you’d ask
when starting out building business applications in Silverlight. It highlights Silverlight
2 and Silverlight 3 functionality differences, yet is right up to date on Silverlight
4.”</em>
        </p>
        <p>
Complete review at: <a title="http://www.nxtgenug.net/Article.aspx?ArticleID=368" href="http://www.nxtgenug.net/Article.aspx?ArticleID=368">http://www.nxtgenug.net/Article.aspx?ArticleID=368</a></p>
        <p>
          <strong>Vikram Pendse writes:</strong>
        </p>
        <p>
          <em>“My Review Comments : * * * * * (5 Stars)..Simple Amazing book !..Go and Grab
your Copy Today !!! :)</em>
        </p>
        <p>
          <em>Impressed with this Book?..want to have a look at? Ok ! What you see is what you
get ! kidding..You can download a sample chapter right away !”</em>
        </p>
        <p>
Complete review at <a title="http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html" href="http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html">http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html</a></p>
        <p>
          <strong>Damir Tomicic writes:</strong>
        </p>
        <p>
          <em>“Das Buch ist sehr praktisch geschrieben. Der Leser merkt sofort, dass Gill und
Kevin die Ansätze selbst ausprobiert und für die Leser optimiert haben. Die gewählte
Sprache ist einfach, die Beispiele auch für Anfänger geeignet. Ein guter Einstieg
in das Thema.”</em>
        </p>
        <p>
Complete review at: <a title="http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx" href="http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx">http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx</a></p>
        <p>
          <strong>Review on Amazon.com</strong>
        </p>
        <p align="left">
          <em>“Good Introduction to the Datagrid, Dataform, and different Services (4/5)”</em>
        </p>
        <p align="left">
          <em>
          </em>
          <br />
Complete review at <a title="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;showViewpoints=1" href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;showViewpoints=1">http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;showViewpoints=1</a></p>
        <p align="left">
Interested in my book as well? It is available from <a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank">Packt
Publishing</a>, <a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" target="_blank">Amazon.com</a>, <a href="http://www.amazon.co.uk/exec/obidos/ASIN/1847199844/ref=ox_ya_os_product" target="_blank">Amazon
UK</a> and many other retailers as well! I hope you enjoy it!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1ba1a400-fc7b-4e2b-8c23-a931a627ae44" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>The jury has spoken: some reviews of my book</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,1ba1a400-fc7b-4e2b-8c23-a931a627ae44.aspx</guid>
      <link>http://www.snowball.be/2010/05/22/The+Jury+Has+Spoken+Some+Reviews+Of+My+Book.aspx</link>
      <pubDate>Sat, 22 May 2010 20:06:33 GMT</pubDate>
      <description>&lt;p&gt;
With my book I wrote together with Kevin Dockx, &lt;em&gt;&lt;a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank"&gt;Microsoft
Silverlight 4 Data and Services Cookbook&lt;/a&gt; &lt;/em&gt;available for a couple of weeks
now, I decided to do a small search on reviews. I’ll be honest, I took all I could
find right now. 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Thejuryhasspokensomereviewsofmybook_13706/9843_Mockupcover_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Thejuryhasspokensomereviewsofmybook_13706/9843_Mockupcover_thumb.jpg" width="198" height="244"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here’s the ones I found:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Richard Costall:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;“Microsoft Silverlight 4 Data and Services Cookbook is a great publication, and
worthy of a place any Silverlight developers bookshelf. The formula of ‘recipes’ works
well, with well explained, yet simple examples covering almost everything you’d ask
when starting out building business applications in Silverlight. It highlights Silverlight
2 and Silverlight 3 functionality differences, yet is right up to date on Silverlight
4.”&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Complete review at: &lt;a title="http://www.nxtgenug.net/Article.aspx?ArticleID=368" href="http://www.nxtgenug.net/Article.aspx?ArticleID=368"&gt;http://www.nxtgenug.net/Article.aspx?ArticleID=368&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Vikram Pendse writes:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;“My Review Comments : * * * * * (5 Stars)..Simple Amazing book !..Go and Grab
your Copy Today !!! :)&lt;/em&gt; 
&lt;p&gt;
&lt;em&gt;Impressed with this Book?..want to have a look at? Ok ! What you see is what you
get ! kidding..You can download a sample chapter right away !”&lt;/em&gt; 
&lt;p&gt;
Complete review at &lt;a title="http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html" href="http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html"&gt;http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Damir Tomicic writes:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;“Das Buch ist sehr praktisch geschrieben. Der Leser merkt sofort, dass Gill und
Kevin die Ansätze selbst ausprobiert und für die Leser optimiert haben. Die gewählte
Sprache ist einfach, die Beispiele auch für Anfänger geeignet. Ein guter Einstieg
in das Thema.”&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Complete review at: &lt;a title="http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx" href="http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx"&gt;http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Review on Amazon.com&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;em&gt;“Good Introduction to the Datagrid, Dataform, and different Services (4/5)”&lt;/em&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;em&gt;&lt;/em&gt;
&lt;br&gt;
Complete review at &lt;a title="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1"&gt;http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1&lt;/a&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
Interested in my book as well? It is available from &lt;a href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" target="_blank"&gt;Packt
Publishing&lt;/a&gt;, &lt;a href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" target="_blank"&gt;Amazon.com&lt;/a&gt;, &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/1847199844/ref=ox_ya_os_product" target="_blank"&gt;Amazon
UK&lt;/a&gt; and many other retailers as well! I hope you enjoy it!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1ba1a400-fc7b-4e2b-8c23-a931a627ae44" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,1ba1a400-fc7b-4e2b-8c23-a931a627ae44.aspx</comments>
      <category>.NET 4</category>
      <category>Book</category>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=b7caebd0-94f5-45be-9194-1e8d13f7eec7</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,b7caebd0-94f5-45be-9194-1e8d13f7eec7.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,b7caebd0-94f5-45be-9194-1e8d13f7eec7.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=b7caebd0-94f5-45be-9194-1e8d13f7eec7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://www.communityday.be/CD/Portals/0/blogblinglarge.png" width="500" height="100" />
          </strong>
        </p>
        <p>
Community Day 2010 is coming! Registration is now open.
</p>
        <p>
No less than fourteen Microsoft user groups combine their efforts to organize this
unique <b>knowledge-sharing </b>and <b>networking</b> event. With so many new <b>Microsoft
product</b> and <b>technology releases</b>, the content of this Community Day will
be focusing on Visual Studio 2010, SharePoint 2010, Silverlight 4, Office 2010, SQL
Server 2008 R2, OCSR2, and many more!<br />
So don’t miss out on the Community Day and join us on <b>Thursday June 24th </b>in
Utopolis, <b>Mechelen</b>. We will bring together more than <b>300 IT Pro’s</b> and <b>developers</b>. 
<br />
The Community Day 2010 is brought to you by <strong>Azug, Besug, Biwug, IT-Talks Pro-Exchange,
SCUG, SQLUG, VBIB, Visug, WinSec, XNA-BUG, CLUG, MyTIC and DotNetHub</strong>. 
</p>
        <p>
Register now for free at <a href="http://www.communityday.be">www.communityday.be</a> !
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b7caebd0-94f5-45be-9194-1e8d13f7eec7" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Community Day 2010 registration open: register now!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,b7caebd0-94f5-45be-9194-1e8d13f7eec7.aspx</guid>
      <link>http://www.snowball.be/2010/05/11/Community+Day+2010+Registration+Open+Register+Now.aspx</link>
      <pubDate>Tue, 11 May 2010 09:35:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://www.communityday.be/CD/Portals/0/blogblinglarge.png" width="500" height="100"&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Community Day 2010 is coming! Registration is now open.
&lt;/p&gt;
&lt;p&gt;
No less than fourteen Microsoft user groups combine their efforts to organize this
unique &lt;b&gt;knowledge-sharing &lt;/b&gt;and &lt;b&gt;networking&lt;/b&gt; event. With so many new &lt;b&gt;Microsoft
product&lt;/b&gt; and &lt;b&gt;technology releases&lt;/b&gt;, the content of this Community Day will
be focusing on Visual Studio 2010, SharePoint 2010, Silverlight 4, Office 2010, SQL
Server 2008 R2, OCSR2, and many more!&lt;br&gt;
So don’t miss out on the Community Day and join us on &lt;b&gt;Thursday June 24th &lt;/b&gt;in
Utopolis, &lt;b&gt;Mechelen&lt;/b&gt;. We will bring together more than &lt;b&gt;300 IT Pro’s&lt;/b&gt; and &lt;b&gt;developers&lt;/b&gt;. 
&lt;br&gt;
The Community Day 2010 is brought to you by &lt;strong&gt;Azug, Besug, Biwug, IT-Talks Pro-Exchange,
SCUG, SQLUG, VBIB, Visug, WinSec, XNA-BUG, CLUG, MyTIC and DotNetHub&lt;/strong&gt;. 
&lt;p&gt;
Register now for free at &lt;a href="http://www.communityday.be"&gt;www.communityday.be&lt;/a&gt; !
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b7caebd0-94f5-45be-9194-1e8d13f7eec7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,b7caebd0-94f5-45be-9194-1e8d13f7eec7.aspx</comments>
      <category>Community Day</category>
      <category>Efficiency</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=7a2522f3-d37d-4257-8353-405aa946a7b6</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,7a2522f3-d37d-4257-8353-405aa946a7b6.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,7a2522f3-d37d-4257-8353-405aa946a7b6.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=7a2522f3-d37d-4257-8353-405aa946a7b6</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Earlier today, I got confirmation that my first book I wrote (together with Kevin
Dockx) has been published and can now be ordered, both in e-book and hard copy. This
is the new cover. The book also marks the launch of the new brand of Packt, namely
Packt Enterprise.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/MybookreleasedSilverlight4DataandService_E8A8/9843_Mockupcover_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/MybookreleasedSilverlight4DataandService_E8A8/9843_Mockupcover_thumb.jpg" width="332" height="410" />
          </a>
        </p>
        <p>
The e-book version is available from the publisher’s website: <a title="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book">https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book</a> .
On this site, you can also get a discount on the printed version.
</p>
        <p>
You can also buy the book from Amazon of course (which at this moment still lists
it as pre-order though). If you shop at Amazon.com, you can get your copy here: <a title="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844">http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844</a>.
If you rather order at Amazon UK, you can order here: <a title="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1272289229&amp;sr=8-1" href="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1272289229&amp;sr=8-1">http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1272289229&amp;sr=8-1</a>. 
</p>
        <p>
If you want to get a more in-depth look at what the book has to offer, take a look
here: <a title="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail" href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail">https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail</a> . 
</p>
        <p>
          <strong>What the book is about:</strong>
        </p>
        <p>
Silverlight 3 made a big step into Line-Of-Business applications and Silverlight 4
builds further on this. This book is not a general Silverlight 4 overview book; it
is uniquely aimed at developers who want to build data-driven applications using Silverlight.
It focuses on showing . NET developers how to interact with and handle multiple sources
of data in Silverlight business applications and how to solve particular data problems,
following a practical hands-on approach, using real-world recipes in a practical cookbook
format. The book is aimed at Silverlight 4, however most of the covered features work
both in Silverlight 3 and 4. 
</p>
        <p>
By following the practical recipes in this book, you will learn the concepts needed
to create data-rich business applications—from the basic creation of a Silverlight
application, to displaying data using data binding and upgrading your existing applications
to use Silverlight. 
</p>
        <p>
          <b>Who this book is written for:</b>
        </p>
        <p>
If you are a .NET developer who wants to build professional data-driven applications
with Silverlight, then this book is for you. Basic Silverlight experience and familiarity
with accessing data using ADO.NET in regular .NET applications is required. 
</p>
        <p>
          <b>What you will learn from this book:</b>
        </p>
        <ul>
          <li>
Display and validate data efficiently in Silverlight business applications using data
binding</li>
          <li>
Use the full power of the important data controls in Silverlight such as the DataGrid
and the DataForm</li>
          <li>
Discover how your Silverlight business applications can quickly access data residing
in a database or even Windows Azure by calling web services using XML, RSS, JSON and
more</li>
          <li>
Exchange information between Silverlight clients and WCF or ASMX services in your
Silverlight business applications</li>
          <li>
Add functionality to your Silverlight business applications by harnessing REST and
WCF Data Services</li>
          <li>
Communicate with well-known REST APIs such as Flickr and Twitter from Silverlight</li>
          <li>
Simplify your data-driven business application development with WCF RIA Services</li>
        </ul>
        <p>
You can also read some sample recipes on the Packt site here: <a title="https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight" href="https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight">https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight</a> . 
</p>
        <p>
I do hope you’ll like the book. If you have any questions on the book, don’t hesitate
to mail me at <a href="mailto:silverlight@snowball.be">silverlight@snowball.be</a> . 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7a2522f3-d37d-4257-8353-405aa946a7b6" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>My book released: Silverlight 4 Data and Services Cookbook</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,7a2522f3-d37d-4257-8353-405aa946a7b6.aspx</guid>
      <link>http://www.snowball.be/2010/04/26/My+Book+Released+Silverlight+4+Data+And+Services+Cookbook.aspx</link>
      <pubDate>Mon, 26 Apr 2010 14:32:01 GMT</pubDate>
      <description>&lt;p&gt;
Earlier today, I got confirmation that my first book I wrote (together with Kevin
Dockx) has been published and can now be ordered, both in e-book and hard copy. This
is the new cover. The book also marks the launch of the new brand of Packt, namely
Packt Enterprise.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/MybookreleasedSilverlight4DataandService_E8A8/9843_Mockupcover_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="9843_Mockupcover" border="0" alt="9843_Mockupcover" src="http://www.snowball.be/content/binary/WindowsLiveWriter/MybookreleasedSilverlight4DataandService_E8A8/9843_Mockupcover_thumb.jpg" width="332" height="410"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The e-book version is available from the publisher’s website: &lt;a title="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book" href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book"&gt;https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book&lt;/a&gt; .
On this site, you can also get a discount on the printed version.
&lt;/p&gt;
&lt;p&gt;
You can also buy the book from Amazon of course (which at this moment still lists
it as pre-order though). If you shop at Amazon.com, you can get your copy here: &lt;a title="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844" href="http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844"&gt;http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844&lt;/a&gt;.
If you rather order at Amazon UK, you can order here: &lt;a title="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1272289229&amp;amp;sr=8-1" href="http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1272289229&amp;amp;sr=8-1"&gt;http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1272289229&amp;amp;sr=8-1&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
If you want to get a more in-depth look at what the book has to offer, take a look
here: &lt;a title="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail" href="https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail"&gt;https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail&lt;/a&gt; . 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What the book is about:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Silverlight 3 made a big step into Line-Of-Business applications and Silverlight 4
builds further on this. This book is not a general Silverlight 4 overview book; it
is uniquely aimed at developers who want to build data-driven applications using Silverlight.
It focuses on showing . NET developers how to interact with and handle multiple sources
of data in Silverlight business applications and how to solve particular data problems,
following a practical hands-on approach, using real-world recipes in a practical cookbook
format. The book is aimed at Silverlight 4, however most of the covered features work
both in Silverlight 3 and 4. 
&lt;p&gt;
By following the practical recipes in this book, you will learn the concepts needed
to create data-rich business applications—from the basic creation of a Silverlight
application, to displaying data using data binding and upgrading your existing applications
to use Silverlight. 
&lt;p&gt;
&lt;b&gt;Who this book is written for:&lt;/b&gt; 
&lt;p&gt;
If you are a .NET developer who wants to build professional data-driven applications
with Silverlight, then this book is for you. Basic Silverlight experience and familiarity
with accessing data using ADO.NET in regular .NET applications is required. 
&lt;p&gt;
&lt;b&gt;What you will learn from this book:&lt;/b&gt; 
&lt;ul&gt;
&lt;li&gt;
Display and validate data efficiently in Silverlight business applications using data
binding&lt;/li&gt;
&lt;li&gt;
Use the full power of the important data controls in Silverlight such as the DataGrid
and the DataForm&lt;/li&gt;
&lt;li&gt;
Discover how your Silverlight business applications can quickly access data residing
in a database or even Windows Azure by calling web services using XML, RSS, JSON and
more&lt;/li&gt;
&lt;li&gt;
Exchange information between Silverlight clients and WCF or ASMX services in your
Silverlight business applications&lt;/li&gt;
&lt;li&gt;
Add functionality to your Silverlight business applications by harnessing REST and
WCF Data Services&lt;/li&gt;
&lt;li&gt;
Communicate with well-known REST APIs such as Flickr and Twitter from Silverlight&lt;/li&gt;
&lt;li&gt;
Simplify your data-driven business application development with WCF RIA Services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can also read some sample recipes on the Packt site here: &lt;a title="https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight" href="https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight"&gt;https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight&lt;/a&gt; . 
&lt;/p&gt;
&lt;p&gt;
I do hope you’ll like the book. If you have any questions on the book, don’t hesitate
to mail me at &lt;a href="mailto:silverlight@snowball.be"&gt;silverlight@snowball.be&lt;/a&gt; . 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7a2522f3-d37d-4257-8353-405aa946a7b6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,7a2522f3-d37d-4257-8353-405aa946a7b6.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=0e112a49-aa20-4842-a034-6d1b92682b97</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,0e112a49-aa20-4842-a034-6d1b92682b97.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,0e112a49-aa20-4842-a034-6d1b92682b97.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=0e112a49-aa20-4842-a034-6d1b92682b97</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Very often, you need to navigate to a class while coding. Perhaps a class you wrote
yourself, perhaps you just want to see the members of a type of the .NET framework.
</p>
        <p>
Visual Studio 2010 has THE ultimate feature for this, namely the Navigate To function.
What you do, is hit CTRL + , (yes, indeed the comma) and it will open the Navigate
To window, as shown below.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb.png" width="370" height="265" />
          </a>
        </p>
        <p>
This window follows the same rules as the new IntelliSense: if I’m searching for a
property “OverPaid”, I can search by typing Over… or just use OP.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb_1.png" width="376" height="227" />
          </a>
        </p>
        <p>
If you have some text already selected in the code editor, the window will perform
its search from there.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb_2.png" width="566" height="287" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0e112a49-aa20-4842-a034-6d1b92682b97" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Visual Studio 2010 Tip: Navigate to functionality</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,0e112a49-aa20-4842-a034-6d1b92682b97.aspx</guid>
      <link>http://www.snowball.be/2010/04/11/Visual+Studio+2010+Tip+Navigate+To+Functionality.aspx</link>
      <pubDate>Sun, 11 Apr 2010 22:04:55 GMT</pubDate>
      <description>&lt;p&gt;
Very often, you need to navigate to a class while coding. Perhaps a class you wrote
yourself, perhaps you just want to see the members of a type of the .NET framework.
&lt;/p&gt;
&lt;p&gt;
Visual Studio 2010 has THE ultimate feature for this, namely the Navigate To function.
What you do, is hit CTRL + , (yes, indeed the comma) and it will open the Navigate
To window, as shown below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb.png" width="370" height="265"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
This window follows the same rules as the new IntelliSense: if I’m searching for a
property “OverPaid”, I can search by typing Over… or just use OP.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb_1.png" width="376" height="227"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
If you have some text already selected in the code editor, the window will perform
its search from there.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/VisualStudio2010TipNavigatetofunctionali_143/image_thumb_2.png" width="566" height="287"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0e112a49-aa20-4842-a034-6d1b92682b97" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,0e112a49-aa20-4842-a034-6d1b92682b97.aspx</comments>
      <category>.NET 4</category>
      <category>Efficiency</category>
      <category>VS2010</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=8e6c9db0-0516-415b-be83-7413ee6b168c</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,8e6c9db0-0516-415b-be83-7413ee6b168c.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,8e6c9db0-0516-415b-be83-7413ee6b168c.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=8e6c9db0-0516-415b-be83-7413ee6b168c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just noticed now that Silverlight 4 officially hit RC, that the book I wrote (together
with Kevin Dockx) is now featured on Silverlight.net: <a title="http://www.silverlight.net/learn/books/" href="http://www.silverlight.net/learn/books/">http://www.silverlight.net/learn/books/</a> .
Really cool to be on that site!!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8e6c9db0-0516-415b-be83-7413ee6b168c" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Our book now featured on Silverlight.net</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,8e6c9db0-0516-415b-be83-7413ee6b168c.aspx</guid>
      <link>http://www.snowball.be/2010/03/15/Our+Book+Now+Featured+On+Silverlightnet.aspx</link>
      <pubDate>Mon, 15 Mar 2010 23:08:12 GMT</pubDate>
      <description>&lt;p&gt;
I just noticed now that Silverlight 4 officially hit RC, that the book I wrote (together
with Kevin Dockx) is now featured on Silverlight.net: &lt;a title="http://www.silverlight.net/learn/books/" href="http://www.silverlight.net/learn/books/"&gt;http://www.silverlight.net/learn/books/&lt;/a&gt; .
Really cool to be on that site!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8e6c9db0-0516-415b-be83-7413ee6b168c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,8e6c9db0-0516-415b-be83-7413ee6b168c.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=64a7665f-588d-46ae-b70e-3ac43fae7199</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,64a7665f-588d-46ae-b70e-3ac43fae7199.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,64a7665f-588d-46ae-b70e-3ac43fae7199.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=64a7665f-588d-46ae-b70e-3ac43fae7199</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Remember my post on printing in Silverlight 3, using the WriteableBitmap. This class
allowed to export UI elements to an image and print from there. While it was working,
it wasn’t a great way of doing things.<br /><br />
Silverlight 4 brings real printing to the table. All printing is done using the PrintDocument
class. In it’s PrintPage event, we can specify what content needs to be printed. This
can be the entire screen, a control that’s part of the visual tree or even a control
that’s generated on the fly. Finally, we use the Print() method to perform the actual
printing of the document.
</p>
        <p>
Let’s take a look at some really easy code to do all this.
</p>
        <p>
The UI code is kept simple intentionally:
</p>
        <p>
        </p>
        <div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3b8e5dfd-f9b7-4865-84d9-b10b858dda30" class="wlWriterEditableSmartContent">
          <pre style="BACKGROUND-COLOR: #ffffff; WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; OVERFLOW: auto">
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">&lt;</span>
            <span style="COLOR: #800000">Grid </span>
            <span style="COLOR: #ff0000">x:Name</span>
            <span style="COLOR: #0000ff">="LayoutRoot"</span>
            <span style="COLOR: #ff0000"> Background</span>
            <span style="COLOR: #0000ff">="White"</span>
            <span style="COLOR: #0000ff">&gt;</span>
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">&lt;</span>
            <span style="COLOR: #800000">TextBlock </span>
            <span style="COLOR: #ff0000">Height</span>
            <span style="COLOR: #0000ff">="25"</span>
            <span style="COLOR: #ff0000"> HorizontalAlignment</span>
            <span style="COLOR: #0000ff">="Left"</span>
            <span style="COLOR: #ff0000"> Margin</span>
            <span style="COLOR: #0000ff">="62,92,0,0"</span>
            <span style="COLOR: #ff0000"> Name</span>
            <span style="COLOR: #0000ff">="textBlock1"</span>
            <span style="COLOR: #ff0000"> Text</span>
            <span style="COLOR: #0000ff">="I
want to print!"</span>
            <span style="COLOR: #ff0000"> VerticalAlignment</span>
            <span style="COLOR: #0000ff">="Top"</span>
            <span style="COLOR: #ff0000"> Width</span>
            <span style="COLOR: #0000ff">="194"</span>
            <span style="COLOR: #ff0000"> FontWeight</span>
            <span style="COLOR: #0000ff">="Bold"</span>
            <span style="COLOR: #ff0000"> FontSize</span>
            <span style="COLOR: #0000ff">="15"</span>
            <span style="COLOR: #ff0000">
            </span>
            <span style="COLOR: #0000ff">/&gt;</span>
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">&lt;</span>
            <span style="COLOR: #800000">Button </span>
            <span style="COLOR: #ff0000">Content</span>
            <span style="COLOR: #0000ff">="Print"</span>
            <span style="COLOR: #ff0000"> Height</span>
            <span style="COLOR: #0000ff">="55"</span>
            <span style="COLOR: #ff0000"> HorizontalAlignment</span>
            <span style="COLOR: #0000ff">="Left"</span>
            <span style="COLOR: #ff0000"> Margin</span>
            <span style="COLOR: #0000ff">="62,213,0,0"</span>
            <span style="COLOR: #ff0000"> Name</span>
            <span style="COLOR: #0000ff">="PrintButton"</span>
            <span style="COLOR: #ff0000"> VerticalAlignment</span>
            <span style="COLOR: #0000ff">="Top"</span>
            <span style="COLOR: #ff0000"> Width</span>
            <span style="COLOR: #0000ff">="216"</span>
            <span style="COLOR: #ff0000"> Click</span>
            <span style="COLOR: #0000ff">="PrintButton_Click"</span>
            <span style="COLOR: #ff0000">
            </span>
            <span style="COLOR: #0000ff">/&gt;</span>
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">&lt;/</span>
            <span style="COLOR: #800000">Grid</span>
            <span style="COLOR: #0000ff">&gt;</span>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
        </p>
        <p>
This looks like the following:
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/ExploringSilverlight4PrintinginSilverlig_8EC/image_4.png">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://www.snowball.be/content/binary/WindowsLiveWriter/ExploringSilverlight4PrintinginSilverlig_8EC/image_thumb_1.png" width="244" height="190" />
          </a>
        </p>
        <p>
In the click event of the button, we write some printing code.
</p>
        <p>
 
</p>
        <p>
        </p>
        <p>
        </p>
        <div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c8e20ebc-9aad-4418-a824-3e5f7dd0cd3c" class="wlWriterEditableSmartContent">
          <pre style="BACKGROUND-COLOR: #ffffff; WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; OVERFLOW: auto">
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">private</span>
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">void</span>
            <span style="COLOR: #000000"> PrintButton_Click(</span>
            <span style="COLOR: #0000ff">object</span>
            <span style="COLOR: #000000"> sender,
RoutedEventArgs e) { PrintDocument document </span>
            <span style="COLOR: #000000">=</span>
            <span style="COLOR: #000000">
            </span>
            <span style="COLOR: #0000ff">new</span>
            <span style="COLOR: #000000"> PrintDocument();
document.PrintPage </span>
            <span style="COLOR: #000000">+=</span>
            <span style="COLOR: #000000"> (s,
args) </span>
            <span style="COLOR: #000000">=&gt;</span>
            <span style="COLOR: #000000"> {
args.PageVisual </span>
            <span style="COLOR: #000000">=</span>
            <span style="COLOR: #000000"> LayoutRoot;
}; document.Print(); }</span>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
This will now show a print preferences dialog, in which we can select a printer. The
result in this case is the entire UI being printed, because LayoutRoot was specified.
</p>
        <p>
We can also hook into the beginning and ending of the printing process using the StartPrint
and EndPrint event. These can be used to execute some code at the start or ending
of the printing process.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=64a7665f-588d-46ae-b70e-3ac43fae7199" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Exploring Silverlight 4: Printing in Silverlight 4</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,64a7665f-588d-46ae-b70e-3ac43fae7199.aspx</guid>
      <link>http://www.snowball.be/2009/11/18/Exploring+Silverlight+4+Printing+In+Silverlight+4.aspx</link>
      <pubDate>Wed, 18 Nov 2009 23:38:20 GMT</pubDate>
      <description>&lt;p&gt;
Remember my post on printing in Silverlight 3, using the WriteableBitmap. This class
allowed to export UI elements to an image and print from there. While it was working,
it wasn’t a great way of doing things.&lt;br&gt;
&lt;br&gt;
Silverlight 4 brings real printing to the table. All printing is done using the PrintDocument
class. In it’s PrintPage event, we can specify what content needs to be printed. This
can be the entire screen, a control that’s part of the visual tree or even a control
that’s generated on the fly. Finally, we use the Print() method to perform the actual
printing of the document.
&lt;/p&gt;
&lt;p&gt;
Let’s take a look at some really easy code to do all this.
&lt;/p&gt;
&lt;p&gt;
The UI code is kept simple intentionally:
&lt;/p&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:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3b8e5dfd-f9b7-4865-84d9-b10b858dda30 class=wlWriterEditableSmartContent&gt;&lt;pre style="BACKGROUND-COLOR: #ffffff; WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; OVERFLOW: auto"&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid &lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Background&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="White"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;TextBlock &lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="25"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Left"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Margin&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="62,92,0,0"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="textBlock1"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="I
want to print!"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; VerticalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Top"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Width&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="194"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; FontWeight&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Bold"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; FontSize&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="15"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Button &lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;Content&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Print"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="55"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Left"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Margin&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="62,213,0,0"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="PrintButton"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; VerticalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Top"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Width&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="216"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; Click&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="PrintButton_Click"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Grid&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This looks like the following:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/ExploringSilverlight4PrintinginSilverlig_8EC/image_4.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://www.snowball.be/content/binary/WindowsLiveWriter/ExploringSilverlight4PrintinginSilverlig_8EC/image_thumb_1.png" width=244 height=190&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the click event of the button, we write some printing code.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&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:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c8e20ebc-9aad-4418-a824-3e5f7dd0cd3c class=wlWriterEditableSmartContent&gt;&lt;pre style="BACKGROUND-COLOR: #ffffff; WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; OVERFLOW: auto"&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; PrintButton_Click(&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;object&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; sender,
RoutedEventArgs e) { PrintDocument document &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; PrintDocument();
document.PrintPage &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;+=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; (s,
args) &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; {
args.PageVisual &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; LayoutRoot;
}; document.Print(); }&lt;/span&gt;&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
This will now show a print preferences dialog, in which we can select a printer. The
result in this case is the entire UI being printed, because LayoutRoot was specified.
&lt;/p&gt;
&lt;p&gt;
We can also hook into the beginning and ending of the printing process using the StartPrint
and EndPrint event. These can be used to execute some code at the start or ending
of the printing process.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=64a7665f-588d-46ae-b70e-3ac43fae7199" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,64a7665f-588d-46ae-b70e-3ac43fae7199.aspx</comments>
      <category>Efficiency</category>
      <category>PDC</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=00c9d856-d278-49bd-a9a3-dfddc4a41286</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,00c9d856-d278-49bd-a9a3-dfddc4a41286.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,00c9d856-d278-49bd-a9a3-dfddc4a41286.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=00c9d856-d278-49bd-a9a3-dfddc4a41286</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today at the PDC09, Microsoft announced Silverlight 4, the 4th version of the RIA
platform.
</p>
        <p>
You can get the bits here:
</p>
        <li>
          <a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx">Visual Studio 2010
Beta 2</a> or <a href="http://go.microsoft.com/fwlink/?LinkID=167874">Visual Web Developer
Express 2010 Beta 2</a> (pick one) 
</li>
        <li>
          <a href="http://go.microsoft.com/fwlink/?LinkID=177508">Silverlight Tools for Visual
Studio 2010</a>
        </li>
        <li>
          <a href="http://go.microsoft.com/fwlink/?LinkId=169446">Expression Blend for .NET
4 Preview</a> – for authoring Silverlight 4 and WPF 4 applications 
</li>
        <li>
          <a href="http://go.microsoft.com/fwlink/?LinkId=169231">WCF RIA Services</a> (formerly
.NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight
4) 
</li>
        <li>
          <a href="http://go.microsoft.com/fwlink/?LinkID=167824">Silverlight 4 SDK CHM</a> (offline
documentation) – optionally <a href="http://go.microsoft.com/fwlink/?LinkID=111305">online
here</a> as well 
</li>
        <li>
Updated <a href="http://silverlight.codeplex.com">Silverlight Toolkit</a> for Silverlight
4 
</li>
        <li>
Developer runtimes: <a href="http://silverlight.dlservice.microsoft.com/download/F/6/5/F653F7FD-AD4D-411D-8B1F-9C4B1BD69881/Silverlight_Developer.exe">Windows</a> and <a href="http://silverlight.dlservice.microsoft.com/download/F/6/5/F653F7FD-AD4D-411D-8B1F-9C4B1BD69881/Silverlight_Developer.dmg">Mac</a> platforms 
</li>
        <li>
          <a href="http://go.microsoft.com/fwlink/?LinkID=169408">Silverlight 4 SDK only</a> –
not needed if you install the tools above 
</li>
        <li>
          <a href="http://smf.codeplex.com">Silverlight Media Framework</a> – a new, Open Source
media player framework for you to use.</li>
        <p>
(This list was shamelessly copied from <a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx?utm_source=Twitter-timheuer" target="_blank">Tim
Heuer’s blog post on Silverlight 4</a>)
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=00c9d856-d278-49bd-a9a3-dfddc4a41286" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Silverlight 4 is here!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,00c9d856-d278-49bd-a9a3-dfddc4a41286.aspx</guid>
      <link>http://www.snowball.be/2009/11/18/Silverlight+4+Is+Here.aspx</link>
      <pubDate>Wed, 18 Nov 2009 18:30:30 GMT</pubDate>
      <description>&lt;p&gt;
Today at the PDC09, Microsoft announced Silverlight 4, the 4th version of the RIA
platform.
&lt;/p&gt;
&lt;p&gt;
You can get the bits here:
&lt;/p&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;Visual Studio 2010
Beta 2&lt;/a&gt; or &lt;a href="http://go.microsoft.com/fwlink/?LinkID=167874"&gt;Visual Web Developer
Express 2010 Beta 2&lt;/a&gt; (pick one) 
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=177508"&gt;Silverlight Tools for Visual
Studio 2010&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkId=169446"&gt;Expression Blend for .NET
4 Preview&lt;/a&gt; – for authoring Silverlight 4 and WPF 4 applications 
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkId=169231"&gt;WCF RIA Services&lt;/a&gt; (formerly
.NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight
4) 
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=167824"&gt;Silverlight 4 SDK CHM&lt;/a&gt; (offline
documentation) – optionally &lt;a href="http://go.microsoft.com/fwlink/?LinkID=111305"&gt;online
here&lt;/a&gt; as well 
&lt;li&gt;
Updated &lt;a href="http://silverlight.codeplex.com"&gt;Silverlight Toolkit&lt;/a&gt; for Silverlight
4 
&lt;li&gt;
Developer runtimes: &lt;a href="http://silverlight.dlservice.microsoft.com/download/F/6/5/F653F7FD-AD4D-411D-8B1F-9C4B1BD69881/Silverlight_Developer.exe"&gt;Windows&lt;/a&gt; and &lt;a href="http://silverlight.dlservice.microsoft.com/download/F/6/5/F653F7FD-AD4D-411D-8B1F-9C4B1BD69881/Silverlight_Developer.dmg"&gt;Mac&lt;/a&gt; platforms 
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=169408"&gt;Silverlight 4 SDK only&lt;/a&gt; –
not needed if you install the tools above 
&lt;li&gt;
&lt;a href="http://smf.codeplex.com"&gt;Silverlight Media Framework&lt;/a&gt; – a new, Open Source
media player framework for you to use.&lt;/li&gt;
&lt;p&gt;
(This list was shamelessly copied from &lt;a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx?utm_source=Twitter-timheuer" target="_blank"&gt;Tim
Heuer’s blog post on Silverlight 4&lt;/a&gt;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=00c9d856-d278-49bd-a9a3-dfddc4a41286" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,00c9d856-d278-49bd-a9a3-dfddc4a41286.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>sl4</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=8bfec154-5d1d-4b6b-a9e5-4322d9cbe052</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,8bfec154-5d1d-4b6b-a9e5-4322d9cbe052.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,8bfec154-5d1d-4b6b-a9e5-4322d9cbe052.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=8bfec154-5d1d-4b6b-a9e5-4322d9cbe052</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After a week of way too many bratwurst (which I didn’t eat for the record), I’m home
again, from a TechEd in which quite a lot happened. Here’s my view on things.
</p>
        <p>
          <strong>Berlin, aber ja (yes, that’s about as far as my German goes)</strong>
        </p>
        <p>
For the first time, TechEd Europe took place in Berlin. When some time ago, I saw
the date that Microsoft planned to do its biggest conference on the European continent,
I was a bit worried. The conference was to start on the day of the celebrations of
the fall of the Berlin wall, now exactly 20 years ago. Because I planned on going
by car to the event, I feared quite some traffic problems. However, this turned out
to be a great choice. Not only did we attend the technical event, we were able to
attend a once-in-a-lifetime evening, witnessing the fall of the 1000 domino blocks,
representing the Berlin wall. Despite the rain, it was nice to see this.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106997798_f226f96e44%5B1%5D_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="4106997798_f226f96e44[1]" border="0" alt="4106997798_f226f96e44[1]" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106997798_f226f96e44%5B1%5D_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
The city itself is huge and public transport is great. You can get anywhere within
minutes. It has a safe feeling as well, we were walking around quite late and it all
seemed quite OK.
</p>
        <p>
          <strong>Technical content</strong>
        </p>
        <p>
For the first time (as far as I know that is), Microsoft decided to make TechEd a
one-week event. Previous editions were split: one week was for devs, the second week
for IT Pros (or vice-versa depending on the year). While this new formula has its
advantages (like in: you can now take a peek over the hedge if you know what I mean),
it also has its disadvantages in my opinion. In some time slots, I personally felt
there were not enough dev-oriented sessions. At TechEd Barcelona 2007, I had to choose
between a good session, another good session and often another good session. Being
at the event as a pure developer, I missed that this year in some of the time slots
sadly. The good news is that some of the sessions were really good though. My
top sessions were Jeff Prosise’s Secrets in Silverlight and Stephen Forte’s Agile
Estimation.
</p>
        <p>
I personally do hope for a split event again next year, although I doubt it. With
a one-week event, the event is probably easier to organize and financially more interesting.
In unsure times like these, this is probably a heavy-weighing factor on the decision
making, which is understandable.
</p>
        <p>
          <strong>Speaker Idol</strong>
        </p>
        <p>
As announced, I took part in Speaker Idol this year. I won the first heat on Monday,
which got me a Flip HD camera :) . On Thursday, I didn’t win in the finals, although
I got a ticket for free for next year’s event! No pics yet, but I expect them to arrive
soon.
</p>
        <p>
          <strong>A bad Coke bottle</strong>
        </p>
        <p>
Right after the Speaker Idol finals on Thursday, I got injured. Opening a bottle of
Coke (only glass bottles at the event… why??), it broke in my hand. Result: 
a deep cut in a finger on my right hand and had to go to first aid. The bottle was
probably broken already and upon putting force on it to open it, it broke further.
Luckily, the doctors decided it did not need stitching.
</p>
        <p>
Typing is still quite difficult with so much band-aid on my finger, I keep hitting
too many keys at the same time.
</p>
        <p>
          <strong>Ask The Experts</strong>
        </p>
        <p>
I was also at the Silverlight booth for the Ask The Experts program. While working
there, I spent some time with Tim Heuer, Shawn Wildermuth, Emil Stoychev and others.
It was really nice to finally meet all of them!
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106282951_26829de304%5B1%5D_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="4106282951_26829de304[1]" border="0" alt="4106282951_26829de304[1]" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106282951_26829de304%5B1%5D_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
          <strong>A tech talk or two?</strong>
        </p>
        <p align="left">
While at the event, I did 2 TechEd Online TechTalks. The first one, in which I was
interviewed by my colleague Bart Wullems on building real world applications with
Silverlight, is online already at <a title="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4" href="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4">http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4</a> .
The second one on multi-touch in Silverlight apps will be online soon.
</p>
        <p>
          <strong>Pictures?</strong>
        </p>
        <p align="left">
Of course! Here are all the photos I made while at the event: <a title="http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/" href="http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/">http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/</a> 
</p>
        <p>
        </p>
        <p>
See you in 2010 again, Berlin!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8bfec154-5d1d-4b6b-a9e5-4322d9cbe052" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>TechEd 2009: the report</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,8bfec154-5d1d-4b6b-a9e5-4322d9cbe052.aspx</guid>
      <link>http://www.snowball.be/2009/11/15/TechEd+2009+The+Report.aspx</link>
      <pubDate>Sun, 15 Nov 2009 23:56:16 GMT</pubDate>
      <description>&lt;p&gt;
After a week of way too many bratwurst (which I didn’t eat for the record), I’m home
again, from a TechEd in which quite a lot happened. Here’s my view on things.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Berlin, aber ja (yes, that’s about as far as my German goes)&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For the first time, TechEd Europe took place in Berlin. When some time ago, I saw
the date that Microsoft planned to do its biggest conference on the European continent,
I was a bit worried. The conference was to start on the day of the celebrations of
the fall of the Berlin wall, now exactly 20 years ago. Because I planned on going
by car to the event, I feared quite some traffic problems. However, this turned out
to be a great choice. Not only did we attend the technical event, we were able to
attend a once-in-a-lifetime evening, witnessing the fall of the 1000 domino blocks,
representing the Berlin wall. Despite the rain, it was nice to see this.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106997798_f226f96e44%5B1%5D_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=4106997798_f226f96e44[1] border=0 alt=4106997798_f226f96e44[1] src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106997798_f226f96e44%5B1%5D_thumb.jpg" width=244 height=184&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The city itself is huge and public transport is great. You can get anywhere within
minutes. It has a safe feeling as well, we were walking around quite late and it all
seemed quite OK.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Technical content&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For the first time (as far as I know that is), Microsoft decided to make TechEd a
one-week event. Previous editions were split: one week was for devs, the second week
for IT Pros (or vice-versa depending on the year). While this new formula has its
advantages (like in: you can now take a peek over the hedge if you know what I mean),
it also has its disadvantages in my opinion. In some time slots, I personally felt
there were not enough dev-oriented sessions. At TechEd Barcelona 2007, I had to choose
between a good session, another good session and often another good session. Being
at the event as a pure developer, I missed that this year in some of the time slots
sadly.&amp;nbsp;The good news is that some of the sessions were really good though. My
top sessions were Jeff Prosise’s Secrets in Silverlight and Stephen Forte’s Agile
Estimation.
&lt;/p&gt;
&lt;p&gt;
I personally do hope for a split event again next year, although I doubt it. With
a one-week event, the event is probably easier to organize and financially more interesting.
In unsure times like these, this is probably a heavy-weighing factor on the decision
making, which is understandable.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Speaker Idol&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As announced, I took part in Speaker Idol this year. I won the first heat on Monday,
which got me a Flip HD camera :) . On Thursday, I didn’t win in the finals, although
I got a ticket for free for next year’s event! No pics yet, but I expect them to arrive
soon.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;A bad Coke bottle&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Right after the Speaker Idol finals on Thursday, I got injured. Opening a bottle of
Coke (only glass bottles at the event… why??), it broke in my hand. Result:&amp;nbsp;
a deep cut in a finger on my right hand and had to go to first aid. The bottle was
probably broken already and upon putting force on it to open it, it broke further.
Luckily, the doctors decided it did not need stitching.
&lt;/p&gt;
&lt;p&gt;
Typing is still quite difficult with so much band-aid on my finger, I keep hitting
too many keys at the same time.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ask The Experts&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I was also at the Silverlight booth for the Ask The Experts program. While working
there, I spent some time with Tim Heuer, Shawn Wildermuth, Emil Stoychev and others.
It was really nice to finally meet all of them!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106282951_26829de304%5B1%5D_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=4106282951_26829de304[1] border=0 alt=4106282951_26829de304[1] src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEd2009thereport_D2A/4106282951_26829de304%5B1%5D_thumb.jpg" width=244 height=184&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;A tech talk or two?&lt;/strong&gt;
&lt;/p&gt;
&lt;p align=left&gt;
While at the event, I did 2 TechEd Online TechTalks. The first one, in which I was
interviewed by my colleague Bart Wullems on building real world applications with
Silverlight, is online already at &lt;a title=http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4 href="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4"&gt;http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4&lt;/a&gt; .
The second one on multi-touch in Silverlight apps will be online soon.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Pictures?&lt;/strong&gt;
&lt;/p&gt;
&lt;p align=left&gt;
Of course! Here are all the photos I made while at the event: &lt;a title=http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/ href="http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/"&gt;http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
See you in 2010 again, Berlin!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8bfec154-5d1d-4b6b-a9e5-4322d9cbe052" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,8bfec154-5d1d-4b6b-a9e5-4322d9cbe052.aspx</comments>
      <category>Efficiency</category>
      <category>TechEd</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=44020eaf-432e-41e8-b4fb-d799db1a9c6c</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,44020eaf-432e-41e8-b4fb-d799db1a9c6c.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,44020eaf-432e-41e8-b4fb-d799db1a9c6c.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=44020eaf-432e-41e8-b4fb-d799db1a9c6c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
2009 has to be the year in which most “Microsoft VIPs” have been in Belgium! We already
had Brad Abrams, Juval Löwy, Dino Esposito and many more. You thought that was it
for this year? So was I…
</p>
        <p>
Until last week, Katrien De Graeve told me and Pieter (my Visug-colleague) she had
some news for us… MSDN and Visug will join forces for a <strong><a href="http://weblogs.asp.net/scottgu/" target="_blank">Scott
Guthrie</a></strong> event. Yes, "ScottGu” aka “TheGu” is coming to Belgium on December
4th. Erase any other appointments, meetings, vacations you have planned on that day
(afternoon only), as Scott will give presentations and probably a Q&amp;A session
as well.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BreakingnewsScottGuthrieisvisitingagain_14959/scott-guthrie_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="scott-guthrie" border="0" alt="scott-guthrie" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BreakingnewsScottGuthrieisvisitingagain_14959/scott-guthrie_thumb.jpg" width="235" height="351" />
          </a>
        </p>
        <p>
Location and exact content will  be posted very soon-ish, we know it’s very near,
but I expect to that we will have everything set up this week. The event will be free
in any case, thanks to Microsoft.
</p>
        <p>
For now, start thinking of questions you may have, you will soon be able to start
sending those in. As the event is only two weeks away, we hope many of you will be
blogging, tweeting, Facebook’ing, “whatever”ing a lot! 
</p>
        <p>
More news soon, right here!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=44020eaf-432e-41e8-b4fb-d799db1a9c6c" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Breaking news: Scott Guthrie is visiting&amp;hellip; again!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,44020eaf-432e-41e8-b4fb-d799db1a9c6c.aspx</guid>
      <link>http://www.snowball.be/2009/11/15/Breaking+News+Scott+Guthrie+Is+Visitinghellip+Again.aspx</link>
      <pubDate>Sun, 15 Nov 2009 22:25:17 GMT</pubDate>
      <description>&lt;p&gt;
2009 has to be the year in which most “Microsoft VIPs” have been in Belgium! We already
had Brad Abrams, Juval Löwy, Dino Esposito and many more. You thought that was it
for this year? So was I…
&lt;/p&gt;
&lt;p&gt;
Until last week, Katrien De Graeve told me and Pieter (my Visug-colleague) she had
some news for us… MSDN and Visug will join forces for a &lt;strong&gt;&lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott
Guthrie&lt;/a&gt;&lt;/strong&gt; event. Yes, "ScottGu” aka “TheGu” is coming to Belgium on December
4th. Erase any other appointments, meetings, vacations you have planned on that day
(afternoon only), as Scott will give presentations and probably a Q&amp;amp;A session
as well.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BreakingnewsScottGuthrieisvisitingagain_14959/scott-guthrie_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="scott-guthrie" border="0" alt="scott-guthrie" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BreakingnewsScottGuthrieisvisitingagain_14959/scott-guthrie_thumb.jpg" width="235" height="351"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Location and exact content will&amp;nbsp; be posted very soon-ish, we know it’s very near,
but I expect to that we will have everything set up this week. The event will be free
in any case, thanks to Microsoft.
&lt;/p&gt;
&lt;p&gt;
For now, start thinking of questions you may have, you will soon be able to start
sending those in. As the event is only two weeks away, we hope many of you will be
blogging, tweeting, Facebook’ing, “whatever”ing a lot! 
&lt;/p&gt;
&lt;p&gt;
More news soon, right here!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=44020eaf-432e-41e8-b4fb-d799db1a9c6c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,44020eaf-432e-41e8-b4fb-d799db1a9c6c.aspx</comments>
      <category>Efficiency</category>
      <category>Microsoft</category>
      <category>Visug</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=24e927fd-d47c-4cfe-a323-6356c625aa77</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,24e927fd-d47c-4cfe-a323-6356c625aa77.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,24e927fd-d47c-4cfe-a323-6356c625aa77.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=24e927fd-d47c-4cfe-a323-6356c625aa77</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
At TechEd Europe 2009, together with my colleague Bart Wullems, I did a TechEd Online
TechTalk on Building Real World Silverlight applications. You can watch it here: <a title="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4" href="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4">http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4</a> 
</p>
        <p>
A second one on building multitouch applications, together with a fellow Regional
Director Daron Yondem, will be online soon.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=24e927fd-d47c-4cfe-a323-6356c625aa77" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>My TechEd Online TechTalk is online</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,24e927fd-d47c-4cfe-a323-6356c625aa77.aspx</guid>
      <link>http://www.snowball.be/2009/11/15/My+TechEd+Online+TechTalk+Is+Online.aspx</link>
      <pubDate>Sun, 15 Nov 2009 21:09:05 GMT</pubDate>
      <description>&lt;p&gt;
At TechEd Europe 2009, together with my colleague Bart Wullems, I did a TechEd Online
TechTalk on Building Real World Silverlight applications. You can watch it here: &lt;a title="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4" href="http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4"&gt;http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
A second one on building multitouch applications, together with a fellow Regional
Director Daron Yondem, will be online soon.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=24e927fd-d47c-4cfe-a323-6356c625aa77" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,24e927fd-d47c-4cfe-a323-6356c625aa77.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>TechEd</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.msteched.com/europe/Public/default.aspx">TechEd 2009</a> is just
a few days away now, starting on Monday November 9th in the Mess Berlin. Coincidentally,
the day the event starts, marks the celebrations of the fall of the Berlin wall, now
exactly 20 years ago. I’m guessing Microsoft took the “Life without walls” seriously!
Authorities expect no less than one million people on the Berlin streets on Monday
night. We won’t be alone there, that’s for sure.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_MVPs_2.gif">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TechEd_Europe_Blog_SM_BDG_MVPs" border="0" alt="TechEd_Europe_Blog_SM_BDG_MVPs" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_MVPs_thumb.gif" width="124" height="94" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_RDs_2.gif">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TechEd_Europe_Blog_SM_BDG_RDs" border="0" alt="TechEd_Europe_Blog_SM_BDG_RDs" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_RDs_thumb.gif" width="124" height="94" />
          </a>
        </p>
        <p>
I’ll be attending the event and you can come and see me at the following locations/times:
</p>
        <ul>
          <li>
Tuesday evening during the reception at the Silverlight booth</li>
          <li>
Wednesday from 14.45 till 17.30 at the Silverlight booth</li>
          <li>
Probably I’ll be at the booth on other times as well</li>
          <li>
On Tuesday I’ll be doing a TechEd TechTalk in the fishbowl around 15.00</li>
          <li>
I’ll be at the Speaker Idol booth as well, don’t know when yet</li>
          <li>
Together with other Regional Directors, I’ll be in the lounge</li>
        </ul>
        <p>
Of course, I’ll be blogging as much as possible from the event, so watch this space
for important updates!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>TechEd Europe almost here&amp;hellip; and here&amp;rsquo;s what I&amp;rsquo;ll be doing</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf.aspx</guid>
      <link>http://www.snowball.be/2009/11/05/TechEd+Europe+Almost+Herehellip+And+Herersquos+What+Irsquoll+Be+Doing.aspx</link>
      <pubDate>Thu, 05 Nov 2009 08:06:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.msteched.com/europe/Public/default.aspx"&gt;TechEd 2009&lt;/a&gt; is just
a few days away now, starting on Monday November 9th in the Mess Berlin. Coincidentally,
the day the event starts, marks the celebrations of the fall of the Berlin wall, now
exactly 20 years ago. I’m guessing Microsoft took the “Life without walls” seriously!
Authorities expect no less than one million people on the Berlin streets on Monday
night. We won’t be alone there, that’s for sure.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_MVPs_2.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TechEd_Europe_Blog_SM_BDG_MVPs" border="0" alt="TechEd_Europe_Blog_SM_BDG_MVPs" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_MVPs_thumb.gif" width="124" height="94"&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_RDs_2.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TechEd_Europe_Blog_SM_BDG_RDs" border="0" alt="TechEd_Europe_Blog_SM_BDG_RDs" src="http://www.snowball.be/content/binary/WindowsLiveWriter/TechEdEuropealmosthereandhereswhatIllbed_7FF5/TechEd_Europe_Blog_SM_BDG_RDs_thumb.gif" width="124" height="94"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I’ll be attending the event and you can come and see me at the following locations/times:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Tuesday evening during the reception at the Silverlight booth&lt;/li&gt;
&lt;li&gt;
Wednesday from 14.45 till 17.30 at the Silverlight booth&lt;/li&gt;
&lt;li&gt;
Probably I’ll be at the booth on other times as well&lt;/li&gt;
&lt;li&gt;
On Tuesday I’ll be doing a TechEd TechTalk in the fishbowl around 15.00&lt;/li&gt;
&lt;li&gt;
I’ll be at the Speaker Idol booth as well, don’t know when yet&lt;/li&gt;
&lt;li&gt;
Together with other Regional Directors, I’ll be in the lounge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Of course, I’ll be blogging as much as possible from the event, so watch this space
for important updates!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,1a0dcb08-890e-4569-b8a7-6d0dcda2f9bf.aspx</comments>
      <category>Efficiency</category>
      <category>TechEd</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=fb7ef260-a661-4474-90e3-3fe58fc74acf</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,fb7ef260-a661-4474-90e3-3fe58fc74acf.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,fb7ef260-a661-4474-90e3-3fe58fc74acf.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=fb7ef260-a661-4474-90e3-3fe58fc74acf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="left">
I’ll be doing an MSDN Live Meeting on October 1st on Prism/Composite Application Guidance,
starting at 2PM GMT+1. Registration is free and you can still register here: <a title="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;EventCategory=2&amp;culture=nl-BE&amp;CountryCode=BE" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;EventCategory=2&amp;culture=nl-BE&amp;CountryCode=BE">http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;EventCategory=2&amp;culture=nl-BE&amp;CountryCode=BE</a> .
</p>
        <p align="left">
Hope to see/LiveMeet you then!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=fb7ef260-a661-4474-90e3-3fe58fc74acf" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Don&amp;rsquo;t miss my online talk on Prism on October 1st!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,fb7ef260-a661-4474-90e3-3fe58fc74acf.aspx</guid>
      <link>http://www.snowball.be/2009/09/29/Donrsquot+Miss+My+Online+Talk+On+Prism+On+October+1st.aspx</link>
      <pubDate>Tue, 29 Sep 2009 22:49:55 GMT</pubDate>
      <description>&lt;p align="left"&gt;
I’ll be doing an MSDN Live Meeting on October 1st on Prism/Composite Application Guidance,
starting at 2PM GMT+1. Registration is free and you can still register here: &lt;a title="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;amp;EventCategory=2&amp;amp;culture=nl-BE&amp;amp;CountryCode=BE" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;amp;EventCategory=2&amp;amp;culture=nl-BE&amp;amp;CountryCode=BE"&gt;http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&amp;amp;EventCategory=2&amp;amp;culture=nl-BE&amp;amp;CountryCode=BE&lt;/a&gt; .
&lt;/p&gt;
&lt;p align="left"&gt;
Hope to see/LiveMeet you then!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=fb7ef260-a661-4474-90e3-3fe58fc74acf" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,fb7ef260-a661-4474-90e3-3fe58fc74acf.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=81a393d6-243b-4d97-815c-d6a00809fbf2</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,81a393d6-243b-4d97-815c-d6a00809fbf2.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,81a393d6-243b-4d97-815c-d6a00809fbf2.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=81a393d6-243b-4d97-815c-d6a00809fbf2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="left">
Last week, Silverlight FireStarter was hosted, an in-person and also online event
where top speakers like Scott Guthrie, Brad Abrams, Tim Heuer etc talked about all
there is to know about Silverlight. 
</p>
        <p align="left">
Luckily, all the sessions can now be seen on-demand for free here: <a title="http://www.msdnevents.com/firestarter/" href="http://www.msdnevents.com/firestarter/">http://www.msdnevents.com/firestarter/</a></p>
        <p align="left">
A small extra: I just found through Tim Heuer a nice 2-part video on Visual Studio
called the Visual Studio Documentary form Channel9:
</p>
        <p align="left">
          <em>Welcome to the first installment of the Visual Studio Documentary.This is an hour
long documentary that is split into two parts, roughly a half hour each. Welcome to
part one, where we take you back to the days of MS-DOS and Alan Cooper who originally
sold Visual Basic to Bill Gates back in 1988.  Next week we will feature </em>
          <a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/">
            <em>Part
Two </em>
          </a>
          <em>but for those that would like to watch it sooner, here is </em>
          <a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/">
            <em>Part
Two</em>
          </a>
          <em>. In addition, each week we will post a longer and more in-depth stand
alone interview from the interviewees that were featured in the documentary.</em>
        </p>
        <p align="left">
          <em>Links: <a title="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/" href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/">http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/</a> and <a title="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/" href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/">http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/</a></em>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=81a393d6-243b-4d97-815c-d6a00809fbf2" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Some great video content: Silverlight FireStarter</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,81a393d6-243b-4d97-815c-d6a00809fbf2.aspx</guid>
      <link>http://www.snowball.be/2009/09/29/Some+Great+Video+Content+Silverlight+FireStarter.aspx</link>
      <pubDate>Tue, 29 Sep 2009 22:32:51 GMT</pubDate>
      <description>&lt;p align="left"&gt;
Last week, Silverlight FireStarter was hosted, an in-person and also online event
where top speakers like Scott Guthrie, Brad Abrams, Tim Heuer etc talked about all
there is to know about Silverlight. 
&lt;/p&gt;
&lt;p align="left"&gt;
Luckily, all the sessions can now be seen on-demand for free here: &lt;a title="http://www.msdnevents.com/firestarter/" href="http://www.msdnevents.com/firestarter/"&gt;http://www.msdnevents.com/firestarter/&lt;/a&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
A small extra: I just found through Tim Heuer a nice 2-part video on Visual Studio
called the Visual Studio Documentary form Channel9:
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;em&gt;Welcome to the first installment of the Visual Studio Documentary.This is an hour
long documentary that is split into two parts, roughly a half hour each. Welcome to
part one, where we take you back to the days of MS-DOS and Alan Cooper who originally
sold Visual Basic to Bill Gates back in 1988.&amp;nbsp; Next week we will feature &lt;/em&gt;&lt;a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"&gt;&lt;em&gt;Part
Two &lt;/em&gt;&lt;/a&gt;&lt;em&gt;but for those that would like to watch it sooner, here is &lt;/em&gt;&lt;a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"&gt;&lt;em&gt;Part
Two&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. In addition, each week we will post a longer and more in-depth stand
alone interview from the interviewees that were featured in the documentary.&lt;/em&gt; 
&lt;p align="left"&gt;
&lt;em&gt;Links: &lt;a title="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/" href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/"&gt;http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/&lt;/a&gt; and &lt;a title="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/" href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"&gt;http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/&lt;/a&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=81a393d6-243b-4d97-815c-d6a00809fbf2" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,81a393d6-243b-4d97-815c-d6a00809fbf2.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=75da2e7d-4a72-40eb-bf39-ab9f5d086fbc</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,75da2e7d-4a72-40eb-bf39-ab9f5d086fbc.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,75da2e7d-4a72-40eb-bf39-ab9f5d086fbc.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=75da2e7d-4a72-40eb-bf39-ab9f5d086fbc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, the Belgian edition of Mix, ReMix09, took place in Belgium. With an almost
sold out conference, the expectations were high, many people were expecting to learn
new things on the tools and technologies that will influence how we work in the coming
years. Silverlight, Expression Blend &amp; Design, Surface… were covered in today’s
sessions. Some corporate speakers, including Brad Abrams (who joined Visug yesterday
for another sold out event) and Adam Kinney.
</p>
        <p>
          <strong>The event</strong>
        </p>
        <p>
After a long absence from Kinepolis in Brussels, the troops again gathered in the
largest cinema complex in Belgium. Like said in the introduction, the event was almost
completely sold out, which was noticeable in the keynote: almost all chairs were taken
and at that very point, the highway around Brussels was still completely stuck.
</p>
        <p>
Because of the fact that it’s a cinema complex, the rooms themselves are the best
to do presentations in and also to watch them in. 
</p>
        <p>
All attendees could get a trial version of Blend, which I noticed were very much wanted.
</p>
        <p>
          <strong>The speakers</strong>
        </p>
        <p>
Most of the content today was brought by corporate speakers, giving attendees a deep
insight in the technologies that were covered. These included Silverlight, Surface,
Blend and ASP.NET MVC. What struck me somehow, is that there where more questions
after sessions than normal: Belgian audience is not very communicative, however today,
quite some questions were asked.
</p>
        <p>
The keynote was delivered by Katrien De Graeve and Luc Van De Velde. It was clear,
to the point and had a nice flow of ideas in it. Good work, guys!
</p>
        <p>
          <strong>The technologies</strong>
        </p>
        <p>
Two things really amazed me today. First, when Luc asked during the keynote, how many
people attended last year’s Mix Essentials, only an estimated 5-10% raised their hand.
I can’t think of an explanation for this though…
</p>
        <p>
The other thing is the following: the people that attended the conference, had very
little knowledge of the Silverlight and Blend tools. OK, you can think: that’s why
they came to the conference, right?! True, but still, I would have expected that more
people would have experimented with the Silverlight tools. 
</p>
        <p>
          <strong>The pictures</strong>
        </p>
        <p>
I took my camera with me today (for once I actually didn’t forget to do so…) and here
are some of the pictures. The full album can be found here: <a title="http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/" href="http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/">http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/</a></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:ddae7674-2db2-4083-bd0a-e366293aa2a2" class="wlWriterEditableSmartContent">
          <a style="border:0px" href="http://cid-bd64f22e01fad982.skydrive.live.com/redir.aspx?page=browse&amp;resid=BD64F22E01FAD982!265&amp;ct=photos">
            <img style="border:0px" alt="View ReMix09" src="http://www.snowball.be/content/binary/WindowsLiveWriter/ReMix09Belgiumthereport_10E/InlineRepresentation6c4777da-b279-4d0b-852d-205214fdc031.jpg" />
          </a>
          <div style="width:400px;text-align:right;">
            <a href="http://cid-bd64f22e01fad982.skydrive.live.com/redir.aspx?page=browse&amp;resid=BD64F22E01FAD982!265&amp;ct=photos">View
Full Album</a>
          </div>
        </div>
        <p>
        </p>
        <p>
          <strong>Ordina@ReMix</strong>
        </p>
        <p>
A nice video testimonial for Ordina was shown in the keynote where I talk about WPF
projects we have done in the past few months. The video will be added soon here!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=75da2e7d-4a72-40eb-bf39-ab9f5d086fbc" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>ReMix 09 Belgium: the report</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,75da2e7d-4a72-40eb-bf39-ab9f5d086fbc.aspx</guid>
      <link>http://www.snowball.be/2009/09/29/ReMix+09+Belgium+The+Report.aspx</link>
      <pubDate>Tue, 29 Sep 2009 22:23:18 GMT</pubDate>
      <description>&lt;p&gt;
Today, the Belgian edition of Mix, ReMix09, took place in Belgium. With an almost
sold out conference, the expectations were high, many people were expecting to learn
new things on the tools and technologies that will influence how we work in the coming
years. Silverlight, Expression Blend &amp;amp; Design, Surface… were covered in today’s
sessions. Some corporate speakers, including Brad Abrams (who joined Visug yesterday
for another sold out event) and Adam Kinney.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The event&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
After a long absence from Kinepolis in Brussels, the troops again gathered in the
largest cinema complex in Belgium. Like said in the introduction, the event was almost
completely sold out, which was noticeable in the keynote: almost all chairs were taken
and at that very point, the highway around Brussels was still completely stuck.
&lt;/p&gt;
&lt;p&gt;
Because of the fact that it’s a cinema complex, the rooms themselves are the best
to do presentations in and also to watch them in. 
&lt;/p&gt;
&lt;p&gt;
All attendees could get a trial version of Blend, which I noticed were very much wanted.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The speakers&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Most of the content today was brought by corporate speakers, giving attendees a deep
insight in the technologies that were covered. These included Silverlight, Surface,
Blend and ASP.NET MVC. What struck me somehow, is that there where more questions
after sessions than normal: Belgian audience is not very communicative, however today,
quite some questions were asked.
&lt;/p&gt;
&lt;p&gt;
The keynote was delivered by Katrien De Graeve and Luc Van De Velde. It was clear,
to the point and had a nice flow of ideas in it. Good work, guys!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The technologies&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Two things really amazed me today. First, when Luc asked during the keynote, how many
people attended last year’s Mix Essentials, only an estimated 5-10% raised their hand.
I can’t think of an explanation for this though…
&lt;/p&gt;
&lt;p&gt;
The other thing is the following: the people that attended the conference, had very
little knowledge of the Silverlight and Blend tools. OK, you can think: that’s why
they came to the conference, right?! True, but still, I would have expected that more
people would have experimented with the Silverlight tools. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The pictures&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I took my camera with me today (for once I actually didn’t forget to do so…) and here
are some of the pictures. The full album can be found here: &lt;a title="http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/" href="http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/"&gt;http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/&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:66721397-FF69-4ca6-AEC4-17E6B3208830:ddae7674-2db2-4083-bd0a-e366293aa2a2" class="wlWriterEditableSmartContent"&gt;&lt;a style="border:0px" href="http://cid-bd64f22e01fad982.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=BD64F22E01FAD982!265&amp;amp;ct=photos"&gt;&lt;img style="border:0px" alt="View ReMix09" src="http://www.snowball.be/content/binary/WindowsLiveWriter/ReMix09Belgiumthereport_10E/InlineRepresentation6c4777da-b279-4d0b-852d-205214fdc031.jpg" /&gt;&lt;/a&gt;
&lt;div style="width:400px;text-align:right;" &gt;&lt;a href="http://cid-bd64f22e01fad982.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=BD64F22E01FAD982!265&amp;amp;ct=photos"&gt;View
Full Album&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ordina@ReMix&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
A nice video testimonial for Ordina was shown in the keynote where I talk about WPF
projects we have done in the past few months. The video will be added soon here!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=75da2e7d-4a72-40eb-bf39-ab9f5d086fbc" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,75da2e7d-4a72-40eb-bf39-ab9f5d086fbc.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=bd67135a-6aa5-40c0-9180-5074ed1dbaf7</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,bd67135a-6aa5-40c0-9180-5074ed1dbaf7.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,bd67135a-6aa5-40c0-9180-5074ed1dbaf7.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=bd67135a-6aa5-40c0-9180-5074ed1dbaf7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Brad Abrams, program manager at Microsoft, took time from his busy schedule he has
to pay a visit to Visug. This session, hosted at <a href="http://www.ordina.be/">Ordina</a> in
Mechelen, was attended by over a 100 people. This only shows that Belgian community
keeps on growing and growing!
</p>
        <p>
Brad posted his slides <a href="http://www.slideshare.net/brada/framework-design-guidelines-for-brussels-users-group">here</a> or <a href="http://www.visug.be/data/Framework Design Guidelines Visug.pptx">here</a>.
Thanks to Microsoft, the session is also recorded, I’ll post here when the session
is online.
</p>
        <p>
Here are some pictures:
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08629%20(Medium).jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08629 (Medium)" border="0" alt="DSC08629 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08629%20(Medium)_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08635%20(Medium).jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08635 (Medium)" border="0" alt="DSC08635 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08635%20(Medium)_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08636%20(Medium).jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08636 (Medium)" border="0" alt="DSC08636 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08636%20(Medium)_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08639%20(Medium).jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08639 (Medium)" border="0" alt="DSC08639 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08639%20(Medium)_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bd67135a-6aa5-40c0-9180-5074ed1dbaf7" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Brad Abrams visited us&amp;hellip; and we liked it.</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,bd67135a-6aa5-40c0-9180-5074ed1dbaf7.aspx</guid>
      <link>http://www.snowball.be/2009/09/28/Brad+Abrams+Visited+Ushellip+And+We+Liked+It.aspx</link>
      <pubDate>Mon, 28 Sep 2009 21:42:45 GMT</pubDate>
      <description>&lt;p&gt;
Brad Abrams, program manager at Microsoft, took time from his busy schedule he has
to pay a visit to Visug. This session, hosted at &lt;a href="http://www.ordina.be/"&gt;Ordina&lt;/a&gt; in
Mechelen, was attended by over a 100 people. This only shows that Belgian community
keeps on growing and growing!
&lt;/p&gt;
&lt;p&gt;
Brad posted his slides &lt;a href="http://www.slideshare.net/brada/framework-design-guidelines-for-brussels-users-group"&gt;here&lt;/a&gt;&amp;nbsp;or &lt;a href="http://www.visug.be/data/Framework Design Guidelines Visug.pptx"&gt;here&lt;/a&gt;.
Thanks to Microsoft, the session is also recorded, I’ll post here when the session
is online.
&lt;/p&gt;
&lt;p&gt;
Here are some pictures:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08629%20(Medium).jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08629 (Medium)" border=0 alt="DSC08629 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08629%20(Medium)_thumb.jpg" width=244 height=184&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08635%20(Medium).jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08635 (Medium)" border=0 alt="DSC08635 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08635%20(Medium)_thumb.jpg" width=244 height=184&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08636%20(Medium).jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08636 (Medium)" border=0 alt="DSC08636 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08636%20(Medium)_thumb.jpg" width=244 height=184&gt;&lt;/a&gt; &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08639%20(Medium).jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="DSC08639 (Medium)" border=0 alt="DSC08639 (Medium)" src="http://www.snowball.be/content/binary/WindowsLiveWriter/BradAbramsvisitedusandwelikedit_14D63/DSC08639%20(Medium)_thumb.jpg" width=244 height=184&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bd67135a-6aa5-40c0-9180-5074ed1dbaf7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,bd67135a-6aa5-40c0-9180-5074ed1dbaf7.aspx</comments>
      <category>Efficiency</category>
      <category>Visug</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=d096d46e-d508-40a3-bcc1-aec4c031bfeb</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,d096d46e-d508-40a3-bcc1-aec4c031bfeb.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,d096d46e-d508-40a3-bcc1-aec4c031bfeb.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=d096d46e-d508-40a3-bcc1-aec4c031bfeb</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m a big fan of OneNote, ever since it was released. However, since I’m working on
several PCs every day, I need my stuff synchronized between my machines all the time.
OneNote lacks in this area, since it does not support any web sync out-of-the-box. 
</p>
        <p>
This resulted in me checking out EverNote, a free tool, comparable to OneNote. While
it looks good, I still loved OneNote more (possible because I’m used to it), but EverNote
has one big advantage: it stores my notes online, and so I have my notes with me on
every machine.
</p>
        <p>
Still willing to use OneNote, I tried a different approach, using the power of the
cloud. I thought, why not store my notebooks in Live Mesh, the free synchronization
tool from Microsoft that on top offers another 5GB of free storage “in the cloud”.
So I tried it and it works great. Simply create a notebook in OneNote, store it in
a Mesh folder (or upgrade it’s current folder to a Live Mesh folder), do this on all
your PCs and you have the best of two worlds: the goodness of OneNote and the sync
features of EverNote.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d096d46e-d508-40a3-bcc1-aec4c031bfeb" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>OneNote &amp;ldquo;in the cloud&amp;rdquo;</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,d096d46e-d508-40a3-bcc1-aec4c031bfeb.aspx</guid>
      <link>http://www.snowball.be/2009/09/03/OneNote+Ldquoin+The+Cloudrdquo.aspx</link>
      <pubDate>Thu, 03 Sep 2009 21:59:07 GMT</pubDate>
      <description>&lt;p&gt;
I’m a big fan of OneNote, ever since it was released. However, since I’m working on
several PCs every day, I need my stuff synchronized between my machines all the time.
OneNote lacks in this area, since it does not support any web sync out-of-the-box. 
&lt;/p&gt;
&lt;p&gt;
This resulted in me checking out EverNote, a free tool, comparable to OneNote. While
it looks good, I still loved OneNote more (possible because I’m used to it), but EverNote
has one big advantage: it stores my notes online, and so I have my notes with me on
every machine.
&lt;/p&gt;
&lt;p&gt;
Still willing to use OneNote, I tried a different approach, using the power of the
cloud. I thought, why not store my notebooks in Live Mesh, the free synchronization
tool from Microsoft that on top offers another 5GB of free storage “in the cloud”.
So I tried it and it works great. Simply create a notebook in OneNote, store it in
a Mesh folder (or upgrade it’s current folder to a Live Mesh folder), do this on all
your PCs and you have the best of two worlds: the goodness of OneNote and the sync
features of EverNote.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d096d46e-d508-40a3-bcc1-aec4c031bfeb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,d096d46e-d508-40a3-bcc1-aec4c031bfeb.aspx</comments>
      <category>Efficiency</category>
      <category>Personal</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=909d8360-9f0b-49bb-9049-b552ca0d833b</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,909d8360-9f0b-49bb-9049-b552ca0d833b.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,909d8360-9f0b-49bb-9049-b552ca0d833b.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=909d8360-9f0b-49bb-9049-b552ca0d833b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday was install day for me: had upgraded almost all my machines to Windows 7
RTM. The experience was simply amazing. Here are some of the things that amazed me
the most.
</p>
        <p>
          <strong>Setup experience<br /></strong>Now fully supported is installing from a USB key. I used a cheap 8GB USB
stick but it can be done with any type above 4GB. For the instructions on making an
USB install, look <a href="http://technet.microsoft.com/en-us/magazine/dd535816.aspx" target="_blank">here</a>.
There's also a small tool available that does it for you <a href="http://www.askvg.com/a-bootable-usb-utility-to-create-bootable-usb-drive-to-install-windows-vista-server-2008-and-7/" target="_blank">here</a>.
Small note on the latter: it takes in my opinion longer to create the install with
this tool. It did fail once also, the install files it extracted were corrupt, causing
my install to fail. 
</p>
        <p>
Why would you install from a USB drive? It's faster (quite noticeable) and doesn't
cost you a DVD.
</p>
        <p>
          <strong>Acer Aspire One loves Windows 7 too<br /></strong>About half a year ago, I bought an Acer Aspire One (160GB). Out-of-the-box,
it had Windows XP installed, which ran fine... at least, I thought. The machine only
had 1GB of RAM, so installing Windows Vista was out of the question. I used my USB
install stick, plugged it in, the setup started... and less than 30 minutes later,
Windows 7 was running on the small machine. 
<br />
And how! This machine never went faster. It's amazing what extra performance I get
from the low specs this machine has. It's fast, simple as that.<br />
Conclusion: Windows 7 runs great on netbooks!
</p>
        <p>
          <strong>Up next, the old laptop with the old printer...<br /></strong>Everyone knows this kind of laptop. It's rather old (about 3-4 years), it
still runs but it's slow. Of course, it has some old hardware attached to it. In my
case, it was me (with my Windows 7 USB install stick again) against an Acer TravelMate
2420 (1GB of RAM) with a HP LaserJet 1018. 
</p>
        <p>
The machine had Vista installed, but it was slow. This was typically a machine that
caused people to say that Vista was slow: the hardware specs simply weren't enough.
Exactly the fact that many people installed Vista on too old hardware was a major
component in all negative comments on Vista.
</p>
        <p>
Now, Windows 7, let's try it, shall we? It took 32 minutes to install to desktop.
Not bad! Then, I looked at how it worked, even with Office and anti-virus installed.
This was my "Windows 7 WOW moment". The difference was amazing. (Note: the old install
had nothing more than Office, FireFox and AV software, so no comment on "it was slow
because of all what was on there").
</p>
        <p>
My mother who often works on this machine said the machine never worked so fast. But
she asked if I could install her printer (the HP LaserJet 1018) on there. I was like
"Uh-Oh"... HP and new drivers, I wonder if it will work. In Vista, the printer "sometimes"
worked. 
</p>
        <p>
So I plugged it in, Windows 7 tried installing it but failed :(. Seconds after, a
message came that it found the driver. I was like "yeah, it's going to take me to <a href="http://www.hp.com">www.hp.com</a> or
something". The message said: download the Vista driver and it'll be installed in
compatibility mode for Windows XP SP2. So I clicked, I immediately arrived on <strong>the
correct page</strong>, I downloaded the driver and Windows 7 took it from there. It
got the printer working flawlessly! Another WOW moment.
</p>
        <p>
          <strong>Conclusion<br /></strong>After a day of getting acquainted with the RTM bits, I can't help but being
super enthusiastic. It's a truly great operating system, that will quickly help forget
the negativity around Windows Vista (though I'm still convinced that many of those
comments were untrue as well, it was cool to be negative on Vista...). It's here now
(if you're MSDN/TechNet/Beta tester...) or in October for the general public. This
will put Microsoft OS back where they belong and is a bad dream for competing operating
systems.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=909d8360-9f0b-49bb-9049-b552ca0d833b" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>I love you, Windows 7</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,909d8360-9f0b-49bb-9049-b552ca0d833b.aspx</guid>
      <link>http://www.snowball.be/2009/08/10/I+Love+You+Windows+7.aspx</link>
      <pubDate>Mon, 10 Aug 2009 07:21:36 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday was install day for me: had upgraded almost all my machines to Windows 7
RTM. The experience was simply amazing. Here are some of the things that amazed me
the most.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Setup experience&lt;br&gt;
&lt;/strong&gt;Now fully supported is installing from a USB key. I used a cheap 8GB USB
stick but it can be done with any type above 4GB. For the instructions on making an
USB install, look &lt;a href="http://technet.microsoft.com/en-us/magazine/dd535816.aspx" target=_blank&gt;here&lt;/a&gt;.
There's also a small tool available that does it for you &lt;a href="http://www.askvg.com/a-bootable-usb-utility-to-create-bootable-usb-drive-to-install-windows-vista-server-2008-and-7/" target=_blank&gt;here&lt;/a&gt;.
Small note on the latter: it takes in my opinion longer to create the install with
this tool. It did fail once also, the install files it extracted were corrupt, causing
my install to fail. 
&lt;/p&gt;
&lt;p&gt;
Why would you install from a USB drive? It's faster (quite noticeable) and doesn't
cost you a DVD.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Acer Aspire One loves Windows 7 too&lt;br&gt;
&lt;/strong&gt;About half a year ago, I bought an Acer Aspire One (160GB). Out-of-the-box,
it had Windows XP installed, which ran fine... at least, I thought. The machine only
had 1GB of RAM, so installing Windows Vista was out of the question. I used my USB
install stick, plugged it in, the setup started... and less than 30 minutes later,
Windows 7 was running on the small machine. 
&lt;br&gt;
And how! This machine never went faster. It's amazing what extra performance I get
from the low specs this machine has. It's fast, simple as that.&lt;br&gt;
Conclusion: Windows 7 runs great on netbooks!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Up next, the old laptop with the old printer...&lt;br&gt;
&lt;/strong&gt;Everyone knows this kind of laptop. It's rather old (about 3-4 years), it
still runs but it's slow. Of course, it has some old hardware attached to it. In my
case, it was me (with my Windows 7 USB install stick again) against an Acer TravelMate
2420 (1GB of RAM) with a HP LaserJet 1018. 
&lt;/p&gt;
&lt;p&gt;
The machine had Vista installed, but it was slow. This was typically a machine that
caused people to say that Vista was slow: the hardware specs simply weren't enough.
Exactly the fact that many people installed Vista on too old hardware was a major
component in all negative comments on Vista.
&lt;/p&gt;
&lt;p&gt;
Now, Windows 7, let's try it, shall we? It took 32 minutes to install to desktop.
Not bad! Then, I looked at how it worked, even with Office and anti-virus installed.
This was my "Windows 7 WOW moment". The difference was amazing. (Note: the old install
had nothing more than Office, FireFox and AV software, so no comment on "it was slow
because of all what was on there").
&lt;/p&gt;
&lt;p&gt;
My mother who often works on this machine said the machine never worked so fast. But
she asked if I could install her printer (the HP LaserJet 1018) on there. I was like
"Uh-Oh"... HP and new drivers, I wonder if it will work. In Vista, the printer "sometimes"
worked. 
&lt;/p&gt;
&lt;p&gt;
So I plugged it in, Windows 7 tried installing it but failed :(. Seconds after, a
message came that it found the driver. I was like "yeah, it's going to take me to &lt;a href="http://www.hp.com"&gt;www.hp.com&lt;/a&gt; or
something". The message said: download the Vista driver and it'll be installed in
compatibility mode for Windows XP SP2. So I clicked, I immediately arrived on &lt;strong&gt;the
correct page&lt;/strong&gt;, I downloaded the driver and Windows 7 took it from there. It
got the printer working flawlessly! Another WOW moment.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Conclusion&lt;br&gt;
&lt;/strong&gt;After a day of getting acquainted with the RTM bits, I can't help but being
super enthusiastic. It's a truly great operating system, that will quickly help forget
the negativity around Windows Vista (though I'm still convinced that many of those
comments were untrue as well, it was cool to be negative on Vista...). It's here now
(if you're MSDN/TechNet/Beta tester...) or in October for the general public. This
will put Microsoft OS back where they belong and is a bad dream for competing operating
systems.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=909d8360-9f0b-49bb-9049-b552ca0d833b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,909d8360-9f0b-49bb-9049-b552ca0d833b.aspx</comments>
      <category>Efficiency</category>
      <category>Windows 7</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=20f145c4-2629-4225-9acf-9f519a706438</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,20f145c4-2629-4225-9acf-9f519a706438.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,20f145c4-2629-4225-9acf-9f519a706438.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=20f145c4-2629-4225-9acf-9f519a706438</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just showed you Sobees… If that is not enough Silverlight showcase for your taste,
don’t fear, there’s more! On the Microsoft case study site, available via <a href="http://www.microsoft.com/casestudies/"></a><a href="http://www.microsoft.com/casestudies">www.microsoft.com/casestudies</a>,
no less than 8 new showcases with Silverlight have been added. These include the following;\
</p>
        <ul>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004876">Digital
Minds Ltd</a>; Financial Site Transforms Online Investing with Interactive Tools 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004877">Yahoo!
JAPAN</a>: Yahoo! JAPAN Finds Unique Solution for Multiplatform Online Video 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004878">TDK-Lambda</a>:
Electronics Manufacturer Reinvigorates BI Application with New Interface 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004881">netlinkblue</a>:
Rich Media Platform Delivers Powerful Results for Fans of New Cricket League 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004889">National
Instruments</a>: Cross-Platform Plug-In Powers Rich Internet Applications for Scientists
and Engineers 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004893">NASA</a>:
NASA Provides Interactive, 3-D Views of the Next Mars Rover to the Public 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004900">ninemsn</a>:
Australian Web Site Gives Visitors a “Wow” Experience with Rich Media Platform 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004913">Signposter.com</a>:
Advertising Company Doubles Customer Base in Six Months with Mapping Solution 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004915">Kimberly-Clark</a>:
Kimberly-Clark Migrates Consumer Site to New Web Platform for High Value, Lower Cost 
</li>
          <li>
            <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004918">Continental
Airlines</a>: Continental Airlines Modernizes Call Center Application with Web-Based
Technology 
</li>
        </ul>
        <p>
However you put it, the adoption rate of Silverlight is increasing and it is increasing
rapidly. The fact that so many large customers are choosing Silverlight for their
mission-critical sites and applications confirms their trust in the technology as
well. 
</p>
        <p>
A few days back, someone was asking me about the install base of Silverlight and whether
or not I see this as a problem. There are 2 things I can say to that:
</p>
        <ul>
          <li>
The install base is increasing every day. 
</li>
          <li>
Large companies switching to Silverlight will increase the install base, which in
turn will increase the number of companies choosing for Silverlight, which in turn…
You get the picture. 
</li>
        </ul>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=20f145c4-2629-4225-9acf-9f519a706438" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>8 new showcases for Silverlight added</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,20f145c4-2629-4225-9acf-9f519a706438.aspx</guid>
      <link>http://www.snowball.be/2009/07/14/8+New+Showcases+For+Silverlight+Added.aspx</link>
      <pubDate>Tue, 14 Jul 2009 13:50:14 GMT</pubDate>
      <description>&lt;p&gt;
I just showed you Sobees… If that is not enough Silverlight showcase for your taste,
don’t fear, there’s more! On the Microsoft case study site, available via &lt;a href="http://www.microsoft.com/casestudies/"&gt;&lt;/a&gt;&lt;a href="http://www.microsoft.com/casestudies"&gt;www.microsoft.com/casestudies&lt;/a&gt;,
no less than 8 new showcases with Silverlight have been added. These include the following;\
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004876"&gt;Digital
Minds Ltd&lt;/a&gt;; Financial Site Transforms Online Investing with Interactive Tools 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004877"&gt;Yahoo!
JAPAN&lt;/a&gt;: Yahoo! JAPAN Finds Unique Solution for Multiplatform Online Video 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004878"&gt;TDK-Lambda&lt;/a&gt;:
Electronics Manufacturer Reinvigorates BI Application with New Interface 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004881"&gt;netlinkblue&lt;/a&gt;:
Rich Media Platform Delivers Powerful Results for Fans of New Cricket League 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004889"&gt;National
Instruments&lt;/a&gt;: Cross-Platform Plug-In Powers Rich Internet Applications for Scientists
and Engineers 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004893"&gt;NASA&lt;/a&gt;:
NASA Provides Interactive, 3-D Views of the Next Mars Rover to the Public 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004900"&gt;ninemsn&lt;/a&gt;:
Australian Web Site Gives Visitors a “Wow” Experience with Rich Media Platform 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004913"&gt;Signposter.com&lt;/a&gt;:
Advertising Company Doubles Customer Base in Six Months with Mapping Solution 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004915"&gt;Kimberly-Clark&lt;/a&gt;:
Kimberly-Clark Migrates Consumer Site to New Web Platform for High Value, Lower Cost 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000004918"&gt;Continental
Airlines&lt;/a&gt;: Continental Airlines Modernizes Call Center Application with Web-Based
Technology 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
However you put it, the adoption rate of Silverlight is increasing and it is increasing
rapidly. The fact that so many large customers are choosing Silverlight for their
mission-critical sites and applications confirms their trust in the technology as
well. 
&lt;/p&gt;
&lt;p&gt;
A few days back, someone was asking me about the install base of Silverlight and whether
or not I see this as a problem. There are 2 things I can say to that:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The install base is increasing every day. 
&lt;li&gt;
Large companies switching to Silverlight will increase the install base, which in
turn will increase the number of companies choosing for Silverlight, which in turn…
You get the picture. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=20f145c4-2629-4225-9acf-9f519a706438" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,20f145c4-2629-4225-9acf-9f519a706438.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=66e64e37-59be-4587-9a9f-f07675d0db43</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,66e64e37-59be-4587-9a9f-f07675d0db43.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,66e64e37-59be-4587-9a9f-f07675d0db43.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=66e64e37-59be-4587-9a9f-f07675d0db43</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now that Silverlight 3 is released, a bunch of great applications using the functionalities
of the platform are starting to pop up. One of them is the new Twitter client from
Sobees, available via <a href="http://www.sobees.com">www.sobees.com</a>. Created
entirely in Silverlight, this offline application allows you to view the tweets from
the people you are following, as well as searches within Twitter. At this point, Facebook
is not yet supported, but it coming soon.
</p>
        <p>
The user interface is pretty impressive, keeping in mind it’s only an alpha release
at this moment. It’s scattered with nice touches, one of them being the characters-left
countdown, shown when adding a new Tweet. 
</p>
        <p>
Developers might be thinking; how was this created? As you may know, some time ago,
Twitter closed their borders in terms of cross domain access. Their crossdomain.xml
file is pretty strict (not to say completely locked down). The consequence of this
move is that client-side platforms like Silverlight, can’t connect with the platform
directly, because of cross domain restrictions, active in Silverlight. The solution
for this problem is normally building an extra service on your own domain, let this
service connect with the external service and let Silverlight connect with your own
service. Services don’t mind the cross domain policies in place.
</p>
        <p>
Sobees did more or less the same, otherwise their client could not connect with Twitter.
They are using Azure as their service platform: the Sobees client connects with Azure
that in turn connects with Twitter. It is in the end a large mashup using Twitter,
Azure and Silverlight 3.
</p>
        <p>
Next to the Sobees Silverlight application, they also have bDule, a desktop variant
of the Twitter client, created entirely in WPF.
</p>
        <p>
All the goodness can be downloaded via <a href="http://www.sobees.com">www.sobees.com</a> and <a href="http://www.sobees.com/bdule">www.sobees.com/bdule</a> ,
of course all free of charge!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=66e64e37-59be-4587-9a9f-f07675d0db43" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Sobees &amp;ndash; A state of the art showcase for Silverlight 3</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,66e64e37-59be-4587-9a9f-f07675d0db43.aspx</guid>
      <link>http://www.snowball.be/2009/07/14/Sobees+Ndash+A+State+Of+The+Art+Showcase+For+Silverlight+3.aspx</link>
      <pubDate>Tue, 14 Jul 2009 09:47:42 GMT</pubDate>
      <description>&lt;p&gt;
Now that Silverlight 3 is released, a bunch of great applications using the functionalities
of the platform are starting to pop up. One of them is the new Twitter client from
Sobees, available via &lt;a href="http://www.sobees.com"&gt;www.sobees.com&lt;/a&gt;. Created
entirely in Silverlight, this offline application allows you to view the tweets from
the people you are following, as well as searches within Twitter. At this point, Facebook
is not yet supported, but it coming soon.
&lt;/p&gt;
&lt;p&gt;
The user interface is pretty impressive, keeping in mind it’s only an alpha release
at this moment. It’s scattered with nice touches, one of them being the characters-left
countdown, shown when adding a new Tweet. 
&lt;/p&gt;
&lt;p&gt;
Developers might be thinking; how was this created? As you may know, some time ago,
Twitter closed their borders in terms of cross domain access. Their crossdomain.xml
file is pretty strict (not to say completely locked down). The consequence of this
move is that client-side platforms like Silverlight, can’t connect with the platform
directly, because of cross domain restrictions, active in Silverlight. The solution
for this problem is normally building an extra service on your own domain, let this
service connect with the external service and let Silverlight connect with your own
service. Services don’t mind the cross domain policies in place.
&lt;/p&gt;
&lt;p&gt;
Sobees did more or less the same, otherwise their client could not connect with Twitter.
They are using Azure as their service platform: the Sobees client connects with Azure
that in turn connects with Twitter. It is in the end a large mashup using Twitter,
Azure and Silverlight 3.
&lt;/p&gt;
&lt;p&gt;
Next to the Sobees Silverlight application, they also have bDule, a desktop variant
of the Twitter client, created entirely in WPF.
&lt;/p&gt;
&lt;p&gt;
All the goodness can be downloaded via &lt;a href="http://www.sobees.com"&gt;www.sobees.com&lt;/a&gt; and &lt;a href="http://www.sobees.com/bdule"&gt;www.sobees.com/bdule&lt;/a&gt; ,
of course all free of charge!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=66e64e37-59be-4587-9a9f-f07675d0db43" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,66e64e37-59be-4587-9a9f-f07675d0db43.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=e7ee341d-ed69-496b-8e6d-7e97ae8e5a59</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,e7ee341d-ed69-496b-8e6d-7e97ae8e5a59.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,e7ee341d-ed69-496b-8e6d-7e97ae8e5a59.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=e7ee341d-ed69-496b-8e6d-7e97ae8e5a59</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This “Silverlight 3 Launch Video” on Channel 9 really made my evening, it’s hilarious!<br /><em>Why is Dan Fernandez crawling around on a concrete floor with a blonde wig while
White Snake plays in the background?  That's a great question and I wish I had
a logical answer but I don't so I will just give you the truth.  It has to do
with Silverlight, Expression and couple's therapy.  I hope you enjoy and good
luck.<br /><a title="http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/" href="http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/">http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/</a></em></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e7ee341d-ed69-496b-8e6d-7e97ae8e5a59" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Silverlight Launch video</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,e7ee341d-ed69-496b-8e6d-7e97ae8e5a59.aspx</guid>
      <link>http://www.snowball.be/2009/07/10/Silverlight+Launch+Video.aspx</link>
      <pubDate>Fri, 10 Jul 2009 21:17:24 GMT</pubDate>
      <description>&lt;p&gt;
This “Silverlight 3 Launch Video” on Channel 9 really made my evening, it’s hilarious!&lt;br&gt;
&lt;em&gt;Why is Dan Fernandez crawling around on a concrete floor with a blonde wig while
White Snake plays in the background?&amp;nbsp; That's a great question and I wish I had
a logical answer but I don't so I will just give you the truth.&amp;nbsp; It has to do
with Silverlight, Expression and couple's therapy.&amp;nbsp; I hope you enjoy and good
luck.&lt;br&gt;
&lt;a title="http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/" href="http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/"&gt;http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/&lt;/a&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e7ee341d-ed69-496b-8e6d-7e97ae8e5a59" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,e7ee341d-ed69-496b-8e6d-7e97ae8e5a59.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=f867d0f6-4890-4cd6-a53d-f01d8907e570</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,f867d0f6-4890-4cd6-a53d-f01d8907e570.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,f867d0f6-4890-4cd6-a53d-f01d8907e570.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=f867d0f6-4890-4cd6-a53d-f01d8907e570</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, we had the Flemish and European elections took place here in Belgium (in
case you aren't familiar with Belgian/Flemish government, take a look <a href="http://en.wikipedia.org/wiki/Flemish_Region">here</a>.
Note: it's quite complicated!).
</p>
        <p>
I'm not planning on turning my blog into a place for political statements, absolutely
not. However, Microsoft technology took a prominent place in these elections. VTM,
the Flemish commercial TV station, used <a href="http://www.microsoft.com/surface/">Microsoft
Surface</a> technology to show the results.
</p>
        <p>
The presenter used several items that were recognized by the Surface's internal camera's
to switch between the results of the parties (seen around her left hand in the below
screenshot).
</p>
        <p>
          <img border="0" src="http://www.snowball.be/content/binary/surface1.png" />
        </p>
        <p>
 
</p>
        <p>
          <img border="0" src="http://www.snowball.be/content/binary/surface4.png" />
        </p>
        <p>
When placing the tagged item on the surface, the results for the selected party are
shown.
</p>
        <p>
          <img border="0" src="http://www.snowball.be/content/binary/surface2.png" />
        </p>
        <p>
Also, a lot of dragging was implemented in the application. By clicking on a header,
she could show more details on the results.
</p>
        <p>
          <img border="0" src="http://www.snowball.be/content/binary/surface3.png" />
        </p>
        <p>
With this example, Surface has (as far as I know, I never watch TV...) made its
debut on Belgian television. And it made quite an impression on people as well...
My girlfriend came asking me if I knew what this "thing was they were using to drag
stuff around" on TV :)
</p>
        <p>
Update: here's the MSN Soapbox video:
</p>
        <embed id="80qvls3l" height="364" type="application/x-shockwave-flash" pluginspage="http://macromedia.com/go/getflashplayer" width="432" src="http://images.video.msn.com/flash/soapbox1_1.swf" flashvars="c=v&amp;v=cd68ee33-5707-416d-9f4d-ccc3da961324&amp;ifs=true&amp;fr=shared&amp;mkt=en-US" allowscriptaccess="always" allowfullscreen="true">
        </embed>
        <noembed>
        </noembed>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f867d0f6-4890-4cd6-a53d-f01d8907e570" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Surface (s)elected to show election results on Belgian TV</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,f867d0f6-4890-4cd6-a53d-f01d8907e570.aspx</guid>
      <link>http://www.snowball.be/2009/06/08/Surface+Selected+To+Show+Election+Results+On+Belgian+TV.aspx</link>
      <pubDate>Mon, 08 Jun 2009 08:33:45 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, we had the Flemish and European elections took place here in Belgium (in
case you aren't familiar with Belgian/Flemish government, take a look &lt;a href="http://en.wikipedia.org/wiki/Flemish_Region"&gt;here&lt;/a&gt;.
Note: it's quite complicated!).
&lt;/p&gt;
&lt;p&gt;
I'm not planning on turning my blog into a place for political statements, absolutely
not. However, Microsoft technology took a prominent place in these elections. VTM,
the Flemish commercial TV station, used &lt;a href="http://www.microsoft.com/surface/"&gt;Microsoft
Surface&lt;/a&gt; technology to show the results.
&lt;/p&gt;
&lt;p&gt;
The presenter used several items that were recognized by the Surface's internal camera's
to switch between the results of the parties (seen around her left hand in the below
screenshot).
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://www.snowball.be/content/binary/surface1.png"&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://www.snowball.be/content/binary/surface4.png"&gt;
&lt;/p&gt;
&lt;p&gt;
When placing the tagged item on the surface, the results for the selected party are
shown.
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://www.snowball.be/content/binary/surface2.png"&gt;
&lt;/p&gt;
&lt;p&gt;
Also, a lot of dragging was implemented in the application. By clicking on a header,
she could show more details on the results.
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="http://www.snowball.be/content/binary/surface3.png"&gt;
&lt;/p&gt;
&lt;p&gt;
With this example, Surface&amp;nbsp;has (as far as I know, I never watch TV...) made its
debut on Belgian television. And it made quite an impression on people as well...
My girlfriend came asking me if I knew what this "thing was they were using to drag
stuff around" on TV :)
&lt;/p&gt;
&lt;p&gt;
Update: here's the MSN Soapbox video:
&lt;/p&gt;
&lt;embed id=80qvls3l height=364 type=application/x-shockwave-flash pluginspage=http://macromedia.com/go/getflashplayer width=432 src=http://images.video.msn.com/flash/soapbox1_1.swf flashvars="c=v&amp;amp;v=cd68ee33-5707-416d-9f4d-ccc3da961324&amp;amp;ifs=true&amp;amp;fr=shared&amp;amp;mkt=en-US" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;
&lt;noembed&gt;
&lt;/noembed&gt;&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f867d0f6-4890-4cd6-a53d-f01d8907e570" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,f867d0f6-4890-4cd6-a53d-f01d8907e570.aspx</comments>
      <category>Efficiency</category>
      <category>Microsoft</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=04dc1984-2e51-4aa9-b811-f097eff16369</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,04dc1984-2e51-4aa9-b811-f097eff16369.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,04dc1984-2e51-4aa9-b811-f097eff16369.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=04dc1984-2e51-4aa9-b811-f097eff16369</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My “ASP.NET Ajax Tips and tricks” session was scheduled in the last timeslot at DevDays
Netherlands. However, after following 2 or 3 exhausting days of sessions, a lot of
people came to my talk still! Thanks for that!!
</p>
        <p>
I must say, I’ve never had so many people ask me for my demos, so I guess they must
have been good :-). Feel free to send me a mail with any comments you may have regarding
the contents or the talk itself. It’s always good to get feedback.
</p>
        <p>
These were the topics covered in the talk (I did have to skip the NoBot control because
of time constraints):
</p>
        <p>
•Creating a custom extender in ASP.NET Ajax<br />
•Managing the history client and server side<br />
•Using ASP.NET authentication in Ajax<br />
•Adding controls dynamically using Ajax UpdatePanel<br />
•Localization in ASP.NET Ajax<br />
•No bots on my site!<br />
•Slide that data!<br />
•Animations in Ajax
</p>
        <p>
As promised, here is all the content I covered:<br /><a href="http://www.codeflakes.com/data/devdays2009nl/ajaxtips/Ajax_tips_and_tricks_Gill_Cleeren.pptx" target="_blank">Slides</a><br /><a href="http://www.codeflakes.com/data/devdays2009nl/ajaxtips/Ajax_Tips_and_tricks.zip" target="_blank">Demos</a></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=04dc1984-2e51-4aa9-b811-f097eff16369" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>DevDays Netherlands 2009: Ajax Tips and Tricks session downloads</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,04dc1984-2e51-4aa9-b811-f097eff16369.aspx</guid>
      <link>http://www.snowball.be/2009/06/01/DevDays+Netherlands+2009+Ajax+Tips+And+Tricks+Session+Downloads.aspx</link>
      <pubDate>Mon, 01 Jun 2009 20:55:36 GMT</pubDate>
      <description>&lt;p&gt;
My “ASP.NET Ajax Tips and tricks” session was scheduled in the last timeslot at DevDays
Netherlands. However, after following 2 or 3 exhausting days of sessions, a lot of
people came to my talk still! Thanks for that!!
&lt;/p&gt;
&lt;p&gt;
I must say, I’ve never had so many people ask me for my demos, so I guess they must
have been good :-). Feel free to send me a mail with any comments you may have regarding
the contents or the talk itself. It’s always good to get feedback.
&lt;/p&gt;
&lt;p&gt;
These were the topics covered in the talk (I did have to skip the NoBot control because
of time constraints):
&lt;/p&gt;
&lt;p&gt;
•Creating a custom extender in ASP.NET Ajax&lt;br&gt;
•Managing the history client and server side&lt;br&gt;
•Using ASP.NET authentication in Ajax&lt;br&gt;
•Adding controls dynamically using Ajax UpdatePanel&lt;br&gt;
•Localization in ASP.NET Ajax&lt;br&gt;
•No bots on my site!&lt;br&gt;
•Slide that data!&lt;br&gt;
•Animations in Ajax
&lt;/p&gt;
&lt;p&gt;
As promised, here is all the content I covered:&lt;br&gt;
&lt;a href="http://www.codeflakes.com/data/devdays2009nl/ajaxtips/Ajax_tips_and_tricks_Gill_Cleeren.pptx" target=_blank&gt;Slides&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.codeflakes.com/data/devdays2009nl/ajaxtips/Ajax_Tips_and_tricks.zip" target=_blank&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=04dc1984-2e51-4aa9-b811-f097eff16369" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,04dc1984-2e51-4aa9-b811-f097eff16369.aspx</comments>
      <category>DevDays09</category>
      <category>Efficiency</category>
      <category>ppt</category>
      <category>Slide decks</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=3503b2fe-c8e2-4e39-92c0-78263133d9fe</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,3503b2fe-c8e2-4e39-92c0-78263133d9fe.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,3503b2fe-c8e2-4e39-92c0-78263133d9fe.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=3503b2fe-c8e2-4e39-92c0-78263133d9fe</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/logo2_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="logo2" border="0" alt="logo2" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/logo2_thumb.jpg" width="244" height="83" />
          </a>
        </p>
        <p>
As announced earlier, Community Day 2009 is coming! Mark Thursday 25th June in your
calendar, as it’s the day you can get a full day of free training and sessions, all
courtesy of the Belgian User Groups.
</p>
        <p>
This third edition is a big step for us. For the first time, we are doing an entire
day (whereas the 2 previous editions were half a day). We also moved to a new location,
as the previous one became too small: we are now in Utopolis in Mechelen. 
</p>
        <p>
Since yesterday evening, I finished the website, it’s now live at <a href="http://www.communityday.be">www.communityday.be</a> .
Registration is again free, including food and drinks, BUT seats are limited, so register
in time if you want to be sure you can be there!
</p>
        <p>
Please blog/twitter/Facebook about the event. Below is some “blog bling” you can use
for that!
</p>
        <p>
        </p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner1_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="banner1" border="0" alt="banner1" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner1_thumb.jpg" width="414" height="83" />
          </a>
        </p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner2_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="banner2" border="0" alt="banner2" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner2_thumb.jpg" width="414" height="83" />
          </a>
        </p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/button_2.jpg">
            <img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="button" border="0" alt="button" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/button_thumb.jpg" width="100" height="40" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
I hope to see you all on June 25th!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=3503b2fe-c8e2-4e39-92c0-78263133d9fe" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Community day 2009: officially here</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,3503b2fe-c8e2-4e39-92c0-78263133d9fe.aspx</guid>
      <link>http://www.snowball.be/2009/05/10/Community+Day+2009+Officially+Here.aspx</link>
      <pubDate>Sun, 10 May 2009 08:23:56 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/logo2_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=logo2 border=0 alt=logo2 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/logo2_thumb.jpg" width=244 height=83&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
As announced earlier, Community Day 2009 is coming! Mark Thursday 25th June in your
calendar, as it’s the day you can get a full day of free training and sessions, all
courtesy of the Belgian User Groups.
&lt;/p&gt;
&lt;p&gt;
This third edition is a big step for us. For the first time, we are doing an entire
day (whereas the 2 previous editions were half a day). We also moved to a new location,
as the previous one became too small: we are now in Utopolis in Mechelen. 
&lt;/p&gt;
&lt;p&gt;
Since yesterday evening, I finished the website, it’s now live at &lt;a href="http://www.communityday.be"&gt;www.communityday.be&lt;/a&gt; .
Registration is again free, including food and drinks, BUT seats are limited, so register
in time if you want to be sure you can be there!
&lt;/p&gt;
&lt;p&gt;
Please blog/twitter/Facebook about the event. Below is some “blog bling” you can use
for that!
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner1_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=banner1 border=0 alt=banner1 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner1_thumb.jpg" width=414 height=83&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner2_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=banner2 border=0 alt=banner2 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/banner2_thumb.jpg" width=414 height=83&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/button_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=button border=0 alt=button src="http://www.snowball.be/content/binary/WindowsLiveWriter/Communityday2009officiallyhere_9240/button_thumb.jpg" width=100 height=40&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I hope to see you all on June 25th!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=3503b2fe-c8e2-4e39-92c0-78263133d9fe" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,3503b2fe-c8e2-4e39-92c0-78263133d9fe.aspx</comments>
      <category>Community</category>
      <category>Efficiency</category>
      <category>Community Day</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=ec3390b7-d1bb-49ac-956c-4810bd189f6f</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,ec3390b7-d1bb-49ac-956c-4810bd189f6f.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,ec3390b7-d1bb-49ac-956c-4810bd189f6f.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=ec3390b7-d1bb-49ac-956c-4810bd189f6f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A few weeks back, JetBrains released version 4.5 of ReSharper, probably the most popular
and most widely-used plug-in for Visual Studio. All of the features included in the
product, can be found <a href="http://www.jetbrains.com/resharper/features/" target="_blank"><font color="#0f93d7">here</font></a>.
</p>
        <p>
I have to admit, while I liked the plug-in earlier already, I've been always a bit
afraid of the performance implications it brings along. Since it does background compiling,
it is putting more load on your machine, mostly in memory usage. This also resulted
in longer loading times for projects. I remember when loading a DotNetNuke website,
it took quite long to load the project. 
</p>
        <p>
The main goal of the 4.5 release was performance and memory usage. In the newsletter
that announced the release, you could read the following: 
<br />
" As announced, the new version features major improvements in performance and memory
usage. After all, what is a productivity tool for if not for being agile, robust and
responsive?"
</p>
        <p>
I was eagerly awaiting this version, mainly because of this improvements, so I installed
it immediately. I'm currently doing a project where I work on a VPC (Virtual PC image),
so that would be a good test.
</p>
        <p>
Since then, I'm really blown away by it. It has great performance now, you only notice
a small delay when loading or creating a project. Once running, there's no noticeable
difference anymore between running with or without ReSharper. The memory usage of
the devenv.exe process is still higher than without Resharper, but again, it went
down since previous releases. 
</p>
        <p>
My development machine is also the one I use most of the time to do presentations
and demo's. I do disable Resharper when giving presentations, since it may confuse
attendees when seeing other IntelliSense. Also, like I said, creating an application
is a tad slower still, so for demo purposes, that's not a good thing.
</p>
        <p>
Some people argued that running Visual Studio without Resharper was not what a professional
developer should do. My only argument against that, up until now, was the performance
hit you suffered. Since that is now also gone, I don't see a reason why you should
not have it in your toolbox.
</p>
        <p>
More info on the product can be found at <a href="http://www.jetbrains.com/"><font color="#0f93d7">www.jetbrains.com</font></a>. 
</p>
        <p>
PS: I'm not sponsored by JetBrains to write this review, it's my personal opinion.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=ec3390b7-d1bb-49ac-956c-4810bd189f6f" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Resharper 4.5 review</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,ec3390b7-d1bb-49ac-956c-4810bd189f6f.aspx</guid>
      <link>http://www.snowball.be/2009/04/23/Resharper+45+Review.aspx</link>
      <pubDate>Thu, 23 Apr 2009 08:54:42 GMT</pubDate>
      <description>&lt;p&gt;
A few weeks back, JetBrains released version 4.5 of ReSharper, probably the most popular
and most widely-used plug-in for Visual Studio. All of the features included in the
product, can be found &lt;a href="http://www.jetbrains.com/resharper/features/" target=_blank&gt;&lt;font color=#0f93d7&gt;here&lt;/font&gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I have to admit, while I liked the plug-in earlier already, I've been always a bit
afraid of the performance implications it brings along. Since it does background compiling,
it is putting more load on your machine, mostly in memory usage. This also resulted
in longer loading times for projects. I remember when loading a DotNetNuke website,
it took quite long to load the project. 
&lt;/p&gt;
&lt;p&gt;
The main goal of the 4.5 release was performance and memory usage. In the newsletter
that announced the release, you could read the following: 
&lt;br&gt;
" As announced, the new version features major improvements in performance and memory
usage. After all, what is a productivity tool for if not for being agile, robust and
responsive?"
&lt;/p&gt;
&lt;p&gt;
I was eagerly awaiting this version, mainly because of this improvements, so I installed
it immediately. I'm currently doing a project where I work on a VPC (Virtual PC image),
so that would be a good test.
&lt;/p&gt;
&lt;p&gt;
Since then, I'm really blown away by it. It has great performance now, you only notice
a small delay when loading or creating a project. Once running, there's no noticeable
difference anymore between running with or without ReSharper. The memory usage of
the devenv.exe process is still higher than without Resharper, but again, it went
down since previous releases. 
&lt;/p&gt;
&lt;p&gt;
My development machine is also the one I use most of the time to do presentations
and demo's. I do disable Resharper when giving presentations, since it may confuse
attendees when seeing other IntelliSense. Also, like I said, creating an application
is a tad slower still, so for demo purposes, that's not a good thing.
&lt;/p&gt;
&lt;p&gt;
Some people argued that running Visual Studio without Resharper was not what a professional
developer should do. My only argument against that, up until now, was the performance
hit you suffered. Since that is now also gone, I don't see a reason why you should
not have it in your toolbox.
&lt;/p&gt;
&lt;p&gt;
More info on the product can be found at &lt;a href="http://www.jetbrains.com/"&gt;&lt;font color=#0f93d7&gt;www.jetbrains.com&lt;/font&gt;&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
PS: I'm not sponsored by JetBrains to write this review, it's my personal opinion.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=ec3390b7-d1bb-49ac-956c-4810bd189f6f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,ec3390b7-d1bb-49ac-956c-4810bd189f6f.aspx</comments>
      <category>Efficiency</category>
      <category>Programming tools</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=db13eda0-3187-4583-8247-ae4f47859b5e</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,db13eda0-3187-4583-8247-ae4f47859b5e.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,db13eda0-3187-4583-8247-ae4f47859b5e.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=db13eda0-3187-4583-8247-ae4f47859b5e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Silverlight adoption is growing everyday, both the install base and the number of
large customers making the switch to Silverlight. This weekend, another one made the
plunge into the Silverlight world: <a href="http://www.iplt20.com/"><font color="#0f93d7">www.IPLT20.com</font></a> ,
the official website of the Indian Premier League of cricket. Cricket may not be big
here in Belgium where I live, but it is enjoyed by people in more than 120 countries
around the world, including India, Pakistan, South Africa, Hong Kong, Singapore, Australia,
New Zealand, United Kingdom and even the US. In India, it's even the most watched
sport on television. 
</p>
        <p>
Since they are using Silverlight, they can offer their many visitors a much richer
experience, including interactive statistics and scoreboard display, ball-by-ball
commentary, match highlights simultaneously available using picture-in-picture, and
a rich, immersive photo gallery using deep zoom. 
</p>
        <p>
The site offers access to more than 500 hours of live and on-demand video, has 50.2
million page views in six weeks and expects to to reach 400 million page views, 10
million unique users and 45 million visits during the upcoming season. 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=db13eda0-3187-4583-8247-ae4f47859b5e" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>New win for Silverlight</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,db13eda0-3187-4583-8247-ae4f47859b5e.aspx</guid>
      <link>http://www.snowball.be/2009/04/22/New+Win+For+Silverlight.aspx</link>
      <pubDate>Wed, 22 Apr 2009 09:39:55 GMT</pubDate>
      <description>&lt;p&gt;
Silverlight adoption is growing everyday, both the install base and the number of
large customers making the switch to Silverlight. This weekend, another one made the
plunge into the Silverlight world: &lt;a href="http://www.iplt20.com/"&gt;&lt;font color=#0f93d7&gt;www.IPLT20.com&lt;/font&gt;&lt;/a&gt; ,
the official website of the Indian Premier League of cricket. Cricket may not be big
here in Belgium where I live, but it is enjoyed by people in more than 120 countries
around the world, including India, Pakistan, South Africa, Hong Kong, Singapore, Australia,
New Zealand, United Kingdom and even the US. In India, it's even the most watched
sport on television. 
&lt;/p&gt;
&lt;p&gt;
Since they are using Silverlight, they can offer their many visitors a much richer
experience, including interactive statistics and scoreboard display, ball-by-ball
commentary, match highlights simultaneously available using picture-in-picture, and
a rich, immersive photo gallery using deep zoom. 
&lt;/p&gt;
&lt;p&gt;
The site offers access to more than 500 hours of live and on-demand video, has 50.2
million page views in six weeks and expects to to reach 400 million page views, 10
million unique users and 45 million visits during the upcoming season. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=db13eda0-3187-4583-8247-ae4f47859b5e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,db13eda0-3187-4583-8247-ae4f47859b5e.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=a78623ec-3c57-4967-81df-ab146bc95718</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,a78623ec-3c57-4967-81df-ab146bc95718.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,a78623ec-3c57-4967-81df-ab146bc95718.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=a78623ec-3c57-4967-81df-ab146bc95718</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m preparing some demo’s on ASP.NET caching. One of them includes SQL Server Cache
Notifications (with SQL Server 2005).
</p>
        <p>
For this to work, the first thing you need to do is enabling the Service Broker on
the database. This can be done using the SET ENABLE_BROKER command. 
</p>
        <div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
          <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">
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum1"> 1:</span>
              <span style="color: #0000ff">ALTER</span>
              <span style="color: #0000ff">DATABASE</span> Northwind <span style="color: #0000ff">SET</span> ENABLE_BROKER</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
This command seemed to be taking way too much time (I left it running several minutes,
but it still didn’t do anything). I then stopped the database service and retried.
The command completed in just seconds.
</p>
        <p>
The reason appears to be the following: this command wants to create an exclusive
lock on the database. However, if you still have open connections, it cannot create
this lock and it thus waits and waits… and hangs.
</p>
        <p>
Stopping the service closes all connections and makes it possible to create the broker.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a78623ec-3c57-4967-81df-ab146bc95718" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>SET ENABLE_BROKER hangs</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,a78623ec-3c57-4967-81df-ab146bc95718.aspx</guid>
      <link>http://www.snowball.be/2009/04/19/SET+ENABLEBROKER+Hangs.aspx</link>
      <pubDate>Sun, 19 Apr 2009 10:06:11 GMT</pubDate>
      <description>&lt;p&gt;
I’m preparing some demo’s on ASP.NET caching. One of them includes SQL Server Cache
Notifications (with SQL Server 2005).
&lt;/p&gt;
&lt;p&gt;
For this to work, the first thing you need to do is enabling the Service Broker on
the database. This can be done using the SET ENABLE_BROKER command. 
&lt;/p&gt;
&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALTER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;DATABASE&lt;/span&gt; Northwind &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; ENABLE_BROKER&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This command seemed to be taking way too much time (I left it running several minutes,
but it still didn’t do anything). I then stopped the database service and retried.
The command completed in just seconds.
&lt;/p&gt;
&lt;p&gt;
The reason appears to be the following: this command wants to create an exclusive
lock on the database. However, if you still have open connections, it cannot create
this lock and it thus waits and waits… and hangs.
&lt;/p&gt;
&lt;p&gt;
Stopping the service closes all connections and makes it possible to create the broker.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=a78623ec-3c57-4967-81df-ab146bc95718" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,a78623ec-3c57-4967-81df-ab146bc95718.aspx</comments>
      <category>Efficiency</category>
      <category>SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=20eaf0af-1225-4ec6-adb0-3f1f9a1f6120</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,20eaf0af-1225-4ec6-adb0-3f1f9a1f6120.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,20eaf0af-1225-4ec6-adb0-3f1f9a1f6120.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=20eaf0af-1225-4ec6-adb0-3f1f9a1f6120</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Dear readers, I’m proud to announce officially <strong><a href="http://www.communityday.be">Community
Day 2009</a></strong>, the third edition of a full day of community driven content
on Microsoft technologies. The event will take place on <strong>Thursday</strong><strong>June
25th 2009</strong>. 
</p>
        <p>
For the first time, the event will be a <strong>full day of free sessions</strong>.
Also new is the location: we have moved to <strong>Mechelen</strong>. 
</p>
        <p>
In the coming weeks, you’ll be able to subscribe on the Community day website (which
is at this point not yet updated, but I’m getting to it…).
</p>
        <p>
Spread the word! Community Day 2009 is coming!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=20eaf0af-1225-4ec6-adb0-3f1f9a1f6120" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Community Day 2009 is coming! Save the date!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,20eaf0af-1225-4ec6-adb0-3f1f9a1f6120.aspx</guid>
      <link>http://www.snowball.be/2009/04/16/Community+Day+2009+Is+Coming+Save+The+Date.aspx</link>
      <pubDate>Thu, 16 Apr 2009 20:06:32 GMT</pubDate>
      <description>&lt;p&gt;
Dear readers, I’m proud to announce officially &lt;strong&gt;&lt;a href="http://www.communityday.be"&gt;Community
Day 2009&lt;/a&gt;&lt;/strong&gt;, the third edition of a full day of community driven content
on Microsoft technologies. The event will take place on &lt;strong&gt;Thursday&lt;/strong&gt; &lt;strong&gt;June
25th 2009&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
For the first time, the event will be a &lt;strong&gt;full day of free sessions&lt;/strong&gt;.
Also new is the location: we have moved to &lt;strong&gt;Mechelen&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
In the coming weeks, you’ll be able to subscribe on the Community day website (which
is at this point not yet updated, but I’m getting to it…).
&lt;/p&gt;
&lt;p&gt;
Spread the word! Community Day 2009 is coming!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=20eaf0af-1225-4ec6-adb0-3f1f9a1f6120" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,20eaf0af-1225-4ec6-adb0-3f1f9a1f6120.aspx</comments>
      <category>Community</category>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft today officially announced Tech Ed 2009 Europe. The event will take place
from November 9 until November 13. The event will target both developers and IT Pros
in the same week, so only 1 week for both events. Also, the event will not be in Barcelona
anymore; this time, Berlin will be the city we’ll be visiting. 
</p>
        <p>
          <b>Tech·Ed Europe 2009 will once again be focused into a single week for both communities.</b> The
change in format back to a combined event is based on feedback from both our developer
and IT professional audiences who in this time of economic uncertainty prefer a single
week activity. For 16 years, Tech·Ed Europe has provided our customers the best technical
education event in the industry and we look forward to continuing to deliver the great
content, education and connection opportunities. 
</p>
        <p>
          <b>Tech•Ed 2009 Europe</b>
        </p>
        <p>
Nov 9-13, 2009 
</p>
        <p>
Messe Convention Center 
</p>
        <p>
Berlin, Germany
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Tech-Ed 2009 Europe officially announced</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b.aspx</guid>
      <link>http://www.snowball.be/2009/04/06/TechEd+2009+Europe+Officially+Announced.aspx</link>
      <pubDate>Mon, 06 Apr 2009 22:09:52 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft today officially announced Tech Ed 2009 Europe. The event will take place
from November 9 until November 13. The event will target both developers and IT Pros
in the same week, so only 1 week for both events. Also, the event will not be in Barcelona
anymore; this time, Berlin will be the city we’ll be visiting. 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Tech·Ed Europe 2009 will once again be focused into a single week for both communities.&lt;/b&gt; The
change in format back to a combined event is based on feedback from both our developer
and IT professional audiences who in this time of economic uncertainty prefer a single
week activity. For 16 years, Tech·Ed Europe has provided our customers the best technical
education event in the industry and we look forward to continuing to deliver the great
content, education and connection opportunities. 
&lt;p&gt;
&lt;b&gt;Tech•Ed 2009 Europe&lt;/b&gt; 
&lt;p&gt;
Nov 9-13, 2009 
&lt;p&gt;
Messe Convention Center 
&lt;p&gt;
Berlin, Germany
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,863b1b31-8b9f-4dbf-8e68-1ad86f5b9d5b.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=c654674d-a351-44c3-8386-109904f8e16b</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,c654674d-a351-44c3-8386-109904f8e16b.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,c654674d-a351-44c3-8386-109904f8e16b.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=c654674d-a351-44c3-8386-109904f8e16b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
24 hours of free technical content, that’s exactly what Microsoft Virtual Techdays
is. The event will start worldwide on April 1st and is free for all.
</p>
        <p>
You can still register at <a title="http://www.msfttechdays.com/public/home.aspx" href="http://www.msfttechdays.com/public/home.aspx">http://www.msfttechdays.com/public/home.aspx</a> . 
</p>
        <p>
I’ll be hosting 4 sessions, so drop by if you have a chance!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=c654674d-a351-44c3-8386-109904f8e16b" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Reminder: Microsoft Virtual Techdays 2009</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,c654674d-a351-44c3-8386-109904f8e16b.aspx</guid>
      <link>http://www.snowball.be/2009/03/30/Reminder+Microsoft+Virtual+Techdays+2009.aspx</link>
      <pubDate>Mon, 30 Mar 2009 21:28:34 GMT</pubDate>
      <description>&lt;p&gt;
24 hours of free technical content, that’s exactly what Microsoft Virtual Techdays
is. The event will start worldwide on April 1st and is free for all.
&lt;/p&gt;
&lt;p&gt;
You can still register at &lt;a title=http://www.msfttechdays.com/public/home.aspx href="http://www.msfttechdays.com/public/home.aspx"&gt;http://www.msfttechdays.com/public/home.aspx&lt;/a&gt; . 
&lt;/p&gt;
&lt;p&gt;
I’ll be hosting 4 sessions, so drop by if you have a chance!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=c654674d-a351-44c3-8386-109904f8e16b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,c654674d-a351-44c3-8386-109904f8e16b.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=e548aea6-86f7-4051-ac77-9aa74bab9610</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,e548aea6-86f7-4051-ac77-9aa74bab9610.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,e548aea6-86f7-4051-ac77-9aa74bab9610.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=e548aea6-86f7-4051-ac77-9aa74bab9610</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now that Mix is over, it’s time to write a rather large post on the event that took
place last week in Las Vegas for the 4th time. The 5th edition is already announced
(Mix10 I guess), it will take place March 15-17, in Las Vegas at Mandalay Bay (up
until now, Mix has always been at the Venetian).
</p>
        <p>
Was Mix09 a good edition, compared to previous ones? Absolutely! At Mix06, the first
year the conference was held, the main focus was on ASP.NET Ajax, which allowed “at
that time” writing richer and more compelling user experiences. Mix07 was of course
marked by the announcement of Silverlight 1.0 beta and 1.1 alpha (which would later
become Silverlight 2). A year later, at Mix08, Silverlight 2 officially reached beta
status. And this year, Silverlight 3 arrived in beta. Silverlight 3 is looking at
a release date later this year. 
</p>
        <p>
However, not only Silverlight was the star of the show: the second day of the event
was marked by the RTW of IE8, the all-new version of the popular browser. After a
long road, the new browser is here and it contains a number of interesting new features,
which I’ll cover later in this post.
</p>
        <p>
          <strong>Mix09: the event. Now on DVD!<br /></strong>If you didn’t have the time, money… to attend the event in real life, don’t
fear. All sessions are recorded by Microsoft AND are available for free on the Mix09
website. If you want to get your modem hot from all the downloading, head over to <a title="http://videos.visitmix.com/MIX09" href="http://videos.visitmix.com/MIX09">http://videos.visitmix.com/MIX09</a> for
all videos of the event. Note that you should plan to take some days off work to see
them all, there’s more than 120 videos online. Check out Mike Swanson’s blog for a
complete list of the sessions, a batch file to download all sessions and a batch renamer
for all content (<a title="http://blogs.msdn.com/mswanson" href="http://blogs.msdn.com/mswanson">http://blogs.msdn.com/mswanson</a>)
</p>
        <p>
Also, many speakers have uploaded their demos to their blogs, so be sure to check
them out.
</p>
        <p>
          <strong>Silverlight 2 + 1 = Silverlight 3</strong>
        </p>
        <p>
Star of the show was of course Silverlight 3. The released version is a beta, not
yet feature complete, meaning that some parts of the software that will be in the
final version aren't there yet at this point. All the necessary tools and SDKs are
available, you can find the link below. A very important note: if you are developing
Silverlight 2 applications, you should not install this release on your production
machine, because it makes your setup a Silverlight 3 config. Currently, Silverlight
3 apps are incompatible with Silverlight 2. A virtual machine might be the best option
here.  
</p>
        <p>
          <i>Out-of-browser</i>
        </p>
        <p>
One of, if not the biggest feature of this new release is out-of-browser support.
It allows you to place your application directly on the customer's machine, enabling
an off-line experience that's the same as the online experience. All this becomes
possible without any additional download of runtime or the need to write applications
in a different way. Any Silverlight application that is out-of-browser enabled, can
now be easily found on the user’s desktop or start menu, and launched with a single
click. Also, it can test if the network is connected, update itself and also has access
to Isolated Storage. The API for this is very easy, I'll be writing an article on
this soon. 
</p>
        <p>
Is this any different from Adobe Air, which enables an offline experience as well?
Yes it is. Air needs a separate runtime which is about 20mb in size and provides access
to the entire hard drive of their customer’s computer, which can be a significant
barrier if the customer does not have complete trust. 
</p>
        <p>
Also, the adoption rate for Air is well below the rate for Silverlight. So far, Silverlight
has an install base of about 300 million, since its launch about 5 months ago. Microsoft
estimates that about 400.000 developers and designers are currently using Silverlight
already. 
</p>
        <p>
          <i>Silverlight for Eclipse</i>
        </p>
        <p>
Up until now, the Silverlight tools were mainly aimed at Visual Studio developers.
Microsoft now also has a Silverlight plugin for Eclipse, called Eclipse Tools For
Silverlight (Eclipse4SL). This way, Mac developers can join in in developing Silverlight
applications as well. The current version is a CTP. 
</p>
        <p>
          <i>Expression Blend 3</i>
        </p>
        <p>
While not only targeting Silverlight, the release of Expression Blend 3 is great news
for Silverlight developers and designers, offering full compatibility and support
for Silverlight 3 effects, along with integration with Visual Studio 2010 and WPF.
One of my favorite features is the Photoshop and Illustrator import, enabling smooth
integration with workflows already in place. During the import process, designers
have the freedom to view and import Photoshop files layer by layer. Layers can be
easily regrouped and elements retain their original formats, layers, layer positions,
editable text and vectors. 
</p>
        <p>
Another great feature in Blend 3 is SketchFlow, a way for rapid application prototyping.
Using SketchFlow, designers can rapidly map out and experiment with the UI flow of
a concept with SketchFlow. Built-in ‘sketchy’ styles enable customers to concentrate
on an overall concept of a solution rather than focusing too early on the detail. 
</p>
        <p>
Important feature you may ask for enterprise? Absolutely! Business application experts
can use SketchFlow to rapidly explore different UI flows and scenarios for their line
of business applications without any technical knowledge of the underlying delivery
platform. These ideas can be easily presented via the SketchFlow player which provides
the ability to not only interact with prototypes, but also enabling the user to provide
in-context feedback using the built annotation capability. 
</p>
        <p>
To download all the tools for Silverlight development, go to <a title="http://silverlight.net/getstarted/silverlight3/default.aspx" href="http://silverlight.net/getstarted/silverlight3/default.aspx">http://silverlight.net/getstarted/silverlight3/default.aspx</a>. 
</p>
        <p>
          <b>Microsoft Web Platform</b>
        </p>
        <p>
Let's first take a look at what is really meant with this new term, the Microsoft
Web Platform. The MWP is the software of choice when building Web solutions or applications
for businesses, large or small. If you’re looking to create your company’s global
Web presence, building applications for your small business or launching a new Web
site, Microsoft has the solutions for you. 
</p>
        <p>
The platform includes several components, including the Web Platform Installer and
the Web Application Gallery. 
</p>
        <p>
The Web Platform Installer Includes: 
</p>
        <ul>
          <li>
Internet Information Services (IIS) 5.1 on Windows XP SP3 
</li>
          <li>
IIS 6.0 on Windows Server 2003 SP2 
</li>
          <li>
IIS 7.0 on Windows Vista SP1 and Windows Server 2008 
</li>
          <li>
SQL Server 2008 Express 
</li>
          <li>
.NET Framework 3.5 SP1 
</li>
          <li>
Visual Web Developer 2008 Express Edition 
</li>
          <li>
IIS Extensions including: 
<ul><li>
IIS 7 Media Services 3.0 
</li><li>
IIS7 Administration Pack 
</li><li>
Database Manager for IIS7 
</li><li>
WebDav 7.5 
</li><li>
FTP 7.5 
</li><li>
FastCGI for PHP support on IIS6 
</li><li>
URL Rewriter 
</li><li>
IIS 7 Application Routing 
</li><li>
Web Deployment Tool for IIS</li></ul></li>
          <li>
ASP.NET and features such as ASP.NET MVC 
</li>
          <li>
Silverlight Tools for Visual Studio 
</li>
          <li>
The Community Version of PHP v5.2.9</li>
        </ul>
        <p>
The Windows Web Application Gallery is a collection of the most popular Open Source
and community Web applications that run on Windows. It provides a simple streamlined
way for users to explore, discover, and install ASP.NET, PHP, and other types of web
applications and solutions on the Windows Platform. 
</p>
        <p>
More information and all the downloads can be found at: <a title="Microsoft Web Platform" href="http://www.microsoft.com/Web/downloads/platform.aspx">Microsoft
Web Platform</a>  
</p>
        <p>
          <b>Azure Services Platform</b>
        </p>
        <p>
While the Azure platform was announced in November last year at PDC, a number of updates
to the platform have been released. This shows that Microsoft is committed to delivering
a comprehensive cloud platform. 
</p>
        <p>
The following updates were done on Azure: 
</p>
        <ul>
          <li>
            <b>Windows Azure: </b>An update to the Windows Azure service delivers advancements
in interoperability,  flexiblity, geo-specification, and the ability take existing
IP to the cloud.  
</li>
          <li>
Applications written in 3<sup>rd</sup> party programming languages such as PHP can
be deployed and run on the Windows Azure infrastructure with FastCGI support, providing
an easy to use, scalable cloud runtime and storage environment while giving developers
the power to choose their preferred programming language. For .NET developers, Full
Trust is now available so all aspects of the .NET Framework can be utilized, including
invoking native and legacy code components and giving existing code investments new
life in the cloud.  Over the next few weeks Geolocation will be available, enabling
customers to specify the datacenter location for applications and storage to optimize
for lower network latency and comply with location-based regulatory and legal requirements.  
</li>
          <li>
            <b>SQL Services:</b> SQL Data Services (SDS) recently announced an accelerated roadmap
to provide a cloud database as part of the Azure Services Platform.  
<ul><li>
In this updated roadmap, SDS will deliver a fully relational database service in the
market to provide customers with the ability to use existing investments in on-premises
SQL Server <a href="http://msdn.microsoft.com/en-us/library/ms189826.aspx">T-SQL</a> development
and use a full relational data model in the cloud.  This approach enables greater
developer agility and faster time to market by supporting the use of existing applications,
tools and knowledge, and featuring distributed, cloud based functionality that will
work with other online services or with existing on-premises solutions.  The
public availability of these updated service features will be mid-2009 and commercially
available later this year.</li></ul></li>
          <li>
            <b>.NET Services:</b> .NET Services makes further enhancements to embrace web standards,
interoperability, and provide connectivity on-premises with the cloud, and disparate
groups with each other across network boundaries.  These services allow customers
to easily federate data and messages with its Service Bus and Access Control services. 
By supporting REST, ATOM, JSON, SOAP and HTTP web standards, web developers using
any programming language can use the service to connect, collaborate, and create federated
applications. 
</li>
          <li>
            <b>Live Services:</b> To accommodate increasing popularity and demand, Live Services
was announced at PDC 2008 as an open Community Technology Preview, where any developer
can start utilizing the web services and incorporate them into socially-aware applications
connecting to 460 million Windows Live users.  We will announce Live Services
updates in the future, but have nothing specific to announce at MIX ‘09.</li>
        </ul>
        <p>
More info on Azure can be found at <a title="Azure Services Platform" href="http://www.microsoft.com/azure/">Azure
Services Platform</a></p>
        <p>
          <b>Windows Mobile 6.5</b>
        </p>
        <p>
An updated version of Windows Mobile was also shown at Mix. The most remarkable features
are the new version of Internet Explorer Mobile, the addition of Widgets and Windows
Marketplace for Mobile. 
</p>
        <p>
          <b>Internet Explorer 8</b>
        </p>
        <p>
Finally, Internet Explorer 8 was also released. Internet Explorer 8 takes a big step
forward in browser innovation for the way people use the web today. Internet Explorer
8 makes it easier to visit sites you’ve been to before with the new Smart Address
Bar and enhanced Favorites Bar, works with your search provider to suggest likely
searches based on what you type into the Enhanced Instant Search Box, groups tabs
to match the way you browse the web and gives you Accelerators and Web Slices to keep
you closer to the sites and services you use every day. 
</p>
        <p>
IE8 is also safer than ever. Specifically, Internet Explorer 8 improves upon our protection
against social engineering “phishing” attacks with the new SmartScreen Filter, which
helps protect against malware sites and downloads. Internet Explorer 8’s new Cross-Site
Scripting filter helps protect users against Cross-Site Scripting Type-1 reflection
attacks, one of the most common attacks against Web sites.  
</p>
        <p>
It's also more reliable than ever. It includes a new Compatibility View mode to help
ensure that users can access all the sites they use today without display or functionality
issues. Additionally, the new architecture of Internet Explorer 8 helps ensure that
a single tab crashing does not cause users to lose their whole browser session, and
crash recovery restores the crashed site and content 
</p>
        <p>
Internet Explorer 8 is available on Windows XP SP2 and SP3, Windows Server 2003 SP2,
Windows Server 2008, Windows Vista (RTM), SP1 and SP2. 
</p>
        <p>
To download IE8, go to <a href="http://www.microsoft.com/ie8">www.microsoft.com/ie8</a>. 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e548aea6-86f7-4051-ac77-9aa74bab9610" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Mix09: the &amp;quot;What you need to know&amp;quot; post</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,e548aea6-86f7-4051-ac77-9aa74bab9610.aspx</guid>
      <link>http://www.snowball.be/2009/03/30/Mix09+The+QuotWhat+You+Need+To+Knowquot+Post.aspx</link>
      <pubDate>Mon, 30 Mar 2009 21:25:40 GMT</pubDate>
      <description>&lt;p&gt;
Now that Mix is over, it’s time to write a rather large post on the event that took
place last week in Las Vegas for the 4th time. The 5th edition is already announced
(Mix10 I guess), it will take place March 15-17, in Las Vegas at Mandalay Bay (up
until now, Mix has always been at the Venetian).
&lt;/p&gt;
&lt;p&gt;
Was Mix09 a good edition, compared to previous ones? Absolutely! At Mix06, the first
year the conference was held, the main focus was on ASP.NET Ajax, which allowed “at
that time” writing richer and more compelling user experiences. Mix07 was of course
marked by the announcement of Silverlight 1.0 beta and 1.1 alpha (which would later
become Silverlight 2). A year later, at Mix08, Silverlight 2 officially reached beta
status. And this year, Silverlight 3 arrived in beta. Silverlight 3 is looking at
a release date later this year. 
&lt;/p&gt;
&lt;p&gt;
However, not only Silverlight was the star of the show: the second day of the event
was marked by the RTW of IE8, the all-new version of the popular browser. After a
long road, the new browser is here and it contains a number of interesting new features,
which I’ll cover later in this post.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mix09: the event. Now on DVD!&lt;br&gt;
&lt;/strong&gt;If you didn’t have the time, money… to attend the event in real life, don’t
fear. All sessions are recorded by Microsoft AND are available for free on the Mix09
website. If you want to get your modem hot from all the downloading, head over to &lt;a title=http://videos.visitmix.com/MIX09 href="http://videos.visitmix.com/MIX09"&gt;http://videos.visitmix.com/MIX09&lt;/a&gt; for
all videos of the event. Note that you should plan to take some days off work to see
them all, there’s more than 120 videos online. Check out Mike Swanson’s blog for a
complete list of the sessions, a batch file to download all sessions and a batch renamer
for all content (&lt;a title=http://blogs.msdn.com/mswanson href="http://blogs.msdn.com/mswanson"&gt;http://blogs.msdn.com/mswanson&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Also, many speakers have uploaded their demos to their blogs, so be sure to check
them out.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Silverlight 2 + 1 = Silverlight 3&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Star of the show was of course Silverlight 3. The released version is a beta, not
yet feature complete, meaning that some parts of the software that will be in the
final version aren't there yet at this point. All the necessary tools and SDKs are
available, you can find the link below. A very important note: if you are developing
Silverlight 2 applications, you should not install this release on your production
machine, because it makes your setup a Silverlight 3 config. Currently, Silverlight
3 apps are incompatible with Silverlight 2. A virtual machine might be the best option
here.&amp;nbsp; 
&lt;p&gt;
&lt;i&gt;Out-of-browser&lt;/i&gt; 
&lt;p&gt;
One of, if not the biggest feature of this new release is out-of-browser support.
It allows you to place your application directly on the customer's machine, enabling
an off-line experience that's the same as the online experience. All this becomes
possible without any additional download of runtime or the need to write applications
in a different way. Any Silverlight application that is out-of-browser enabled, can
now be easily found on the user’s desktop or start menu, and launched with a single
click. Also, it can test if the network is connected, update itself and also has access
to Isolated Storage. The API for this is very easy, I'll be writing an article on
this soon. 
&lt;p&gt;
Is this any different from Adobe Air, which enables an offline experience as well?
Yes it is. Air needs a separate runtime which is about 20mb in size and provides access
to the entire hard drive of their customer’s computer, which can be a significant
barrier if the customer does not have complete trust. 
&lt;p&gt;
Also, the adoption rate for Air is well below the rate for Silverlight. So far, Silverlight
has an install base of about 300 million, since its launch about 5 months ago. Microsoft
estimates that about 400.000 developers and designers are currently using Silverlight
already. 
&lt;p&gt;
&lt;i&gt;Silverlight for Eclipse&lt;/i&gt; 
&lt;p&gt;
Up until now, the Silverlight tools were mainly aimed at Visual Studio developers.
Microsoft now also has a Silverlight plugin for Eclipse, called Eclipse Tools For
Silverlight (Eclipse4SL). This way, Mac developers can join in in developing Silverlight
applications as well. The current version is a CTP. 
&lt;p&gt;
&lt;i&gt;Expression Blend 3&lt;/i&gt; 
&lt;p&gt;
While not only targeting Silverlight, the release of Expression Blend 3 is great news
for Silverlight developers and designers, offering full compatibility and support
for Silverlight 3 effects, along with integration with Visual Studio 2010 and WPF.
One of my favorite features is the Photoshop and Illustrator import, enabling smooth
integration with workflows already in place. During the import process, designers
have the freedom to view and import Photoshop files layer by layer. Layers can be
easily regrouped and elements retain their original formats, layers, layer positions,
editable text and vectors. 
&lt;p&gt;
Another great feature in Blend 3 is SketchFlow, a way for rapid application prototyping.
Using SketchFlow, designers can rapidly map out and experiment with the UI flow of
a concept with SketchFlow. Built-in ‘sketchy’ styles enable customers to concentrate
on an overall concept of a solution rather than focusing too early on the detail. 
&lt;p&gt;
Important feature you may ask for enterprise? Absolutely! Business application experts
can use SketchFlow to rapidly explore different UI flows and scenarios for their line
of business applications without any technical knowledge of the underlying delivery
platform. These ideas can be easily presented via the SketchFlow player which provides
the ability to not only interact with prototypes, but also enabling the user to provide
in-context feedback using the built annotation capability. 
&lt;p&gt;
To download all the tools for Silverlight development, go to &lt;a title=http://silverlight.net/getstarted/silverlight3/default.aspx href="http://silverlight.net/getstarted/silverlight3/default.aspx"&gt;http://silverlight.net/getstarted/silverlight3/default.aspx&lt;/a&gt;. 
&lt;p&gt;
&lt;b&gt;Microsoft Web Platform&lt;/b&gt; 
&lt;p&gt;
Let's first take a look at what is really meant with this new term, the Microsoft
Web Platform. The MWP is the software of choice when building Web solutions or applications
for businesses, large or small. If you’re looking to create your company’s global
Web presence, building applications for your small business or launching a new Web
site, Microsoft has the solutions for you. 
&lt;p&gt;
The platform includes several components, including the Web Platform Installer and
the Web Application Gallery. 
&lt;p&gt;
The Web Platform Installer Includes: 
&lt;ul&gt;
&lt;li&gt;
Internet Information Services (IIS) 5.1 on Windows XP SP3 
&lt;li&gt;
IIS 6.0 on Windows Server 2003 SP2 
&lt;li&gt;
IIS 7.0 on Windows Vista SP1 and Windows Server 2008 
&lt;li&gt;
SQL Server 2008 Express 
&lt;li&gt;
.NET Framework 3.5 SP1 
&lt;li&gt;
Visual Web Developer 2008 Express Edition 
&lt;li&gt;
IIS Extensions including: 
&lt;ul&gt;
&lt;li&gt;
IIS 7 Media Services 3.0 
&lt;li&gt;
IIS7 Administration Pack 
&lt;li&gt;
Database Manager for IIS7 
&lt;li&gt;
WebDav 7.5 
&lt;li&gt;
FTP 7.5 
&lt;li&gt;
FastCGI for PHP support on IIS6 
&lt;li&gt;
URL Rewriter 
&lt;li&gt;
IIS 7 Application Routing 
&lt;li&gt;
Web Deployment Tool for IIS&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
ASP.NET and features such as ASP.NET MVC 
&lt;li&gt;
Silverlight Tools for Visual Studio 
&lt;li&gt;
The Community Version of PHP v5.2.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The Windows Web Application Gallery is a collection of the most popular Open Source
and community Web applications that run on Windows. It provides a simple streamlined
way for users to explore, discover, and install ASP.NET, PHP, and other types of web
applications and solutions on the Windows Platform. 
&lt;p&gt;
More information and all the downloads can be found at: &lt;a title="Microsoft Web Platform" href="http://www.microsoft.com/Web/downloads/platform.aspx"&gt;Microsoft
Web Platform&lt;/a&gt;&amp;nbsp; 
&lt;p&gt;
&lt;b&gt;Azure Services Platform&lt;/b&gt; 
&lt;p&gt;
While the Azure platform was announced in November last year at PDC, a number of updates
to the platform have been released. This shows that Microsoft is committed to delivering
a comprehensive cloud platform. 
&lt;p&gt;
The following updates were done on Azure: 
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;Windows Azure: &lt;/b&gt;An update to the Windows Azure service delivers advancements
in interoperability,&amp;nbsp; flexiblity, geo-specification, and the ability take existing
IP to the cloud.&amp;nbsp; 
&lt;li&gt;
Applications written in 3&lt;sup&gt;rd&lt;/sup&gt; party programming languages such as PHP can
be deployed and run on the Windows Azure infrastructure with FastCGI support, providing
an easy to use, scalable cloud runtime and storage environment while giving developers
the power to choose their preferred programming language. For .NET developers, Full
Trust is now available so all aspects of the .NET Framework can be utilized, including
invoking native and legacy code components and giving existing code investments new
life in the cloud.&amp;nbsp; Over the next few weeks Geolocation will be available, enabling
customers to specify the datacenter location for applications and storage to optimize
for lower network latency and comply with location-based regulatory and legal requirements.&amp;nbsp; 
&lt;li&gt;
&lt;b&gt;SQL Services:&lt;/b&gt; SQL Data Services (SDS) recently announced an accelerated roadmap
to provide a cloud database as part of the Azure Services Platform.&amp;nbsp; 
&lt;ul&gt;
&lt;li&gt;
In this updated roadmap, SDS will deliver a fully relational database service in the
market to provide customers with the ability to use existing investments in on-premises
SQL Server &lt;a href="http://msdn.microsoft.com/en-us/library/ms189826.aspx"&gt;T-SQL&lt;/a&gt; development
and use a full relational data model in the cloud.&amp;nbsp; This approach enables greater
developer agility and faster time to market by supporting the use of existing applications,
tools and knowledge, and featuring distributed, cloud based functionality that will
work with other online services or with existing on-premises solutions.&amp;nbsp; The
public availability of these updated service features will be mid-2009 and commercially
available later this year.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;b&gt;.NET Services:&lt;/b&gt; .NET Services makes further enhancements to embrace web standards,
interoperability, and provide connectivity on-premises with the cloud, and disparate
groups with each other across network boundaries.&amp;nbsp; These services allow customers
to easily federate data and messages with its Service Bus and Access Control services.&amp;nbsp;
By supporting REST, ATOM, JSON, SOAP and HTTP web standards, web developers using
any programming language can use the service to connect, collaborate, and create federated
applications. 
&lt;li&gt;
&lt;b&gt;Live Services:&lt;/b&gt; To accommodate increasing popularity and demand, Live Services
was announced at PDC 2008 as an open Community Technology Preview, where any developer
can start utilizing the web services and incorporate them into socially-aware applications
connecting to 460 million Windows Live users.&amp;nbsp; We will announce Live Services
updates in the future, but have nothing specific to announce at MIX ‘09.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
More info on Azure can be found at &lt;a title="Azure Services Platform" href="http://www.microsoft.com/azure/"&gt;Azure
Services Platform&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Windows Mobile 6.5&lt;/b&gt; 
&lt;p&gt;
An updated version of Windows Mobile was also shown at Mix. The most remarkable features
are the new version of Internet Explorer Mobile, the addition of Widgets and Windows
Marketplace for Mobile. 
&lt;p&gt;
&lt;b&gt;Internet Explorer 8&lt;/b&gt; 
&lt;p&gt;
Finally, Internet Explorer 8 was also released. Internet Explorer 8 takes a big step
forward in browser innovation for the way people use the web today. Internet Explorer
8 makes it easier to visit sites you’ve been to before with the new Smart Address
Bar and enhanced Favorites Bar, works with your search provider to suggest likely
searches based on what you type into the Enhanced Instant Search Box, groups tabs
to match the way you browse the web and gives you Accelerators and Web Slices to keep
you closer to the sites and services you use every day. 
&lt;p&gt;
IE8 is also safer than ever. Specifically, Internet Explorer 8 improves upon our protection
against social engineering “phishing” attacks with the new SmartScreen Filter, which
helps protect against malware sites and downloads. Internet Explorer 8’s new Cross-Site
Scripting filter helps protect users against Cross-Site Scripting Type-1 reflection
attacks, one of the most common attacks against Web sites.&amp;nbsp; 
&lt;p&gt;
It's also more reliable than ever. It includes a new Compatibility View mode to help
ensure that users can access all the sites they use today without display or functionality
issues. Additionally, the new architecture of Internet Explorer 8 helps ensure that
a single tab crashing does not cause users to lose their whole browser session, and
crash recovery restores the crashed site and content 
&lt;p&gt;
Internet Explorer 8 is available on Windows XP SP2 and SP3, Windows Server 2003 SP2,
Windows Server 2008, Windows Vista (RTM), SP1 and SP2. 
&lt;p&gt;
To download IE8, go to &lt;a href="http://www.microsoft.com/ie8"&gt;www.microsoft.com/ie8&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e548aea6-86f7-4051-ac77-9aa74bab9610" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,e548aea6-86f7-4051-ac77-9aa74bab9610.aspx</comments>
      <category>Efficiency</category>
      <category>Events</category>
      <category>Silverlight</category>
      <category>Mix 09</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=70113397-d79a-4dc6-a6e1-8f861bc214de</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,70113397-d79a-4dc6-a6e1-8f861bc214de.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,70113397-d79a-4dc6-a6e1-8f861bc214de.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=70113397-d79a-4dc6-a6e1-8f861bc214de</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now that Techdays, Mix09 and many other interesting conferences are behind us, it’s
time to kick up the pace and organize a great number of Visug sessions. I’ve almost
finished uploading all sessions, except for 2: my own one on ASP.NET caching (I still
need to create the abstract) and another one presented by an international speaker
(again!). I’ll keep you posted on the latter.
</p>
        <p>
Here’s a list of all upcoming sessions so far announced:
</p>
        <p>
          <strong>Back 2 Basics: LINQ</strong>
          <br />
Presented by: Kurt Claeys on: 15/4/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx</a></p>
        <p>
          <strong>Back 2 Basics: ASP.NET caching</strong>
          <br />
Presented by: Gill Cleeren on: 29/4/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx</a></p>
        <p>
          <strong>Mocking<br /></strong>Presented by: Maarten Balliauw on: Thursday, May 07, 2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx</a></p>
        <p>
          <strong>Back 2 Basics: Integrating Membership, Role Management and Profiles into Web
Applications<br /></strong>Presented by: Pieter Gheysens on: 27/5/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx</a></p>
        <p>
          <strong>Domain Driven Design </strong>
          <br />
Presented by: Yves Goeleven on: 18/6/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx</a></p>
        <p>
          <strong>IronRuby: The .NET developer should not fear the dynamic language</strong>
          <br />
Presented by: Ivan Porto Carrero on: 30/6/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx</a></p>
        <p>
          <strong>ORMs: Entity Framework vs NHibernate</strong>
          <br />
Presented by: Kurt Claeys &amp; Davy Brion on: 10/9/2009<br />
Registration: <a title="http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx" href="http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx">http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx</a></p>
        <p>
          <strong>If you are interested in doing a session for Visug, please contact us! Send
us a mail via </strong>
          <a href="mailto:board@visug.be">
            <strong>board@visug.be</strong>
          </a>
          <strong> .</strong>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=70113397-d79a-4dc6-a6e1-8f861bc214de" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Visug in overdrive</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,70113397-d79a-4dc6-a6e1-8f861bc214de.aspx</guid>
      <link>http://www.snowball.be/2009/03/22/Visug+In+Overdrive.aspx</link>
      <pubDate>Sun, 22 Mar 2009 23:23:17 GMT</pubDate>
      <description>&lt;p&gt;
Now that Techdays, Mix09 and many other interesting conferences are behind us, it’s
time to kick up the pace and organize a great number of Visug sessions. I’ve almost
finished uploading all sessions, except for 2: my own one on ASP.NET caching (I still
need to create the abstract) and another one presented by an international speaker
(again!). I’ll keep you posted on the latter.
&lt;/p&gt;
&lt;p&gt;
Here’s a list of all upcoming sessions so far announced:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Back 2 Basics: LINQ&lt;/strong&gt;
&lt;br&gt;
Presented by: Kurt Claeys on: 15/4/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;Back 2 Basics: ASP.NET caching&lt;/strong&gt;
&lt;br&gt;
Presented by: Gill Cleeren on: 29/4/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;Mocking&lt;br&gt;
&lt;/strong&gt;Presented by: Maarten Balliauw on: Thursday, May 07, 2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;Back 2 Basics: Integrating Membership, Role Management and Profiles into Web
Applications&lt;br&gt;
&lt;/strong&gt;Presented by: Pieter Gheysens on: 27/5/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;Domain Driven Design &lt;/strong&gt;
&lt;br&gt;
Presented by: Yves Goeleven on: 18/6/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;IronRuby: The .NET developer should not fear the dynamic language&lt;/strong&gt;
&lt;br&gt;
Presented by: Ivan Porto Carrero on: 30/6/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;ORMs: Entity Framework vs NHibernate&lt;/strong&gt;
&lt;br&gt;
Presented by: Kurt Claeys &amp;amp; Davy Brion on: 10/9/2009&lt;br&gt;
Registration: &lt;a title=http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx href="http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx"&gt;http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;If you are interested in doing a session for Visug, please contact us! Send
us a mail via &lt;/strong&gt;&lt;a href="mailto:board@visug.be"&gt;&lt;strong&gt;board@visug.be&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; .&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=70113397-d79a-4dc6-a6e1-8f861bc214de" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,70113397-d79a-4dc6-a6e1-8f861bc214de.aspx</comments>
      <category>Efficiency</category>
      <category>Visug</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=eacc8d38-9aac-4544-84c6-00b2a76aaa28</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,eacc8d38-9aac-4544-84c6-00b2a76aaa28.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,eacc8d38-9aac-4544-84c6-00b2a76aaa28.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=eacc8d38-9aac-4544-84c6-00b2a76aaa28</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last week, Microsoft organized the Belgian edition of the Techdays, for the first
time in Antwerp. After reading (Twitter, blogs…) and hearing quite a lot of feedback,
the event was a success. 
</p>
        <p>
For me personally, it was also an exciting week: for the first time in my career,
I was doing a keynote. I presented the Silverlight part of this talk, together with
2 other Regional Directors from Belgium: Peter Himschoot took the WPF part and Grégory
Renard handled the Surface. Also, Katrien De Graeve (Microsoft) showed Windows 7 and
Azure, while Hans Verbeeck (also Microsoft) glued all bits and pieces into a nice
session. 
</p>
        <p>
In this article, you’ll get an overview of the demo we created for the keynote, called
“Silverlight on the bike”. 
</p>
        <p>
          <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px 0px 0px 100px; BORDER-RIGHT-WIDTH: 0px" height="249" alt="silverlightonthebike1" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike1_3.jpg" width="280" border="0" />
        </p>
        <p>
          <b>The scenario</b>
        </p>
        <p>
Hans, when not behind his laptop, loves to ride his bike. While on his bike, he wears
a small device from Garmin that monitors his heart rate and also retrieves the entire
route that he followed via GPS. When combining these 2 bits of information, you can
see where the heartbeat went higher (because of a slope for example). 
</p>
        <p>
Garmin must like developers, because they expose this data as XML. Pure clean XML
that any developer can read out. This data was the start for our scenario: plot out
the route that Hans did on his bike on a map, show the heartbeat on a graph, throw
in some pictures he took along the road and expose all this in a familiar looking
interface in the browser. 
</p>
        <p>
The demo also needed to run as a standalone application as well as on the surface.
Because of the portability of the code between Silverlight and WPF (Surface applications
are WPF as well), a large amount of code could simply be copied from one platform
to another. 
</p>
        <p>
          <b>And here’s how we created it…</b>
        </p>
        <p>
While the demo contains too much code to explain here, I’ll go over some of the most
interesting parts that really make Silverlight shine. 
</p>
        <p>
          <em>Step 1: Design is everything (sort of…)</em>
        </p>
        <p>
The first thing we did was going to a designer and explain him the needs of our application.
A request from our side was of course that he needed to create the interface in Blend.
So he came up with a design, completely in XAML, as shown below. 
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike2_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="220" alt="silverlightonthebike2" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike2_thumb.jpg" width="371" border="0" />
          </a>
        </p>
        <p>
A cool thing when working with Silverlight is a nice workflow between designers working
in Blend and developers working in Visual Studio. Since designers work with the same
files as developers, there’s no need to cut and paste the work that the designer did:
he can make changes while developers are creating their code and these changes will
be incorporated without any hassle. 
</p>
        <p>
          <em>Step 2: Get me that data</em>
        </p>
        <p>
Design is one thing, coding is another. Our application is built around data (remember
the XML file from the Garmin device), so the first problem that needs solving is getting
that data into the application. Silverlight 2 supports several ways to connect with
data: WCF, webservices, reading remote files… For the sake of simplicity, we are going
to use the latter: we’ll drop the XML file in the web application. Silverlight now
needs to connect with the file using the WebClient, a class that’s also available
in the full version of the .NET framework. 
</p>
        <p>
Whenever Silverlight needs to go out fetching data, it will do so asynchronously.
If it would perform this action synchronously, the browser would hang while data flows
from server to client or vice-versa. 
</p>
        <p>
Codesnippet 1 shows the code needed for the data access and the result is shown. 
</p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span> WebClient
client = <span style="COLOR: #0000ff">new</span> WebClient();</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span> Uri
address = <span style="COLOR: #0000ff">new</span> Uri(<span style="COLOR: #006080">"http://localhost:"</span> +
HtmlPage.Document.DocumentUri.Port + <span style="COLOR: #006080">"/"</span> + fileName,
UriKind.Absolute);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span> client.OpenReadCompleted
+= client_OpenReadCompleted;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span> client.OpenReadAsync(address);</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>CodeSnippet 1</em>
        </p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike3_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="244" alt="silverlightonthebike3" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike3_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <p>
          <em>Step 3: Let’s parse XML (still yuck?)</em>
        </p>
        <p>
Now that we are able to connect with the data, we need to do something with it, we
only have it in a string at this point. We need to parse the XML and create objects
that represent the data in memory. Parsing XML using the “traditional” way, using
XmlDocument classes and the like, is not my favorite part of my development life.
This API is quite difficult and often requires XPath knowledge to access the correct
data. 
</p>
        <p>
Since .NET 3.5 (in fact also in 3.0 as beta), LINQ and LINQ to XML were introduced
and the great thing is that these are also included in Silverlight. Using the LINQ
to XML API, we can very easily parse the XML and create objects representing the data.
Codesnippet 2 shows the XML, codesnippet 3 shows the type that we’ll be creating.
In Codesnippet 4, the code to parse the XML and to create a generic list of TrackPoint
instances is shown. 
</p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Trackpoint</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Time</span>
              <span style="COLOR: #0000ff">&gt;</span>2009-02-14T14:13:10Z<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Time</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Position</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">LatitudeDegrees</span>
              <span style="COLOR: #0000ff">&gt;</span>51.3509752<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">LatitudeDegrees</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">LongitudeDegrees</span>
              <span style="COLOR: #0000ff">&gt;</span>4.6816549<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">LongitudeDegrees</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Position</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">AltitudeMeters</span>
              <span style="COLOR: #0000ff">&gt;</span>20.3249512<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">AltitudeMeters</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DistanceMeters</span>
              <span style="COLOR: #0000ff">&gt;</span>0.0343911<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">DistanceMeters</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">HeartRateBpm</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Value</span>
              <span style="COLOR: #0000ff">&gt;</span>111<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Value</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum11" style="COLOR: #606060"> 11:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">HeartRateBpm</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum12" style="COLOR: #606060"> 12:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">SensorState</span>
              <span style="COLOR: #0000ff">&gt;</span>Absent<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">SensorState</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum13" style="COLOR: #606060"> 13:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Trackpoint</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum14" style="COLOR: #606060"> 14:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Trackpoint</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum15" style="COLOR: #606060"> 15:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Time</span>
              <span style="COLOR: #0000ff">&gt;</span>2009-02-14T14:13:11Z<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Time</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum16" style="COLOR: #606060"> 16:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Position</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum17" style="COLOR: #606060"> 17:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">LatitudeDegrees</span>
              <span style="COLOR: #0000ff">&gt;</span>51.3509765<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">LatitudeDegrees</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum18" style="COLOR: #606060"> 18:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">LongitudeDegrees</span>
              <span style="COLOR: #0000ff">&gt;</span>4.6816523<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">LongitudeDegrees</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum19" style="COLOR: #606060"> 19:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Position</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum20" style="COLOR: #606060"> 20:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">AltitudeMeters</span>
              <span style="COLOR: #0000ff">&gt;</span>20.3249512<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">AltitudeMeters</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum21" style="COLOR: #606060"> 21:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DistanceMeters</span>
              <span style="COLOR: #0000ff">&gt;</span>0.0000000<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">DistanceMeters</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum22" style="COLOR: #606060"> 22:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">HeartRateBpm</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum23" style="COLOR: #606060"> 23:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Value</span>
              <span style="COLOR: #0000ff">&gt;</span>110<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Value</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum24" style="COLOR: #606060"> 24:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">HeartRateBpm</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum25" style="COLOR: #606060"> 25:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">SensorState</span>
              <span style="COLOR: #0000ff">&gt;</span>Absent<span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">SensorState</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum26" style="COLOR: #606060"> 26:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Trackpoint</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum27" style="COLOR: #606060"> 27:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Trackpoint</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 2</em>
        </p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">class</span> TrackPoint</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #0000ff">private</span> DateTime
_time;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>
              <span style="COLOR: #0000ff">public</span> DateTime
Time</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span> get
{ <span style="COLOR: #0000ff">return</span> _time; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span> set
{ _time = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum11" style="COLOR: #606060"> 11:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum12" style="COLOR: #606060"> 12:</span>
              <span style="COLOR: #0000ff">private</span> Point
_position;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum13" style="COLOR: #606060"> 13:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum14" style="COLOR: #606060"> 14:</span>
              <span style="COLOR: #0000ff">public</span> Point
Position</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum15" style="COLOR: #606060"> 15:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum16" style="COLOR: #606060"> 16:</span> get
{ <span style="COLOR: #0000ff">return</span> _position; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum17" style="COLOR: #606060"> 17:</span> set
{ _position = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum18" style="COLOR: #606060"> 18:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum19" style="COLOR: #606060"> 19:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum20" style="COLOR: #606060"> 20:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum21" style="COLOR: #606060"> 21:</span>
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">double</span> X</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum22" style="COLOR: #606060"> 22:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum23" style="COLOR: #606060"> 23:</span> get
{ <span style="COLOR: #0000ff">return</span> _position.X; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum24" style="COLOR: #606060"> 24:</span> set
{ _position.X = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum25" style="COLOR: #606060"> 25:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum26" style="COLOR: #606060"> 26:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum27" style="COLOR: #606060"> 27:</span>
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">double</span> Y</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum28" style="COLOR: #606060"> 28:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum29" style="COLOR: #606060"> 29:</span> get
{ <span style="COLOR: #0000ff">return</span> _position.Y; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum30" style="COLOR: #606060"> 30:</span> set
{ _position.Y = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum31" style="COLOR: #606060"> 31:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum32" style="COLOR: #606060"> 32:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum33" style="COLOR: #606060"> 33:</span>
              <span style="COLOR: #0000ff">private</span>
              <span style="COLOR: #0000ff">int</span> _cadence;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum34" style="COLOR: #606060"> 34:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum35" style="COLOR: #606060"> 35:</span>
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">int</span> Cadence</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum36" style="COLOR: #606060"> 36:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum37" style="COLOR: #606060"> 37:</span> get
{ <span style="COLOR: #0000ff">return</span> _cadence; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum38" style="COLOR: #606060"> 38:</span> set
{ _cadence = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum39" style="COLOR: #606060"> 39:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum40" style="COLOR: #606060"> 40:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum41" style="COLOR: #606060"> 41:</span>
              <span style="COLOR: #0000ff">private</span>
              <span style="COLOR: #0000ff">double</span> _distance;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum42" style="COLOR: #606060"> 42:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum43" style="COLOR: #606060"> 43:</span>
              <span style="COLOR: #0000ff">public</span>
              <span style="COLOR: #0000ff">double</span> Distance</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum44" style="COLOR: #606060"> 44:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum45" style="COLOR: #606060"> 45:</span> get
{ <span style="COLOR: #0000ff">return</span> _distance; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum46" style="COLOR: #606060"> 46:</span> set
{ _distance = <span style="COLOR: #0000ff">value</span>; }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum47" style="COLOR: #606060"> 47:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum48" style="COLOR: #606060"> 48:</span> } </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 3</em>
        </p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">public</span> List&lt;TrackPoint&gt;
Load(Stream filename)</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span> XElement
doc = XElement.Load(filename);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span> List&lt;XElement&gt;
tps = doc.Descendants(<span style="COLOR: #006080">"Trackpoint"</span>).ToList&lt;XElement&gt;();</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span> TrackPoint
tp = <span style="COLOR: #0000ff">null</span>;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>
              <span style="COLOR: #0000ff">foreach</span> (XElement
point <span style="COLOR: #0000ff">in</span> tps)</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span>
              <span style="COLOR: #0000ff">try</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum11" style="COLOR: #606060"> 11:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum12" style="COLOR: #606060"> 12:</span> tp
= <span style="COLOR: #0000ff">new</span> TrackPoint();</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum13" style="COLOR: #606060"> 13:</span> tp.Position
= <span style="COLOR: #0000ff">new</span> Point(<span style="COLOR: #0000ff">double</span>.Parse(point.Descendants(<span style="COLOR: #006080">"LatitudeDegrees"</span>).First().Value)
/ 10000000,</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum14" style="COLOR: #606060"> 14:</span>
              <span style="COLOR: #0000ff">double</span>.Parse(point.Descendants(<span style="COLOR: #006080">"LongitudeDegrees"</span>).First().Value)
/ 10000000);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum15" style="COLOR: #606060"> 15:</span> tp.Distance
= <span style="COLOR: #0000ff">double</span>.Parse(point.Descendants(<span style="COLOR: #006080">"DistanceMeters"</span>).First().Value)
/ 10000000;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum16" style="COLOR: #606060"> 16:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum17" style="COLOR: #606060"> 17:</span>
              <span style="COLOR: #0000ff">if</span> (tp.Distance
&gt; _totalDistance)</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum18" style="COLOR: #606060"> 18:</span> _totalDistance
= tp.Distance;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum19" style="COLOR: #606060"> 19:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum20" style="COLOR: #606060"> 20:</span> tp.Cadence
= <span style="COLOR: #0000ff">int</span>.Parse(point.Descendants(<span style="COLOR: #006080">"HeartRateBpm"</span>).First().Value);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum21" style="COLOR: #606060"> 21:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum22" style="COLOR: #606060"> 22:</span> _trackPoints.Add(tp);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum23" style="COLOR: #606060"> 23:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum24" style="COLOR: #606060"> 24:</span>
              <span style="COLOR: #0000ff">catch</span> (Exception)</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum25" style="COLOR: #606060"> 25:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum26" style="COLOR: #606060"> 26:</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum27" style="COLOR: #606060"> 27:</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum28" style="COLOR: #606060"> 28:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum29" style="COLOR: #606060"> 29:</span> }</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum30" style="COLOR: #606060"> 30:</span>
              <span style="COLOR: #0000ff">return</span> _trackPoints;</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum31" style="COLOR: #606060"> 31:</span> }</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 4</em>
        </p>
        <p>
          <em>Step 4: Design: OK! Data: OK! UI: To Do!</em>
        </p>
        <p>
Now we have the data from the device ready on the client-side within our Silverlight
application as a generic list. We can now go ahead and add the UI elements to the
interface. 
</p>
        <p>
Up first is a ribbon. We want to create a user interface that feels familiar to a
user of the application. A great way to achieve this, is using a ribbon known from
Office 2007. Currently, Silverlight does not contain a ribbon out-of-the-box yet,
but there are some custom-built ones available. For the sake of simplicity, I created
a usercontrol containing the ribbon instantiation. This keeps my Page.xaml code cleaner.
Codesnippet 5 contains the code for the ribbon and codesnippet 6 contains the usercontrol
that we’ll put on the page. 
</p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:Ribbon.QuickLaunchButtons</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">SmallImageSource</span>
              <span style="COLOR: #0000ff">="Images/Save.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">SmallImageSource</span>
              <span style="COLOR: #0000ff">="Images/Undo.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">SmallImageSource</span>
              <span style="COLOR: #0000ff">="Images/Repeat.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:Ribbon.QuickLaunchButtons</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>
              <span style="COLOR: #008000">&lt;!--
Tabs --&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span>
              <span style="COLOR: #008000">&lt;!--
Home --&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonTab</span>
              <span style="COLOR: #ff0000">Title</span>
              <span style="COLOR: #0000ff">="Home"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum11" style="COLOR: #606060"> 11:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #ff0000">Title</span>
              <span style="COLOR: #0000ff">="Actions"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum12" style="COLOR: #606060"> 12:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="New
data"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/addxml.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum13" style="COLOR: #606060"> 13:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="Change
data"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/addxml.png"</span>
              <span style="COLOR: #ff0000">ButtonClick</span>
              <span style="COLOR: #0000ff">="RibbonButton_ButtonClick"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum14" style="COLOR: #606060"> 14:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="Images"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/addimages.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum15" style="COLOR: #606060"> 15:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum16" style="COLOR: #606060"> 16:</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum17" style="COLOR: #606060"> 17:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #ff0000">Title</span>
              <span style="COLOR: #0000ff">="Reporting"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum18" style="COLOR: #606060"> 18:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="New
report"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/addreport.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum19" style="COLOR: #606060"> 19:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="View
reports"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/addreport.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum20" style="COLOR: #606060"> 20:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum21" style="COLOR: #606060"> 21:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:RibbonTab</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum22" style="COLOR: #606060"> 22:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum23" style="COLOR: #606060"> 23:</span>
              <span style="COLOR: #008000">&lt;!--
Help --&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum24" style="COLOR: #606060"> 24:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonTab</span>
              <span style="COLOR: #ff0000">Title</span>
              <span style="COLOR: #0000ff">="Help"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum25" style="COLOR: #606060"> 25:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #ff0000">Title</span>
              <span style="COLOR: #0000ff">="Help"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum26" style="COLOR: #606060"> 26:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="About"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/about.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum27" style="COLOR: #606060"> 27:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">rbn:RibbonButton</span>
              <span style="COLOR: #ff0000">Text</span>
              <span style="COLOR: #0000ff">="Help"</span>
              <span style="COLOR: #ff0000">LargeImageSource</span>
              <span style="COLOR: #0000ff">="Images/help2.png"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum28" style="COLOR: #606060"> 28:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:RibbonTabGroup</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum29" style="COLOR: #606060"> 29:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum30" style="COLOR: #606060"> 30:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:RibbonTab</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum31" style="COLOR: #606060"> 31:</span>  </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum32" style="COLOR: #606060"> 32:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">rbn:Ribbon</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 5</em>
        </p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #008000">&lt;!--
Ribbon --&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">usercontrols:RibbonControl</span>
              <span style="COLOR: #ff0000">Grid</span>.<span style="COLOR: #ff0000">Row</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000">Grid</span>.<span style="COLOR: #ff0000">Column</span><span style="COLOR: #0000ff">="0"</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #ff0000">x:Name</span>
              <span style="COLOR: #0000ff">="mainRibbon"</span>
              <span style="COLOR: #ff0000">VerticalAlignment</span>
              <span style="COLOR: #0000ff">="Top"</span>
              <span style="COLOR: #0000ff">&gt;&lt;/</span>
              <span style="COLOR: #800000">usercontrols:RibbonControl</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 6</em>
        </p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike4_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="106" alt="silverlightonthebike4" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike4_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <p>
Next, we’ll add a Telerik Coverflow control that will enable us to flip through the
images. Telerik as well as Infragistics (and many other vendors) have been busy creating
controls suites, giving you many more controls to work with. Codesnippet 7 shows the
code for this control. 
</p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">telerikNavigation:RadCoverFlow</span>
              <span style="COLOR: #ff0000">x:Name</span>
              <span style="COLOR: #0000ff">="coverFlow"</span>
              <span style="COLOR: #ff0000">CameraY</span>
              <span style="COLOR: #0000ff">="-80"</span>
              <span style="COLOR: #ff0000">ItemMaxHeight</span>
              <span style="COLOR: #0000ff">="100"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #ff0000">SelectedIndex</span>
              <span style="COLOR: #0000ff">="5"</span>
              <span style="COLOR: #ff0000">VerticalAlignment</span>
              <span style="COLOR: #0000ff">="Top"</span>
              <span style="COLOR: #ff0000">CenterOffsetY</span>
              <span style="COLOR: #0000ff">="15"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Image</span>
              <span style="COLOR: #ff0000">Source</span>
              <span style="COLOR: #0000ff">="Pictures/1.jpg"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Image</span>
              <span style="COLOR: #ff0000">Source</span>
              <span style="COLOR: #0000ff">="Pictures/2.jpg"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Image</span>
              <span style="COLOR: #ff0000">Source</span>
              <span style="COLOR: #0000ff">="Pictures/3.jpg"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Image</span>
              <span style="COLOR: #ff0000">Source</span>
              <span style="COLOR: #0000ff">="Pictures/4.jpg"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Image</span>
              <span style="COLOR: #ff0000">Source</span>
              <span style="COLOR: #0000ff">="Pictures/5.jpg"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">telerikNavigation:RadCoverFlow</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike5_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="168" alt="silverlightonthebike5" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike5_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <p>
One of the main goals of the application is of course the display of the map that
will also display the route that Hans did on his bike. A perfect candidate for this
is Virtual Earth. On Codeplex, a project called DeepEarth, allows us to display Virtual
Earth maps inside a Silverlight application. It also includes all the necessary stuff
to show paths, icons etc and allows for easy zooming and panning. We’ll use this control
to display the route. 
</p>
        <p>
Of course, we need to convert our data for the map to use. This is very simple code
shown in codesnippet 8. What we’re doing here is simply converting our generic list
of Trackpoints to a list of points the DeepEarth control can work with. Codesnippet
9 shows the code for displaying the map.
</p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">private</span>
              <span style="COLOR: #0000ff">void</span> AddPolygon()</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span> {</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span> ConfigShapeLayer();</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span> var
points = <span style="COLOR: #0000ff">new</span> List&lt;Point&gt; { <span style="COLOR: #0000ff">new</span> Point(0,
0), <span style="COLOR: #0000ff">new</span> Point(20, 0), <span style="COLOR: #0000ff">new</span> Point(20,
20), <span style="COLOR: #0000ff">new</span> Point(0, 20) };</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span> var
polygon = <span style="COLOR: #0000ff">new</span> DeepEarth.Geometry.Polygon { Points
= points };</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span> shapeLayer.Add(polygon);</pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span> }</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 8</em>
        </p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepEarth:Map</span>
              <span style="COLOR: #ff0000">x:Name</span>
              <span style="COLOR: #0000ff">="map"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepControls:NavControl</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepControls:MapSourceControl</span>
              <span style="COLOR: #ff0000">SelectedSource</span>
              <span style="COLOR: #0000ff">="Hybrid"</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepVE:TileLayer</span>
              <span style="COLOR: #ff0000">MapMode</span>
              <span style="COLOR: #0000ff">="Aerial"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepVE:TileLayer</span>
              <span style="COLOR: #ff0000">MapMode</span>
              <span style="COLOR: #0000ff">="Hybrid"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepVE:TileLayer</span>
              <span style="COLOR: #ff0000">MapMode</span>
              <span style="COLOR: #0000ff">="Road"</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">DeepControls:MapSourceControl</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">DeepControls:NavControl</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DeepControls:CoordControl</span>
              <span style="COLOR: #0000ff">/&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">DeepEarth:Map</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <em>Codesnippet 9</em>
        <p>
Finally, we need to display the heartbeat, also based on the data in the generic list.
We can do this in several ways (for example using the controls from the Silverlight
toolkit), but here, I choose to use a listbox. Displaying a heartbeat in a listbox
might not sound that normal, as we are used to having the listbox show a list of text
items. However, using Silverlight, we can completely restyle the listbox using the
data template (Codesnippet 10). The data template allows for complete restyling of
the items as well as the listbox’ display area. The item is replaced with an ellipse,
absolutely positioned from the top and the display area is replaced with a drawing
canvas. (To see the entire code, download the sample). The result is shown below. 
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike6_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="89" alt="silverlightonthebike6" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike6_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <div id="codeSnippetWrapper" style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left">
          <div id="codeSnippet" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum1" style="COLOR: #606060"> 1:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">DataTemplate</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum2" style="COLOR: #606060"> 2:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Canvas</span>
              <span style="COLOR: #ff0000">Canvas</span>.<span style="COLOR: #ff0000">Left</span><span style="COLOR: #0000ff">="10"</span><span style="COLOR: #ff0000">Canvas</span>.<span style="COLOR: #ff0000">Top</span><span style="COLOR: #0000ff">="10"</span><span style="COLOR: #0000ff">&gt;</span></pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum3" style="COLOR: #606060"> 3:</span>
              <span style="COLOR: #0000ff">&lt;</span>
              <span style="COLOR: #800000">Ellipse</span>
              <span style="COLOR: #ff0000">Fill</span>
              <span style="COLOR: #0000ff">="Blue"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum4" style="COLOR: #606060"> 4:</span>
              <span style="COLOR: #ff0000">Tag</span>
              <span style="COLOR: #0000ff">="{Binding}"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum5" style="COLOR: #606060"> 5:</span>
              <span style="COLOR: #ff0000">Width</span>
              <span style="COLOR: #0000ff">="10"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum6" style="COLOR: #606060"> 6:</span>
              <span style="COLOR: #ff0000">Height</span>
              <span style="COLOR: #0000ff">="10"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum7" style="COLOR: #606060"> 7:</span>
              <span style="COLOR: #ff0000">Stroke</span>
              <span style="COLOR: #0000ff">="Black"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum8" style="COLOR: #606060"> 8:</span>
              <span style="COLOR: #ff0000">StrokeThickness</span>
              <span style="COLOR: #0000ff">=".5"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum9" style="COLOR: #606060"> 9:</span>
              <span style="COLOR: #ff0000">MouseLeftButtonDown</span>
              <span style="COLOR: #0000ff">="Ellipse_MouseLeftButtonDown"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum10" style="COLOR: #606060"> 10:</span>
              <span style="COLOR: #ff0000">MouseEnter</span>
              <span style="COLOR: #0000ff">="Ellipse_MouseEnter"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum11" style="COLOR: #606060"> 11:</span>
              <span style="COLOR: #ff0000">MouseLeave</span>
              <span style="COLOR: #0000ff">="Ellipse_MouseLeave"</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum12" style="COLOR: #606060"> 12:</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum13" style="COLOR: #606060"> 13:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Ellipse</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum14" style="COLOR: #606060"> 14:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">Canvas</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
            <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none">
              <span id="lnum15" style="COLOR: #606060"> 15:</span>
              <span style="COLOR: #0000ff">&lt;/</span>
              <span style="COLOR: #800000">DataTemplate</span>
              <span style="COLOR: #0000ff">&gt;</span>
            </pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <em>Codesnippet 10</em>
        </p>
        <p>
          <em>The final application</em>
        </p>
        <p>
The following image shows the complete application running in the browser. You can
download the entire source package by clicking here (Note that I left in all the source
code for the other projects like DeepEarth. This way it’s easier for you to experiment
with the demo). 
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike7_2.jpg">
            <img title="silverlightonthebike7" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="315" alt="silverlightonthebike7" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike7_thumb.jpg" width="628" border="0" />
          </a>
        </p>
        <p>
(Due to the Virtual Earth webservice being down, the map is not displaying, as can
be seen on the screenshot) 
</p>
        <p>
Download the code <a href="http://www.codeflakes.net/data/techdays2009/SilverlightOnTheBike.zip" target="_blank">here</a>. 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=eacc8d38-9aac-4544-84c6-00b2a76aaa28" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>The road to the keynote</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,eacc8d38-9aac-4544-84c6-00b2a76aaa28.aspx</guid>
      <link>http://www.snowball.be/2009/03/21/The+Road+To+The+Keynote.aspx</link>
      <pubDate>Sat, 21 Mar 2009 00:07:06 GMT</pubDate>
      <description>&lt;p&gt;
Last week, Microsoft organized the Belgian edition of the Techdays, for the first
time in Antwerp. After reading (Twitter, blogs…) and hearing quite a lot of feedback,
the event was a success. 
&lt;p&gt;
For me personally, it was also an exciting week: for the first time in my career,
I was doing a keynote. I presented the Silverlight part of this talk, together with
2 other Regional Directors from Belgium: Peter Himschoot took the WPF part and Grégory
Renard handled the Surface. Also, Katrien De Graeve (Microsoft) showed Windows 7 and
Azure, while Hans Verbeeck (also Microsoft) glued all bits and pieces into a nice
session. 
&lt;p&gt;
In this article, you’ll get an overview of the demo we created for the keynote, called
“Silverlight on the bike”. 
&lt;p&gt;
&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px 0px 0px 100px; BORDER-RIGHT-WIDTH: 0px" height=249 alt=silverlightonthebike1 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike1_3.jpg" width=280 border=0&gt; 
&lt;p&gt;
&lt;b&gt;The scenario&lt;/b&gt; 
&lt;p&gt;
Hans, when not behind his laptop, loves to ride his bike. While on his bike, he wears
a small device from Garmin that monitors his heart rate and also retrieves the entire
route that he followed via GPS. When combining these 2 bits of information, you can
see where the heartbeat went higher (because of a slope for example). 
&lt;p&gt;
Garmin must like developers, because they expose this data as XML. Pure clean XML
that any developer can read out. This data was the start for our scenario: plot out
the route that Hans did on his bike on a map, show the heartbeat on a graph, throw
in some pictures he took along the road and expose all this in a familiar looking
interface in the browser. 
&lt;p&gt;
The demo also needed to run as a standalone application as well as on the surface.
Because of the portability of the code between Silverlight and WPF (Surface applications
are WPF as well), a large amount of code could simply be copied from one platform
to another. 
&lt;p&gt;
&lt;b&gt;And here’s how we created it…&lt;/b&gt; 
&lt;p&gt;
While the demo contains too much code to explain here, I’ll go over some of the most
interesting parts that really make Silverlight shine. 
&lt;p&gt;
&lt;em&gt;Step 1: Design is everything (sort of…)&lt;/em&gt; 
&lt;p&gt;
The first thing we did was going to a designer and explain him the needs of our application.
A request from our side was of course that he needed to create the interface in Blend.
So he came up with a design, completely in XAML, as shown below. 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike2_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=220 alt=silverlightonthebike2 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike2_thumb.jpg" width=371 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
A cool thing when working with Silverlight is a nice workflow between designers working
in Blend and developers working in Visual Studio. Since designers work with the same
files as developers, there’s no need to cut and paste the work that the designer did:
he can make changes while developers are creating their code and these changes will
be incorporated without any hassle. 
&lt;p&gt;
&lt;em&gt;Step 2: Get me that data&lt;/em&gt; 
&lt;p&gt;
Design is one thing, coding is another. Our application is built around data (remember
the XML file from the Garmin device), so the first problem that needs solving is getting
that data into the application. Silverlight 2 supports several ways to connect with
data: WCF, webservices, reading remote files… For the sake of simplicity, we are going
to use the latter: we’ll drop the XML file in the web application. Silverlight now
needs to connect with the file using the WebClient, a class that’s also available
in the full version of the .NET framework. 
&lt;p&gt;
Whenever Silverlight needs to go out fetching data, it will do so asynchronously.
If it would perform this action synchronously, the browser would hang while data flows
from server to client or vice-versa. 
&lt;p&gt;
Codesnippet 1 shows the code needed for the data access and the result is shown. 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; WebClient
client = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; WebClient();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; Uri
address = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="COLOR: #006080"&gt;"http://localhost:"&lt;/span&gt; +
HtmlPage.Document.DocumentUri.Port + &lt;span style="COLOR: #006080"&gt;"/"&lt;/span&gt; + fileName,
UriKind.Absolute);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; client.OpenReadCompleted
+= client_OpenReadCompleted;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; client.OpenReadAsync(address);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;CodeSnippet 1&lt;/em&gt; 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike3_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=244 alt=silverlightonthebike3 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike3_thumb.jpg" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;em&gt;Step 3: Let’s parse XML (still yuck?)&lt;/em&gt; 
&lt;p&gt;
Now that we are able to connect with the data, we need to do something with it, we
only have it in a string at this point. We need to parse the XML and create objects
that represent the data in memory. Parsing XML using the “traditional” way, using
XmlDocument classes and the like, is not my favorite part of my development life.
This API is quite difficult and often requires XPath knowledge to access the correct
data. 
&lt;p&gt;
Since .NET 3.5 (in fact also in 3.0 as beta), LINQ and LINQ to XML were introduced
and the great thing is that these are also included in Silverlight. Using the LINQ
to XML API, we can very easily parse the XML and create objects representing the data.
Codesnippet 2 shows the XML, codesnippet 3 shows the type that we’ll be creating.
In Codesnippet 4, the code to parse the XML and to create a generic list of TrackPoint
instances is shown. 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Trackpoint&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Time&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;2009-02-14T14:13:10Z&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Time&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Position&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LatitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;51.3509752&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LatitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LongitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;4.6816549&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LongitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Position&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;AltitudeMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;20.3249512&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;AltitudeMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DistanceMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;0.0343911&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DistanceMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;HeartRateBpm&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Value&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;111&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Value&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum11 style="COLOR: #606060"&gt; 11:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;HeartRateBpm&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum12 style="COLOR: #606060"&gt; 12:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;SensorState&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;Absent&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;SensorState&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum13 style="COLOR: #606060"&gt; 13:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Trackpoint&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum14 style="COLOR: #606060"&gt; 14:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Trackpoint&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum15 style="COLOR: #606060"&gt; 15:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Time&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;2009-02-14T14:13:11Z&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Time&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum16 style="COLOR: #606060"&gt; 16:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Position&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum17 style="COLOR: #606060"&gt; 17:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LatitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;51.3509765&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LatitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum18 style="COLOR: #606060"&gt; 18:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LongitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;4.6816523&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;LongitudeDegrees&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum19 style="COLOR: #606060"&gt; 19:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Position&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum20 style="COLOR: #606060"&gt; 20:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;AltitudeMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;20.3249512&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;AltitudeMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum21 style="COLOR: #606060"&gt; 21:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DistanceMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;0.0000000&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DistanceMeters&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum22 style="COLOR: #606060"&gt; 22:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;HeartRateBpm&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum23 style="COLOR: #606060"&gt; 23:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Value&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;110&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Value&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum24 style="COLOR: #606060"&gt; 24:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;HeartRateBpm&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum25 style="COLOR: #606060"&gt; 25:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;SensorState&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;Absent&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;SensorState&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum26 style="COLOR: #606060"&gt; 26:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Trackpoint&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum27 style="COLOR: #606060"&gt; 27:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Trackpoint&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 2&lt;/em&gt;
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; TrackPoint&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; DateTime
_time;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; DateTime
Time&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _time; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; set
{ _time = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum11 style="COLOR: #606060"&gt; 11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum12 style="COLOR: #606060"&gt; 12:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; Point
_position;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum13 style="COLOR: #606060"&gt; 13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum14 style="COLOR: #606060"&gt; 14:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; Point
Position&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum15 style="COLOR: #606060"&gt; 15:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum16 style="COLOR: #606060"&gt; 16:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _position; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum17 style="COLOR: #606060"&gt; 17:&lt;/span&gt; set
{ _position = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum18 style="COLOR: #606060"&gt; 18:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum19 style="COLOR: #606060"&gt; 19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum20 style="COLOR: #606060"&gt; 20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum21 style="COLOR: #606060"&gt; 21:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt; X&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum22 style="COLOR: #606060"&gt; 22:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum23 style="COLOR: #606060"&gt; 23:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _position.X; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum24 style="COLOR: #606060"&gt; 24:&lt;/span&gt; set
{ _position.X = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum25 style="COLOR: #606060"&gt; 25:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum26 style="COLOR: #606060"&gt; 26:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum27 style="COLOR: #606060"&gt; 27:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt; Y&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum28 style="COLOR: #606060"&gt; 28:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum29 style="COLOR: #606060"&gt; 29:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _position.Y; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum30 style="COLOR: #606060"&gt; 30:&lt;/span&gt; set
{ _position.Y = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum31 style="COLOR: #606060"&gt; 31:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum32 style="COLOR: #606060"&gt; 32:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum33 style="COLOR: #606060"&gt; 33:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt; _cadence;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum34 style="COLOR: #606060"&gt; 34:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum35 style="COLOR: #606060"&gt; 35:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt; Cadence&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum36 style="COLOR: #606060"&gt; 36:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum37 style="COLOR: #606060"&gt; 37:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _cadence; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum38 style="COLOR: #606060"&gt; 38:&lt;/span&gt; set
{ _cadence = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum39 style="COLOR: #606060"&gt; 39:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum40 style="COLOR: #606060"&gt; 40:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum41 style="COLOR: #606060"&gt; 41:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt; _distance;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum42 style="COLOR: #606060"&gt; 42:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum43 style="COLOR: #606060"&gt; 43:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt; Distance&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum44 style="COLOR: #606060"&gt; 44:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum45 style="COLOR: #606060"&gt; 45:&lt;/span&gt; get
{ &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _distance; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum46 style="COLOR: #606060"&gt; 46:&lt;/span&gt; set
{ _distance = &lt;span style="COLOR: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum47 style="COLOR: #606060"&gt; 47:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum48 style="COLOR: #606060"&gt; 48:&lt;/span&gt; } &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 3&lt;/em&gt;
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;TrackPoint&amp;gt;
Load(Stream filename)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; XElement
doc = XElement.Load(filename);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; List&amp;lt;XElement&amp;gt;
tps = doc.Descendants(&lt;span style="COLOR: #006080"&gt;"Trackpoint"&lt;/span&gt;).ToList&amp;lt;XElement&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; TrackPoint
tp = &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;foreach&lt;/span&gt; (XElement
point &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; tps)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum11 style="COLOR: #606060"&gt; 11:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum12 style="COLOR: #606060"&gt; 12:&lt;/span&gt; tp
= &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; TrackPoint();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum13 style="COLOR: #606060"&gt; 13:&lt;/span&gt; tp.Position
= &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Point(&lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt;.Parse(point.Descendants(&lt;span style="COLOR: #006080"&gt;"LatitudeDegrees"&lt;/span&gt;).First().Value)
/ 10000000,&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum14 style="COLOR: #606060"&gt; 14:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt;.Parse(point.Descendants(&lt;span style="COLOR: #006080"&gt;"LongitudeDegrees"&lt;/span&gt;).First().Value)
/ 10000000);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum15 style="COLOR: #606060"&gt; 15:&lt;/span&gt; tp.Distance
= &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt;.Parse(point.Descendants(&lt;span style="COLOR: #006080"&gt;"DistanceMeters"&lt;/span&gt;).First().Value)
/ 10000000;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum16 style="COLOR: #606060"&gt; 16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum17 style="COLOR: #606060"&gt; 17:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (tp.Distance
&amp;gt; _totalDistance)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum18 style="COLOR: #606060"&gt; 18:&lt;/span&gt; _totalDistance
= tp.Distance;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum19 style="COLOR: #606060"&gt; 19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum20 style="COLOR: #606060"&gt; 20:&lt;/span&gt; tp.Cadence
= &lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;.Parse(point.Descendants(&lt;span style="COLOR: #006080"&gt;"HeartRateBpm"&lt;/span&gt;).First().Value);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum21 style="COLOR: #606060"&gt; 21:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum22 style="COLOR: #606060"&gt; 22:&lt;/span&gt; _trackPoints.Add(tp);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum23 style="COLOR: #606060"&gt; 23:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum24 style="COLOR: #606060"&gt; 24:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;catch&lt;/span&gt; (Exception)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum25 style="COLOR: #606060"&gt; 25:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum26 style="COLOR: #606060"&gt; 26:&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum27 style="COLOR: #606060"&gt; 27:&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum28 style="COLOR: #606060"&gt; 28:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum29 style="COLOR: #606060"&gt; 29:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum30 style="COLOR: #606060"&gt; 30:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt; _trackPoints;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum31 style="COLOR: #606060"&gt; 31:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 4&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Step 4: Design: OK! Data: OK! UI: To Do!&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
Now we have the data from the device ready on the client-side within our Silverlight
application as a generic list. We can now go ahead and add the UI elements to the
interface. 
&lt;p&gt;
Up first is a ribbon. We want to create a user interface that feels familiar to a
user of the application. A great way to achieve this, is using a ribbon known from
Office 2007. Currently, Silverlight does not contain a ribbon out-of-the-box yet,
but there are some custom-built ones available. For the sake of simplicity, I created
a usercontrol containing the ribbon instantiation. This keeps my Page.xaml code cleaner.
Codesnippet 5 contains the code for the ribbon and codesnippet 6 contains the usercontrol
that we’ll put on the page. 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:Ribbon.QuickLaunchButtons&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;SmallImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/Save.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;SmallImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/Undo.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;SmallImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/Repeat.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:Ribbon.QuickLaunchButtons&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; &lt;span style="COLOR: #008000"&gt;&amp;lt;!--
Tabs --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; &lt;span style="COLOR: #008000"&gt;&amp;lt;!--
Home --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTab&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Home"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum11 style="COLOR: #606060"&gt; 11:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Actions"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum12 style="COLOR: #606060"&gt; 12:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="New
data"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/addxml.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum13 style="COLOR: #606060"&gt; 13:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Change
data"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/addxml.png"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;ButtonClick&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="RibbonButton_ButtonClick"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum14 style="COLOR: #606060"&gt; 14:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/addimages.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum15 style="COLOR: #606060"&gt; 15:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum16 style="COLOR: #606060"&gt; 16:&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum17 style="COLOR: #606060"&gt; 17:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Reporting"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum18 style="COLOR: #606060"&gt; 18:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="New
report"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/addreport.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum19 style="COLOR: #606060"&gt; 19:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="View
reports"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/addreport.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum20 style="COLOR: #606060"&gt; 20:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum21 style="COLOR: #606060"&gt; 21:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTab&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum22 style="COLOR: #606060"&gt; 22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum23 style="COLOR: #606060"&gt; 23:&lt;/span&gt; &lt;span style="COLOR: #008000"&gt;&amp;lt;!--
Help --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum24 style="COLOR: #606060"&gt; 24:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTab&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Help"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum25 style="COLOR: #606060"&gt; 25:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Help"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum26 style="COLOR: #606060"&gt; 26:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="About"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/about.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum27 style="COLOR: #606060"&gt; 27:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonButton&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Help"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;LargeImageSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Images/help2.png"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum28 style="COLOR: #606060"&gt; 28:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTabGroup&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum29 style="COLOR: #606060"&gt; 29:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum30 style="COLOR: #606060"&gt; 30:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:RibbonTab&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum31 style="COLOR: #606060"&gt; 31:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum32 style="COLOR: #606060"&gt; 32:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;rbn:Ribbon&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 5&lt;/em&gt;
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #008000"&gt;&amp;lt;!--
Ribbon --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;usercontrols:RibbonControl&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Grid&lt;/span&gt;.&lt;span style="COLOR: #ff0000"&gt;Row&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="0"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Grid&lt;/span&gt;.&lt;span style="COLOR: #ff0000"&gt;Column&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="0"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="mainRibbon"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Top"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;usercontrols:RibbonControl&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 6&lt;/em&gt; 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike4_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=106 alt=silverlightonthebike4 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike4_thumb.jpg" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
Next, we’ll add a Telerik Coverflow control that will enable us to flip through the
images. Telerik as well as Infragistics (and many other vendors) have been busy creating
controls suites, giving you many more controls to work with. Codesnippet 7 shows the
code for this control. 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;telerikNavigation:RadCoverFlow&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="coverFlow"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;CameraY&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="-80"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;ItemMaxHeight&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="100"&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;SelectedIndex&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="5"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Top"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;CenterOffsetY&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="15"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Image&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Source&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Pictures/1.jpg"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Image&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Source&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Pictures/2.jpg"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Image&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Source&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Pictures/3.jpg"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Image&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Source&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Pictures/4.jpg"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Image&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Source&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Pictures/5.jpg"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;telerikNavigation:RadCoverFlow&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike5_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=168 alt=silverlightonthebike5 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike5_thumb.jpg" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
One of the main goals of the application is of course the display of the map that
will also display the route that Hans did on his bike. A perfect candidate for this
is Virtual Earth. On Codeplex, a project called DeepEarth, allows us to display Virtual
Earth maps inside a Silverlight application. It also includes all the necessary stuff
to show paths, icons etc and allows for easy zooming and panning. We’ll use this control
to display the route. 
&lt;p&gt;
Of course, we need to convert our data for the map to use. This is very simple code
shown in codesnippet 8. What we’re doing here is simply converting our generic list
of Trackpoints to a list of points the DeepEarth control can work with. Codesnippet
9 shows the code for displaying the map.
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; AddPolygon()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; ConfigShapeLayer();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; var
points = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;Point&amp;gt; { &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Point(0,
0), &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Point(20, 0), &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Point(20,
20), &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Point(0, 20) };&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; var
polygon = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; DeepEarth.Geometry.Polygon { Points
= points };&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; shapeLayer.Add(polygon);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 8&lt;/em&gt;
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepEarth:Map&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="map"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepControls:NavControl&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepControls:MapSourceControl&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;SelectedSource&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Hybrid"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepVE:TileLayer&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MapMode&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Aerial"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepVE:TileLayer&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MapMode&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Hybrid"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepVE:TileLayer&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MapMode&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Road"&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepControls:MapSourceControl&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepControls:NavControl&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepControls:CoordControl&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DeepEarth:Map&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;em&gt;Codesnippet 9&lt;/em&gt; 
&lt;p&gt;
Finally, we need to display the heartbeat, also based on the data in the generic list.
We can do this in several ways (for example using the controls from the Silverlight
toolkit), but here, I choose to use a listbox. Displaying a heartbeat in a listbox
might not sound that normal, as we are used to having the listbox show a list of text
items. However, using Silverlight, we can completely restyle the listbox using the
data template (Codesnippet 10). The data template allows for complete restyling of
the items as well as the listbox’ display area. The item is replaced with an ellipse,
absolutely positioned from the top and the display area is replaced with a drawing
canvas. (To see the entire code, download the sample). The result is shown below. 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike6_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=89 alt=silverlightonthebike6 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike6_thumb.jpg" width=244 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;div id=codeSnippetWrapper style="BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: silver 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: silver 1px solid; WIDTH: 97.5%; CURSOR: text; DIRECTION: ltr; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left"&gt;
&lt;div id=codeSnippet style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum1 style="COLOR: #606060"&gt; 1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DataTemplate&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum2 style="COLOR: #606060"&gt; 2:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Canvas&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Canvas&lt;/span&gt;.&lt;span style="COLOR: #ff0000"&gt;Left&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="10"&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Canvas&lt;/span&gt;.&lt;span style="COLOR: #ff0000"&gt;Top&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="10"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum3 style="COLOR: #606060"&gt; 3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Ellipse&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Fill&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Blue"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum4 style="COLOR: #606060"&gt; 4:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Tag&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="{Binding}"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum5 style="COLOR: #606060"&gt; 5:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Width&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="10"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum6 style="COLOR: #606060"&gt; 6:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Height&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="10"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum7 style="COLOR: #606060"&gt; 7:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;Stroke&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Black"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum8 style="COLOR: #606060"&gt; 8:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;StrokeThickness&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=".5"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum9 style="COLOR: #606060"&gt; 9:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MouseLeftButtonDown&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Ellipse_MouseLeftButtonDown"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum10 style="COLOR: #606060"&gt; 10:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MouseEnter&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Ellipse_MouseEnter"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum11 style="COLOR: #606060"&gt; 11:&lt;/span&gt; &lt;span style="COLOR: #ff0000"&gt;MouseLeave&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;="Ellipse_MouseLeave"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum12 style="COLOR: #606060"&gt; 12:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum13 style="COLOR: #606060"&gt; 13:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Ellipse&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum14 style="COLOR: #606060"&gt; 14:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;Canvas&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; DIRECTION: ltr; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none"&gt;&lt;span id=lnum15 style="COLOR: #606060"&gt; 15:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;DataTemplate&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Codesnippet 10&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The final application&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
The following image shows the complete application running in the browser. You can
download the entire source package by clicking here (Note that I left in all the source
code for the other projects like DeepEarth. This way it’s easier for you to experiment
with the demo). 
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike7_2.jpg"&gt;&lt;img title=silverlightonthebike7 style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=315 alt=silverlightonthebike7 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Theroadtothekeynote_717/silverlightonthebike7_thumb.jpg" width=628 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
(Due to the Virtual Earth webservice being down, the map is not displaying, as can
be seen on the screenshot) 
&lt;p&gt;
Download the code &lt;a href="http://www.codeflakes.net/data/techdays2009/SilverlightOnTheBike.zip" target=_blank&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=eacc8d38-9aac-4544-84c6-00b2a76aaa28" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,eacc8d38-9aac-4544-84c6-00b2a76aaa28.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
      <category>TechDays</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=f9985051-8615-425f-9c4e-fbd83314fc3d</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,f9985051-8615-425f-9c4e-fbd83314fc3d.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,f9985051-8615-425f-9c4e-fbd83314fc3d.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=f9985051-8615-425f-9c4e-fbd83314fc3d</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While doing my sessions @Techdays Belgium, I used for the first time a little application
called Snippet Manager to drag code snippets into my code. It's not something I created
myself, it's created by <a href="http://scorbs.com/2008/03/18/snippetmanager/">Karen
Corby</a> (Microsoft). 
</p>
        <p>
You can download it <a href="http://www.codeflakes.net/data/techdays2009/snippetmanager.zip">here</a>.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f9985051-8615-425f-9c4e-fbd83314fc3d" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>SnippetManager @Techdays</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,f9985051-8615-425f-9c4e-fbd83314fc3d.aspx</guid>
      <link>http://www.snowball.be/2009/03/12/SnippetManager+Techdays.aspx</link>
      <pubDate>Thu, 12 Mar 2009 14:43:26 GMT</pubDate>
      <description>&lt;p&gt;
While doing my sessions @Techdays Belgium, I used for the first time a little application
called Snippet Manager to drag code snippets into my code. It's not something I created
myself, it's created by &lt;a href="http://scorbs.com/2008/03/18/snippetmanager/"&gt;Karen
Corby&lt;/a&gt; (Microsoft). 
&lt;/p&gt;
&lt;p&gt;
You can download it &lt;a href="http://www.codeflakes.net/data/techdays2009/snippetmanager.zip"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f9985051-8615-425f-9c4e-fbd83314fc3d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,f9985051-8615-425f-9c4e-fbd83314fc3d.aspx</comments>
      <category>Efficiency</category>
      <category>Programming tools</category>
      <category>TechDays</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=474c293e-40a1-40ab-a9a3-6cb3d100074d</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,474c293e-40a1-40ab-a9a3-6cb3d100074d.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,474c293e-40a1-40ab-a9a3-6cb3d100074d.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=474c293e-40a1-40ab-a9a3-6cb3d100074d</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From March 10 - 12, TechDays 2009 Belgium took place, for the first time in Metropolis
Antwerp. 
</p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/techdays1.png" border="0" />
        </p>
        <p>
I've delivered quite some sessions, including part of the keynote. A lot of people
asked me to share the slides as well as the demos, so here are all the items you need
to complete your knowledge on both databinding in WPF as well as skinning controls
in Silverlight. 
</p>
        <p>
          <strong>WPF Databinding Deep Dive</strong>
          <br />
Databinding always sounds a bit intimidating. It’s the concept of attaching objects
to a user interface and letting the technology take care of what to display where.
WPF has a lot of capabilities in store to make databinding really easy and to help
you build data-driven applications a lot faster. In this session, we’ll tackle everything
that databinding offers us, from the fundamentals concepts to the advanced topics.
With a lot of demos woven into the session, you’ll walk away with the knowledge you
need to more efficiently use WPF.<br /><strong><a href="http://www.codeflakes.net/data/Techdays2009/WPFDatabindingDeepDiveTechdays09GillCleeren.pptx">Slide
deck</a> - <a href="http://www.codeflakes.net/data/Techdays2009/WPFDatabindingTechdays2009GillCleeren.zip">Demos</a></strong></p>
        <p>
          <strong>Under the hood in Silverlight's controls skinning framework</strong>
          <br />
While Silverlight offers us a lot of controls to build business applications, you
might feel the urge to change them even more to suffice the needs of your application.
A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight
skinning framework. In this session, you’ll see how to overhaul the look of your controls
as well as create your own from scratch.<br /><strong><a href="http://www.codeflakes.net/data/techdays2009/UnderTheHoodInSilverlightsControlsSkinningFrameworkGillCleeren.pptx">Slide
deck</a> - <a href="http://www.codeflakes.net/data/Techdays2009/SilverlightSkinningControlsTechdays2009GillCleeren.zip">Demos</a></strong></p>
        <p>
I hope you enjoyed the sessions, any feedback is welcome.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=474c293e-40a1-40ab-a9a3-6cb3d100074d" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Techdays 2009 Belgium slides and demos</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,474c293e-40a1-40ab-a9a3-6cb3d100074d.aspx</guid>
      <link>http://www.snowball.be/2009/03/12/Techdays+2009+Belgium+Slides+And+Demos.aspx</link>
      <pubDate>Thu, 12 Mar 2009 14:24:10 GMT</pubDate>
      <description>&lt;p&gt;
From March 10 - 12, TechDays 2009 Belgium took place, for the first time in Metropolis
Antwerp. 
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/techdays1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
I've delivered quite some sessions, including part of the keynote. A lot of people
asked me to share the slides as well as the demos, so here are all the items you need
to complete your knowledge on both databinding in WPF as well as skinning controls
in Silverlight. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;WPF Databinding Deep Dive&lt;/strong&gt;
&lt;br&gt;
Databinding always sounds a bit intimidating. It’s the concept of attaching objects
to a user interface and letting the technology take care of what to display where.
WPF has a lot of capabilities in store to make databinding really easy and to help
you build data-driven applications a lot faster. In this session, we’ll tackle everything
that databinding offers us, from the fundamentals concepts to the advanced topics.
With a lot of demos woven into the session, you’ll walk away with the knowledge you
need to more efficiently use WPF.&lt;br&gt;
&lt;strong&gt;&lt;a href="http://www.codeflakes.net/data/Techdays2009/WPFDatabindingDeepDiveTechdays09GillCleeren.pptx"&gt;Slide
deck&lt;/a&gt; - &lt;a href="http://www.codeflakes.net/data/Techdays2009/WPFDatabindingTechdays2009GillCleeren.zip"&gt;Demos&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Under the hood in Silverlight's controls skinning framework&lt;/strong&gt;
&lt;br&gt;
While Silverlight offers us a lot of controls to build business applications, you
might feel the urge to change them even more to suffice the needs of your application.
A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight
skinning framework. In this session, you’ll see how to overhaul the look of your controls
as well as create your own from scratch.&lt;br&gt;
&lt;strong&gt;&lt;a href="http://www.codeflakes.net/data/techdays2009/UnderTheHoodInSilverlightsControlsSkinningFrameworkGillCleeren.pptx"&gt;Slide
deck&lt;/a&gt; - &lt;a href="http://www.codeflakes.net/data/Techdays2009/SilverlightSkinningControlsTechdays2009GillCleeren.zip"&gt;Demos&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I hope you enjoyed the sessions, any feedback is welcome.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=474c293e-40a1-40ab-a9a3-6cb3d100074d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,474c293e-40a1-40ab-a9a3-6cb3d100074d.aspx</comments>
      <category>.net</category>
      <category>Efficiency</category>
      <category>Slide decks</category>
      <category>TechDays</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=9cbdbce1-558a-4f8c-a6db-2c0b5e920804</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,9cbdbce1-558a-4f8c-a6db-2c0b5e920804.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,9cbdbce1-558a-4f8c-a6db-2c0b5e920804.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=9cbdbce1-558a-4f8c-a6db-2c0b5e920804</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As you can read by now, I'll be hosting 2 sessions at TechDays 09!<br />
Here they are:<br /><br /><strong>Under the hood in Silverlight's controls skinning framework</strong><br />
While Silverlight offers us a lot of controls to build business applications, you
might feel the urge to change them even more to suffice the needs of your application.
A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight
skinning framework. In this session, you’ll see how to overhaul the look of your controls
as well as create your own from scratch. 
<br /><br /><strong>WPF Databinding Deep Dive<br /></strong>Databinding always sounds a bit intimidating. It’s the concept of attaching
objects to a user interface and letting the technology take care of what to display
where. 
<br />
WPF has a lot of capabilities in store to make databinding really easy and to help
you build data-driven applications a lot faster. In this session, we’ll tackle everything
that databinding offers us, from the fundamentals concepts to the advanced topics.
With a lot of demos woven into the session, you’ll walk away with the knowledge you
need to more efficiently use WPF.<br /><br />
I hope you'll be attending my sessions!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=9cbdbce1-558a-4f8c-a6db-2c0b5e920804" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>My sessions at TechDays 09</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,9cbdbce1-558a-4f8c-a6db-2c0b5e920804.aspx</guid>
      <link>http://www.snowball.be/2009/02/01/My+Sessions+At+TechDays+09.aspx</link>
      <pubDate>Sun, 01 Feb 2009 11:43:03 GMT</pubDate>
      <description>&lt;p&gt;
As you can read by now, I'll be hosting 2 sessions at TechDays 09!&lt;br&gt;
Here they are:&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Under the hood in Silverlight's controls skinning framework&lt;/strong&gt;
&lt;br&gt;
While Silverlight offers us a lot of controls to build business applications, you
might feel the urge to change them even more to suffice the needs of your application.
A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight
skinning framework. In this session, you’ll see how to overhaul the look of your controls
as well as create your own from scratch. 
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;WPF Databinding Deep Dive&lt;br&gt;
&lt;/strong&gt;Databinding always sounds a bit intimidating. It’s the concept of attaching
objects to a user interface and letting the technology take care of what to display
where. 
&lt;br&gt;
WPF has a lot of capabilities in store to make databinding really easy and to help
you build data-driven applications a lot faster. In this session, we’ll tackle everything
that databinding offers us, from the fundamentals concepts to the advanced topics.
With a lot of demos woven into the session, you’ll walk away with the knowledge you
need to more efficiently use WPF.&lt;br&gt;
&lt;br&gt;
I hope you'll be attending my sessions!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=9cbdbce1-558a-4f8c-a6db-2c0b5e920804" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,9cbdbce1-558a-4f8c-a6db-2c0b5e920804.aspx</comments>
      <category>Efficiency</category>
      <category>TechDays</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=e7423240-80f9-454a-8974-ab11c9e81792</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,e7423240-80f9-454a-8974-ab11c9e81792.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,e7423240-80f9-454a-8974-ab11c9e81792.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=e7423240-80f9-454a-8974-ab11c9e81792</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For the past weeks, I've been busy preparing my sessions for the upcoming Techdays
here in Belgium. Techdays is <u>the event</u> every .net developer and IT Pro
in Belgium should attend. You'll have the choice of over 60 sessions over a period
of 3 days.
</p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/techdays.png" border="0" />
        </p>
        <p align="left">
You’ll get a deep-dive on existing and future technologies of Microsoft:
</p>
        <ul>
          <li>
            <strong>Discoveries:</strong> Windows 7, Windows Azure, Cloud Computing, C# 4.0 
</li>
          <li>
            <strong>Architecture and development:</strong> Visual Studio, Silverlight, SharePoint,
web applications, … 
</li>
          <li>
            <strong>Infrastructure and enterprise applications:</strong> SQL Server, WCF, Windows
Server, virtualization, System Center, security, … 
</li>
          <li>
            <strong>Personal and collective efficiency:</strong> Data access, desktop management,
Unified Communications, remote office operations, SharePoint,… 
</li>
        </ul>
        <p>
But also: 
</p>
        <ul>
          <li>
Get your hands on a Microsoft Surface 
</li>
          <li>
Interact with the <a href="http://www.microsoft.com/belux/techdays/partners.aspx">Microsoft
partner network</a> and the Microsoft linked applications and services 
</li>
          <li>
Discover our certification offerings 
</li>
          <li>
Share impressions with your peers and meet with internationally renowned professionals 
</li>
        </ul>
        <p>
Registration is available at <a href="http://www.techdays.be">www.techdays.be</a> so
hurry up if you want to be part of the event!<br /><br />
Note that for the first time, the event will take place in Metropolis, Antwerp!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e7423240-80f9-454a-8974-ab11c9e81792" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Techdays sessions and agenda online</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,e7423240-80f9-454a-8974-ab11c9e81792.aspx</guid>
      <link>http://www.snowball.be/2009/02/01/Techdays+Sessions+And+Agenda+Online.aspx</link>
      <pubDate>Sun, 01 Feb 2009 11:37:40 GMT</pubDate>
      <description>&lt;p&gt;
For the past weeks, I've been busy preparing my sessions for the upcoming Techdays
here in Belgium. Techdays is &lt;u&gt;the event&lt;/u&gt;&amp;nbsp;every .net developer and IT Pro
in Belgium should attend. You'll have the choice of over 60 sessions over a period
of 3 days.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/techdays.png" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
You’ll get a deep-dive on existing and future technologies of Microsoft:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discoveries:&lt;/strong&gt; Windows 7, Windows Azure, Cloud Computing, C# 4.0 
&lt;li&gt;
&lt;strong&gt;Architecture and development:&lt;/strong&gt; Visual Studio, Silverlight, SharePoint,
web applications, … 
&lt;li&gt;
&lt;strong&gt;Infrastructure and enterprise applications:&lt;/strong&gt; SQL Server, WCF, Windows
Server, virtualization, System Center, security, … 
&lt;li&gt;
&lt;strong&gt;Personal and collective efficiency:&lt;/strong&gt; Data access, desktop management,
Unified Communications, remote office operations, SharePoint,… 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
But also: 
&lt;ul&gt;
&lt;li&gt;
Get your hands on a Microsoft Surface 
&lt;li&gt;
Interact with the &lt;a href="http://www.microsoft.com/belux/techdays/partners.aspx"&gt;Microsoft
partner network&lt;/a&gt; and the Microsoft linked applications and services 
&lt;li&gt;
Discover our certification offerings 
&lt;li&gt;
Share impressions with your peers and meet with internationally renowned professionals 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Registration is available at &lt;a href="http://www.techdays.be"&gt;www.techdays.be&lt;/a&gt; so
hurry up if you want to be part of the event!&lt;br&gt;
&lt;br&gt;
Note that for the first time, the event will take place in Metropolis, Antwerp!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=e7423240-80f9-454a-8974-ab11c9e81792" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,e7423240-80f9-454a-8974-ab11c9e81792.aspx</comments>
      <category>Efficiency</category>
      <category>TechDays</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=807c9516-0be1-416b-abb9-64b424984835</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,807c9516-0be1-416b-abb9-64b424984835.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,807c9516-0be1-416b-abb9-64b424984835.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=807c9516-0be1-416b-abb9-64b424984835</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Finally! It took us some more time then originally planned, but it is finally here:
the all-new Visug website. You can reach it via <a href="http://www.visug.be">www.visug.be</a> of
course.
</p>
        <p>
While there are some new features as well (head over to the new included blog on the
visug site), more will be added in the coming months. One of the new features that
is now already in place, is an included RSS feed (<a href="http://www.visug.be/Blog/tabid/98/rssid/1/Default.aspx">http://www.visug.be/Blog/tabid/98/rssid/1/Default.aspx</a>).
We will use this feed to announce new events and site updates.
</p>
        <p>
I hope you like it, it cost me quite some hours in the past few weeks to get it right!
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=807c9516-0be1-416b-abb9-64b424984835" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>We just launched the new Visug site!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,807c9516-0be1-416b-abb9-64b424984835.aspx</guid>
      <link>http://www.snowball.be/2009/01/26/We+Just+Launched+The+New+Visug+Site.aspx</link>
      <pubDate>Mon, 26 Jan 2009 22:26:28 GMT</pubDate>
      <description>&lt;p&gt;
Finally! It took us some more time then originally planned, but it is finally here:
the all-new Visug website. You can reach it via &lt;a href="http://www.visug.be"&gt;www.visug.be&lt;/a&gt; of
course.
&lt;/p&gt;
&lt;p&gt;
While there are some new features as well (head over to the new included blog on the
visug site), more will be added in the coming months. One of the new features that
is now already in place, is an included RSS feed (&lt;a href="http://www.visug.be/Blog/tabid/98/rssid/1/Default.aspx"&gt;http://www.visug.be/Blog/tabid/98/rssid/1/Default.aspx&lt;/a&gt;).
We will use this feed to announce new events and site updates.
&lt;/p&gt;
&lt;p&gt;
I hope you like it, it cost me quite some hours in the past few weeks to get it right!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=807c9516-0be1-416b-abb9-64b424984835" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,807c9516-0be1-416b-abb9-64b424984835.aspx</comments>
      <category>Efficiency</category>
      <category>Visug</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=f7dc7d7a-164d-4d00-b9b5-e934303a62ab</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,f7dc7d7a-164d-4d00-b9b5-e934303a62ab.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,f7dc7d7a-164d-4d00-b9b5-e934303a62ab.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=f7dc7d7a-164d-4d00-b9b5-e934303a62ab</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just noticed that 2 more webcasts of me have been put online on MSDN Chopsticks.
</p>
        <p>
 
</p>
        <p>
          <iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/msdn/nl/chopsticks/player.aspx?id=927&amp;e=1" frameborder="0" width="493" scrolling="no" height="385">
          </iframe>
        </p>
        <p>
          <br />
          <iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/msdn/nl/chopsticks/player.aspx?id=929&amp;e=1" frameborder="0" width="493" scrolling="no" height="385">
          </iframe>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f7dc7d7a-164d-4d00-b9b5-e934303a62ab" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>2 more webcasts online</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,f7dc7d7a-164d-4d00-b9b5-e934303a62ab.aspx</guid>
      <link>http://www.snowball.be/2009/01/25/2+More+Webcasts+Online.aspx</link>
      <pubDate>Sun, 25 Jan 2009 23:19:39 GMT</pubDate>
      <description>&lt;p&gt;
I just noticed that 2 more webcasts of me have been put online on MSDN Chopsticks.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;iframe marginwidth=0 marginheight=0 src="http://www.microsoft.com/belux/msdn/nl/chopsticks/player.aspx?id=927&amp;amp;e=1" frameborder=0 width=493 scrolling=no height=385&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;iframe marginwidth=0 marginheight=0 src="http://www.microsoft.com/belux/msdn/nl/chopsticks/player.aspx?id=929&amp;amp;e=1" frameborder=0 width=493 scrolling=no height=385&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f7dc7d7a-164d-4d00-b9b5-e934303a62ab" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,f7dc7d7a-164d-4d00-b9b5-e934303a62ab.aspx</comments>
      <category>Efficiency</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=3c87f3f0-8cd8-4e60-8361-abbac94df02d</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,3c87f3f0-8cd8-4e60-8361-abbac94df02d.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,3c87f3f0-8cd8-4e60-8361-abbac94df02d.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=3c87f3f0-8cd8-4e60-8361-abbac94df02d</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, I got the confirmation that I am now a member of the Ineta Speaker Bureau Europe.
(<a title="http://europe.ineta.org/" href="http://europe.ineta.org/">http://europe.ineta.org/</a>). 
<br />
The INETA Europe Speaker Bureau provides usergroup leaders top notch speakers for
their key events. The speakers are provided at no cost to the usergroup. 
</p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/INETASpeakersBureau.jpg" border="0" />
        </p>
        <p>
That means that if you run a usergroup, you can now request me at no cost to come
speak at your events!
</p>
        <p>
A nice little touch is that together with myself, my collegue and friend Kurt Claeys
was also added to the bureau! Congrats!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=3c87f3f0-8cd8-4e60-8361-abbac94df02d" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>I'm in the Ineta Speaker Bureau!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,3c87f3f0-8cd8-4e60-8361-abbac94df02d.aspx</guid>
      <link>http://www.snowball.be/2009/01/12/Im+In+The+Ineta+Speaker+Bureau.aspx</link>
      <pubDate>Mon, 12 Jan 2009 21:10:59 GMT</pubDate>
      <description>&lt;p&gt;
Today, I got the confirmation that I am now a member of the Ineta Speaker Bureau Europe.
(&lt;a title=http://europe.ineta.org/ href="http://europe.ineta.org/"&gt;http://europe.ineta.org/&lt;/a&gt;). 
&lt;br&gt;
The INETA Europe Speaker Bureau provides usergroup leaders top notch speakers for
their key events. The speakers are provided at no cost to the usergroup. 
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/INETASpeakersBureau.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
That means that if you run a usergroup, you can now request me at no cost to come
speak at your events!
&lt;/p&gt;
&lt;p&gt;
A nice little touch is that together with myself, my collegue and friend Kurt Claeys
was also added to the bureau! Congrats!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=3c87f3f0-8cd8-4e60-8361-abbac94df02d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,3c87f3f0-8cd8-4e60-8361-abbac94df02d.aspx</comments>
      <category>Efficiency</category>
      <category>MVP</category>
      <category>Personal</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=ff81c465-4e18-4b6b-8688-6467e19e28df</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,ff81c465-4e18-4b6b-8688-6467e19e28df.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,ff81c465-4e18-4b6b-8688-6467e19e28df.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=ff81c465-4e18-4b6b-8688-6467e19e28df</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If I'm not mistaking, about a week ago, we stepped into yet another new year. 2009
already... For me personally, a year with some "important" changes, as I'll be 30
years old this year (in fact, in little over a week - January 16th - I won't be 2.9,
I'll become 3.0).
</p>
        <p>
Not only for me it's a big year. Worldwide, we are feeling the impact that the financial
crisis is bringing. More and more companies are firing employees or aren't investing
as much anymore as they used to. In IT, my business of course (and probably yours
as well since you're reading this blogpost), up until now, the impact isn't that big
- yet. At least, where I'm living (Belgium - Europe). Companies will urge people to
be as efficient as possible. Every bit helps in getting more done in less time and
thus for less money. I'm anxious to see where we'll be in a year from now - hopefully
the situation will be better by that time.
</p>
        <p>
Microsoft also faces a busy year. It's a release year, with big new releases of Visual
Studio, C#, VB.NET, ASP.NET... coming up in the developer tools and languages. But
also a new version of Windows, Windows 7 is on the horizon (with a first public beta
coming out any minute now hopefully). And least we forget Office 14. Note the fact
that Microsoft is skipping V13.0.
</p>
        <p>
Windows 7 will be the successor of the much troubled Vista. While the beta isn't really
here yet, a version was leaked on torrent networks, which was for once perhaps a good
thing. The first reports of this unsupported version were really positive: it proves,
even already in this version, to be a stable product that is faster than Vista. While
I personally never had much troubles with Vista, it has never been a public favorite.
Microsoft is really planning on not making the same mistakes with 7 and it looks like
a promising product. µ
</p>
        <p>
Office 14 didn't really get all that much attention yet. At PDC, Microsoft showed
the first version of the web-based (Silverlight) versions of the products. While this
will prove helpful for everyone working with Office, it's particularly interesting
to see whether this will help people in under-developed countries in accessing more
technology. 
</p>
        <p>
For developers, 2009 will be one of the most exciting years. First, as mentioned,
Visual Studio 2010 is coming up. This new version of the IDE will be the biggest overhaul
the product has ever known. Making developers love Visual Studio again is the driving
goal for 2010. Multi-monitor support, a WPF interface, a faster environment...All
of these make it hard to wait for the new release to arrive.
</p>
        <p>
A new version of C#, version 4.0 as well as VB.NET, VB10, will see the daylight. I
have been playing and writing on C# 4.0 already and it has some interesting developments,
mainly around dynamic programming. The changes however aren't as big as the introduction
of version 3. ASP.NET will also be upped a version number, also towards 4.0. If you
followed the PDC, you might have seen that the amount of sessions on ASP.NET was really
small. ASP.NET has matured, and the changes in this version are mainly focused on
integration with other technologies, for example JQuery. 
</p>
        <p>
Silverlight however, will keep on growing. While the adoption isn't where it should
be yet (at 100% ;-)), it's getting there. Customers are getting to know it, more and
more developers build interest into it. At Mix, some exciting new stuff should be
announced related to Silverlight to keep us all busy! If you need investing in a learning
a new technology, take a look at Silverlight for sure. 
</p>
        <p>
WPF, another still recent technology, will keep on rising hopefully. The adoption
of this platform is still too low, mainly because it's higher learning curve. Microsoft
has done good things with it since it's release like improving its performance, but
more is needed I reckon.
</p>
        <p>
Finally, another thing that will really take off this year is the whole Cloud-thing.
Windows Azure, announced at PDC also, is the platform for hosting applications in
the cloud. 
<br />
Azure will have many advantages. Take for example a small startup, who need investing
in infrastructure - up until now that is. The requirements are often unknown up front
and making wrong decisions can be costly. Azure is the solution here since it scales
perfectly to match the needs of the startup. 
<br />
On the other side, there's still a change of mindset needed in this space. While you
stay in control of your apps, you aren't really in control, you're handing over your
applications to Microsoft (and not only apps, but also storage...). It will be interesting
to see how fast people will be migrating to the new platform.
</p>
        <p>
I hope this piece gave you some insights in the upcoming stuff in the new year. Please
comment if you don't agree with my opinions!  
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=ff81c465-4e18-4b6b-8688-6467e19e28df" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Microsoft and the year 2009</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,ff81c465-4e18-4b6b-8688-6467e19e28df.aspx</guid>
      <link>http://www.snowball.be/2009/01/06/Microsoft+And+The+Year+2009.aspx</link>
      <pubDate>Tue, 06 Jan 2009 23:45:39 GMT</pubDate>
      <description>&lt;p&gt;
If I'm not mistaking, about a week ago, we stepped into yet another new year. 2009
already... For me personally, a year with some "important" changes, as I'll be 30
years old this year (in fact, in little over a week - January 16th - I won't be 2.9,
I'll become 3.0).
&lt;/p&gt;
&lt;p&gt;
Not only for me it's a big year. Worldwide, we are feeling the impact that the financial
crisis is bringing. More and more companies are firing employees or aren't investing
as much anymore as they used to. In IT, my business of course (and probably yours
as well since you're reading this blogpost), up until now, the impact isn't that big
- yet. At least, where I'm living (Belgium - Europe). Companies will urge people to
be as efficient as possible. Every bit helps in getting more done in less time and
thus for less money. I'm anxious to see where we'll be in a year from now - hopefully
the situation will be better by that time.
&lt;/p&gt;
&lt;p&gt;
Microsoft also faces a busy year. It's a release year, with big new releases of Visual
Studio, C#, VB.NET, ASP.NET... coming up in the developer tools and languages. But
also a new version of Windows, Windows 7 is on the horizon (with a first public beta
coming out any minute now hopefully). And least we forget Office 14. Note the fact
that Microsoft is skipping V13.0.
&lt;/p&gt;
&lt;p&gt;
Windows 7 will be the successor of the much troubled Vista. While the beta isn't really
here yet, a version was leaked on torrent networks, which was for once perhaps a good
thing. The first reports of this unsupported version were really positive: it proves,
even already in this version, to be a stable product that is faster than Vista. While
I personally never had much troubles with Vista, it has never been a public favorite.
Microsoft is really planning on not making the same mistakes with 7 and it looks like
a promising product. µ
&lt;/p&gt;
&lt;p&gt;
Office 14 didn't really get all that much attention yet. At PDC, Microsoft showed
the first version of the web-based (Silverlight) versions of the products. While this
will prove helpful for everyone working with Office, it's particularly interesting
to see whether this will help people in under-developed countries in accessing more
technology. 
&lt;/p&gt;
&lt;p&gt;
For developers, 2009 will be one of the most exciting years. First, as mentioned,
Visual Studio 2010 is coming up. This new version of the IDE will be the biggest overhaul
the product has ever known. Making developers love Visual Studio again is the driving
goal for 2010. Multi-monitor support, a WPF interface, a faster environment...All
of these make it hard to wait for the new release to arrive.
&lt;/p&gt;
&lt;p&gt;
A new version of C#, version 4.0 as well as VB.NET, VB10, will see the daylight. I
have been playing and writing on C# 4.0 already and it has some interesting developments,
mainly around dynamic programming. The changes however aren't as big as the introduction
of version 3. ASP.NET will also be upped a version number, also towards 4.0. If you
followed the PDC, you might have seen that the amount of sessions on ASP.NET was really
small. ASP.NET has matured, and the changes in this version are mainly focused on
integration with other technologies, for example JQuery. 
&lt;/p&gt;
&lt;p&gt;
Silverlight however, will keep on growing. While the adoption isn't where it should
be yet (at 100% ;-)), it's getting there. Customers are getting to know it, more and
more developers build interest into it. At Mix, some exciting new stuff should be
announced related to Silverlight to keep us all busy! If you need investing in a learning
a new technology, take a look at Silverlight for sure. 
&lt;/p&gt;
&lt;p&gt;
WPF, another still recent technology, will keep on rising hopefully. The adoption
of this platform is still too low, mainly because it's higher learning curve. Microsoft
has done good things with it since it's release like improving its performance, but
more is needed I reckon.
&lt;/p&gt;
&lt;p&gt;
Finally, another thing that will really take off this year is the whole Cloud-thing.
Windows Azure, announced at PDC also, is the platform for hosting applications in
the cloud. 
&lt;br&gt;
Azure will have many advantages. Take for example a small startup, who need investing
in infrastructure - up until now that is. The requirements are often unknown up front
and making wrong decisions can be costly. Azure is the solution here since it scales
perfectly to match the needs of the startup. 
&lt;br&gt;
On the other side, there's still a change of mindset needed in this space. While you
stay in control of your apps, you aren't really in control, you're handing over your
applications to Microsoft (and not only apps, but also storage...). It will be interesting
to see how fast people will be migrating to the new platform.
&lt;/p&gt;
&lt;p&gt;
I hope this piece gave you some insights in the upcoming stuff in the new year. Please
comment if you don't agree with my opinions!&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=ff81c465-4e18-4b6b-8688-6467e19e28df" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,ff81c465-4e18-4b6b-8688-6467e19e28df.aspx</comments>
      <category>Efficiency</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=94cd394d-125b-49b8-9ad8-197e8a499f09</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,94cd394d-125b-49b8-9ad8-197e8a499f09.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,94cd394d-125b-49b8-9ad8-197e8a499f09.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=94cd394d-125b-49b8-9ad8-197e8a499f09</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For an article I'm writing on C# 4.0, I really need the Visual Studio 2010 CTP (September
release). However, as you may have experienced today, January 1st, the CTP is expiring:
Visual Studio 2010's "trial period" has expired. The CTP is only available as a Virtual
PC image, and a VPC image by default will take the date settings from the host OS.
</p>
        <p>
Now, I found there's a settings in the *.vmc (Virtual Machine configuration) file
that disables the synchronization between the host and the guest OS. By activating
this setting, the VPC's time will only advance when it's powered on. When extracting
the VPC the first time, the time is set to October 10th 2008, giving you all the time
you need to play with the VPC.
</p>
        <p>
Here's how to apply the setting. Open the *.vmc file and look for the &lt;mouse&gt;
tag.<br /><font face="Courier New">&lt;mouse&gt;<br />
     &lt;allow type="boolean"&gt;true&lt;/allow&gt;<br />
&lt;/mouse&gt;<br />
&lt;video&gt;<br />
     &lt;user_selected&gt;<br />
     .....</font><br /><br />
Between the &lt;/mouse&gt; and &lt;user_selected&gt;, add the following tag:
</p>
        <p>
          <font face="Courier New">&lt;components&gt;<br />
     &lt;host_time_sync&gt;<br />
          &lt;enabled type="boolean"&gt;false&lt;/enabled&gt;<br />
     &lt;/host_time_sync&gt;<br />
&lt;/components&gt;</font>
        </p>
        <p>
Now, boot the VPC and it will now stop syncing the two clocks. 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=94cd394d-125b-49b8-9ad8-197e8a499f09" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Extending Visual Studio 2010 September CTP</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,94cd394d-125b-49b8-9ad8-197e8a499f09.aspx</guid>
      <link>http://www.snowball.be/2009/01/01/Extending+Visual+Studio+2010+September+CTP.aspx</link>
      <pubDate>Thu, 01 Jan 2009 19:37:47 GMT</pubDate>
      <description>&lt;p&gt;
For an article I'm writing on C# 4.0, I really need the Visual Studio 2010 CTP (September
release). However, as you may have experienced today, January 1st, the CTP is expiring:
Visual Studio 2010's "trial period" has expired. The CTP is only available as a Virtual
PC image, and a VPC image by default will take the date settings from the host OS.
&lt;/p&gt;
&lt;p&gt;
Now, I found there's a settings in the *.vmc (Virtual Machine configuration) file
that disables the synchronization between the host and the guest OS. By activating
this setting, the VPC's time will only advance when it's powered on. When extracting
the VPC the first time, the time is set to October 10th 2008, giving you all the time
you need to play with the VPC.
&lt;/p&gt;
&lt;p&gt;
Here's how to apply the setting. Open the *.vmc file and look for the &amp;lt;mouse&amp;gt;
tag.&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;mouse&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;allow type="boolean"&amp;gt;true&amp;lt;/allow&amp;gt;&lt;br&gt;
&amp;lt;/mouse&amp;gt;&lt;br&gt;
&amp;lt;video&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;user_selected&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .....&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Between the &amp;lt;/mouse&amp;gt; and &amp;lt;user_selected&amp;gt;, add the following tag:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;components&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;host_time_sync&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enabled type="boolean"&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/host_time_sync&amp;gt;&lt;br&gt;
&amp;lt;/components&amp;gt;&lt;/font&gt; 
&lt;p&gt;
Now, boot the VPC and it will now&amp;nbsp;stop syncing&amp;nbsp;the two clocks. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=94cd394d-125b-49b8-9ad8-197e8a499f09" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,94cd394d-125b-49b8-9ad8-197e8a499f09.aspx</comments>
      <category>Efficiency</category>
      <category>VS2010</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=b6467410-a8a0-4c5f-b295-39f22147f2f9</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,b6467410-a8a0-4c5f-b295-39f22147f2f9.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,b6467410-a8a0-4c5f-b295-39f22147f2f9.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=b6467410-a8a0-4c5f-b295-39f22147f2f9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm happy to announce that we are having Regional Director Juval Löwy again for a
Visug event. I just posted the event on the old <a href="http://www.visug.be">Visug
site</a> (we are almost done with the new one, just hold on...).
</p>
        <p>
The event will take place on Thursday January 15th in Utopolis Mechelen. We have about
250 seats available and we expect them to sell out quickly!
</p>
        <p>
          <strong>Abstract of the session:</strong>
        </p>
        <p>
The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative,
and arguably, it is the most accessible, ready to use, powerful, and needed piece. 
</p>
        <p>
The service bus allows clients to connects to services across any machine, network,
firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were
part of the same local network, and doing all that without compromising on the programming
model or security. The service bus also supports callbacks, event publishing, authentication
and authorization and doing all that in a WCF-friendly manner. 
</p>
        <p>
This session will present the service bus programming model, how to configure and
administer service bus solutions, working with the dedicated relay bindings including
the available communication modes, relying on authentication in the cloud for local
services and the various authentication options, and how to provide for end-to-end
security through the relay service. 
</p>
        <p>
You will also see some advanced WCF programming techniques, original helper classes,
productivity-enhancing utilities and tools, as well as discussion of design best practices
and pitfalls.
</p>
        <p>
So, register fast, it is free like always!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b6467410-a8a0-4c5f-b295-39f22147f2f9" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Juval Löwy is stopping by again!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,b6467410-a8a0-4c5f-b295-39f22147f2f9.aspx</guid>
      <link>http://www.snowball.be/2008/12/10/Juval+L%c3%b6wy+Is+Stopping+By+Again.aspx</link>
      <pubDate>Wed, 10 Dec 2008 21:49:57 GMT</pubDate>
      <description>&lt;p&gt;
I'm happy to announce that we are having Regional Director Juval Löwy again for a
Visug event. I just posted the event on the old &lt;a href="http://www.visug.be"&gt;Visug
site&lt;/a&gt; (we are almost done with the new one, just hold on...).
&lt;/p&gt;
&lt;p&gt;
The event will take place on Thursday January 15th in Utopolis Mechelen. We have about
250 seats available and we expect them to sell out quickly!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Abstract of the session:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative,
and arguably, it is the most accessible, ready to use, powerful, and needed piece. 
&lt;/p&gt;
&lt;p&gt;
The service bus allows clients to connects to services across any machine, network,
firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were
part of the same local network, and doing all that without compromising on the programming
model or security. The service bus also supports callbacks, event publishing, authentication
and authorization and doing all that in a WCF-friendly manner. 
&lt;/p&gt;
&lt;p&gt;
This session will present the service bus programming model, how to configure and
administer service bus solutions, working with the dedicated relay bindings including
the available communication modes, relying on authentication in the cloud for local
services and the various authentication options, and how to provide for end-to-end
security through the relay service. 
&lt;/p&gt;
&lt;p&gt;
You will also see some advanced WCF programming techniques, original helper classes,
productivity-enhancing utilities and tools, as well as discussion of design best practices
and pitfalls.
&lt;/p&gt;
&lt;p&gt;
So, register fast, it is free like always!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b6467410-a8a0-4c5f-b295-39f22147f2f9" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,b6467410-a8a0-4c5f-b295-39f22147f2f9.aspx</comments>
      <category>Efficiency</category>
      <category>Visug</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=229ad839-3b2b-4a5e-bcaf-081faac9b09f</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,229ad839-3b2b-4a5e-bcaf-081faac9b09f.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,229ad839-3b2b-4a5e-bcaf-081faac9b09f.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=229ad839-3b2b-4a5e-bcaf-081faac9b09f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The first one on styling Silverlight controls:
</p>
        <p>
          <iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=703&amp;e=1" frameborder="0" width="493" scrolling="no" height="385">
          </iframe>
        </p>
        <p>
The second one on creating custom Silverlight controls:
</p>
        <p>
          <iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=705&amp;e=1" frameborder="0" width="493" scrolling="no" height="385">
          </iframe>
        </p>
        <p>
Part 3 is not yet ready...<br /><br />
I hope you enjoy them!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=229ad839-3b2b-4a5e-bcaf-081faac9b09f" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>My 2 new Silverlight chopsticks are online!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,229ad839-3b2b-4a5e-bcaf-081faac9b09f.aspx</guid>
      <link>http://www.snowball.be/2008/11/04/My+2+New+Silverlight+Chopsticks+Are+Online.aspx</link>
      <pubDate>Tue, 04 Nov 2008 11:20:36 GMT</pubDate>
      <description>&lt;p&gt;
The first one on styling Silverlight controls:
&lt;/p&gt;
&lt;p&gt;
&lt;iframe marginwidth=0 marginheight=0 src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=703&amp;amp;e=1" frameborder=0 width=493 scrolling=no height=385&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
The second one on creating custom Silverlight controls:
&lt;/p&gt;
&lt;p&gt;
&lt;iframe marginwidth=0 marginheight=0 src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=705&amp;amp;e=1" frameborder=0 width=493 scrolling=no height=385&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
Part 3 is not yet ready...&lt;br&gt;
&lt;br&gt;
I hope you enjoy them!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=229ad839-3b2b-4a5e-bcaf-081faac9b09f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,229ad839-3b2b-4a5e-bcaf-081faac9b09f.aspx</comments>
      <category>Chopsticks</category>
      <category>Silverlight</category>
      <category>Webcasts</category>
      <category>Efficiency</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=bf22e062-9cbb-4dcd-af51-5bfcf3c63208</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,bf22e062-9cbb-4dcd-af51-5bfcf3c63208.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,bf22e062-9cbb-4dcd-af51-5bfcf3c63208.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=bf22e062-9cbb-4dcd-af51-5bfcf3c63208</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just finished adding a bunch of new events on the <a href="http://www.visug.be/">Visug</a> website.
Here's an overview!
</p>
        <ul>
          <li>
            <strong>What's new in Visual Studio Team System Code Name "Rosario"<br /></strong>27th November 2008 by Pieter Gheysens (Compuware)<br />
Abstract:<br /><em>Microsoft Visual Studio Team System code name "Rosario" is the version of Team
System that follows Visual Studio Team System 2008. It is an integrated Application
Life-cycle Management (ALM) solution comprising tools, processes, and guidance. Team
System "Rosario" can be seen as a major release and will bring lots of new features
in the areas of Project Management, Architecture, Version Control, Build, ... Come
and enjoy a sneak preview of what will be shipped in the next version of Visiual Studio
Team System.<br /></em></li>
          <li>
            <strong>Resharper and Design Principles   
<br /></strong>16th December by Hadi Hariri<br />
Abstract: 
<br /><em>As systems grow in size it becomes hard to keep the simplicity.<br />
Testing becomes harder and understanding the code comes close to impossible. This
session explains concepts that allow you make robust applications that are not only
testable but maintainable. Concepts such as separation of concerns interface segregation,
dependency injection and inversion of control are all covered with ample examples
of IoC Containers as well as an introduction to mock objects and how to replace dependencies
with them during tests.<br /></em></li>
          <li>
            <strong>Christmas Geek Dinner<br /></strong>18th December 2008<br />
Abstract... Not a real abstract but anyway...:<br /><span class="EventNormal" id="dnn_ctr388_ViewVisug_EventRegistration_lblLongDescription"><em>For
the third time already, we are planning our annual Christmas Geek Dinner. An evening
full of fun, networking, good food and the real christmas spirit among fellow Visug-people...
What more could you ask Santa for?</em><p><em>This year, we selected </em><a href="http://www.wokentandoor.be/" target="_blank"><em>Wok
&amp; Tandoor</em></a><a href="http://www.wokentandoor.be/"><em></em></a><em>(Antwerp).
It's an "all-you-can-eat", Chinese/Indian restaurant, located near the "Vlaamse/Waalse
kaai".</em></p><p><em>Seats are limited! Each participant pays for own food!</em></p></span></li>
          <li>
            <span class="EventNormal">
              <p>
                <strong>WCF and entities<br /></strong>22nd December 2008 by Kurt Claeys (Ordina)<br />
Abstract:<br /><em>Using the ADO.NET Entity Framework in a WCF SOA architecture. About the objectcontext,
disconnected entities and entities as datatransferobjects in serviceoperations.</em></p>
            </span>
          </li>
        </ul>
        <span class="EventNormal">
          <p>
            <strong>As always, registration for the events is free (except the food at our Geek
Dinner) but required. Hurry up if you want to attend, since our events tend to get
sold out faster and faster!<br /><br /></strong>
          </p>
        </span>
        <span class="EventNormal">Go to <a href="http://www.visug.be">www.visug.be</a> to
register!</span>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bf22e062-9cbb-4dcd-af51-5bfcf3c63208" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>New Visug events announced</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,bf22e062-9cbb-4dcd-af51-5bfcf3c63208.aspx</guid>
      <link>http://www.snowball.be/2008/10/20/New+Visug+Events+Announced.aspx</link>
      <pubDate>Mon, 20 Oct 2008 22:12:04 GMT</pubDate>
      <description>&lt;p&gt;
I just finished adding a bunch of new events on the &lt;a href="http://www.visug.be/"&gt;Visug&lt;/a&gt;&amp;nbsp;website.
Here's an overview!
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What's new in Visual Studio Team System Code Name "Rosario"&lt;br&gt;
&lt;/strong&gt;27th November 2008 by Pieter Gheysens (Compuware)&lt;br&gt;
Abstract:&lt;br&gt;
&lt;em&gt;Microsoft Visual Studio Team System code name "Rosario" is the version of Team
System that follows Visual Studio Team System 2008. It is an integrated Application
Life-cycle Management (ALM) solution comprising tools, processes, and guidance. Team
System "Rosario" can be seen as a major release and will bring lots of new features
in the areas of Project Management, Architecture, Version Control, Build, ... Come
and enjoy a sneak preview of what will be shipped in the next version of Visiual Studio
Team System.&lt;br&gt;
&lt;/em&gt; 
&lt;li&gt;
&lt;strong&gt;Resharper and Design Principles&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&lt;/strong&gt;16th December by Hadi Hariri&lt;br&gt;
Abstract: 
&lt;br&gt;
&lt;em&gt;As systems grow in size it becomes hard to keep the simplicity.&lt;br&gt;
Testing becomes harder and understanding the code comes close to impossible. This
session explains concepts that allow you make robust applications that are not only
testable but maintainable. Concepts such as separation of concerns interface segregation,
dependency injection and inversion of control are all covered with ample examples
of IoC Containers as well as an introduction to mock objects and how to replace dependencies
with them during tests.&lt;br&gt;
&lt;/em&gt; 
&lt;li&gt;
&lt;strong&gt;Christmas Geek Dinner&lt;br&gt;
&lt;/strong&gt;18th December 2008&lt;br&gt;
Abstract... Not a real abstract but anyway...:&lt;br&gt;
&lt;span class=EventNormal id=dnn_ctr388_ViewVisug_EventRegistration_lblLongDescription&gt;&lt;em&gt;For
the third time already, we are planning our annual Christmas Geek Dinner. An evening
full of fun, networking, good food and the real christmas spirit among fellow Visug-people...
What more could you ask Santa for?&lt;/em&gt; 
&lt;p&gt;
&lt;em&gt;This year, we selected &lt;/em&gt;&lt;a href="http://www.wokentandoor.be/" target=_blank&gt;&lt;em&gt;Wok
&amp;amp; Tandoor&lt;/em&gt;&lt;/a&gt;&lt;a href="http://www.wokentandoor.be/"&gt;&lt;em&gt; &lt;/em&gt;&lt;/a&gt;&lt;em&gt;(Antwerp).
It's an "all-you-can-eat", Chinese/Indian restaurant, located near the "Vlaamse/Waalse
kaai".&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Seats are limited! Each participant pays for own food!&lt;/em&gt;
&lt;/p&gt;
&lt;/span&gt; 
&lt;li&gt;
&lt;span class=EventNormal&gt; 
&lt;p&gt;
&lt;strong&gt;WCF and entities&lt;br&gt;
&lt;/strong&gt;22nd December 2008 by Kurt Claeys (Ordina)&lt;br&gt;
Abstract:&lt;br&gt;
&lt;em&gt;Using the ADO.NET Entity Framework in a WCF SOA architecture. About the objectcontext,
disconnected entities and entities as datatransferobjects in serviceoperations.&lt;/em&gt;
&lt;/p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span class=EventNormal&gt; 
&lt;p&gt;
&lt;strong&gt;As always, registration for the events is free (except the food at our Geek
Dinner) but required. Hurry up if you want to attend, since our events tend to get
sold out faster and faster!&lt;br&gt;
&lt;br&gt;
&lt;/strong&gt;
&lt;/span&gt;&lt;span class=EventNormal&gt;Go to &lt;a href="http://www.visug.be"&gt;www.visug.be&lt;/a&gt; to
register!&lt;/span&gt;&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bf22e062-9cbb-4dcd-af51-5bfcf3c63208" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,bf22e062-9cbb-4dcd-af51-5bfcf3c63208.aspx</comments>
      <category>Efficiency</category>
      <category>Visug</category>
    </item>
  </channel>
</rss>