<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2589343630458375844</atom:id><lastBuildDate>Sat, 29 Feb 2020 03:56:48 +0000</lastBuildDate><category>Team System</category><category>TFS</category><category>PDC08</category><category>Azure</category><category>MSBuild</category><category>TFS 2008</category><category>Windows 7</category><category>Books</category><category>Build Automation</category><category>Testing</category><category>.NET Services</category><category>Cloud Computing</category><category>Continous Integration</category><category>Extending</category><category>Presentation</category><category>SQL Services</category><category>Source Control</category><category>BisSubscribe</category><category>Design</category><category>Rosario</category><category>SharePoint</category><category>TED 2009</category><category>Team Build</category><category>VSTS 2010</category><category>Virtualization</category><category>WIT</category><category>Communication</category><category>Database</category><category>Document Management</category><category>File Share</category><category>File Sync</category><category>Gadgets</category><category>Hyper-V</category><category>Innovation</category><category>Merging</category><category>Quality Assurance</category><category>Security</category><category>Sync Framework</category><category>TFS 2005</category><category>WCF</category><category>WF</category><category>iPhone</category><category>ALM</category><category>Architecture</category><category>Gapminder</category><category>IE7</category><category>Lifestyle</category><category>MSTest</category><category>MiX09</category><category>Modeling</category><category>NDC09</category><category>OreDev</category><category>Podcast</category><category>Power Tools</category><category>Powerpoint</category><category>TFSAdminTool</category><category>TSWA 2005</category><category>Team Lab</category><category>Technology</category><category>TestComplete</category><category>VB.NET</category><category>VSTS 2008</category><category>Vista</category><category>Vista SP2</category><category>Visual Basic 6</category><category>Visual Studio 2010</category><category>WAS</category><category>Windows</category><category>iTunes</category><title>Binary Headaches</title><description></description><link>http://peterblomqvist.blogspot.com/</link><managingEditor>noreply@blogger.com (Peter Blomqvist)</managingEditor><generator>Blogger</generator><openSearch:totalResults>94</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-4208598211262802747</guid><pubDate>Sun, 10 Oct 2010 09:54:00 +0000</pubDate><atom:updated>2010-10-10T11:57:30.176+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Lifestyle</category><category domain="http://www.blogger.com/atom/ns#">Podcast</category><category domain="http://www.blogger.com/atom/ns#">Technology</category><title>Musings on the day to day in a developer&#39;s life</title><description>If you haven&#39;t already stumbled upon this you should really sign up for the podcast: &lt;a href=&quot;http://thisdeveloperslife.com/&quot;&gt;This Developers Life&lt;/a&gt;. It&#39;s a show that focuses on the everyday things in the life of a software developer, it has very little to do with the techincal stuff but more with the people aspects of the business with is a very refreshing take since we tend to onlu focus on the techy stuff.&lt;br /&gt;&lt;br /&gt;The music selection and mixing alone makes it worth listening to :) keep up the good work guys!</description><link>http://peterblomqvist.blogspot.com/2010/10/musings-on-day-to-day-in-developers.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-5475842024550265369</guid><pubDate>Wed, 09 Dec 2009 21:00:00 +0000</pubDate><atom:updated>2009-12-09T22:17:28.450+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">File Share</category><category domain="http://www.blogger.com/atom/ns#">File Sync</category><title>SkyDrive finally gets integration with Windows Explorer</title><description>When Sky Drive first came out from Microsoft I was really excited but alas there was no integration from Windows Explorer thus the intresst quickly faded, until today when I needed to share a binary file without having to require people to be registered and invited to my shared folder (which I need if I where to use my DropBox account) and to my suprise this was no issue at all for SkyDrive. &lt;br /&gt;&lt;br /&gt;But still I was missing the windows explorer integration so I decided to give it one more go and boy am I glad that I did since it lead to the discovery of the excellent and FREE tool &lt;a href=&quot;http://skydriveexplorer.com/&quot;&gt;SkyDrive Explorer&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_XY57yl89XM0/SyARrwr5eII/AAAAAAAAAMU/3nyeyfoCXyU/s1600-h/mycomputerview.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px right 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;&quot; src=&quot;http://3.bp.blogspot.com/_XY57yl89XM0/SyARrwr5eII/AAAAAAAAAMU/3nyeyfoCXyU/s400/mycomputerview.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413346195600406658&quot; /&gt;Screenshot of integration SkyDrive with Windows Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_XY57yl89XM0/SyARsIQceHI/AAAAAAAAAMc/MyGJQ2WRelI/s1600-h/detailsview.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px left 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;&quot; src=&quot;http://3.bp.blogspot.com/_XY57yl89XM0/SyARsIQceHI/AAAAAAAAAMc/MyGJQ2WRelI/s400/detailsview.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413346201927710834&quot; /&gt;Screenshot of accessing a folder on SkyDrive from Windows Explorer&lt;/a&gt;</description><link>http://peterblomqvist.blogspot.com/2009/12/skydrive-finally-gets-integration-with.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_XY57yl89XM0/SyARrwr5eII/AAAAAAAAAMU/3nyeyfoCXyU/s72-c/mycomputerview.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-5968499635460379985</guid><pubDate>Wed, 09 Dec 2009 20:52:00 +0000</pubDate><atom:updated>2009-12-09T22:00:16.863+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 7</category><title>Installing WPF Toolkit June 2009 on Windows 7 (getting rid of the heinous &quot;WPF Toolkit requires .NET Framework 3.5 SP1&quot;)</title><description>Lately I&#39;ve started to try out Windows 7 on my main development machine at work, this has worked really well and I&#39;m really loving the Windows 7 experience... However there is always a darkside to everything, apparently the version of .NET Framework 3.5 SP1 that comes bundled with Windows 7 has a different version number than the regular download and thus you will bump into the following type of errors:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAPTh-RvpI/AAAAAAAAAME/68ngsUy-6ps/s1600-h/WPFToolkitError.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 178px;&quot; src=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAPTh-RvpI/AAAAAAAAAME/68ngsUy-6ps/s400/WPFToolkitError.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413343580310847122&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Imaging my frustration when googling around for this and not finding anything particularly useful (it&#39;s a rather annoying error message given the fact that it isn&#39;t correct since .NET Framework 3.5 SP1 is on the machine). Anyway after some email correspondance with a friend and colleague (thanks Samuel) my attention was turned to the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;displaylang=en&quot;&gt;Microsoft Platform SDK&lt;/a&gt; which contains a little tool called &quot;Orca&quot; which let&#39;s you inspect and modify the tables in an .msi file.&lt;br /&gt;&lt;br /&gt;If you don&#39;t want to install the whole platform SDK you can grab the setup for &quot;Orca&quot; from my sky drive.&lt;br /&gt;&lt;iframe title =&quot;Preview&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; frameborder=&quot;0&quot; style=&quot;width:98px;height:115px;padding:0;background-color:#fcfcfc;&quot; src=&quot;http://cid-4461964704e85f8b.skydrive.live.com/embedicon.aspx/Offentlig/Orca.Msi&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Now for the magic, to get around the error message we need to nuke the launch condition in question from the .msi file (there might be an easier way todo this so feel free to correct me by leaving a comment):&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/SyAPT-crISI/AAAAAAAAAMM/wAWBopQuJvo/s1600-h/wpftoolkitorcas.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 173px;&quot; src=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/SyAPT-crISI/AAAAAAAAAMM/wAWBopQuJvo/s400/wpftoolkitorcas.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413343587954532642&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step 1, Launch Orca.&lt;br /&gt;Step 2, Open the .msi package.&lt;br /&gt;Step 3, Find &amp; select the launch condition entry in the navigation pane.&lt;br /&gt;Step 4, Select NETFX35SP1_INSTALLED in the details pane &amp; right click.&lt;br /&gt;Step 5, From the context menu select drop row.&lt;br /&gt;Step 6, Confirm the removal of the launch condition.&lt;br /&gt;Step 7, Save the .msi package.&lt;br /&gt;Step 8, Run the .msi package and voila no more error message.</description><link>http://peterblomqvist.blogspot.com/2009/12/installing-wpf-toolkit-june-2009-on.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_XY57yl89XM0/SyAPTh-RvpI/AAAAAAAAAME/68ngsUy-6ps/s72-c/WPFToolkitError.jpg" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-4477316141558953948</guid><pubDate>Wed, 09 Dec 2009 20:21:00 +0000</pubDate><atom:updated>2009-12-10T08:59:19.307+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 7</category><title>Installing WCF LOB SDK SP2 on Windows 7 (getting rid of the heinous &quot;WCF LOB Adapter SDK requires .NET Framework 3.5 SP1&quot;)</title><description>Lately I&#39;ve started to try out Windows 7 on my main development machine at work, this has worked really well and I&#39;m really loving the Windows 7 experience... However there is always a darkside to everything, apparently the version of .NET Framework 3.5 SP1 that comes bundled with Windows 7 has a different version number than the regular download and thus you will bump into the following type of errors:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-LxXwZI/AAAAAAAAAL0/AzGvVCZ0Cnc/s1600-h/WCFLOBError.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 178px;&quot; src=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-LxXwZI/AAAAAAAAAL0/AzGvVCZ0Cnc/s400/WCFLOBError.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413337716015743378&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Imaging my frustration when googling around for this and not finding anything particularly useful (it&#39;s a rather annoying error message given the fact that it isn&#39;t correct since .NET Framework 3.5 SP1 is on the machine). Anyway after some email correspondance with a friend and colleague (thanks Samuel) my attention was turned to the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;displaylang=en&quot;&gt;Microsoft Platform SDK&lt;/a&gt; which contains a little tool called &quot;Orca&quot; which let&#39;s you inspect and modify the tables in an .msi file.&lt;br /&gt;&lt;br /&gt;If you don&#39;t want to install the whole platform SDK you can grab the setup for &quot;Orca&quot; from my sky drive.&lt;br /&gt;&lt;iframe title =&quot;Preview&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; frameborder=&quot;0&quot; style=&quot;width:98px;height:115px;padding:0;background-color:#fcfcfc;&quot; src=&quot;http://cid-4461964704e85f8b.skydrive.live.com/embedicon.aspx/Offentlig/Orca.Msi&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Now for the magic, to get around the error message we need to nuke the launch condition in question from the .msi file (there might be an easier way todo this so feel free to correct me by leaving a comment):&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-VHyb9I/AAAAAAAAAL8/01Qg3VAqkLg/s1600-h/WCFLOBOrcas.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;&quot; src=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-VHyb9I/AAAAAAAAAL8/01Qg3VAqkLg/s400/WCFLOBOrcas.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5413337718525685714&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step 1, Launch Orca.&lt;br /&gt;Step 2, Open the .msi package.&lt;br /&gt;Step 3, Find &amp; select the launch condition entry in the navigation pane.&lt;br /&gt;Step 4, Select the ISWCFINSTALLED entry in the details pane &amp; right click.&lt;br /&gt;Step 5, From the context menu select drop row.&lt;br /&gt;Step 6, Confirm the removal of the launch condition.&lt;br /&gt;Step 7, Save the .msi package.&lt;br /&gt;Step 8, Run the .msi package and voila no more error message.</description><link>http://peterblomqvist.blogspot.com/2009/12/installing-wcf-lob-sdk-sp1-on-windows-7.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-LxXwZI/AAAAAAAAAL0/AzGvVCZ0Cnc/s72-c/WCFLOBError.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-3105871315625959975</guid><pubDate>Sun, 06 Dec 2009 21:43:00 +0000</pubDate><atom:updated>2009-12-06T22:43:25.642+01:00</atom:updated><title>TFS Administration Tool Version 2.0 CTP now available for download</title><description>&lt;p&gt;Finally it’s time for the brand new design of the tool to see the light, you can download the v2.0 CTP from &lt;a href=&quot;http://tfsadmin.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24743&quot;&gt;here&lt;/a&gt;. Please take it for a spin and let us know what you like and not like about it (along with any potential problems you have).&lt;/p&gt;  &lt;p&gt;The main new features in this release are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for all available versions of Team Foundation Server (2005, 2008, 2010 Beta 2) &lt;/li&gt;    &lt;li&gt;Complete redesign of the user interface &lt;/li&gt;    &lt;li&gt;Multiple server connection &lt;/li&gt;    &lt;li&gt;Bulk edit of users &lt;/li&gt;    &lt;li&gt;Undo pending changes &lt;/li&gt;    &lt;li&gt;Tracing&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can read more about the release on the &lt;a href=&quot;http://tfsadmin.codeplex.com/wikipage&quot;&gt;homepage&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We are pleased to announce that the first community tech preview of TFS Administration Tool 2.0 has been released. This CTP marks a new beginning for the TFS Administration Tool as we have almost completely redesigned and rewritten the tool&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The purpose for this rewrite was to provide a more stable and intuitive user experience. &lt;/p&gt;  &lt;p&gt;Shortly we will start posting some walk through guides for common tasks.&lt;/p&gt;  </description><link>http://peterblomqvist.blogspot.com/2009/12/tfs-administration-tool-version-20-ctp.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-2199218883774497801</guid><pubDate>Tue, 01 Dec 2009 19:18:00 +0000</pubDate><atom:updated>2009-12-01T20:37:44.387+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gapminder</category><category domain="http://www.blogger.com/atom/ns#">TED 2009</category><title>Hans Rosling predicts the future ... When &amp; How will Asia regain it&#39;s dominace over the world market?</title><description>Hans Rosling recently held a talk at TEDIndia about when Asia (India and China in particular) will catch up with the west and become the leading force in the economic world market. As usual he is very amusing to listen to and the stats he presents makes you think about the big picture as usual. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/hans_rosling_asia_s_rise_how_and_when.html&quot;&gt;Hans Rosling: Asia&#39;s rise -- how and when&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And while your at it make sure you watch some of his previous talks as well:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/hans_rosling_at_state.html&quot;&gt;Hans Rosling: Let my dataset change your mindset&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/hans_rosling_the_truth_about_hiv.html&quot;&gt;Hans Rosling on HIV: New facts and stunning data visuals&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/hans_rosling_reveals_new_insights_on_poverty.html&quot;&gt;Hans Rosling&#39;s new insights on poverty&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html&quot;&gt;Hans Rosling shows the best stats you&#39;ve ever seen&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A fun note on the side is that when I sat down in the couch and opened up my laptop to write this post, I turned on the telly and guess what? It&#39;s a program with Hans Rosling on the Swedish television. Now that can&#39;t be just coincidence :)</description><link>http://peterblomqvist.blogspot.com/2009/12/hans-rosling-predicts-future-when-how.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-1776143556158505993</guid><pubDate>Wed, 30 Sep 2009 18:49:00 +0000</pubDate><atom:updated>2009-09-30T20:49:18.060+02:00</atom:updated><title>Dropbox for iPhone is out!</title><description>Finally the wait is over you can now download the Dropbox client for your iPhone.&lt;br /&gt;&lt;br /&gt;The GUI is fairly uncomplicated and follows the normal standards (for instances you swipe over the file to delete it). You can mark files as favourites and the will be available when offline. Most major file types are available for viewing along with easy access to sending a link via email.&lt;br /&gt;&lt;br /&gt;There is support for media, photos &amp; videos are pretty nice you can quickly upload either via existing photos/videos or simple take new and send it directly. &lt;br /&gt;&lt;br /&gt;First impression of the streaming of music is not very good though since they tried to play my mp3 as a video :)&lt;br /&gt;&lt;br /&gt;However what I really miss i the ability to move, rename and create &amp; share files/folders. The application will be extended with this in future versions so that is no real problem.&lt;br /&gt;&lt;br /&gt;As for simple editing of docx,xlsx and txt files is as far as I can tell not available nor planned which is major drawback :(&lt;br /&gt;&lt;br /&gt;-- Posted from my iPhone&lt;br /&gt;</description><link>http://peterblomqvist.blogspot.com/2009/09/dropbox-for-iphone-is-out.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-3193075424411469478</guid><pubDate>Mon, 07 Sep 2009 06:18:00 +0000</pubDate><atom:updated>2009-09-07T08:38:08.089+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>The Wait is over Spotify fot the iPhone is out!!!</title><description>Just wanted to spread the joy if you live in Scandinavia, United Kingdoms or Spain you can now download the iPhone client for Spotify (a music streaming service) provided you have a premium account with them.&lt;br /&gt;&lt;br /&gt;This is step in the right direction for digital media distribution.&lt;br /&gt;&lt;br /&gt;-- Posted from my iPhone&lt;br /&gt;</description><link>http://peterblomqvist.blogspot.com/2009/09/wait-is-over-spotify-fot-iphone-is-out.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-844351053777494695</guid><pubDate>Sat, 29 Aug 2009 13:42:00 +0000</pubDate><atom:updated>2009-08-29T15:42:27.941+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">NDC09</category><title>Watch Nordic Developer Conference 2009 from you favorite couch</title><description>&lt;p&gt;If you also where unable to attend the NDC09 you’ll be happy to hear that the talks are now available for downloads go &lt;a href=&quot;http://blogs.msdn.com/grothaug/pages/downloadable-ndc2009-videos.aspx&quot;&gt;here&lt;/a&gt; and you can get them in a convenient torrent format so that you can download the whole shebang in one swoop (be warned though it’s a large download +30GB).&lt;/p&gt;  &lt;p&gt;The speakers list of the&amp;#160; &lt;a href=&quot;http://ndc2009.no/en/index.aspx?cat=1069&amp;amp;id=1274&quot;&gt;NDC09&lt;/a&gt; was very impressive… Robert Martin, Craig Larman, Scott Hanselman, Phil Haack, Mary Poppendieck and Scott Bellaware just to name a few.&lt;/p&gt;  </description><link>http://peterblomqvist.blogspot.com/2009/08/watch-nordic-developer-conference-2009.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-9202573013122826119</guid><pubDate>Thu, 27 Aug 2009 20:30:00 +0000</pubDate><atom:updated>2009-08-27T22:35:35.582+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Cloud Computing</category><category domain="http://www.blogger.com/atom/ns#">Database</category><title>Taking SQL Azure for a test spin (it’s dirt simple)</title><description>Earlier this week I received my invite to the SQL Azure CTP so I obviously threw myself at taking it for a test spin, and I must say that it was a sweet experience (a part from the fact that my SQL DDL is a little rusty). Anyway I figured that I should write a few lines about the experience but first let&#39;s just get some basic facts out of the way, what is SQL Azure?   &lt;blockquote&gt;&lt;strong&gt;&lt;em&gt;Microsoft® SQL Azure Database is a cloud-based relational database platform built on SQL Server® technologies. With SQL Azure Database, you can easily provision and deploy relational database solutions to the cloud, and take advantage of a globally distributed data center that provides enterprise-class availability, scalability, and security with the benefits of built-in data protection, self-healing and disaster recovery.&lt;/em&gt;&lt;/strong&gt;&lt;/blockquote&gt;  &lt;p&gt;The about quote is taken from the &lt;a href=&quot;http://www.microsoft.com/azure/data.mspx&quot;&gt;Windows Azure Platform&lt;/a&gt; site and as it states you can now deploy a relational database in the cloud and accessing it via the TDS protocol using ADO.NET and ODBC (there is even a driver for PHP if you need that). &lt;/p&gt;  &lt;p&gt;Anyway enough with the chit chat let&#39;s get our hands dirty in some code... The app we will run through here is an extremely simple an silly notebook in the cloud which you can insert some reminders in a then go back and see what you should do (the whole application took less than one hour to get up and running, writing this post took far longer than that).&lt;/p&gt;  &lt;p&gt;First out you have to activate your invite (if you haven&#39;t signed up you can do it &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=149681&amp;amp;clcid=0x09&quot;&gt;here&lt;/a&gt;) and get your SQL Azure database provisioned. When you have done that you get to access the management portal:&lt;/p&gt; &lt;a href=&quot;http://4.bp.blogspot.com/_XY57yl89XM0/SpbtWYYiArI/AAAAAAAAAK0/Z55bLz1ga2I/s1600-h/sqlazure.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 294px;&quot; src=&quot;http://4.bp.blogspot.com/_XY57yl89XM0/SpbtWYYiArI/AAAAAAAAAK0/Z55bLz1ga2I/s400/sqlazure.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5374744174071513778&quot; /&gt;&lt;/a&gt;&lt;p&gt;Currently you can only manage your connection strings and create and drop databases, but since you can’t manage logins we might as well drop straight into the &lt;strong&gt;sqlcmd&lt;/strong&gt; tool (in this version you can’t use the Management Studio it is not supported yet) and start by creating&amp;#160; a small database. When you create your databases and logins you need to be logged in to the master database.&lt;/p&gt;  &lt;p&gt;Once you have fired up a command prompt we issue the following command to connect to the master database:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;sqlcmd –U &amp;lt;admin&amp;gt;@&amp;lt;servername&amp;gt; –P &amp;lt;password&amp;gt; –S &amp;lt;servername&amp;gt;.ctp.database.windows.net –d master&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now let’s create a database called MyCloudDB and a user called MyCloudUser:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:55d7fb25-d251-4b1f-a23a-47c6bc27b573&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;overflow: visible;&quot;&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;DATABASE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; MyCloudDB&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GO&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; LOGIN MyCloudLogin &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;WITH&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; password&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1tsCloudyInSeattle&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Let’s switch over to our new database and create some tables and grant our user some access:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;sqlcmd –U &amp;lt;admin&amp;gt;@&amp;lt;servername&amp;gt; –P &amp;lt;password&amp;gt; –S &amp;lt;servername&amp;gt;.ctp.database.windows.net –d MyCloudDB&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Then we issue the following statements create a user and a table where we can store our notes:&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6ca9f53e-ae71-45c8-afcd-c68065a13201&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;TABLE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; CloudNotes (ID &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;IDENTITY&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: bold;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: bold;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;PRIMARY&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;KEY&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, Note &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;nvarchar&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: bold;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GO&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;USER&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; MyCloudLoginUser &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; LOGIN MyCloudLogin&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GO&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GRANT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;SELECT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;INSERT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;UPDATE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;DELETE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;ON&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; CloudNotes &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;TO&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; MyCloudLoginUser&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Now we are ready for some code, first let’s write the snippet needed to put the reminders up in the cloud:&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:09d28d03-096a-4ad1-bf8f-198d3a426403&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; InsertNote(&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; note)&lt;br /&gt;    {&lt;br /&gt;      SqlConnection cn &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SqlConnection(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;Server=tcp:&amp;lt;yourservername&amp;gt;.ctp.database.windows.net;Database=MyCloudDB;User ID=MyCloudLogin;Password=1tsCloudyInSeattle;Trusted_Connection=False;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; (cn)&lt;br /&gt;      {&lt;br /&gt;        SqlCommand cmd &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SqlCommand(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;INSERT INTO CloudNotes Values (@Note)&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;);&lt;br /&gt;&lt;br /&gt;        cn.Open();&lt;br /&gt;&lt;br /&gt;        cmd.Connection &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; cn;&lt;br /&gt;        cmd.Parameters.Add(&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SqlParameter(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;@Note&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, note));&lt;br /&gt;        cmd.ExecuteNonQuery();&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;And finally the code required to retrieve the notes so we don’t forget to but that milk on our way home:&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a6f8df69-fe98-4e3a-ae14-9cebecece687&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; List&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ListNotes()&lt;br /&gt;    {&lt;br /&gt;      List&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; result &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; List&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;();&lt;br /&gt;&lt;br /&gt;      SqlConnection cn &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SqlConnection(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;Server=tcp:&amp;lt;yourservername&amp;gt;.ctp.database.windows.net;Database=MyCloudDB;User ID=MyCloudLogin;Password=1tsCloudyInSeattle;Trusted_Connection=False;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; (cn)&lt;br /&gt;      {&lt;br /&gt;        cn.Open();&lt;br /&gt;&lt;br /&gt;        SqlCommand cmd &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SqlCommand(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;SELECT ID, Note FROM CloudNotes ORDER BY ID&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, cn);&lt;br /&gt;        SqlDataReader dr &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; cmd.ExecuteReader();&lt;br /&gt;        &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; (dr.Read())&lt;br /&gt;        {&lt;br /&gt;          result.Add(dr.GetInt32(&lt;/span&gt;&lt;span style=&quot;color: #800080;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;).ToString() &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt; - &lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; dr.GetString(&lt;/span&gt;&lt;span style=&quot;color: #800080;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;));&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; result;&lt;br /&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;That’s all there is to it as I said in the title dirt simple :) if you want to read more about the limitations and how to get going checkout &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee336279.aspx&quot;&gt;MSDN&lt;/a&gt; documentation on SQL Azure. I’ll probably post more as I dabble around with it.&lt;/p&gt;</description><link>http://peterblomqvist.blogspot.com/2009/08/taking-sql-azure-for-test-spin-its-dirt.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_XY57yl89XM0/SpbtWYYiArI/AAAAAAAAAK0/Z55bLz1ga2I/s72-c/sqlazure.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-637848116306030808</guid><pubDate>Sat, 22 Aug 2009 18:29:00 +0000</pubDate><atom:updated>2009-08-22T20:33:31.916+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MSBuild</category><category domain="http://www.blogger.com/atom/ns#">MSTest</category><category domain="http://www.blogger.com/atom/ns#">Team Build</category><category domain="http://www.blogger.com/atom/ns#">TFS 2008</category><title>Getting the dreaded &quot;The fully qualified file name must be less than 260 characters&quot; when publishing test results in TFS 2008</title><description>&lt;p&gt;During the last week I&#39;ve had some issues with getting an old set of tests to run in the automated build process. The reason they had been excluded before was that the author had used .xml files to drive his test suite and was unaware of the functionality in MSTest that let&#39;s us specify deployment items through the .testrunconfig file (provided that you run you tests using a .vsmdi file). &lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/SpA5wJCWb_I/AAAAAAAAAKs/EY4ZYGQOWS0/s1600-h/deployment.jpg&quot;&gt;&lt;img style=&quot;TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 287px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5372857854675283954&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/SpA5wJCWb_I/AAAAAAAAAKs/EY4ZYGQOWS0/s400/deployment.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;Anyway, even though I don&#39;t particularly fancy the approach of using external files to drive the test (there are good scenarios but in my opinion they should be oriented more towards simple parameter driving of test not complex object serialization, but that is a post in itself if I get around to it sometime). &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The problem once I got the test to run on the server (some shmuck had deselected the deploy alternative for the assembly containing the unit tests in the build targeted by the automated build), that the testrun results simply wouldn’t publish instead we got this message in the log:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Waiting to publish... Publishing results of test run tfsservice@LIVMSRV228 2009-08-21 12:56:49_Any CPU_Release to http://livmsrv246:8080/Build/v1.0/PublishTestResultsBuildService2.asmx... ....The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. MSBUILD : warning MSB6006: &quot;MSTest.exe&quot; exited with code 1. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;What happened was that the tests ran ok and you’d see the results ok in the log but as soon as Team Build tried to publish the results we ended up with a complaint about a too long path. Unfortunately no matter what amount of logging you switch on the log won’t tell you which file is the problem and in our case this particular test result file was actually on of the shorter paths :). So after a fair amount of head-butting I managed to get it working and guess what the problem resided in the deployment items that we selected using the .testrunconfig. Our structure was heavily nested with long self-explanatory names for readability :) which is good, but since they somehow are involved in the publishing step (I haven’t had the time to drill down into what happens here so if you have some insight into this feel free to comment about it) and thus you are restricted to the 260 characters for the fully qualified path name of the deployment item.&lt;/p&gt;&lt;/div&gt;</description><link>http://peterblomqvist.blogspot.com/2009/08/getting-dreaded-fully-qualified-file.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_XY57yl89XM0/SpA5wJCWb_I/AAAAAAAAAKs/EY4ZYGQOWS0/s72-c/deployment.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-6206672985308734468</guid><pubDate>Sat, 22 Aug 2009 17:20:00 +0000</pubDate><atom:updated>2009-08-26T20:09:22.385+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>Simplify Photo &amp; Simplify Music ... It&#39;s got to be one of the coolest iPhone Apps so far!</title><description>Just felt that I had to share the joy. I just installed and tried out the coolest app to date for my iPhone (the app works for iPod Touch as well).  It&#39;s a company called &lt;a href=&quot;http://www.simplifymedia.com/index.html&quot;&gt;SimplifyMedia&lt;/a&gt; and they have produced a piece of streaming software available for PC,MAC and Ubuntu which let&#39;s you share your photos and music from a machine at home and then access it thrue an application called: &lt;blockquote&gt; &lt;/blockquote&gt;  &lt;a href=&quot;http://www.simplifymedia.com/iphonephoto.html&quot;&gt;Simplify Photo&lt;/a&gt; (about 1$)  &lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/RVul_DjIN5M&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/RVul_DjIN5M&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt; &lt;blockquote&gt; &lt;/blockquote&gt;  and not to mentioned what could well be a worthy rival to the long awaited &lt;a href=&quot;http://www.spotify.com/blog/archives/2009/07/27/spotify-for-iphone/&quot;&gt;Spotify&lt;/a&gt; iPhone/iPod client, altough you are limited to your own music collection which will most likely have trouble matching the depth and breath of Spotify&#39;s music archive. &lt;blockquote&gt; &lt;/blockquote&gt;  &lt;a href=&quot;http://www.simplifymedia.com/iphonemusic.html&quot;&gt;Simplify Music 2&lt;/a&gt; (about 6$) &lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/CWWpiwkSYjI&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/CWWpiwkSYjI&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt; &lt;blockquote&gt; &lt;/blockquote&gt;  After you&#39;ve downloaded and setup an account and selected the folders to share your ready to go and can access your photos and music from everywhere.   </description><link>http://peterblomqvist.blogspot.com/2009/08/simplify-photo-simplify-music-it-got-to.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-3593532678749976841</guid><pubDate>Mon, 10 Aug 2009 19:32:00 +0000</pubDate><atom:updated>2009-08-10T21:36:47.349+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>Tips n Tricks: Moving TFS to another server and getting Error 3154: The backup set holds a backup of a database other than the existing database</title><description>&lt;p&gt;Another issue that I ran across today when trying to restore our TFS backup onto the freshly installed TFS server what the fact that due to various discrepancies in the environments I ended up getting the following error message when trying to restore my Reporting Services and SharePoint databases: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Error 3154: The backup set holds a backup of a database other than the existing database&lt;/strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So after banging my head awhile I did a bit of searching and sure enough I stumbled upon the following &lt;a href=&quot;http://blog.sqlauthority.com/2007/09/27/sql-server-fix-error-3154-the-backup-set-holds-a-backup-of-a-database-other-than-the-existing-database/&quot;&gt;post&lt;/a&gt; that explains how to get around it.&lt;/p&gt;  &lt;p&gt;To sum it up it is quick simple you have to switch back to TSQL mode and open up a query window and make sure you are currently in the master database and then issue the following command:&lt;/p&gt;  &lt;p&gt;   &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:934d8059-2ad8-4d31-8b8d-acad72a80683&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;RESTORE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;DATABASE&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; YourDatabase&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;DISK&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;C:\YourDatabaseBackup.bak&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;WITH&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;REPLACE&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That’s all there is to it, so far I’ve only encountered this issue with the Reporting Services and SharePoint databases, never with the TFS databases.&lt;/p&gt;  </description><link>http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another_10.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-516633034507639235</guid><pubDate>Mon, 10 Aug 2009 19:20:00 +0000</pubDate><atom:updated>2009-08-10T21:20:21.131+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>Tips n Tricks: Moving TFS to another server and getting &quot;Scale-out deployment&quot; is not supported in this edition of Reporting Services</title><description>&lt;p&gt;Today I was mucking about with restoring our TFS environment on a different server to create a backup environment where we can do our migration testing and bumped into some minor issues. I Figured that I should post them, if not for anything else they&#39;ll server as a reminder to self the next time around. &lt;/p&gt;  &lt;p&gt;Anyway the problem concerns getting the following error message when you try to access your reports: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The feature: &amp;quot;Scale-out deployment&amp;quot; is not supported in this edition of Reporting Services&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So what’s the deal with this then? Well as the documentation states:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A &lt;em&gt;scale-out deployment&lt;/em&gt; refers to two or more report server instances that share a single report server database&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This functionality is not available in the standard edition of SQL Server and the problem I ended up with is that once you follow the steps in the guideline document (&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms404869(VS.80).aspx&quot;&gt;How to: Move Your Team Foundation Server from One Hardware Configuration to Another&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;My problem was that once I had restored the encryption key for my Reporting Services I ended up with two entries when running &lt;strong&gt;RSKeyMgmt –l&lt;/strong&gt;, to get around this I ran &lt;strong&gt;RSKeyMgmt –r OLDDTInstanceID&lt;/strong&gt;.&lt;/p&gt;  </description><link>http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-7063511866081006694</guid><pubDate>Tue, 07 Jul 2009 18:44:00 +0000</pubDate><atom:updated>2009-08-04T13:18:29.640+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Testing</category><category domain="http://www.blogger.com/atom/ns#">VB.NET</category><category domain="http://www.blogger.com/atom/ns#">WCF</category><title>How to get the Using statement to work when dealing with interfaces directly.</title><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;UPDATE 2009-08-04: &lt;/strong&gt;As pointed out in the comments by Marc L there are some issues involved in using the techniques described below the primary problem concerns the fact that you might incur an exception in the finally block of the using statement this would lead to any code below the using statement to not run. Also if you throw an exception in your code and the dispose call yeilds an exception this will mask your exception which you will never see. You can read more about it in this msdn article: &lt;/em&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa355056.aspx&quot;&gt;&lt;em&gt;Avoiding Problems with the Using Statement&lt;/em&gt; &lt;/a&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Just recently I did some coding in a project and was faced with something that took me awhile to figure out so I thought I&#39;d write a line or two about it. But before we continue let me state that this post deals with WCF based services in a VB.NET application. &lt;/p&gt;&lt;p&gt;The thing is that personally I&#39;m not very fond of using the &quot;Add Service Reference&quot; in Visual Studio (there are obviously situations where it is useful but most of the times I prefer to have more control over the generated proxy), so what I usually end up doing is to spawn up my own proxy using the &lt;strong&gt;ChannelFactory&lt;/strong&gt; and simply add a reference to the assembly containing the service contracts.&lt;/p&gt;&lt;p&gt;The problem arises when you start working with interfaces to make sure that you can inject your dependencies into your code to be able to implementing proper unit-test. When you do this and try to use the &lt;strong&gt;Using &lt;/strong&gt;statement to implement the disposable pattern and make sure your resources are release in a timely fashion.&lt;/p&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;div style=&quot;PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:8e291394-ad7a-43e0-ad78-733c93a5654a&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;BACKGROUND-: auto;color:white;&quot; &gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService) &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;New&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService)(&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;MyBinding&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; myInterface &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; myInterface&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style=&quot;font-family:Georgia;&quot;&gt;This example code will generate the following complier error:&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&#39;Using&#39; operand of type &#39;…IMyService&#39; must implement &#39;System.IDisposable&#39;.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;So after banging my head against the monitor for awhile I stumbled upon a blog with an example where the author used the As operator to perform a cast in the using statement, so I figured that this hade to be doable in VB.NET as well.&lt;/p&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;pre&gt;&lt;div style=&quot;PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0743f8f4-d4d4-4939-9983-2e12d2563797&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService) &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;New&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService)(&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;MyBinding&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; myInterface &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;DirectCast&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;(myInterface, IDisposable)&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family:Georgia;&quot;&gt;The above code will work and even though it isn’t as slick as it’s counterpart in C# it will do the trick. Now we are able to both utilize the disposable pattern to make sure we are not forgetting to release our resources and still make use of dependency injection in our code and improve our testability.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;There is no magic here once you think a little about it what the using statement wants is simply a reference to an instance that implements the &lt;strong&gt;IDisposable&lt;/strong&gt; interface which the proxy returned by &lt;strong&gt;CreateChannel&lt;/strong&gt; does. So we just need to give the compiler a little nudge to get it to work.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATE 2009-08-04:&lt;/strong&gt; However the problems don&#39;t stop here. If we wrap an object implementing IDisposable inside a using statement and the Dispose method throws exceptions we are toast. This will lead to all kind of weird behaviours when dealing with error situations. &lt;/p&gt;&lt;p&gt;First out we need to handle the fact that any exception being raised within the using block will be supressed by exceptions raised from inside the Dispose call. Secondly we have the issue that if you have any code that needs to be executed after the using block, you will be in for a nasty suprise since it will not run if an exception is raised from within the dispose method.&lt;/p&gt;&lt;p&gt;The easiest way to get around this would be to implement a helper object dealing with the disposing logic that we can pass to the Using statement. This object can then supress any exceptions being raised during disposal and do the appropriate logging. The code below implements such a wrapper object that will handle this for the WCF scenario, you could easily modify it and just pass in any object implementing IDisposable and just deal with the logging and exception suppression.&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 8pt; line-height: 12pt; border: solid 1px silver; cursor: text; margin: 20px 0px 10px 0px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%; direction: ltr; text-align: left;&quot;&gt;&lt;pre id=&quot;codeSnippet&quot; style=&quot;background-color: #f4f4f4; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 8pt; line-height: 12pt; border-style: none; color: black; overflow: visible; padding: 0px; width: 100%; margin: 0em; direction: ltr; text-align: left;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;Imports&lt;/span&gt; System&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;Imports&lt;/span&gt; System.Diagnostics&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;Imports&lt;/span&gt; System.ServiceModel&lt;br /&gt; &lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;Namespace&lt;/span&gt; DisposablePattern&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Class&lt;/span&gt; CommunicationObjectScope&lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;Implements&lt;/span&gt; IDisposable&lt;br /&gt; &lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;Private&lt;/span&gt; scoped &lt;span style=&quot;color: #0000ff;&quot;&gt;As&lt;/span&gt; ICommunicationObject&lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;Private&lt;/span&gt; disposed &lt;span style=&quot;color: #0000ff;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Boolean&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;False&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Sub&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;New&lt;/span&gt;(&lt;span style=&quot;color: #0000ff;&quot;&gt;ByVal&lt;/span&gt; co &lt;span style=&quot;color: #0000ff;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Object&lt;/span&gt;)&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;TypeOf&lt;/span&gt; co &lt;span style=&quot;color: #0000ff;&quot;&gt;Is&lt;/span&gt; ICommunicationObject &lt;span style=&quot;color: #0000ff;&quot;&gt;Then&lt;/span&gt;&lt;br /&gt;                scoped = co&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;Else&lt;/span&gt;&lt;br /&gt;                scoped = &lt;span style=&quot;color: #0000ff;&quot;&gt;Nothing&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Sub&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Sub&lt;/span&gt; Dispose() &lt;span style=&quot;color: #0000ff;&quot;&gt;Implements&lt;/span&gt; IDisposable.Dispose&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;Try&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Not&lt;/span&gt; disposed &lt;span style=&quot;color: #0000ff;&quot;&gt;Then&lt;/span&gt;&lt;br /&gt;                    &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Not&lt;/span&gt; scoped &lt;span style=&quot;color: #0000ff;&quot;&gt;Is&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Nothing&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Then&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color: #0000ff;&quot;&gt;Select&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Case&lt;/span&gt; scoped.State&lt;br /&gt;                            &lt;span style=&quot;color: #0000ff;&quot;&gt;Case&lt;/span&gt; CommunicationState.Faulted&lt;br /&gt;                                scoped.Abort()&lt;br /&gt;                                &lt;span style=&quot;color: #0000ff;&quot;&gt;Exit&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Select&lt;/span&gt;&lt;br /&gt;                            &lt;span style=&quot;color: #0000ff;&quot;&gt;Case&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Else&lt;/span&gt;&lt;br /&gt;                                scoped.Close()&lt;br /&gt;                                &lt;span style=&quot;color: #0000ff;&quot;&gt;Exit&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Select&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Select&lt;/span&gt;&lt;br /&gt;                    &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;If&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;Catch&lt;/span&gt; ex &lt;span style=&quot;color: #0000ff;&quot;&gt;As&lt;/span&gt; Exception&lt;br /&gt;                &lt;span style=&quot;color: #008000;&quot;&gt;&#39;TODO: replace with more approriate logging!!!&lt;/span&gt;&lt;br /&gt;                Trace.WriteLine(ex.ToString())&lt;br /&gt; &lt;br /&gt;                &lt;span style=&quot;color: #008000;&quot;&gt;&#39;NOTE: Do NOT throw or rethrow from within this &lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000;&quot;&gt;&#39; exception block since this will mask the&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000;&quot;&gt;&#39; original exception.&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Try&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Sub&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Class&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;Namespace&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;By using this class we would end up with code looking like this:&lt;/p&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;pre&gt;&lt;div style=&quot;PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0743f8f4-d4d4-4939-9983-2e12d2563797&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService) &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;New&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; ChannelFactory(&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Of&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService)(&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;MyBinding&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; myInterface &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; IMyService &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;co&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; As New &lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;CommunicationObjectScope(myInterface)&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Using&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To summarize you can use the DirectCast approach if you have controll of the object implementing IDispsable, but if there is the slightest chance that an exception might occur from within the Dispose method you should go for the wrapper approach.&lt;/p&gt;</description><link>http://peterblomqvist.blogspot.com/2009/07/how-to-get-using-statement-to-work-when.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-1286735900327351577</guid><pubDate>Tue, 30 Jun 2009 17:58:00 +0000</pubDate><atom:updated>2009-06-30T20:23:57.605+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ALM</category><title>Need help selling ALM? (or Application Lifecycle Management explained)</title><description>&lt;p&gt;David Chapell just released a set of papers the could help you out if your in a shop with a poor ALM implementation and you need some help selling ALM to your management. &lt;/p&gt;&lt;p&gt;All papers where sponsors by Microsoft but they are not aimed specifically at Microsoft Visual Team System but rather at the concepts behind ALM and how it aligns to business strategies and processes.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.davidchappell.com/WhatIsALM--Chappell.pdf&quot;&gt;What is Application Lifecycle Management?&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.davidchappell.com/ALMandBusinessStrategy--Chappell.pdf&quot;&gt;Application Lifecycle Management and Business Strategy&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.davidchappell.com/ALMasABusinessProcess--Chappell.pdf&quot;&gt;Application Lifecycle Management as a Business Process&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.davidchappell.com/ALMToolEvolution--Chappell.pdf&quot;&gt;Tools for Team Development: Why Vendors are Finally Getting It Right&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you want to read Mr. Chapell&#39;s original post you can find it &lt;a href=&quot;http://www.davidchappell.com/blog/2009/06/perspectives-on-application-lifecycle.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description><link>http://peterblomqvist.blogspot.com/2009/06/need-help-selling-alm-or-application.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-5298152770664902477</guid><pubDate>Fri, 12 Jun 2009 16:52:00 +0000</pubDate><atom:updated>2009-06-12T18:53:10.052+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Communication</category><category domain="http://www.blogger.com/atom/ns#">Design</category><category domain="http://www.blogger.com/atom/ns#">Presentation</category><title>The Way of the Whiteboard: Persuading with Pictures - MIX Videos</title><description>&lt;a href=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SjKGF9PGn9I/AAAAAAAAAKc/uCNzSrX5DNM/s1600-h/back+of+the+napkin.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 130px; height: 130px;&quot; src=&quot;http://2.bp.blogspot.com/_XY57yl89XM0/SjKGF9PGn9I/AAAAAAAAAKc/uCNzSrX5DNM/s200/back+of+the+napkin.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5346483144537579474&quot; /&gt;&lt;/a&gt;&lt;br /&gt;A picture is truely worth a thousand words ... I just realzied that I&#39;ve forgotten to post this (I wanted to read Dan&#39;s book first, which I have done now). The book which I can recommend if you wish to get some inspiration and ideas on how to communicate best with picture is called &lt;a href=&quot;http://www.amazon.com/Back-Napkin-Solving-Problems-Pictures/dp/1591841992/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1244824983&amp;sr=8-1#&quot;&gt;The back of the napkin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyway Dan held a very inspiring talk at MIX09 earlier this year called &lt;a href=&quot;http://videos.visitmix.com/MIX09/C16F&quot;&gt;The Way of the Whiteboard: Persuading with Pictures&lt;/a&gt; and even if you do not intend to read the book you should take an hour out of your scheadule and watch this video.&lt;br /&gt;&lt;blockquote&gt;Hear Dan Roam talk about persuading people with pictures. Whether convincing leadership to back a project, getting a VC to fund a business, building consensus on a project team, or selling a new technology platform within an organization, nothing is more powerful than a simple picture for discovering and developing technological concepts and business ideas. This session shows how to use the pictures we&#39;ve created to persuade other people to take action.&lt;/blockquote&gt;&lt;strong&gt;Power to the all the black pens out there you know who you are...&lt;/strong&gt;</description><link>http://peterblomqvist.blogspot.com/2009/06/way-of-whiteboard-persuading-with.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_XY57yl89XM0/SjKGF9PGn9I/AAAAAAAAAKc/uCNzSrX5DNM/s72-c/back+of+the+napkin.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-6918650874922335148</guid><pubDate>Fri, 12 Jun 2009 16:23:00 +0000</pubDate><atom:updated>2009-06-12T18:32:58.384+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Design</category><category domain="http://www.blogger.com/atom/ns#">Presentation</category><title>From Business To Buttons 09: The Zen of presentation design &amp; delivery</title><description>If you like me where unable to attend &lt;a href=&quot;http://www.businesstobuttons.com&quot;&gt;From Business to Buttons 2009&lt;/a&gt; and watch &lt;a href=&quot;http://www.presentationzen.blogs.com/&quot;&gt;Garr Reynolds&lt;/a&gt; deliver his keynote about the Zen of presentation.&lt;br /&gt;&lt;blockquote&gt;Over the years presentation software such as PowerPoint has gotten better, but presentations largely have not. The presentation tools have advanced, but we have not. Why? Part of the problem has been a focus only on how to use the tools themselves rather than on how to clarify and amplify our ideas and messages through through fundamental design and storytelling principles.&lt;/blockquote&gt;You are able to watch a recording of the session here:&lt;br /&gt;&lt;embed src=&quot;http://blip.tv/play/g9NcgYjRYgA&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;400&quot; height=&quot;330&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;</description><link>http://peterblomqvist.blogspot.com/2009/06/from-business-to-buttons-09-zen-of.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-7290244601455078092</guid><pubDate>Tue, 02 Jun 2009 19:10:00 +0000</pubDate><atom:updated>2009-06-12T18:54:06.407+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Communication</category><category domain="http://www.blogger.com/atom/ns#">Innovation</category><title>Lets do the wave together</title><description>If you haven&#39;t already checked it out you should really take an hour and a half from your scheadule and take a look at the unveiling of the new project from the creators behind Google Maps. &lt;br /&gt;&lt;br /&gt;They announced Google Wave at the annual Google developer conferance and I&#39;m dying to get an account for this piece of communications software, it will most likely change the way you communicate digitally like ICQ did way back in 1996 with instant messenging.&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/v_UyVmITiYQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/v_UyVmITiYQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The product will be open source (at least the majority of the code) and it will have a where rich extensibility API and last but not least everything is based on open protocols. In the launch they previewed serveral very cool bots that where built ontop of the APIs, these bots where able to participate in realtime in the conversations providing services such as translation and spellchecking.&lt;br /&gt;&lt;br /&gt;By far the two coolest features of the product was the instantaneous syncronization of the changes in a messages (at one point in the demo they where five people simultaneously editing the same wave message) and the playback feature where you could be thrown into a conversation and simply play it back to see how it had evolved over time.&lt;br /&gt;&lt;br /&gt;Read more about it in the following post: &lt;a href=&quot;http://googleblog.blogspot.com/2009/05/went-walkabout-brought-back-google-wave.html&quot;&gt;Went Walkabout. Brought back Google Wave.&lt;/a&gt;</description><link>http://peterblomqvist.blogspot.com/2009/06/lets-do-wave-together.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-5055481968591966487</guid><pubDate>Sun, 26 Apr 2009 18:46:00 +0000</pubDate><atom:updated>2009-08-26T20:09:46.696+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS 2008</category><category domain="http://www.blogger.com/atom/ns#">TFSAdminTool</category><title>TFS Administration Tool Version 1.4 in now available for download</title><description>Today we release v1.4 of TFS Administration Tool (you can download it &lt;a href=&quot;http://tfsadmin.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24283#DownloadId=66678&quot;&gt;here&lt;/a&gt;) which closes a total of seventeen work items from the list of feature requests and defects.&lt;br /&gt;&lt;br /&gt;The major thing in this release is the support for Reporting Services for SQL Server 2008, you can read more about the details of the release over at the blog of &lt;a href=&quot;http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2009/04/26/team-foundation-server-administration-tool-version-1-4-has-been-released-on-codeplex.aspx&quot;&gt;Michael Rumiers&lt;/a&gt; who is the co-ordinator for the project.&lt;br /&gt;&lt;br /&gt;And be sure to stay tuned and check in often at the projects &lt;a href=&quot;http://tfsadmin.codeplex.com/&quot;&gt;homepage&lt;/a&gt; since we are working hard already on a possible new version with a lot of new features previously unavailable in the tool.</description><link>http://peterblomqvist.blogspot.com/2009/04/tfs-administration-tool-version-14-in.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-6763660655163250474</guid><pubDate>Sun, 22 Mar 2009 22:24:00 +0000</pubDate><atom:updated>2009-03-22T23:37:03.520+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">MiX09</category><category domain="http://www.blogger.com/atom/ns#">SQL Services</category><title>What&#39;s New in Microsoft SQL Data Services</title><description>Nigel Ellis one of the architects on the SDS team gave a very intressting talk at Mix09 which you can view here:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://videos.visitmix.com/MIX09/T06F&quot;&gt;What&amp;#39;s New in Microsoft SQL Data Services - MIX Videos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It&#39;s a talk that really doesn&#39;t present any really new fantastic technologies and that&#39;s the beuty of it all. The key take away from the session is that it most likely will just work provided your using the basic relational functionality of SQL Server.&lt;br /&gt;&lt;br /&gt;You can expect to get your hands on a &lt;strong&gt;&lt;em&gt;public CTP around July 09&lt;/em&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;Some things that I found very intressting was the talk about data partioning that would let us use distributed queries in a very easy way. Also coupled with the data syncronization features (based on the sync framework) that will enable tight integration with onpremise instances of SQL Server, we can expect to actually start pushing out parts of our applications in cloud bursting scenarios (this was a headache for me prio this release it was simply not worth the effort on a exsisting application).&lt;br /&gt;&lt;br /&gt;So what is &lt;strong&gt;not in v1&lt;/strong&gt;:&lt;br /&gt;&lt;blockquote&gt;Distributed Transaction&lt;br /&gt;Distributed Queries&lt;br /&gt;Hosted CLR&lt;br /&gt;Spatial Data&lt;br /&gt;Service Broker&lt;br /&gt;Reporting&lt;br /&gt;Business Intelligence&lt;br /&gt;Reference Data&lt;/blockquote&gt;</description><link>http://peterblomqvist.blogspot.com/2009/03/whats-new-in-microsoft-sql-data.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-7769885865758232504</guid><pubDate>Fri, 13 Mar 2009 20:52:00 +0000</pubDate><atom:updated>2009-03-13T22:25:29.807+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Cloud Computing</category><category domain="http://www.blogger.com/atom/ns#">SQL Services</category><title>Sql Data Services - A real cinderella story!</title><description>About 2 weeks ago David Robinson of the Sql Data Services team announce that they where planning to announce some really mind blowing changes to SDS at MIX09. &lt;br /&gt;&lt;br /&gt;Earlier this week (I&#39;ve been a little slow on my blog reading) he announce what&#39;s comming and sure enough:&lt;br /&gt;&lt;blockquote&gt;                Tables?...Check&lt;br /&gt;                Stored Procedures?...Check&lt;br /&gt;                Triggers?...Check&lt;br /&gt;                Views?...Check&lt;br /&gt;                Indexes?...Check&lt;br /&gt;                Visual Studio Compatibility?...Check&lt;br /&gt;                ADO.Net Compatibility?...Check&lt;br /&gt;                ODBC Compatibility?...Check&lt;/blockquote&gt;Personally I have been spending some time trying to figure out how to best model and implementing a solution ontop och both SDS as well as Azure Storage. So I&#39;m naturally curious about whats going to happen with the ACE model (which in the first place felt some what strange since the Azure storage platform offers similar support, not to mention that it is rather limiting compare to a traditional relational model) and sure enough it is a deadend in SDS (personally I think this is very good that Microsoft is drawing a clear line and positioning the two different technogies like this, it will be a major improvement for the Azure platform making it an even stronger platform for the cloud):&lt;br /&gt;&lt;blockquote&gt;What about the ACE (Authority, Container, Entity) data model and developer experience? Since Windows Azure storage has a similar data model (property bag) and developer experience, we will stop supporting the current ACE Model sometime in the future.&lt;/blockquote&gt;So when will we get our hands on this goodiebag? Well acording to the SDS team the CTP will be around summertime 2009. So in the meantime go ahead an read the original posts to get more details on this:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.msdn.com/ssds/archive/2009/03/10/9469228.aspx&quot;&gt;The no spin details on the new SDS features&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.msdn.com/ssds/archive/2009/03/12/9471765.aspx&quot;&gt;First round of Questions and Answers&lt;/a&gt;</description><link>http://peterblomqvist.blogspot.com/2009/03/sql-data-services-real-cinderella-story.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-1415586424169249673</guid><pubDate>Fri, 13 Mar 2009 20:24:00 +0000</pubDate><atom:updated>2009-03-13T21:25:33.244+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gadgets</category><category domain="http://www.blogger.com/atom/ns#">TED 2009</category><title>Minority Report is coming to a neighbourhood near you!</title><description>Yesterday I watch a presentation from TED 2009 where &lt;a href=&quot;http://www.ted.com/index.php/speakers/pattie_maes.html&quot;&gt;Pattie Maes&lt;/a&gt; from MIT Media Lab&#39;s new Fluid Interfaces Group demos a new technology that see called Sixth Sense (there are seems to come alot of intressting innovations from the Fluid Interfaces Group, I recently blogged about another new technology called &lt;a href=&quot;http://peterblomqvist.blogspot.com/2009/02/siftables-toy-blocks-that-think.html&quot;&gt;Siftables&lt;/a&gt; which also came out of this lab).&lt;br /&gt;&lt;br /&gt;It basically comes down to a device that is pieced together from equipment about $300 consisting of a projector and some mirrors hooked up to your cellphone that enabled you you to project and interact with information on any surface (just like Tom Cruise in Minority Report altough still abit rough around the edges), this opens up alot of oppertunities but instead of reading my ramblings take 15 minutes out of your schedule and whats the demo: &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ted.com/talks/pattie_maes_demos_the_sixth_sense.html&quot;&gt;Pattie Maes demos the Sixth Sense | Video on TED.com&lt;/a&gt;</description><link>http://peterblomqvist.blogspot.com/2009/03/minority-report-is-coming-to.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-3687561747397605418</guid><pubDate>Tue, 03 Mar 2009 20:23:00 +0000</pubDate><atom:updated>2009-03-03T21:39:25.747+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Books</category><category domain="http://www.blogger.com/atom/ns#">Build Automation</category><category domain="http://www.blogger.com/atom/ns#">MSBuild</category><category domain="http://www.blogger.com/atom/ns#">Team Build</category><title>Finally a proper book about MSBuild and Team Build</title><description>&lt;a href=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/Sa2Ulcd4r_I/AAAAAAAAAJ0/2ktZtoUZqe8/s1600-h/msbuild.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 200px;&quot; src=&quot;http://1.bp.blogspot.com/_XY57yl89XM0/Sa2Ulcd4r_I/AAAAAAAAAJ0/2ktZtoUZqe8/s200/msbuild.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5309062906757296114&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I just finnished reading &lt;a href=&quot;http://www.amazon.com/Inside-Microsoft%C2%AE-Build-Engine-PRO-Developer/dp/0735626286/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1236111495&amp;amp;sr=8-2&quot;&gt;Inside the Microsoft® Build Engine: Using MSBuild and Team Foundation Build&lt;/a&gt; and even though I know of several posting about this book I figure they could do with some more praise :)&lt;br /&gt;&lt;br /&gt;I approached this book with and expectation that I already knew my fair share about the build process in Team System but was pleasantly suprised that there where a few nuggets that I was unaware of so it paid of to read it after all. Otherwise I must say that the book is well structured and is down to earth with a lot of practical examples from real world scenarios. I truely wish that I would have had access to this book back in 2005 when I started out with build automation in Team System.&lt;br /&gt;&lt;br /&gt;The book is a must read for anyone considering working with build automation using Team System (atleast until VSTS 2010 comes out and changes it again). Also if you want to truely understand MSBuild and how your projects are built by Visual Studio (although you will come along way when working with Visual Studio without reading one single row of MSBuild script). &lt;br /&gt;&lt;br /&gt;Personally I will keep my copy on my desk as a reference and flip through it when working with the nitty gritties of the build scripts.</description><link>http://peterblomqvist.blogspot.com/2009/03/finally-proper-book-about-msbuild-and.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_XY57yl89XM0/Sa2Ulcd4r_I/AAAAAAAAAJ0/2ktZtoUZqe8/s72-c/msbuild.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2589343630458375844.post-1439237408921907978</guid><pubDate>Mon, 02 Mar 2009 19:22:00 +0000</pubDate><atom:updated>2009-08-26T20:17:31.527+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cloud Computing</category><category domain="http://www.blogger.com/atom/ns#">Database</category><title>FathomDB a relational database in the cloud</title><description>I&#39;ve been playing around with how to store your data in a cloudbased environment, mainly I&#39;ve been looking at the various offerings from Microsoft (Azure Storage &amp; SQL Data Services).&lt;br /&gt;&lt;br /&gt;Even though I like the concept of being able of putting my data in the cloud, I find the current data model available some what limiting when compared to a regular relational database.&lt;br /&gt;&lt;br /&gt;Well the other day I stumbled upon a new product called &lt;a href=&quot;http://fathomdb.com/about/home&quot;&gt;FathomDB&lt;/a&gt;, which comes to the rescue with a DaaS (Database-as-a-Service) offering. Initially they offer MySQL running on Amazons EC2 platform but it sounds as they will offer more backend platforms and possibly more database engines in the future. &lt;br /&gt;&lt;br /&gt;I&#39;m currently waiting for my beta account and will probably blog more about my experiences with FathomDB in the future. &lt;br /&gt;&lt;br /&gt;It&#39;s also worth noting if your intressted in DaaS that there is alot of buzz about Microsoft going to offer SQL Server as a DaaS also. At the very least we can expect some intresting news in mid march when Mix09 takes place.</description><link>http://peterblomqvist.blogspot.com/2009/03/fathomdb-relational-database-in-cloud.html</link><author>noreply@blogger.com (Peter Blomqvist)</author><thr:total>0</thr:total></item></channel></rss>