<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>&amp;lt;ChristophDotNet </title><link>http://weblogs.asp.net/cschittko/default.aspx</link><description>desc="My angle on brackets" /&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CTheArchitect" type="application/rss+xml" /><item><title>Seadragon Mobile for the iPhone</title><link>http://weblogs.asp.net/cschittko/archive/2008/12/14/seadragon-mobile-for-the-iphone.aspx</link><pubDate>Sun, 14 Dec 2008 18:46:25 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6784557</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6784557</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6784557</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/12/14/seadragon-mobile-for-the-iphone.aspx#comments</comments><description>&lt;p&gt;The iPhone always reminds me of &lt;a href="http://www.moviesoundclips.net/movies1/findingnemo/pledge.mp3"&gt;Finding Nemo (iPhones, they think they’re so cute. Oh, look at me, I’m a flicky little iPhone, let me flick for you. )&lt;/a&gt;. Yesterday, Bill Crow from &lt;a href="http://www.livelabs.com"&gt;Live Labs&lt;/a&gt; just &lt;a href="http://livelabs.com/blog/seadragon-goes-mobile/"&gt;posted&lt;/a&gt; about an app that makes the iPhone even cooler – and yes, it’s from Microsoft! That’s the coolest part of it&lt;/p&gt;  &lt;p&gt;If you have an iPhone, then check it out. DeepZoom is one of the best features in Silverlight 2 that’s behind the &lt;a href="http://www.hardrock.com/memorabilia"&gt;Hard Rock Cafe Memorabilia app&lt;/a&gt; or my &lt;a href="http://silverlight.services.live.com/invoke/71954/innovation2/iframe.html"&gt;Innovation Tips &amp;amp; Tricks “Deck”&lt;/a&gt; and now &lt;a href="http://www.itunes.com/app/seadragonmobile"&gt;SeaDragon Mobile&lt;/a&gt; is available for free on the iPhone, too&lt;/p&gt;  &lt;p&gt;And for those of you that' don’t have an iPhone and don’t run Silverlight. You can now run &lt;a href="http://livelabs.com/seadragon-ajax/"&gt;SeaDragon Ajax&lt;/a&gt;, purely browser based, without an add-on.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6784557" width="1" height="1"&gt;</description></item><item><title>Resolving Errors - Moving to Silverlight2 RTW</title><link>http://weblogs.asp.net/cschittko/archive/2008/10/12/resolving-errors-moving-to-silverlight2-rtw.aspx</link><pubDate>Sun, 12 Oct 2008 21:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6675235</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6675235</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6675235</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/10/12/resolving-errors-moving-to-silverlight2-rtw.aspx#comments</comments><description>&lt;p&gt;Following Jesse’s and &lt;a href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/09/26/Silverlight-2-RC0-_1320_-Developer_2D00_Only-RTW-Prep-Release.aspx"&gt;Pete’s&lt;/a&gt; excellent posts on porting Silverlight2 apps from Beta 2 to the final release bits I thought I add just a little more information. &lt;/p&gt;  &lt;p&gt;As I worked with one of my customers that’s featured in the launch press release through their code, I thought it would be nice to understand the error you’re getting as you port. &lt;/p&gt;  &lt;h3&gt;1. The new app type. This is a &lt;a href="http://blogs.msdn.com/webnext/archive/2008/10/09/why-don-t-beta-2-sites-work-on-rc0-question-of-the-day.aspx"&gt;well documented first step&lt;/a&gt; you need to take to see more than the “download silverlight” badge.&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/image_45A56D57.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://weblogs.asp.net/blogs/cschittko/image_thumb_530B805D.png" width="244" height="84" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div&gt;The fix is easy. Change the &amp;lt;object&amp;gt; tag from&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; &lt;strong&gt;data=&lt;span style="color: #006080"&gt;&amp;quot;data:application/x-silverlight,&amp;quot;&lt;/span&gt;&lt;/strong&gt; type=&lt;span style="color: #006080"&gt;&amp;quot;&lt;strong&gt;application/x-silverlight-2-b2&lt;/strong&gt;&amp;quot; …&lt;/span&gt;&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;div&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; &lt;strong&gt;data=&lt;span style="color: #006080"&gt;&amp;quot;data:application/x-silverlight-2,&amp;quot;&lt;/span&gt; type=&lt;span style="color: #006080"&gt;&amp;quot;application/x-silverlight-2&amp;quot;&lt;/span&gt;&lt;/strong&gt; … &amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;2. Fix your references to the vsm namespace (xmlns:vsm=&amp;quot;clr-namespace:System.Windows;assembly=System.Windows&amp;quot;)&lt;/h3&gt;

&lt;p&gt;Those result in XamlParseException with error code AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR. Curiously enough those exceptions occur on the LoadComponent call that’s loading and parsing Xaml from the .xap (as &lt;a href="http://www.silverlightshow.net/items/Reading-Silverlight-Embedded-XAML.aspx"&gt;explained by Shawn&lt;/a&gt;), but the exception details don’t give you much details what you need to get rid of them. For example, your code may reference the vsm namespace in the Application.Resources element in the App.xaml:&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;vsm:Application.Resources&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&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;p&gt;If that’s the case,&amp;#160; the exception will occur when parsing the first child of &amp;lt;vsm:Application.Resources&amp;gt;. In my case, that was the line with the closing tag of a ContentPresenter (which has other issues (see below)). Unfortunately, that inconsistency is not caught by the Xaml validator in Visual Studio. Simply changing the Application.Resources element to:&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;Application.Resources&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;will get rid of this exception.&lt;/p&gt;

&lt;h3&gt;3. The next class of errors is another XamlParseException with the error code: AG_E_PARSER_PROPERTY_NOT_FOUND.&lt;/h3&gt;

&lt;p&gt;The culprit is again the namespace reference to the System.Windows namespace, often referenced with the vsm prefix. Again, you will see this exception not on the element that’s actually causing the problem. In my case it was again &amp;lt;/ContentPresenter&amp;gt;.&lt;/p&gt;

