<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://mtaulty.com/CommunityServer/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Mike Taulty's Blog</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/default.aspx</link><description>Bits and Bytes</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>XBAPs are Rich Internet Applications</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/09/04/10717.aspx</link><pubDate>Thu, 04 Sep 2008 09:42:14 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10717</guid><dc:creator>mtaulty</dc:creator><slash:comments>3</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10717.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10717</wfw:commentRss><description>&lt;p&gt;We did an event the other day that was called something along the lines of;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"Building Rich Internet Applications with Visual Studio 2008 Service Pack 1"&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;as part of that, we spent some time talking about Silverlight V2 and some time talking about WPF as it stands in .NET Framework V3.5 Service Pack 1.&lt;/p&gt; &lt;p&gt;One of the pieces of feedback that I got ( I did the WPF part of this session ) was something along the lines of;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;"What has WPF got to do with building Rich Internet Applications on Service Pack 1?"&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;perhaps I didn't do a very good job although ( trying to rebuild my ego here ) it was just one comment out of quite a lot.&lt;/p&gt; &lt;p&gt;So....I took that version of "WPF Airlines" that I ported the other day ( from &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/28/10706.aspx"&gt;here&lt;/a&gt; ) and repackaged it as an XBAP below;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.mtaulty.com/downloads/wpfdemos/WpfAirlinesXbap.xbap"&gt;XBAP Deployment of WPF Airlines&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Now, here's some thoughts about this application;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;It's &lt;strong&gt;Rich.&lt;/strong&gt; Now, it's not perhaps the &lt;strong&gt;richest&lt;/strong&gt; application that you've ever seen but this is &lt;strong&gt;WPF V3.5 Sp1&lt;/strong&gt; so it can be &lt;strong&gt;extremely rich&lt;/strong&gt; if it wants to be. It just so happens that this sample isn't using all of WPF.  &lt;li&gt;It's served from the &lt;strong&gt;Internet&lt;/strong&gt;. It runs online only. It runs inside a browser. It runs inside a sandbox without any "Do you trust this application" style clicks.  &lt;li&gt;It's an &lt;strong&gt;Application.&lt;/strong&gt; Don't think there's any doubt about that although clearly it's just a sample with no calls off to back end web services.  &lt;li&gt;I built it with Visual Studio 2008 Service Pack 1.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;For me, this XBAP is a &lt;strong&gt;Rich, Internet Application&lt;/strong&gt;. If it's not a Rich, Internet Application for you then I'd be interested in why it's not? Possibly the definition of &lt;strong&gt;Internet&lt;/strong&gt; isn't how you think of &lt;strong&gt;Internet?&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10717" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1000.aspx">.NET</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1012.aspx">WPF</category></item><item><title>Windows Presentation Foundation, Event Samples</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/09/02/10710.aspx</link><pubDate>Tue, 02 Sep 2008 14:59:25 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10710</guid><dc:creator>mtaulty</dc:creator><slash:comments>4</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10710.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10710</wfw:commentRss><description>&lt;p&gt;I did a talk down at the Microsoft offices in Reading today which was called something like &lt;em&gt;"Beyond Silverlight with WPF Clients"&lt;/em&gt;. One of the attendees asked me to share my demos and so here is my attempt to do that here. I hadn't originally intended to do this so some of these things are perhaps not as re-usable as they could be.&lt;/p&gt; &lt;p&gt;By looking at my list of shortcuts, here are the demos that I showed. Note that XAML files will be .XML files here because my web server won't serve up .XAML files if I remember correctly. Also, where I might have actually typed a bit of XAML into some of these examples to "complete them" I've already completed them here so there's nothing to add.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/WpfDemos/SpinningCube.xml"&gt;3D Spinning Cube&lt;/a&gt;  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/wpfdemos/documents.xml"&gt;Documents with UI embedded&lt;/a&gt;  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/WpfDemos/HtmlDisplay.xml"&gt;HTML Embedded in WPF content&lt;/a&gt;  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/wpfdemos/MikeSpeech.zip"&gt;Speech&lt;/a&gt;  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/wpfdemos/VisualBrush.xml"&gt;Visual Brush&lt;/a&gt;  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/wpfdemos/BitmapEffects.xml"&gt;Bitmap Effects&lt;/a&gt;  &lt;li&gt;Pixel Shader Demo ( this is not mine, it came from MIX 08 - trying to find a public internet link to it )  &lt;li&gt;Windows Forms/WPF Interoperability. I built this up by just doing "File-&amp;gt;New-&amp;gt;Project" in Visual Studio but &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Use-WPF-from-Windows-Forms-projects-in-Visual-Studio-2008/"&gt;Daniel covers it off nicely here&lt;/a&gt;.  &lt;li&gt;&lt;a href="http://mtaulty.com/downloads/wpfdemos/2Don3D.xml"&gt;2D on 3D&lt;/a&gt;.  &lt;li&gt;DataGrid demo - I built this one up on the fly too. Really was a "Hello World" around the DataGrid.  &lt;li&gt;.NET Client Profile. This involved a Virtual PC image :-) However, I did make a video of the whole thing &lt;a href="http://channel9.msdn.com/posts/mtaulty/WPF-ClickOnce-and-the-NET-Client-Profile/"&gt;up here&lt;/a&gt;.  &lt;li&gt;&lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/28/10706.aspx"&gt;"WPF Airlines"&lt;/a&gt;.  &lt;li&gt;Component demonstrations...  &lt;ol&gt; &lt;li&gt;&lt;a href="http://xamples.infragistics.com/2008.1/xamShowcase.xbap"&gt;Infragistics&lt;/a&gt;  &lt;li&gt;&lt;a href="http://download.componentone.com/pub/demo/wpf/ControlExplorer/ControlExplorer.xbap"&gt;ComponentOne&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.actiprosoftware.com/Products/DotNet/WPF/WPFStudio/LiveDemo/SampleBrowser.xbap"&gt;ActiPro&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Enjoy. I'll see if I can hunt down the other bits and will update the links if I can.&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10710" width="1" height="1"&gt;</description></item><item><title>WPF Airlines</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/28/10706.aspx</link><pubDate>Thu, 28 Aug 2008 11:04:19 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10706</guid><dc:creator>mtaulty</dc:creator><slash:comments>3</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10706.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10706</wfw:commentRss><description>&lt;p&gt;I often hear of the "Source Code Compatibility" between Silverlight and Windows Presentation Foundation and so today I thought I'd try it out a little bit.&lt;/p&gt; &lt;p&gt;Personally, I don't view this as;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Take your SL source code, add a few bits and pieces and you have a WPF application. Add a bit of conditional compilation where necessary.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I don't have a perfect picture of it in my head but I see it more as perhaps;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Build both a Silverlight and a WPF UI. Try and build components that can be built to underpin both. Most of what you've got will build/work on both frameworks and then you'll perhaps have a remaining 10% or so that's similar but different enough to want to separate out to being WPF/Silverlight specific.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I still think it sounds challenging and I'm not sure how you'd do (e.g.) source code compatibility between Silverlight controls that are using the VSM and WPF controls that aren't. That feels like a tricky one to get right and I suspect that there are a whole bunch of other areas that need a lot of thought to try and get this to work.&lt;/p&gt; &lt;p&gt;You could argue that you pick a control set that's common across both Silverlight and WPF ( i.e. the common Microsoft control set and perhaps a 3rd party control set that supports both ) and use those. That might help a whole lot in raising you above the WPF/Silverlight differences.&lt;/p&gt; &lt;p&gt;I can definitely see that you can re-use your knowledge and skills across the 2 frameworks. That's a given. I can also see that you'd re-use a whole bunch of XAML by just lifting it from one framework to the other, changing a few bits and pieces (like the namespace :-)) and then getting it linked up with some code and running.&lt;/p&gt; &lt;p&gt;Anyway...I wanted to experiment and so I thought that I would &lt;em&gt;port&lt;/em&gt; an existing Silverlight application to WPF.&lt;/p&gt; &lt;p&gt;I chose &lt;a href="http://silverlight.net/Samples/2b2/SilverlightAirlines/run/default.html"&gt;Silverlight Airlines&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;On reflection, this was probably a bad choice :-) From looking at the source for Silverlight Airlines you can tell ( I think ) that it was written for Silverlight V1.1 rather than Silverlight V2.0 in that it does quite a lot of dynamic loading of XAML rather than use the control model that showed up in V2.0. It's nicely structured there so you can pretty quickly get to grips with it.&lt;/p&gt; &lt;p&gt;I chose to do what I call a "literal" port of it in the sense that I just took what was there and hacked at it until I had it running on WPF. I made no attempt to do things in any kind of "better" way but just tried to get it across to WPF. There are some specific things around resizing that I don't think you would do in a world of &lt;strong&gt;Grid&lt;/strong&gt; and so on but the code is all &lt;strong&gt;Canvas&lt;/strong&gt; based from the V1.1 preview.&lt;/p&gt; &lt;p&gt;I'd say that it took me about 60 minutes and of those 60 minutes I reckon I spent around 45 just monkeying around trying to figure out what to set the build option on my XAML files to and why the XAML files weren't being loaded by &lt;strong&gt;Application.LoadComponent&lt;/strong&gt; and so on.&lt;/p&gt; &lt;p&gt;The last 15 or so minutes were probably spent in a debugger trying to figure out why certain animations weren't where they were expected to be and switching a few calls to &lt;strong&gt;FindName()&lt;/strong&gt; to look into &lt;strong&gt;Resources&lt;/strong&gt; collections.&lt;/p&gt; &lt;p&gt;I put the &lt;a href="http://mtaulty.com/downloads/WpfAirlines.zip"&gt;source code here for download&lt;/a&gt;. This is &lt;strong&gt;not my code&lt;/strong&gt; and so I possibly have no rights to distribute it but it's a public sample so I figured no-one would mind. &lt;strong&gt;If you do mind, mail me and I'll remove it and update the post.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Here it is running on Vista in all it's glory :-) Don't worry about the crazy looking colours - that's just my desktop shining through the glass.&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/WPFAirlines_A93B/image.png"&gt;&lt;img border="0" alt="image" src="http://mtaulty.com/blog/images/WPFAirlines_A93B/image_thumb.png" width="644" height="378"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10706" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1000.aspx">.NET</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1012.aspx">WPF</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1015.aspx">Silverlight</category></item><item><title>.NET Client Profile ( 3 )</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/27/10703.aspx</link><pubDate>Wed, 27 Aug 2008 19:20:29 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10703</guid><dc:creator>mtaulty</dc:creator><slash:comments>2</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10703.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10703</wfw:commentRss><description>&lt;p&gt;I got so excited about the .NET Client Profile that I made a screencast about it and stuck it on Channel 9;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a title="http://channel9.msdn.com/posts/mtaulty/WPF-ClickOnce-and-the-NET-Client-Profile/" href="http://channel9.msdn.com/posts/mtaulty/WPF-ClickOnce-and-the-NET-Client-Profile/"&gt;http://channel9.msdn.com/posts/mtaulty/WPF-ClickOnce-and-the-NET-Client-Profile/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;When will I get a life?&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10703" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1000.aspx">.NET</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1012.aspx">WPF</category></item><item><title>Get Your IE8 Beta 2 Whilst It's Hot</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/27/10702.aspx</link><pubDate>Wed, 27 Aug 2008 18:54:38 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10702</guid><dc:creator>mtaulty</dc:creator><slash:comments>0</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10702.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10702</wfw:commentRss><description>&lt;p&gt;From &lt;a href="http://www.microsoft.com/windows/internet-explorer/beta/default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This will be my first leap into the world of IE8.&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10702" width="1" height="1"&gt;</description></item><item><title>The .NET Client Profile ( 2 )</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/27/10693.aspx</link><pubDate>Wed, 27 Aug 2008 09:53:27 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10693</guid><dc:creator>mtaulty</dc:creator><slash:comments>4</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10693.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10693</wfw:commentRss><description>&lt;p&gt;Following on from &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/26/10688.aspx"&gt;this post&lt;/a&gt; I wanted to see if I could get my Client Profile installation to work with ClickOnce. To be honest, I struggled quite a bit with this.&lt;/p&gt; &lt;p&gt;Sticking with my "Hello World" WPF application, I made sure that on the &lt;strong&gt;Publish&lt;/strong&gt; tab of my projects' properties I had selected what to do about pre-requisites;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile2_A5/image.png"&gt;&lt;img height="441" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile2_A5/image_thumb.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and then I altered a few paths to point the ClickOnce process to my web server and told VS to publish it. The publishing process looks to drop out what you'd expect in terms of pushing out the &lt;strong&gt;.application&lt;/strong&gt; file for ClickOnce deployment but you'll find that if you point someone to a &lt;strong&gt;.application&lt;/strong&gt; file and they have IE7 without any .NET Framework then they get a dialog from IE7 saying something like;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Hey - you don't have the .NET Framework. Would you like me to go and get it for you and install it?&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This is &lt;strong&gt;not&lt;/strong&gt; what I want to do here because it springs off into downloading the &lt;strong&gt;full&lt;/strong&gt; .NET Framework ( 3.5 I think but perhaps that'll be updated to Sp1? ) from the web which means the 60MB download and then the reboot.&lt;/p&gt; &lt;p&gt;However, the publication process also drops out &lt;strong&gt;Setup.exe&lt;/strong&gt; which is our old friend, the online bootstrapper.&lt;/p&gt; &lt;p&gt;If I run &lt;strong&gt;Setup.exe&lt;/strong&gt; then it'll first off go through the process of installing the &lt;strong&gt;.NET Client Profile&lt;/strong&gt; again and then it'll follow that up with a ClickOnce installation of my application. Quite cool :-)&lt;/p&gt; &lt;p&gt;Naturally, if I then update my application and re-publish it ( assuming that I asked the application to check for updates in the first place ) then the application will do the usual ClickOnce thing of picking up updates as/when they're published to the installation server.&lt;/p&gt; &lt;p&gt;Next stop is how to customise this setup process.&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10693" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1000.aspx">.NET</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1012.aspx">WPF</category></item><item><title>My Web Server's Dead - Corrupt applicationHost.config</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/26/10690.aspx</link><pubDate>Tue, 26 Aug 2008 23:49:20 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10690</guid><dc:creator>mtaulty</dc:creator><slash:comments>0</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10690.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10690</wfw:commentRss><description>&lt;p&gt;Hmm, today I find that IIS on my laptop suddenly won't start as it has a corrupt applicationHost.config file. The event log says;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The Windows Process Activation Service encountered an error trying to read configuration data from file '\\?\C:\Windows\system32\inetsrv\config\applicationHost.config', line number '0'.&amp;nbsp; The error message is: 'Configuration file is not well-formed XML&lt;br&gt;'.&amp;nbsp; The data field contains the error number.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;and that's certainly true because when I look in that file it looks empty but, in fact, it's blanked out with zeroes from opening it up in VS. &lt;p&gt;So...what to do? I've found various posts in forums saying "Reinstall your OS" but I really don't have time for that. Many of those posts link this up with AntiVirus software damaging the file. &lt;p&gt;I switched on my Vista desktop in order to see if I could copy a similar file from there and it "exploded". Something made a very loud bang and there was a strong smell of smoke. Not sure whether the power supply's gone or what but it doesn't smell too sweet so that's not going to help right now. I hadn't switched that box on for a while and clearly it's been sulking waiting to electrocute me at the first chance that it got. &lt;p&gt;I then realised that all is ok because only 3 days ago I backed up my entire laptop with a "whole machine" backup. &lt;p&gt;I go to try and restore this one file out this backup set and I find....it doesn't do that :-( &lt;p&gt;The Backup UI says; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image.png"&gt;&lt;img height="484" alt="image" src="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image_thumb.png" width="536" border="0"&gt;&lt;/a&gt;  &lt;p&gt;And if I go into the Advanced Restore option and click on the "Restore Files" option I get; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image_3.png"&gt;&lt;img height="187" alt="image" src="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;and if I do the advanced thing and point it at my external backup drive then I get; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image_4.png"&gt;&lt;img height="121" alt="image" src="http://mtaulty.com/blog/images/MyWebServersDeadCorruptapplicatio.config_B5C/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;I guess I've never really understood ( or cared ) about the difference between "Whole Machine" and "Non Whole Machine" backups and now I'm paying the hard way. I'd kind of assumed that if I did a "Whole Machine" backup then I'd be able to pull files out of it individually at a later point but maybe you can't. &lt;strong&gt;It would be very nice if you could - for me, there's nothing worse than a Backup feature that proves to be unforgiving when you come to use it :-(&lt;/strong&gt; I guess it's my fault for not reading all about it at some point although I do generally copy my own files manually to an external drive for just this situation but I tend not to copy IIS files as well. &lt;p&gt;However, I then found this TechNet article; &lt;blockquote&gt; &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/cc735294.aspx" href="http://technet.microsoft.com/en-us/library/cc735294.aspx"&gt;http://technet.microsoft.com/en-us/library/cc735294.aspx&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;which pointed me to the right history folder ( I'd seen a forum post that had directed me to the wrong history folder ) and I found a recent history file and copied it over the top of my &lt;strong&gt;applicationHost.config&lt;/strong&gt; and restarted IIS and all was well (for now). &lt;p&gt;Phew.&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10690" width="1" height="1"&gt;</description></item><item><title>The .NET Client Profile</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/26/10688.aspx</link><pubDate>Tue, 26 Aug 2008 22:48:55 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10688</guid><dc:creator>mtaulty</dc:creator><slash:comments>7</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10688.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10688</wfw:commentRss><description>&lt;p&gt;If you're building something like a .NET WPF client application then one of the major bugbears (for both you and for Microsoft - let's be honest here :-)) is trying to get the .NET Framework on to the client machine.&lt;/p&gt; &lt;p&gt;We're trying to make this easier but if you were to look at the recent .NET Framework packages you'd perhaps not be able to tell that :-) &lt;/p&gt; &lt;p&gt;They seem to have mushroomed up to approximately 230MB in the case where you want to get a package that will install a framework like 3.5 or 3.5 Service Pack 1 without a network connection.&lt;/p&gt; &lt;p&gt;In some ways, that's the salient point. If you &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt; have a network connection then it's not quite so bad because you run an online installer which takes a look at your machine, determines things like x86/x64 and then downloads the right bits for your machine and gets out of the way. That tends to feel like 60MB rather than 230MB which is a significant saving. &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;For me, at my download speeds I get 5Mbps so 0.5MBytesPerSecond and hence 30MB == 1 minute, 60 MB == 2 minutes and 230MB equals around 8 minutes which is a long time to wait.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Naturally, the download time is not the entire installation time so there's a bunch more waiting to do and possibly even a reboot to sit through.&lt;/p&gt; &lt;p&gt;As a developer it's pretty easy to move a single machine to .NET Framework V3.5 Service Pack 1 but it's not so easy to do that on behalf of your users. Straight off you're going to need those client machines to be on either;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Windows XP Service Pack 2+  &lt;li&gt;Windows Vista RTM+&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;and I guess that you have a few choices depending on who your users are;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Some kind of unattended admin installation scheduled by an IT admin type using whatever infrastructure you have in place to push out updates in a managed environment. &lt;li&gt;Some kind of physical installation where you give someone a CD or a DVD or a memory stick and they run the installer from there.  &lt;li&gt;Some kind of online download.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;(1) isn't perhaps as much of a worry as (2) and (3). Generally, the IT admin crew will have a route for pushing out software updates and .NET Framework V3.5 Service Pack 1 becomes one of them. Windows Update can help when Framework 3.5 Sp1 shows up there.&lt;/p&gt; &lt;p&gt;Now, whether they'll actually &lt;strong&gt;&lt;em&gt;do &lt;/em&gt;&lt;/strong&gt;that on behalf of a specific application is another matter as they may worry about breaking existing applications. That's another story.&lt;/p&gt; &lt;p&gt;For (2) it's not so bad in that you can copy the 230MB redistributable of the .NET Framework V3.5 Sp1 onto your CD or DVD and then run it as part of your installation.&lt;/p&gt; &lt;p&gt;For (3), it's not great. Asking a user to wait for up to 10 minutes whilst you download a 60MB framework to support an application that (given it's MSIL) might only be a few KB in size is a tall order. It's also a tall order to get them to run the installation as Administrator and to reboot the machine in order to complete the installation.&lt;/p&gt; &lt;p&gt;Along comes the .NET Framework Client Profile as part of .NET Framework V3.5 Sp1 with Visual Studio 2008 Sp1 and it's intended to help with some of these situations. &lt;/p&gt; &lt;p&gt;Before I start going on about it here's some links I've already used to learn some things about it;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx"&gt;Troy Martez's blog post on the Client Profile&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://download.microsoft.com/download/5/a/a/5aa86d6c-969b-42d8-bc6b-30e02bfeccf0/NETFXClientProfile_DeploymentGuide.htm"&gt;The Deployment Guide&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/bclteam/archive/2008/05/21/net-framework-client-profile-justin-van-patten.aspx"&gt;Sketched list of what's in the Client Profile&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/jaimer/archive/2008/08/20/client-profile-explained.aspx"&gt;Jaime Rodriguez's post on the Client Profile&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8CEA6CD1-15BC-4664-B27D-8CEBA808B28B&amp;amp;displaylang=en"&gt;The Download of the Client Profile online bootstrapper&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=992CFFCB-F8CE-41D9-8BD6-31F3E216285C&amp;amp;displaylang=en"&gt;The Download of the Client Profile offline installer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;also - please note, take some of this with a pinch of salt as I've been experimenting with this today and I am by no means "Mr Setup Guy" so this is all a bit "rough" and might contain even more errors than usual :-)&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Some basic facts ( in as far as I've been able to work them out ) about the Client Profile;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;It comes packaged as an online bootstrapper and an offline installer.  &lt;li&gt;The online bootstrapper is small ( ~270KB I think ).  &lt;li&gt;The offline installer is big ( ~250MB )  &lt;li&gt;Both installers;  &lt;ol&gt; &lt;li&gt;Offer customisable UI and control flow to some extent. &lt;li&gt;&lt;strong&gt;If the machine has no .NET Framework already installed&lt;/strong&gt; ( i.e. &lt;strong&gt;must&lt;/strong&gt; be XP by definition )  &lt;ol&gt; &lt;li&gt;Installs the .NET Client Profile ( approx 30MB of Framework subset ) without a reboot ( AFAICT ) but still requiring Admin privileges.  &lt;li&gt;Schedules an installation of the full .NET Framework V3.5 Sp1 via Windows Update at a later point ( or will do in the future, right now V3.5 Sp1 isn't on Windows Update AFAIK )&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;&lt;strong&gt;If the machine already has a .NET Framework installed&lt;/strong&gt; then installs the full .NET Framework V3.5 Sp1 requiring reboot and Admin privileges.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;You can mark an application in Visual Studio as &lt;strong&gt;"targeting .NET Client Profile"&lt;/strong&gt; and that means that a line goes into the configuration file saying "This application will run on the client profile". &lt;/p&gt; &lt;p&gt;Without that line in the config file, an application on a Client Profile machine will get an error message asking the user to &lt;a href="http://www.microsoft.com/downloads"&gt;go to http://www.microsoft.com/downloads&lt;/a&gt; and install .NET Framework V3.5 Sp1. This seems a bit clunky to me but it's only likely to happen in the "time window" between steps 4.2.1 and 4.2.2 above so maybe it's not the end of the world.&lt;/p&gt; &lt;p&gt;I wanted to get started with this so I set myself up with a Virtual PC running Windows XP Service Pack 3 and I made sure it had Undo Disks switched on so that I could keep throwing any installations of the Framework away.&lt;/p&gt; &lt;p&gt;I built a "Hello World" style WPF application. The only "odd" things about it were that I selected this option on my &lt;strong&gt;Application&lt;/strong&gt; tab;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image.png"&gt;&lt;img height="140" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and that was about it. With that in place I threw a quick Setup project into my project with the only usual thing about that being that I selected a different pre-requisite for the project;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_3.png"&gt;&lt;img height="208" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and then one other crucial thing that I threw in. By default, when I add my &lt;strong&gt;Primary Output&lt;/strong&gt; of my application to my setup project Visual Studio then goes and detects dependencies for the output as in;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_4.png"&gt;&lt;img height="77" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So, it detects that I have a dependency on the .NET Framework. That's fine but detected dependencies can be hard to get rid of plus the setup project also adds a Launch Condition to check for the .NET Framework. Now, VS won't let me delete the Launch Condition whilst the dependency is there and it doesn't make it easy to get rid of the dependency so I got a bit stuck for a while.&lt;/p&gt; &lt;p&gt;The trick is to change the Launch Condition so that it checks for the right version of the Framework, that is;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_5.png"&gt;&lt;img height="189" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_5.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Then I built and that gives me a &lt;strong&gt;setup.exe&lt;/strong&gt; and an &lt;strong&gt;msi&lt;/strong&gt; file. I copied them to my Virtual PC and ran setup.exe;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_6.png"&gt;&lt;img height="244" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_6.png" width="195" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and then that went off and the next dialog is;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_7.png"&gt;&lt;img height="190" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_7.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;which seems to account for a bunch of downloading along with a bunch of installing ( well, the download looks to happen first :-) ) and then the application installation runs;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_8.png"&gt;&lt;img height="207" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_8.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and my application actually runs.&lt;/p&gt; &lt;p&gt;Now, if I'd wanted to not use the &lt;strong&gt;online bootstrapper&lt;/strong&gt; for the application but had wanted to, instead, use the offline installer for the .NET Framework Client Profile then what I need to do is to ensure that in my folder;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;c:\program files\Microsoft SDKs\Windows\v6.0a\Bootstrapper\Packages\DotNetFx35Client&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I have actually got the full offline installer which is called &lt;strong&gt;DotNetFx35ClientSetup.exe&lt;/strong&gt; and comes in at approximately 250MB.&lt;/p&gt; &lt;p&gt;If I do have that in there then I can switch my option in Visual Studio to not download from the vendor's website and then we don't need the bootstrapper or the download process;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_9.png"&gt;&lt;img height="174" alt="image" src="http://mtaulty.com/blog/images/The.NETClientProfile_D573/image_thumb_9.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;And then I've got approximately 250MB of installation bits which will cause the Client Profile to be installed without any additional downloading ( e.g. if I'm putting this onto a fileshare or a DVD or something ).&lt;/p&gt; &lt;p&gt;So far...so good. Where I'd like to go next with this;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;How'd you get this to work with a ClickOnce application?&lt;/li&gt; &lt;li&gt;How'd you customise the installation experience?&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10688" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1000.aspx">.NET</category><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1012.aspx">WPF</category></item><item><title>Silverlight Controls from Intersoft</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/20/10680.aspx</link><pubDate>Wed, 20 Aug 2008 10:41:12 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10680</guid><dc:creator>mtaulty</dc:creator><slash:comments>1</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10680.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10680</wfw:commentRss><description>&lt;p&gt;Some of these controls are very cool - I've not looked at how "declarative" and easy to use they might be in your own apps but there's a very rich experience going on there.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://sirius2.intersoftpt.com/"&gt;Intersoft's Silverlight Controls Demo&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Take a look at a few of the demos, use the menus as they do a bit more in places than you might think. Performance is pretty good for me as well.&lt;/p&gt; &lt;p&gt;There's also the ones from Telerik that I think I've mentioned before;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.telerik.com/demos/silverlight/"&gt;Telerik's Silverlight Controls Demo&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;which also look pretty cool. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update: Ben mailed me and pointed out the strength of the ComponentOne Silverlight controls so I thought I should link to those as well having played with their control gallery;&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://labs.componentone.com/Sapphire/"&gt;ComponentOne's Silverlight Controls&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Silverlight's control model is a really strong part of the platform and it's great to see these kinds of controls ( along with others like &lt;a href="http://labs.infragistics.com/silverlight/beta2ctp/"&gt;these&lt;/a&gt; from Infragistics ) coming together to really flesh out what you can do without writing a tonne of code yourself.&lt;/p&gt; &lt;p&gt;Kind of makes me want to be a Silverlight developer, throw some of this stuff together and build some apps.&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10680" width="1" height="1"&gt;</description></item><item><title>MIX UK and TechEd Europe 2008</title><link>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/18/10673.aspx</link><pubDate>Mon, 18 Aug 2008 22:37:05 GMT</pubDate><guid isPermaLink="false">c62f47b3-9054-4265-9c0c-549d811810c2:10673</guid><dc:creator>mtaulty</dc:creator><slash:comments>2</slash:comments><comments>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/comments/10673.aspx</comments><wfw:commentRss>http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/commentrss.aspx?PostID=10673</wfw:commentRss><description>&lt;p&gt;Following up on this &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/08/18/10672.aspx"&gt;"I will be at PDC"&lt;/a&gt; post, I thought I'd do another "Where will I be" style post and say that I'll also be at MIX UK where I'm doing a Silverlight 2 session;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/remix08/default.aspx"&gt;&lt;img src="http://www.microsoft.com/uk/remix08/images/remix_uk_logo.gif"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It looks like I'm on the agenda on the second day and I'll be doing a talk called &lt;em&gt;"No Silverlight (2) Application Is an Island (of richness)"&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;This is a bit of a deliberately cheesy title in that we kept coming across this &lt;em&gt;"Island of Richness&lt;/em&gt;" term used in conjunction with Silverlight and we found it funny in the team but the talk is really about how Silverlight applications can reach out to talk to;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The HTML DOM and Javascript&lt;/li&gt; &lt;li&gt;The local machine&lt;/li&gt; &lt;li&gt;The network via HTTP, SOAP and RESTful web services and sockets&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;in order to connect to the world beyond the plug-in.&lt;/p&gt; &lt;p&gt;Unfortunately, I won't be at TechEd Europe. I went for the first time last year and my sessions went down pretty well and got used on the front page here;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/teched2008/developer/topsessions.aspx"&gt;&lt;img height="282" alt="image" src="http://mtaulty.com/blog/images/MIXUKandTechEdEurope2008_14C12/image.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;but I must have upset the TechEd people as I didn't get invited back this year :-) Maybe next time?&lt;/p&gt;&lt;img src="http://mtaulty.com/CommunityServer/aggbug.aspx?PostID=10673" width="1" height="1"&gt;</description><category domain="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1025.aspx">UK Communities</category></item></channel></rss>