&lt;p&gt;Search and Replace of vsm:Setter and vsm:Setter.Value with the “Entire Solution” option gets rid of these errors pretty quickly. While you’re at it, replace vsm:Style with Style.&lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/image_3DADCAF5.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://weblogs.asp.net/blogs/cschittko/image_thumb_236D61D1.png" width="264" height="426" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;4. ScrollViewer and other ContentControl derived classes no longer have Text* properties. &lt;/h3&gt;

&lt;p&gt;You’ll get validation errors when the parameters are set explicitly in code, but you get a XamlParseException: Invalid attribute value TextAlignment for property Property.&lt;/p&gt;

&lt;p&gt;when you define a Style that would set TextAlignment and TextWrapping properties. &lt;/p&gt;

&lt;div&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;Style x:Key=&lt;span style="color: #006080"&gt;&amp;quot;RightScrollbarScrollerTemplate&amp;quot;&lt;/span&gt; TargetType=&lt;span style="color: #006080"&gt;&amp;quot;ScrollViewer&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &amp;lt;Setter Property=&lt;span style="color: #006080"&gt;&amp;quot;TextAlignment&amp;quot;&lt;/span&gt; Value=&lt;span style="color: #006080"&gt;&amp;quot;Left&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &amp;lt;Setter Property=&lt;span style="color: #006080"&gt;&amp;quot;TextWrapping&amp;quot;&lt;/span&gt; Value=&lt;span style="color: #006080"&gt;&amp;quot;NoWrap&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Those properties were removed for compatibility with WPF. You now have to make sure that the ContentControl’s container sets Text* properties correctly – either explicitly or via &amp;lt;Style&amp;gt;&lt;/p&gt;

&lt;h3&gt;5. ContentPresenter no longer derives from Control, thus it’s missing a number of properties that could be set in code or in XAML.&lt;/h3&gt;

&lt;p&gt;Jesse &lt;a href="http://silverlight.net/blogs/jesseliberty/archive/2008/09/28/rc0-amp-contentpresenter.aspx"&gt;posted about solving these issues at length&lt;/a&gt;. The good news is that you can catch this issue at design time through Visual Studio warnings: &lt;/p&gt;

&lt;p&gt;The property 'Foreground' does not exist on the type 'ContentPresenter' in the XML namespace '&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation'"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation'&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and at run time with XamlParseExceptions when launching the app: XamlParseException: Unknown attribute Foreground on element ContentPresenter. &lt;/p&gt;

&lt;h3&gt;6. The name of the Duration property on Visual Transition changed to GeneratedDuration.effects you’ll see are:&lt;/h3&gt;

&lt;p&gt;Compiler errors:&lt;/p&gt;

&lt;p&gt;The property 'Duration' was not found in type 'VisualTransition'.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;

&lt;p&gt;and Validation warnings:&lt;/p&gt;

&lt;p&gt;The property 'Duration' does not exist on the type 'VisualTransition' in the XML namespace 'clr-namespace:System.Windows;assembly=System.Windows'.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;

&lt;p&gt;Follow &lt;a href="http://silverlight.net/blogs/jesseliberty/archive/2008/09/28/rc0-amp-contentpresenter.aspx"&gt;Jesse’s instructions&lt;/a&gt; to fix it.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;For other issues check the breaking changes documentation or start with &lt;a href="http://silverlight.net/blogs/msnow/archive/2008/09/25/silverlight-version-2-rc0-release.aspx"&gt;Mike’s post&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6675235" width="1" height="1"&gt;</description></item><item><title>Mobile Client Software Factory on VS 2008? Sure!</title><link>http://weblogs.asp.net/cschittko/archive/2008/09/25/mobile-client-software-factory-on-vs-2008-sure.aspx</link><pubDate>Thu, 25 Sep 2008 13:21:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6641430</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6641430</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6641430</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/09/25/mobile-client-software-factory-on-vs-2008-sure.aspx#comments</comments><description>&lt;p&gt;One of my customers was interested in some of the cool features of the &lt;a href="http://msdn.microsoft.com/en-us/library/aa480471.aspx"&gt;Mobile Client Software Factory&lt;/a&gt;, but they wanted to develop on Visual Studio 2008. The original version from &lt;a href="http://msdn.microsoft.com/en-us/practices/default.aspx"&gt;p&amp;amp;p&lt;/a&gt; wasn’t updated to VS 2008, but &lt;a href="http://blogs.msdn.com/gblock/"&gt;Glenn Block&lt;/a&gt; has a &lt;a href="http://blogs.msdn.com/gblock/archive/2008/04/22/porting-mobile-client-software-factory-to-visual-studio-2008.aspx#8877189"&gt;post that describes how to get MSCF to run in VS 2008&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;We had some initial problems getting it to work.If you do, too, here are some things to check:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Make sure you have v.1.4 of GAT/GAX installed: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;1) GAX February 2008 Release&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=DF79C099-4753-4A59-91E3-5020D9714E4E&amp;amp;displaylang=en"&gt;http://www.microsoft.com/Downloads/details.aspx?familyid=DF79C099-4753-4A59-91E3-5020D9714E4E&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;2) GAT &lt;b&gt;&lt;u&gt;for VS2008&lt;/u&gt;&lt;/b&gt; - February 2008 Release&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=B91066B3-D1D6-4990-A45F-34CF8DBDC60C&amp;amp;displaylang=en"&gt;http://www.microsoft.com/Downloads/details.aspx?familyid=B91066B3-D1D6-4990-A45F-34CF8DBDC60C&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;You may need also to change the GATRegistry value to “Installer\Products\A741EEBC995A0984782CC041A01336F3”. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Additionally, the MSCF MSI performs checks for ActiveSync 4.5 and Windows Mobile Pocket PC 5.0 SDK.&lt;/p&gt;  &lt;p&gt;For ActiveSync on WinXP you need:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/windowsmobile/en-us/downloads/eulas/eula_activesync45_1033.mspx?ProductID=76"&gt;http://www.microsoft.com/windowsmobile/en-us/downloads/eulas/eula_activesync45_1033.mspx?ProductID=76&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On Vista you don’t have ActiveSync but you need WMDC:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=46F72DF1-E46A-4A5F-A791-09F07AAA1914&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=46F72DF1-E46A-4A5F-A791-09F07AAA1914&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have ActiveSync or WMDC you can install WM5.0 Pocket PC SDK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also note, that if you’re after the Orientation Aware Control from the mobile composite UI block, Clarius has a &lt;a href="http://www.orientationaware.net"&gt;newer version for VS 2008&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6641430" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category></item><item><title>Apple ... Puhleeeeeeeeeze ...</title><link>http://weblogs.asp.net/cschittko/archive/2008/09/06/apple-puhleeeeeeeeeze.aspx</link><pubDate>Sun, 07 Sep 2008 02:36:28 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6606212</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6606212</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6606212</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/09/06/apple-puhleeeeeeeeeze.aspx#comments</comments><description>&lt;p&gt;Apple is the new Microsoft? Right ... they sneak Safari and MobileMe onto my system - without me asking. That's the kind of stuff Microsoft got in trouble for back in the mid 90s. Isn't it?&lt;/p&gt; &lt;p&gt;Now they are fast approaching being the new Netscape:&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Apple...Puhleeeeeeeeeze_12D81/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Apple...Puhleeeeeeeeeze_12D81/image_thumb.png" width="302" height="389"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;C'mon, can't you guys write software that doesn't crash when I don't want to install your products? (but hey, at least you asked me this time).&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6606212" width="1" height="1"&gt;</description></item><item><title>Presentation Canvas - Not Your Average PowerPoint</title><link>http://weblogs.asp.net/cschittko/archive/2008/08/15/presentation-canvas-not-your-average-powerpoint.aspx</link><pubDate>Fri, 15 Aug 2008 23:55:20 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6524681</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6524681</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6524681</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/08/15/presentation-canvas-not-your-average-powerpoint.aspx#comments</comments><description>The linear style forced by PowerPoint and the metaphor of a slide may have reached their limits. At least support for other styles is on its way ... of course also from the Office team. The innovation team in &lt;a href="http://www.officelabs.com"&gt;Office Labs&lt;/a&gt; to be exact.  &lt;p&gt;If you've seen my &lt;a href="http://weblogs.asp.net/cschittko/archive/2008/08/07/innovation-explore-the-interactive-deck-from-teched-2008.aspx"&gt;&amp;quot;interactive deck&amp;quot; from TechEd&lt;/a&gt; or the some recent Bill Gates demos then or the cool TouchWall demo for example, both showed the concept of a single canvas that you explore during a presentation instead of flipping from one slide to the next.&lt;/p&gt;  &lt;p&gt;The concept is very cool and promising, especially when you want to keep around all the information you collect as you build up a presentation. I tend to collect quotes, images, web pages, screenshots, all sorts of stuff that may or may not make it into the presentation. I have tons of OneNote books just filled information I collected for presentations. &lt;/p&gt;  &lt;p&gt;Of course, there's always this one guy in the audience that asks questions about things I didn't include in the deck.&lt;/p&gt;  &lt;p&gt;With the new tool from Office Labs, &lt;a href="http://www.officelabs.com/projects/pptPlex/Pages/default.aspx"&gt;pptPlex&lt;/a&gt; you get a PowerPoint add-in to build these single canvas presentations in PowerPoint. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PresentationCanvasNotYourAveragePowerPoi_10A37/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="102" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PresentationCanvasNotYourAveragePowerPoi_10A37/image_thumb.png" width="493" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It's way easier to use than my rather manual process for my DeepZoom app, which is build the image with DeepZoom&amp;#160; composer, then add various types of hotspots with a little Silverlight app.&lt;/p&gt;  &lt;p&gt;Have fun with the app.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6524681" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Innovation/default.aspx">Innovation</category></item><item><title>Innovation - Explore the Interactive Deck from TechEd 2008</title><link>http://weblogs.asp.net/cschittko/archive/2008/08/07/innovation-explore-the-interactive-deck-from-teched-2008.aspx</link><pubDate>Thu, 07 Aug 2008 14:45:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6494931</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6494931</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6494931</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/08/07/innovation-explore-the-interactive-deck-from-teched-2008.aspx#comments</comments><description>&lt;p&gt;As promised at my TechEd 2008 chalk talk &lt;strong&gt;Innovation 101: Tips &amp;amp; Tricks for Architects &amp;amp; Developers to Drive Innovation&lt;/strong&gt;, here's a slightly evolved version of my interactive deck. I had thought that a talk on innovation should innovate on the presentation tools and technique and here's what came out.&lt;/p&gt; &lt;p&gt;&lt;a href="http://silverlight.services.live.com/invoke/71954/innovation2/iframe.html"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/ab32d3000d70_FCB9/image_3.png" width="856" height="299"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Click on the image to launch the application and start exploring the presentation canvas by panning downward &lt;a href="http://labs.live.com/Silverlight+2+Deep+Zoom.aspx"&gt;DeepZoom&lt;/a&gt; style.&lt;/p&gt; &lt;p&gt;You can jump between chapters with the '+' and '-' keys on the number pad. The chapters in this deck are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Title Slide  &lt;li&gt;Why Innovation Matters and how to get started  &lt;li&gt;Processes, Styles and Ingredients of Successful Innovation  &lt;li&gt;Fail-Fast Pilot &amp;amp; Pitch  &lt;li&gt;Tools (Software and Motivational)  &lt;li&gt;Case Study: Microsoft's &lt;a href="http://www.realinnovation.com/commentary/archive/microsoft_national_innovation_forum_part_iii_innovation_practices.html"&gt;IdeAgency&lt;/a&gt;&amp;nbsp; &lt;li&gt;Case Study: Dell's &lt;a href="http://www.ideastorm.com/"&gt;IdeaStorm&lt;/a&gt;  &lt;li&gt;Myths and Gotchas  &lt;li&gt;Go and Innovate&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Additional Navigation Aids are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&amp;lt;Home&amp;gt; - Zoom Out to show the entire canvas  &lt;li&gt;&amp;lt;Backspace&amp;gt; - Previous zoom level  &lt;li&gt;&amp;lt;Arrow Keys&amp;gt; - pan around the canvas  &lt;li&gt;&amp;lt;Mouse Wheel&amp;gt; - DeepZoom in and out&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The idea for this presentation was borrowed from the Office Live team. They are they guys behind the &lt;a href="http://on10.net/blogs/sarahintampa/Bill-Gates-Demos-TouchWall-Like-Surface-for-the-Office/"&gt;TouchWall&lt;/a&gt; demo Bill Gates gave earlier this year and the &lt;a href="http://news.cnet.com/8301-10784_3-9950674-7.html"&gt;LaserTouch&lt;/a&gt; shown at the &lt;a href="http://news.cnet.com/8301-10784_3-9950631-7.html?tag=mncol;txt"&gt;Microsoft Research Roadshow&lt;/a&gt;. They just didn't have anything ready for me to show this summer. Fortunately, I still had some Silverlight DeepZoom code for a navigation hotspot framework laying around that I had written for a proof-of-concept earlier this year, which allowed me to pretty quickly build my own presentation app and a tool that helps with authoring the hotspots. Next time, I'll take more advantage of the framework's features with video, nested DeepZoom and others.&lt;/p&gt; &lt;p&gt;I hope you enjoy exploring the presentation adn please drop me a note if you're interested in the further conversations.&lt;/p&gt; &lt;p&gt;Much Thanks to Randy and the IdeAgency, Office Labs, &lt;a href="http://blogs.msdn.com/asehmi"&gt;Arvindra&lt;/a&gt; for being brave enough to present with the tool already, &lt;a href="http://blogs.msdn.com/benwilli/"&gt;Ben Williams&lt;/a&gt; for his help with &lt;a href="http://silverlight.live.com/"&gt;Silverlight Streaming&lt;/a&gt; to host the &lt;a href="http://silverlight.services.live.com/invoke/71954/innovation2/iframe.html"&gt;app&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6494931" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Innovation/default.aspx">Innovation</category></item><item><title>Innovation on My Innovation Talk</title><link>http://weblogs.asp.net/cschittko/archive/2008/06/02/innovation-on-my-innovation-talk.aspx</link><pubDate>Tue, 03 Jun 2008 03:46:15 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6243787</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6243787</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6243787</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/06/02/innovation-on-my-innovation-talk.aspx#comments</comments><description>&lt;p&gt;Here’s my ONE slide for tomorrow’s talk:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/InnovationonMyInnovationTalk_1401F/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/InnovationonMyInnovationTalk_1401F/image_thumb.png" width="244" height="83" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A deeper dive into the slide tomorrow at noon in Orlando at TechEd ;)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6243787" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Innovation/default.aspx">Innovation</category></item><item><title>Innovation – How do You Enable Techies to Innovate?</title><link>http://weblogs.asp.net/cschittko/archive/2008/05/28/innovation-how-do-you-enable-techies-to-innovate.aspx</link><pubDate>Wed, 28 May 2008 17:22:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6226907</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6226907</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6226907</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/05/28/innovation-how-do-you-enable-techies-to-innovate.aspx#comments</comments><description>&lt;p&gt;Innovation is a key strategy to win with customers for several of the companies I work with. It’s a quite a successful strategy for technology and non-technology companies alike. Think of &lt;a href="http://www.microsoft.com/about/brandcampaigns/innovation/default.mspx"&gt;Microsoft&lt;/a&gt;, Google, Yahoo, &lt;a href="http://www.businessweek.com/bwdaily/dnflash/oct2004/nf20041012_4018_db083.htm"&gt;Apple&lt;/a&gt;, &lt;a href="http://www.businessweek.com/magazine/content/08_17/b4081064880218.htm"&gt;Amazon&lt;/a&gt;, &lt;a href="http://labs.travelocity.com/experiencefinder"&gt;Travelocity&lt;/a&gt; or even Frito-Lay, Pepsi, P&amp;amp;G, etc. Their thought leadership translates directly to market share and successful growth.&lt;/p&gt;  &lt;p&gt;Many of my customers (and Microsoft) are now recognizing that Innovation can happen across the company, not just inside an R&amp;amp;D organization. Engaging the entire company allows them to harvest the creative energy together product and domain knowledge of their own engineering teams to develop new features, products or entire businesses. Aside from that it’s a great tool for employee satisfaction if you allow them to pursue their passions once in a while.&lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.google.com/support/jobs/bin/static.py?page=about.html&amp;amp;about=eng"&gt;Google’s 20% rule is famous&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://search.live.com/results.aspx?q=yahoo+hackday"&gt;Yahoo’s hackdays for example have gotten broad attention&lt;/a&gt;, &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.informationweek.com/news/management/showArticle.jhtml?articleID=201200007&amp;amp;pgno=1"&gt;eBay is talking about their infrastructure to experiment&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://exp-platform.com/default.aspx"&gt;Microsoft is building an Experimentation Platform for web applications&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Just like for any other part of the business, it’s important to treat Innovation as a process and support it with IT infrastructure to execute the process efficiently and cost effective.&lt;/p&gt;  &lt;p&gt;I’ll be talking about these processes and the infrastructure at my interactive chalk talk &lt;a href="http://www.microsoft.com/events/teched2008/developer/about/agenda.mspx"&gt;ARC08-TLC&lt;/a&gt; at &lt;a href="http://www.microsoft.com/events/teched2008/developer/default.mspx"&gt;TechEd Developers&lt;/a&gt; on Tuesday June 3rd noon-1:00pm. If you have any questions or successful practices from your organization to share, please shoot me a note, post a comment, or come by my session.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6226907" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Innovation/default.aspx">Innovation</category></item><item><title>WPF UI Update from Background Threads</title><link>http://weblogs.asp.net/cschittko/archive/2008/05/14/wpf-ui-update-from-background-threads.aspx</link><pubDate>Wed, 14 May 2008 17:30:36 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6189147</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=6189147</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=6189147</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/05/14/wpf-ui-update-from-background-threads.aspx#comments</comments><description>&lt;p&gt;I'm trying to do my apps in any type of XAML these days since I finally think I &amp;quot;got it&amp;quot;. I wish I could claim that I will break free from the limitations of HTML and my new found liberty will result in fantastic looking apps -- but in reality, I still lack the design skills to come up with something that looks really cool.&lt;/p&gt;  &lt;p&gt;Either way, XAML presents a great opportunity to really innovate on the UIs with regards to looks and interactivity, regardless if you’re writing &lt;a href="http://windowsclient.net/default.aspx"&gt;desktop apps with WPF&lt;/a&gt;, web apps with &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt;, mobile apps with &lt;a href="http://silverlight.net/learn/mobile.aspx"&gt;Silverlight Mobile&lt;/a&gt; or if you're programming for one of these cool &lt;a href="http://www.microsoft.com/surface"&gt;Surface tables&lt;/a&gt; ... and I will write my puny little test apps in WPF, even if they are just as ugly as my Windows Forms apps used to be.&lt;/p&gt;  &lt;p&gt;Now, I'm writing this cool little app and I want to do some interesting stuff in the background (my apps may be ugly, but at least they are responsive). &lt;a href="http://msdn.microsoft.com/en-us/library/ms750441.aspx#System_Threading_DispatcherObject"&gt;WPF is still STA&lt;/a&gt;, which means you still have to be explicit about posting back to the main UI thread if your background thread needs to communicate updates … bummer, but I thought I knew how to program async from my Windows Forms apps. As it turns out, it's a little bit different and there are few things to keep in mind. It also turns out that things are still not as widely document. That’s why I’m sharing.&lt;/p&gt;  &lt;p&gt;For starters, there's the handy Dispatcher on every &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.aspx"&gt;UIElement&lt;/a&gt; which provides the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.begininvoke.aspx"&gt;BeginInvoke&lt;/a&gt; method to run code on the right thread.&lt;/p&gt;  &lt;p&gt;For example, my program dispays progress with a WPF &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.progressbar.aspx"&gt;ProgressBar&lt;/a&gt; object. To update that ProgressBar from the background thread, the ProgressBar fires an event. The EventHandler then calls BeginInvoke, on the background thread. BeginInvoke will then pass the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcheroperationcallback.aspx"&gt;DispatcherOperationCallback&lt;/a&gt; to the main thread to execute:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;runner.RequestFinished += &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; s, RequestFinishedEventArgs e2)&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    System.Diagnostics.Debug.WriteLine(&lt;span class="str"&gt;&amp;quot;Update event handler called.&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        progressBar1.Dispatcher.BeginInvoke(&lt;/pre&gt;

  &lt;pre class="alt"&gt;           System.Windows.Threading.DispatcherPriority.Normal&lt;/pre&gt;

  &lt;pre&gt;           , &lt;span class="kwrd"&gt;new&lt;/span&gt; DispatcherOperationCallback(&lt;span class="kwrd"&gt;delegate&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                   {&lt;/pre&gt;

  &lt;pre&gt;                       System.Diagnostics.Debug.WriteLine(&lt;span class="str"&gt;&amp;quot;value is: &amp;quot;&lt;/span&gt; + progressBar1.Value);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                       progressBar1.Value = progressBar1.Value + 1;&lt;/pre&gt;

  &lt;pre&gt;                       &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                   }), &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        System.Diagnostics.Debug.WriteLine(ex.ToString());&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;};&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Works great - you see the progressBar update every time the event handler is invoked. I had some Debug.WriteLine statements in there to make sure:&lt;/p&gt;

&lt;p&gt;Update event handler called.&lt;/p&gt;

&lt;p&gt;value is: 0 &lt;strong&gt;&lt;em&gt;&amp;lt;—delegate being called to update the UI&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Update event handler called.&lt;/p&gt;

&lt;p&gt;value is: 1 &lt;em&gt;&lt;strong&gt;&amp;lt;—delegate being called to update the UI&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It works great … unless you're working with synchronization objects like &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent(VS.85).aspx"&gt;ManualResetEvent&lt;/a&gt;. My code was waiting *on the background thread* for my stuff to complete, while at the same time posting back to the main thread with BeginInvoke - under the assumption that only the background thread is blocking:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;strong&gt;ManualResetEvent waiter;&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; TestRunner()&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    waiter = &lt;span class="kwrd"&gt;new&lt;/span&gt; ManualResetEvent(&lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RunAsync(TestConfig conf)&lt;/pre&gt;

  &lt;pre class="alt"&gt;{&lt;/pre&gt;

  &lt;pre&gt;    Thread t = &lt;span class="kwrd"&gt;new&lt;/span&gt; Thread(RunInternal);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    t.IsBackground = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;strong&gt;    conf.wait = waiter;&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;strong&gt;    waiter.Reset();&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;strong&gt;    t.Start(conf);&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;strong&gt;    waiter.WaitOne();&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre&gt;    System.Diagnostics.Debug.WriteLine(&lt;span class="str"&gt;&amp;quot;done waiting&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;WRONG assumption. The background thread is executing until the ManualResetEvent's WaitOne() returns. All the messages from the Dispatcher are queued up. Consequently, the progressBar doesn't update even though the background thread is operating as expected and the Debug Output looks like this:&lt;/p&gt;

&lt;p&gt;Update event handler called.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;lt;—delegate NOT called to update the UI&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Update event handler called.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;lt;—delegate NOT called to update the UI&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;done waiting &lt;strong&gt;&lt;em&gt;&amp;lt;—delegate NOT called until the ManualResetEvent was Set()&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;value is: 0&lt;/p&gt;

&lt;p&gt;value is: 1&lt;/p&gt;

&lt;p&gt;The best way around this is to architect your program event driven, for example as a state machine, and avoid synchronization objects altogether. &lt;/p&gt;

&lt;p&gt;Hopefully you enjoy UI programming with WPF or Silverlight as much as I do.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6189147" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Silverlight 2.0 App Not Starting - Fix IIS</title><link>http://weblogs.asp.net/cschittko/archive/2008/03/03/silverlight-2-0-app-not-starting-fix-iis.aspx</link><pubDate>Mon, 03 Mar 2008 15:14:21 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5906299</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>10</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=5906299</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=5906299</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2008/03/03/silverlight-2-0-app-not-starting-fix-iis.aspx#comments</comments><description>&lt;p&gt;Silverlight 2.0 introduces a new application model. Assets for Silverlight applications, i.e. code and resources are packaged up in a .xap file. When you install the latest version of the The Silverlight Tools for Visual Studio 2008 (&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=25144C27-6514-4AD4-8BCB-E2E051416E03&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=25144C27-6514-4AD4-8BCB-E2E051416E03&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=25144C27-6514-4AD4-8BCB-E2E051416E03&amp;amp;displaylang=en&lt;/a&gt;), you'll find that Silverlight projects automatically create the .xap packages when you check the Silverlight tab of the project properties:&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="335" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb.png" width="615" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;These .xap files are nothing but zip archives with a different file extension (kinda like the &lt;a href="http://www.docx2doc.com/Newbies-Guide-To-docx.aspx"&gt;Office 2007 documents are zip files&lt;/a&gt; ). You can take a look at the contents of a .xap by renaming it to .zip:&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="183" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb_4.png" width="461" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you're serving up Silverlight applications packaged as .xap files from an IIS 7 server, i.e. from Windows Vista or from Windows Server 2008, you may also have to set up a MIME type for the .xap files.&lt;/p&gt; &lt;p&gt;Without the MIME type you'll find that your Silverlight apps seem to hang trying to download. The default download page would say something like "Silverlight is downloading your components....wait!!"&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb_2.png" width="578" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;but the download is actually not hanging. You can take a look what's really going on between the browser and the web server with the excellent &lt;a href="http://www.fiddlertool.com"&gt;fiddler tool&lt;/a&gt;.You'll see that the browser's request for the .xap file actually fails with a 404.3 error. &lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="39" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb_3.png" width="846" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can read the error in the fiddler tool or you can just get the nicely formatted error page by requesting the .xap file directly. The page even includes the necessary information to troubleshoot the problem.&lt;/p&gt; &lt;blockquote&gt; &lt;h4&gt;HTTP Error 404.3 - Not Found&lt;/h4&gt; &lt;h5&gt;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler.&lt;font color="#ff0000"&gt; If the file should be downloaded, add a MIME map.&lt;/font&gt;&lt;/h5&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;li&gt;&lt;font color="#ff0000"&gt;Verify that the MIME map is enabled&lt;/font&gt; or add the MIME map for the Web site using the command-line tool appcmd.exe.  &lt;ol&gt; &lt;li&gt;To set a MIME type, use the following syntax: %SystemRoot%\windows\system32\inetsrv\appcmd set config /section:staticContent /+[fileExtension='string',mimeType='string']  &lt;li&gt;The variable fileExtension string is the file name extension and the variable mimeType string is the file type description.  &lt;li&gt;For example, to add a MIME map for a file which has the extension ".xyz": appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain'] &lt;/li&gt;&lt;/ol&gt;Warning: Ensure that this MIME mapping is needed for your Web server before adding it to the list. Configuration files such as .CONFIG or dynamic scripting pages such as .ASP or .ASPX, should not be downloaded directly and should always be processed through a handler. Other files such as database files or those used to store configuration, like .XML or .MDF, are sometimes used to store configuration information. Determine if clients can download these file types before enabling them.&lt;/li&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;p&gt;If you're not comfortable with the command-line tool, you could also configure the MIME type with the IIS management tool (running with admin privileges, of course) by clicking on the MIME Types icon in the Features View&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="385" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb_5.png" width="808" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and then adding the type: application/x-silverlight-app for the File name extension .xap.&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="195" alt="image" src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/58971f8eb17c_D54B/image_thumb_1.png" width="485" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The good news for the people that are already running Vista SP1 or Windows Server 2008 is that both OSs already have IIS7 configured for the MIME type. If you upgrade to Vista SP1, then you need to have re-install IIS after you applied the service pack.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5906299" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Tool For Uninstalling VSTO Add-Ins</title><link>http://weblogs.asp.net/cschittko/archive/2007/11/02/tool-for-uninstalling-vsto-add-ins.aspx</link><pubDate>Fri, 02 Nov 2007 10:57:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4863336</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=4863336</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=4863336</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2007/11/02/tool-for-uninstalling-vsto-add-ins.aspx#comments</comments><description>&lt;P&gt;I've been working with a customer on a very cool &lt;A href="http://msdn2.microsoft.com/en-us/office/aa905528.aspx" mce_href="http://msdn2.microsoft.com/en-us/office/aa905528.aspx"&gt;OBA&lt;/A&gt; - an Office Business Application - based on &lt;A href="http://msdn2.microsoft.com/en-us/office/aa905533.aspx" mce_href="http://msdn2.microsoft.com/en-us/office/aa905533.aspx"&gt;VSTO&lt;/A&gt;, Word 2007 and &lt;A href="http://msdn2.microsoft.com/en-us/sharepoint/default.aspx" mce_href="http://msdn2.microsoft.com/en-us/sharepoint/default.aspx"&gt;SharePoint&lt;/A&gt; workflows.&lt;/P&gt;
&lt;P&gt;During the course of that we built a lot of demos and sometimes we had to uninstall the demos. Phil Hoff from the VSTO team pointed me to the VSTOInstaller app located in C:\Program Files\Common Files\microsoft shared\VSTO\9.0. Simply point the tool at the VSTO manifest that's created by Visual Studio:&lt;/P&gt;
&lt;P&gt;&lt;I&gt;VSTOinstaller /uninstall &amp;lt;name-of-manifest-file.vsto&amp;gt;&lt;/I&gt; 
&lt;P&gt;The exception was an older VSTO 2005 SE add-in that was stuck for some reason. The last resort to at least get the project out of the list of installed programs in the Contol Panel was the brute force method with the &lt;A href="http://support.microsoft.com/kb/290301" mce_href="http://support.microsoft.com/kb/290301"&gt;Windows Installer CleanUp Utility&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4863336" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/OBA/default.aspx">OBA</category></item><item><title>Little Differences in Barcelona</title><link>http://weblogs.asp.net/cschittko/archive/2007/11/02/little-differences-in-barcelona.aspx</link><pubDate>Fri, 02 Nov 2007 10:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4863180</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=4863180</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=4863180</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2007/11/02/little-differences-in-barcelona.aspx#comments</comments><description>&lt;P&gt;You know the funniest thing about Europe? It's the &lt;A href="http://www.youtube.com/watch?v=5JfIAB6whZ4" mce_href="http://www.youtube.com/watch?v=5JfIAB6whZ4"&gt;little differences&lt;/A&gt; ... as we learned from John Travolta in &lt;A href="http://weblogs.asp.net/controlpanel/blogs/www.imdb.com/title/tt0110912/" mce_href="www.imdb.com/title/tt0110912/"&gt;Pulp Fiction&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;I'm here in Barcelona for &lt;A href="http://www.mseventseurope.com/TechEd/" mce_href="http://www.mseventseurope.com/TechEd/"&gt;TechEd Europe&lt;/A&gt; and one of the other little differences is the light switches in the hotel. You have to put in your key card to turn on the lights and all the outlets. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/918b1920fccd_4C96/lightswitch.jpg" mce_href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/918b1920fccd_4C96/lightswitch.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 0px 100px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=244 alt=lightswitch src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/918b1920fccd_4C96/lightswitch_thumb.jpg" width=205 border=0 mce_src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/918b1920fccd_4C96/lightswitch_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Very cool and energy saving. Now I need to go and find out if they call it El Big Mac at Mc Donald's here.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4863180" width="1" height="1"&gt;</description></item><item><title>More reasons for Visual Studio 2008</title><link>http://weblogs.asp.net/cschittko/archive/2007/10/24/more-reasons-for-visual-studio-2008.aspx</link><pubDate>Wed, 24 Oct 2007 13:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4642374</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=4642374</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=4642374</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2007/10/24/more-reasons-for-visual-studio-2008.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://blogs.msdn.com/jonbox" mce_href="http://blogs.msdn.com/jonbox"&gt;Jon Box&lt;/A&gt; (Architect Evangelist extraordinaire) thought my post discussing &lt;A href="http://weblogs.asp.net/cschittko/archive/2007/10/08/visual-studio-2005-or-2008-what-s-more-risk.aspx" mce_href="http://weblogs.asp.net/cschittko/archive/2007/10/08/visual-studio-2005-or-2008-what-s-more-risk.aspx"&gt;risk differences between Visual Studio 2005 and Visual Studio 2008&lt;/A&gt; was a "Nice Job", but he actually did have a few comments on the new mobile-related features. He was right on, but he's too busy to post them. Let me do that it for him.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;There are also a set of enhancements for mobile development (native and managed). Unit testing, &lt;A href="http://dotnetjunkies.com/WebLog/paul/archive/2007/05/05/233556.aspx" mce_href="http://dotnetjunkies.com/WebLog/paul/archive/2007/05/05/233556.aspx"&gt;LINQ&lt;/A&gt;, new .NETCF CLR, &lt;A href="http://www.softwaremaker.net/blog/WindowsCommunicationFoundationANDCompactFrameworkPartII.aspx" mce_href="http://www.softwaremaker.net/blog/WindowsCommunicationFoundationANDCompactFrameworkPartII.aspx"&gt;subset of WCF&lt;/A&gt; and WCF over email, improved emulators (in WM6 SDK), WM5 SDK included now, etc. 
&lt;P&gt;With WM6, we get Security Configuration Manager, WISP, new sound APIs, CabSignTool, &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;displaylang=en"&gt;WM6 SDK&lt;/A&gt; (Fake GPS, FakeServer, Cell Emulator, Hopper, etc).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4642374" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>When you see this, you've gone too far ... not with maps.live.com directions.</title><link>http://weblogs.asp.net/cschittko/archive/2007/10/23/when-you-see-this-you-ve-gone-too-far-not-with-maps-live-com-directions.aspx</link><pubDate>Tue, 23 Oct 2007 13:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4641476</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=4641476</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=4641476</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2007/10/23/when-you-see-this-you-ve-gone-too-far-not-with-maps-live-com-directions.aspx#comments</comments><description>&lt;P&gt;How do you give directions to friends? How many times do you tell them, if you see the Starbucks you've gone too far -- maybe Starbucks is bad example because they are everywhere, but you get the point. It's a really useful way to give directions.&lt;/P&gt;
&lt;P&gt;When I went to &lt;A href="http://designthinkingdallas.wordpress.com/" mce_href="http://designthinkingdallas.wordpress.com/"&gt;Design Thinking&lt;/A&gt; to see &lt;A href="http://chrisbernard.blogs.com/design_thinking_digest/2007/10/im-at-design-th.html" mce_href="http://chrisbernard.blogs.com/design_thinking_digest/2007/10/im-at-design-th.html"&gt;Chris Bernard&lt;/A&gt;, I found that the new &lt;A href="http://maps.live.com/" mce_href="http://maps.live.com"&gt;maps.live.com&lt;/A&gt; (aka &lt;A href="http://local.live.com/" mce_href="http://local.live.com"&gt;local.live.com&lt;/A&gt;) that went live this week does just that. Check this out:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Whenyouseethisyouvegonetoofar.notwith_10A79/image_2.png" mce_href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Whenyouseethisyouvegonetoofar.notwith_10A79/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=143 alt=image src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Whenyouseethisyouvegonetoofar.notwith_10A79/image_thumb.png" width=894 border=0 mce_src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/Whenyouseethisyouvegonetoofar.notwith_10A79/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;It's a few of the very cool new features that came out with the latest release of local live ... or whatever that's called. There are more new neat features that make me think the Wow is really starting now. The whole overview of new features is posted on the &lt;A href="http://virtualearth.spaces.live.com/blog/" mce_href="http://virtualearth.spaces.live.com/blog/"&gt;Virtual Earth blog&lt;/A&gt; at: &lt;A href="http://virtualearth.spaces.live.com/blog/cns!2BBC66E99FDCDB98!9276.entry" mce_href="http://virtualearth.spaces.live.com/blog/cns!2BBC66E99FDCDB98!9276.entry"&gt;Live Search Maps v2 is out! Gemini Launches&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4641476" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Windows+Live/default.aspx">Windows Live</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Virtual+Earth/default.aspx">Virtual Earth</category></item><item><title>Popfly blocks with Visual Studio 2008</title><link>http://weblogs.asp.net/cschittko/archive/2007/10/21/popfly-blocks-with-visual-studio-2008.aspx</link><pubDate>Mon, 22 Oct 2007 04:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4641900</guid><dc:creator>ChristophDotNet</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/cschittko/rsscomments.aspx?PostID=4641900</wfw:commentRss><wfw:comment>http://weblogs.asp.net/cschittko/commentapi.aspx?PostID=4641900</wfw:comment><comments>http://weblogs.asp.net/cschittko/archive/2007/10/21/popfly-blocks-with-visual-studio-2008.aspx#comments</comments><description>&lt;P&gt;Finally, the &lt;A href="http://www.popfly.ms/" mce_href="http://www.popfly.ms"&gt;Popfly&lt;/A&gt; beta is available to the general public! What's Popfly, you ask? It's the mashup tool for the &lt;A href="http://www.silverlight.net/" mce_href="http://www.silverlight.net"&gt;Silverlight&lt;/A&gt; generation and a community site to go with it. &lt;/P&gt;
&lt;P&gt;Mashups, that's that AJAX stuff, right? Not anymore! Why should mashups have to be limited to AJAX-y things like HTML and JavaScript? HTML is sooooo 90s, Isn't it time to move on? &lt;/P&gt;
&lt;P&gt;Why shouldn't you be able to retrieve all sorts of XML data and then use rich Silverlight experiences to show and interact with the data? That's where Popfly comes in. Popfly is a Silverlight-based tool to build all sorts of mash-ups, i.e. mashups for the 90s and mashups for 2007 and beyond that show the data on &lt;A href="http://maps.live.com/" mce_href="http://maps.live.com/"&gt;Virtual Earth&lt;/A&gt; maps with rich Silverlight apps.&lt;/P&gt;
&lt;P&gt;Back to the point. I wanted to show one of my customers how hard it is to build a Popfly block (the thing that brings XML APIs into the Popfly environment). It's actually very easy as long as you don't insist on building it inside the Popfly environment. Visual Studio 2008 (or even the free &lt;A href="http://msdn.microsoft.com/vstudio/express/vwd/" mce_href="http://msdn.microsoft.com/vstudio/express/vwd/"&gt;Visual Studio Web Developer Express&lt;/A&gt;) are much better tools. For starters Popfly makes it pretty easy to get to data with the environment class that does all the XMLHTTP stuff, i.e. it has two methods getXML(&amp;lt;url&amp;gt;) and getText(&amp;lt;url&amp;gt;). If you're building the block in VS 2008, then you'll quickly find that the new IntelliSense and type inference for the JavaScript editor works for Popfly blocks, too:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/image_2.png" mce_href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=189 alt=image src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/image_thumb.png" width=368 border=0 mce_src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;With that building the block is a snap. Write the code in VS, paste it into the Popfly editor and off you go. II had just found &lt;A href="http://www.blockbuster.com/rss" mce_href="http://www.blockbuster.com/rss"&gt;Blockbuster’s RSS feeds&lt;/A&gt; for my queue and my recommendations and decided to try building a block for that. The &lt;A href="http://go.microsoft.com/fwlink/?LinkId=102098" mce_href="http://go.microsoft.com/fwlink/?LinkId=102098"&gt;Popfly SDK doc&lt;/A&gt; does a good job getting you there quickly. The quick and dirty test for my block was to show Blockbuster's Top 100 on a Silverlight Carousel.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/clip_image002_2.jpg" mce_href="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=225 alt=clip_image002 src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/clip_image002_thumb.jpg" width=378 border=0 mce_src="http://weblogs.asp.net/blogs/cschittko/WindowsLiveWriter/PopflyblockswithVisualStudio2008_115C0/clip_image002_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The result looks just a little bit richer than the 90s UIs I get with HTML (go to the full post if you don't see the mashup): &lt;/P&gt;
&lt;P&gt;&lt;IFRAME style="WIDTH: 100%; HEIGHT: 100%" src="http://www.popfly.ms/users/Christoph/Blockbuster%20Top%2010.small" frameBorder=no mce_src="http://www.popfly.ms/users/Christoph/Blockbuster%20Top%2010.small"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;There's more to Popfly which you can find on the &lt;A href="http://popflyteam.spaces.live.com/" mce_href="http://popflyteam.spaces.live.com"&gt;Popfly blog&lt;/A&gt;, for example the facebook integration (for the readers in college) or &lt;A href="http://blogs.msdn.com/sharepoint/archive/2007/05/25/sharepoint-and-popfly-integration-yes-really.aspx" mce_href="http://blogs.msdn.com/sharepoint/archive/2007/05/25/sharepoint-and-popfly-integration-yes-really.aspx"&gt;publishing enterprise mashups to SharePoint&lt;/A&gt; (for readers out of college and working). It's all the same anyway, Web 2.0, collaboration ... only the audience differs. Once you get the basics of Popfly, check out Denny's post &lt;A href="http://blog.dennyboynton.com/PermaLink,guid,f543cfb9-9b6f-4593-9d64-9581b38e08f2.aspx" mce_href="http://blog.dennyboynton.com/PermaLink,guid,f543cfb9-9b6f-4593-9d64-9581b38e08f2.aspx"&gt;Architectural Thoughts on Microsoft Popfly&lt;/A&gt; and then ponder yourself. &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4641900" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cschittko/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/cschittko/archive/tags/Popfly/default.aspx">Popfly</category></item></channel></rss>
