<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2589343630458375844</id><updated>2012-01-29T20:10:31.201+01:00</updated><category term='Continous Integration'/><category term='File Share'/><category term='Innovation'/><category term='Vista'/><category term='OreDev'/><category term='Architecture'/><category term='Technology'/><category term='Source Control'/><category term='Podcast'/><category term='TSWA 2005'/><category term='Power Tools'/><category term='VB.NET'/><category term='Windows'/><category term='Security'/><category term='MSTest'/><category term='Azure'/><category term='Visual Studio 2010'/><category term='Testing'/><category term='WF'/><category term='ALM'/><category term='WIT'/><category term='Extending'/><category term='Presentation'/><category term='Build Automation'/><category term='VSTS 2010'/><category term='Communication'/><category term='Virtualization'/><category term='Powerpoint'/><category term='BisSubscribe'/><category term='Document Management'/><category term='WAS'/><category term='Quality Assurance'/><category term='Windows 7'/><category term='Vista SP2'/><category term='Visual Basic 6'/><category term='IE7'/><category term='Team Build'/><category term='Rosario'/><category term='Cloud Computing'/><category term='TFSAdminTool'/><category term='TFS'/><category term='SharePoint'/><category term='TED 2009'/><category term='Gadgets'/><category term='Gapminder'/><category term='Modeling'/><category term='Design'/><category term='Hyper-V'/><category term='MSBuild'/><category term='.NET Services'/><category term='VSTS 2008'/><category term='TFS 2008'/><category term='Team System'/><category term='iPhone'/><category term='MiX09'/><category term='iTunes'/><category term='SQL Services'/><category term='File Sync'/><category term='WCF'/><category term='NDC09'/><category term='Database'/><category term='TFS 2005'/><category term='Team Lab'/><category term='Sync Framework'/><category term='PDC08'/><category term='Lifestyle'/><category term='Merging'/><category term='TestComplete'/><category term='Books'/><title type='text'>Binary Headaches</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>94</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4208598211262802747</id><published>2010-10-10T11:54:00.001+02:00</published><updated>2010-10-10T11:57:30.176+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Lifestyle'/><title type='text'>Musings on the day to day in a developer's life</title><content type='html'>If you haven't already stumbled upon this you should really sign up for the podcast: &lt;a href="http://thisdeveloperslife.com/"&gt;This Developers Life&lt;/a&gt;. It'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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4208598211262802747?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4208598211262802747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2010/10/musings-on-day-to-day-in-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4208598211262802747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4208598211262802747'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2010/10/musings-on-day-to-day-in-developers.html' title='Musings on the day to day in a developer&apos;s life'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5475842024550265369</id><published>2009-12-09T22:00:00.005+01:00</published><updated>2009-12-09T22:17:28.450+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Share'/><category scheme='http://www.blogger.com/atom/ns#' term='File Sync'/><title type='text'>SkyDrive finally gets integration with Windows Explorer</title><content type='html'>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="http://skydriveexplorer.com/"&gt;SkyDrive Explorer&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/SyARrwr5eII/AAAAAAAAAMU/3nyeyfoCXyU/s1600-h/mycomputerview.png"&gt;&lt;img style="display:block; margin:0px right 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/SyARrwr5eII/AAAAAAAAAMU/3nyeyfoCXyU/s400/mycomputerview.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413346195600406658" /&gt;Screenshot of integration SkyDrive with Windows Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/SyARsIQceHI/AAAAAAAAAMc/MyGJQ2WRelI/s1600-h/detailsview.png"&gt;&lt;img style="display:block; margin:0px left 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/SyARsIQceHI/AAAAAAAAAMc/MyGJQ2WRelI/s400/detailsview.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413346201927710834" /&gt;Screenshot of accessing a folder on SkyDrive from Windows Explorer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5475842024550265369?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5475842024550265369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/skydrive-finally-gets-integration-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5475842024550265369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5475842024550265369'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/skydrive-finally-gets-integration-with.html' title='SkyDrive finally gets integration with Windows Explorer'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5968499635460379985</id><published>2009-12-09T21:52:00.006+01:00</published><updated>2009-12-09T22:00:16.863+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Installing WPF Toolkit June 2009 on Windows 7 (getting rid of the heinous "WPF Toolkit requires .NET Framework 3.5 SP1")</title><content type='html'>Lately I've started to try out Windows 7 on my main development machine at work, this has worked really well and I'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="http://2.bp.blogspot.com/_XY57yl89XM0/SyAPTh-RvpI/AAAAAAAAAME/68ngsUy-6ps/s1600-h/WPFToolkitError.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 178px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SyAPTh-RvpI/AAAAAAAAAME/68ngsUy-6ps/s400/WPFToolkitError.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5413343580310847122" /&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's a rather annoying error message given the fact that it isn'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="http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;displaylang=en"&gt;Microsoft Platform SDK&lt;/a&gt; which contains a little tool called "Orca" which let's you inspect and modify the tables in an .msi file.&lt;br /&gt;&lt;br /&gt;If you don't want to install the whole platform SDK you can grab the setup for "Orca" from my sky drive.&lt;br /&gt;&lt;iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-4461964704e85f8b.skydrive.live.com/embedicon.aspx/Offentlig/Orca.Msi"&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="http://1.bp.blogspot.com/_XY57yl89XM0/SyAPT-crISI/AAAAAAAAAMM/wAWBopQuJvo/s1600-h/wpftoolkitorcas.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 173px;" src="http://1.bp.blogspot.com/_XY57yl89XM0/SyAPT-crISI/AAAAAAAAAMM/wAWBopQuJvo/s400/wpftoolkitorcas.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5413343587954532642" /&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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5968499635460379985?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5968499635460379985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/installing-wpf-toolkit-june-2009-on.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5968499635460379985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5968499635460379985'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/installing-wpf-toolkit-june-2009-on.html' title='Installing WPF Toolkit June 2009 on Windows 7 (getting rid of the heinous &quot;WPF Toolkit requires .NET Framework 3.5 SP1&quot;)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4477316141558953948</id><published>2009-12-09T21:21:00.014+01:00</published><updated>2009-12-10T08:59:19.307+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Installing WCF LOB SDK SP2 on Windows 7 (getting rid of the heinous "WCF LOB Adapter SDK requires .NET Framework 3.5 SP1")</title><content type='html'>Lately I've started to try out Windows 7 on my main development machine at work, this has worked really well and I'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="http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-LxXwZI/AAAAAAAAAL0/AzGvVCZ0Cnc/s1600-h/WCFLOBError.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 178px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-LxXwZI/AAAAAAAAAL0/AzGvVCZ0Cnc/s400/WCFLOBError.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5413337716015743378" /&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's a rather annoying error message given the fact that it isn'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="http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;displaylang=en"&gt;Microsoft Platform SDK&lt;/a&gt; which contains a little tool called "Orca" which let's you inspect and modify the tables in an .msi file.&lt;br /&gt;&lt;br /&gt;If you don't want to install the whole platform SDK you can grab the setup for "Orca" from my sky drive.&lt;br /&gt;&lt;iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-4461964704e85f8b.skydrive.live.com/embedicon.aspx/Offentlig/Orca.Msi"&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="http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-VHyb9I/AAAAAAAAAL8/01Qg3VAqkLg/s1600-h/WCFLOBOrcas.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SyAJ-VHyb9I/AAAAAAAAAL8/01Qg3VAqkLg/s400/WCFLOBOrcas.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5413337718525685714" /&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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4477316141558953948?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4477316141558953948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/installing-wcf-lob-sdk-sp1-on-windows-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4477316141558953948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4477316141558953948'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/installing-wcf-lob-sdk-sp1-on-windows-7.html' 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;)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3105871315625959975</id><published>2009-12-06T22:43:00.001+01:00</published><updated>2009-12-06T22:43:25.642+01:00</updated><title type='text'>TFS Administration Tool Version 2.0 CTP now available for download</title><content type='html'>&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="http://tfsadmin.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24743"&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="http://tfsadmin.codeplex.com/wikipage"&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;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3105871315625959975?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3105871315625959975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/tfs-administration-tool-version-20-ctp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3105871315625959975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3105871315625959975'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/tfs-administration-tool-version-20-ctp.html' title='TFS Administration Tool Version 2.0 CTP now available for download'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2199218883774497801</id><published>2009-12-01T20:18:00.006+01:00</published><updated>2009-12-01T20:37:44.387+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gapminder'/><category scheme='http://www.blogger.com/atom/ns#' term='TED 2009'/><title type='text'>Hans Rosling predicts the future ... When &amp; How will Asia regain it's dominace over the world market?</title><content type='html'>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="http://www.ted.com/talks/lang/eng/hans_rosling_asia_s_rise_how_and_when.html"&gt;Hans Rosling: Asia'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="http://www.ted.com/talks/lang/eng/hans_rosling_at_state.html"&gt;Hans Rosling: Let my dataset change your mindset&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ted.com/talks/lang/eng/hans_rosling_the_truth_about_hiv.html"&gt;Hans Rosling on HIV: New facts and stunning data visuals&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ted.com/talks/lang/eng/hans_rosling_reveals_new_insights_on_poverty.html"&gt;Hans Rosling's new insights on poverty&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ted.com/talks/lang/eng/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html"&gt;Hans Rosling shows the best stats you'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's a program with Hans Rosling on the Swedish television. Now that can't be just coincidence :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2199218883774497801?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2199218883774497801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/hans-rosling-predicts-future-when-how.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2199218883774497801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2199218883774497801'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/12/hans-rosling-predicts-future-when-how.html' title='Hans Rosling predicts the future ... When &amp; How will Asia regain it&apos;s dominace over the world market?'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1776143556158505993</id><published>2009-09-30T20:49:00.001+02:00</published><updated>2009-09-30T20:49:18.060+02:00</updated><title type='text'>Dropbox for iPhone is out!</title><content type='html'>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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1776143556158505993?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1776143556158505993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/09/dropbox-for-iphone-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1776143556158505993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1776143556158505993'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/09/dropbox-for-iphone-is-out.html' title='Dropbox for iPhone is out!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3193075424411469478</id><published>2009-09-07T08:18:00.001+02:00</published><updated>2009-09-07T08:38:08.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>The Wait is over Spotify fot the iPhone is out!!!</title><content type='html'>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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3193075424411469478?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3193075424411469478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/09/wait-is-over-spotify-fot-iphone-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3193075424411469478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3193075424411469478'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/09/wait-is-over-spotify-fot-iphone-is-out.html' title='The Wait is over Spotify fot the iPhone is out!!!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-844351053777494695</id><published>2009-08-29T15:42:00.001+02:00</published><updated>2009-08-29T15:42:27.941+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NDC09'/><title type='text'>Watch Nordic Developer Conference 2009 from you favorite couch</title><content type='html'>&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="http://blogs.msdn.com/grothaug/pages/downloadable-ndc2009-videos.aspx"&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="http://ndc2009.no/en/index.aspx?cat=1069&amp;amp;id=1274"&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;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-844351053777494695?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/844351053777494695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/watch-nordic-developer-conference-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/844351053777494695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/844351053777494695'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/watch-nordic-developer-conference-2009.html' title='Watch Nordic Developer Conference 2009 from you favorite couch'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9202573013122826119</id><published>2009-08-27T22:30:00.002+02:00</published><updated>2009-08-27T22:35:35.582+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Taking SQL Azure for a test spin (it’s dirt simple)</title><content type='html'>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'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="http://www.microsoft.com/azure/data.mspx"&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'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't signed up you can do it &lt;a href="http://go.microsoft.com/fwlink/?LinkID=149681&amp;amp;clcid=0x09"&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="http://4.bp.blogspot.com/_XY57yl89XM0/SpbtWYYiArI/AAAAAAAAAK0/Z55bLz1ga2I/s1600-h/sqlazure.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 294px;" src="http://4.bp.blogspot.com/_XY57yl89XM0/SpbtWYYiArI/AAAAAAAAAK0/Z55bLz1ga2I/s400/sqlazure.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5374744174071513778" /&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="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:55d7fb25-d251-4b1f-a23a-47c6bc27b573" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: visible;"&gt;&lt;span style="color: #0000FF;"&gt;CREATE&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;DATABASE&lt;/span&gt;&lt;span style="color: #000000;"&gt; MyCloudDB&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CREATE&lt;/span&gt;&lt;span style="color: #000000;"&gt; LOGIN MyCloudLogin &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;WITH&lt;/span&gt;&lt;span style="color: #000000;"&gt; password&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1tsCloudyInSeattle&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;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="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6ca9f53e-ae71-45c8-afcd-c68065a13201" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;CREATE&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;TABLE&lt;/span&gt;&lt;span style="color: #000000;"&gt; CloudNotes (ID &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;IDENTITY&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;PRIMARY&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;KEY&lt;/span&gt;&lt;span style="color: #000000;"&gt;, Note &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;500&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CREATE&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;USER&lt;/span&gt;&lt;span style="color: #000000;"&gt; MyCloudLoginUser &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000;"&gt; LOGIN MyCloudLogin&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GRANT&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;UPDATE&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;DELETE&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&lt;span style="color: #000000;"&gt; CloudNotes &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;TO&lt;/span&gt;&lt;span style="color: #000000;"&gt; MyCloudLoginUser&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;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="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:09d28d03-096a-4ad1-bf8f-198d3a426403" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; InsertNote(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; note)&lt;br /&gt;    {&lt;br /&gt;      SqlConnection cn &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlConnection(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&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="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (cn)&lt;br /&gt;      {&lt;br /&gt;        SqlCommand cmd &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlCommand(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;INSERT INTO CloudNotes Values (@Note)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;br /&gt;        cn.Open();&lt;br /&gt;&lt;br /&gt;        cmd.Connection &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; cn;&lt;br /&gt;        cmd.Parameters.Add(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlParameter(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;@Note&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&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'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="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a6f8df69-fe98-4e3a-ae14-9cebecece687" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; ListNotes()&lt;br /&gt;    {&lt;br /&gt;      List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br /&gt;&lt;br /&gt;      SqlConnection cn &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlConnection(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&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="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (cn)&lt;br /&gt;      {&lt;br /&gt;        cn.Open();&lt;br /&gt;&lt;br /&gt;        SqlCommand cmd &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlCommand(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;SELECT ID, Note FROM CloudNotes ORDER BY ID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, cn);&lt;br /&gt;        SqlDataReader dr &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; cmd.ExecuteReader();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (dr.Read())&lt;br /&gt;        {&lt;br /&gt;          result.Add(dr.GetInt32(&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;).ToString() &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; - &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; dr.GetString(&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result;&lt;br /&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;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="http://msdn.microsoft.com/en-us/library/ee336279.aspx"&gt;MSDN&lt;/a&gt; documentation on SQL Azure. I’ll probably post more as I dabble around with it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9202573013122826119?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9202573013122826119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/taking-sql-azure-for-test-spin-its-dirt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9202573013122826119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9202573013122826119'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/taking-sql-azure-for-test-spin-its-dirt.html' title='Taking SQL Azure for a test spin (it’s dirt simple)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-637848116306030808</id><published>2009-08-22T20:29:00.002+02:00</published><updated>2009-08-22T20:33:31.916+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Build'/><category scheme='http://www.blogger.com/atom/ns#' term='MSTest'/><title type='text'>Getting the dreaded "The fully qualified file name must be less than 260 characters" when publishing test results in TFS 2008</title><content type='html'>&lt;p&gt;During the last week I'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'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="http://1.bp.blogspot.com/_XY57yl89XM0/SpA5wJCWb_I/AAAAAAAAAKs/EY4ZYGQOWS0/s1600-h/deployment.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 287px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5372857854675283954" border="0" alt="" src="http://1.bp.blogspot.com/_XY57yl89XM0/SpA5wJCWb_I/AAAAAAAAAKs/EY4ZYGQOWS0/s400/deployment.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;Anyway, even though I don'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: "MSTest.exe" 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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-637848116306030808?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/637848116306030808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/getting-dreaded-fully-qualified-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/637848116306030808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/637848116306030808'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/getting-dreaded-fully-qualified-file.html' title='Getting the dreaded &amp;quot;The fully qualified file name must be less than 260 characters&amp;quot; when publishing test results in TFS 2008'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6206672985308734468</id><published>2009-08-22T19:20:00.001+02:00</published><updated>2009-08-26T20:09:22.385+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Simplify Photo &amp; Simplify Music ... It's got to be one of the coolest iPhone Apps so far!</title><content type='html'>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's a company called &lt;a href="http://www.simplifymedia.com/index.html"&gt;SimplifyMedia&lt;/a&gt; and they have produced a piece of streaming software available for PC,MAC and Ubuntu which let'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="http://www.simplifymedia.com/iphonephoto.html"&gt;Simplify Photo&lt;/a&gt; (about 1$)  &lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RVul_DjIN5M&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RVul_DjIN5M&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&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="http://www.spotify.com/blog/archives/2009/07/27/spotify-for-iphone/"&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's music archive. &lt;blockquote&gt; &lt;/blockquote&gt;  &lt;a href="http://www.simplifymedia.com/iphonemusic.html"&gt;Simplify Music 2&lt;/a&gt; (about 6$) &lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CWWpiwkSYjI&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/CWWpiwkSYjI&amp;amp;hl=sv&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;blockquote&gt; &lt;/blockquote&gt;  After you'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.   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6206672985308734468?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6206672985308734468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/simplify-photo-simplify-music-it-got-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6206672985308734468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6206672985308734468'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/simplify-photo-simplify-music-it-got-to.html' title='Simplify Photo &amp;amp; Simplify Music ... It&amp;#39;s got to be one of the coolest iPhone Apps so far!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3593532678749976841</id><published>2009-08-10T21:32:00.001+02:00</published><updated>2009-08-10T21:36:47.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>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><content type='html'>&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="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/"&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="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:934d8059-2ad8-4d31-8b8d-acad72a80683" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;RESTORE&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;DATABASE&lt;/span&gt;&lt;span style="color: #000000;"&gt; YourDatabase&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;DISK&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;C:\YourDatabaseBackup.bak&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;WITH&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;REPLACE&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;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;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3593532678749976841?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3593532678749976841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another_10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3593532678749976841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3593532678749976841'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another_10.html' 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'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-516633034507639235</id><published>2009-08-10T21:20:00.001+02:00</published><updated>2009-08-10T21:20:21.131+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Tips n Tricks: Moving TFS to another server and getting "Scale-out deployment" is not supported in this edition of Reporting Services</title><content type='html'>&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'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="http://msdn.microsoft.com/en-us/library/ms404869(VS.80).aspx"&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;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-516633034507639235?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/516633034507639235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/516633034507639235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/516633034507639235'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/08/tips-n-tricks-moving-tfs-to-another.html' title='Tips n Tricks: Moving TFS to another server and getting &amp;quot;Scale-out deployment&amp;quot; is not supported in this edition of Reporting Services'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7063511866081006694</id><published>2009-07-07T20:44:00.005+02:00</published><updated>2009-08-04T13:18:29.640+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>How to get the Using statement to work when dealing with interfaces directly.</title><content type='html'>&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="http://msdn.microsoft.com/en-us/library/aa355056.aspx"&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'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'm not very fond of using the "Add Service Reference" 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="csharpcode"&gt;&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:8e291394-ad7a-43e0-ad78-733c93a5654a" class="wlWriterEditableSmartContent"&gt;&lt;pre style="BACKGROUND-: auto;color:white;" &gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService) &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService)(&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#800000;"&gt;MyBinding&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; myInterface &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;as&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Using&lt;/span&gt;&lt;span style="color:#000000;"&gt; myInterface&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Using&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="font-family:Georgia;"&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;'Using' operand of type '…IMyService' must implement 'System.IDisposable'.&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="csharpcode"&gt;&lt;pre&gt;&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0743f8f4-d4d4-4939-9983-2e12d2563797" class="wlWriterEditableSmartContent"&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService) &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService)(&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#800000;"&gt;MyBinding&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; myInterface &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;as&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Using&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;DirectCast&lt;/span&gt;&lt;span style="color:#000000;"&gt;(myInterface, IDisposable)&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Using&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:Georgia;"&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'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="codeSnippetWrapper" style="background-color: #f4f4f4; font-family: 'Courier New', 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;"&gt;&lt;pre id="codeSnippet" style="background-color: #f4f4f4; font-family: 'Courier New', 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;"&gt;&lt;span style="color: #0000ff;"&gt;Imports&lt;/span&gt; System&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Imports&lt;/span&gt; System.Diagnostics&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Imports&lt;/span&gt; System.ServiceModel&lt;br /&gt; &lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Namespace&lt;/span&gt; DisposablePattern&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; CommunicationObjectScope&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;Implements&lt;/span&gt; IDisposable&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; scoped &lt;span style="color: #0000ff;"&gt;As&lt;/span&gt; ICommunicationObject&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; disposed &lt;span style="color: #0000ff;"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Boolean&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;False&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;New&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;ByVal&lt;/span&gt; co &lt;span style="color: #0000ff;"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Object&lt;/span&gt;)&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;TypeOf&lt;/span&gt; co &lt;span style="color: #0000ff;"&gt;Is&lt;/span&gt; ICommunicationObject &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;br /&gt;                scoped = co&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;Else&lt;/span&gt;&lt;br /&gt;                scoped = &lt;span style="color: #0000ff;"&gt;Nothing&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt; Dispose() &lt;span style="color: #0000ff;"&gt;Implements&lt;/span&gt; IDisposable.Dispose&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;Try&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; disposed &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; scoped &lt;span style="color: #0000ff;"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Nothing&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color: #0000ff;"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Case&lt;/span&gt; scoped.State&lt;br /&gt;                            &lt;span style="color: #0000ff;"&gt;Case&lt;/span&gt; CommunicationState.Faulted&lt;br /&gt;                                scoped.Abort()&lt;br /&gt;                                &lt;span style="color: #0000ff;"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Select&lt;/span&gt;&lt;br /&gt;                            &lt;span style="color: #0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Else&lt;/span&gt;&lt;br /&gt;                                scoped.Close()&lt;br /&gt;                                &lt;span style="color: #0000ff;"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Select&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Select&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;Catch&lt;/span&gt; ex &lt;span style="color: #0000ff;"&gt;As&lt;/span&gt; Exception&lt;br /&gt;                &lt;span style="color: #008000;"&gt;'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="color: #008000;"&gt;'NOTE: Do NOT throw or rethrow from within this &lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #008000;"&gt;' exception block since this will mask the&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #008000;"&gt;' original exception.&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Try&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&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="csharpcode"&gt;&lt;pre&gt;&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0743f8f4-d4d4-4939-9983-2e12d2563797" class="wlWriterEditableSmartContent"&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService) &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;&lt;span style="color:#000000;"&gt; ChannelFactory(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Of&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService)(&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#800000;"&gt;MyBinding&lt;/span&gt;&lt;span style="color:#800000;"&gt;"&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color:#000000;"&gt; myInterface &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;as&lt;/span&gt;&lt;span style="color:#000000;"&gt; IMyService &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; factory.CreateChannel()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Using &lt;/span&gt;&lt;span style="color:#000000;"&gt;co&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; As New &lt;/span&gt;&lt;span style="color:#000000;"&gt;CommunicationObjectScope(myInterface)&lt;br /&gt;    ...&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7063511866081006694?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7063511866081006694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/07/how-to-get-using-statement-to-work-when.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7063511866081006694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7063511866081006694'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/07/how-to-get-using-statement-to-work-when.html' title='How to get the Using statement to work when dealing with interfaces directly.'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1286735900327351577</id><published>2009-06-30T19:58:00.003+02:00</published><updated>2009-06-30T20:23:57.605+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALM'/><title type='text'>Need help selling ALM? (or Application Lifecycle Management explained)</title><content type='html'>&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="http://www.davidchappell.com/WhatIsALM--Chappell.pdf"&gt;What is Application Lifecycle Management?&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.davidchappell.com/ALMandBusinessStrategy--Chappell.pdf"&gt;Application Lifecycle Management and Business Strategy&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.davidchappell.com/ALMasABusinessProcess--Chappell.pdf"&gt;Application Lifecycle Management as a Business Process&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.davidchappell.com/ALMToolEvolution--Chappell.pdf"&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's original post you can find it &lt;a href="http://www.davidchappell.com/blog/2009/06/perspectives-on-application-lifecycle.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1286735900327351577?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1286735900327351577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/need-help-selling-alm-or-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1286735900327351577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1286735900327351577'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/need-help-selling-alm-or-application.html' title='Need help selling ALM? (or Application Lifecycle Management explained)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5298152770664902477</id><published>2009-06-12T18:52:00.001+02:00</published><updated>2009-06-12T18:53:10.052+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Communication'/><title type='text'>The Way of the Whiteboard: Persuading with Pictures - MIX Videos</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/SjKGF9PGn9I/AAAAAAAAAKc/uCNzSrX5DNM/s1600-h/back+of+the+napkin.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 130px; height: 130px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SjKGF9PGn9I/AAAAAAAAAKc/uCNzSrX5DNM/s200/back+of+the+napkin.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346483144537579474" /&gt;&lt;/a&gt;&lt;br /&gt;A picture is truely worth a thousand words ... I just realzied that I've forgotten to post this (I wanted to read Dan'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="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#"&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="http://videos.visitmix.com/MIX09/C16F"&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'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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5298152770664902477?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5298152770664902477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/way-of-whiteboard-persuading-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5298152770664902477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5298152770664902477'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/way-of-whiteboard-persuading-with.html' title='The Way of the Whiteboard: Persuading with Pictures - MIX Videos'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6918650874922335148</id><published>2009-06-12T18:23:00.004+02:00</published><updated>2009-06-12T18:32:58.384+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>From Business To Buttons 09: The Zen of presentation design &amp; delivery</title><content type='html'>If you like me where unable to attend &lt;a href="http://www.businesstobuttons.com"&gt;From Business to Buttons 2009&lt;/a&gt; and watch &lt;a href="http://www.presentationzen.blogs.com/"&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="http://blip.tv/play/g9NcgYjRYgA" type="application/x-shockwave-flash" width="400" height="330" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6918650874922335148?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6918650874922335148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/from-business-to-buttons-09-zen-of.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6918650874922335148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6918650874922335148'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/from-business-to-buttons-09-zen-of.html' title='From Business To Buttons 09: The Zen of presentation design &amp; delivery'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7290244601455078092</id><published>2009-06-02T21:10:00.005+02:00</published><updated>2009-06-12T18:54:06.407+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Communication'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation'/><title type='text'>Lets do the wave together</title><content type='html'>If you haven'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'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="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/v_UyVmITiYQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/v_UyVmITiYQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&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="http://googleblog.blogspot.com/2009/05/went-walkabout-brought-back-google-wave.html"&gt;Went Walkabout. Brought back Google Wave.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7290244601455078092?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7290244601455078092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/lets-do-wave-together.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7290244601455078092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7290244601455078092'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/06/lets-do-wave-together.html' title='Lets do the wave together'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5055481968591966487</id><published>2009-04-26T20:46:00.003+02:00</published><updated>2009-08-26T20:09:46.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFSAdminTool'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><title type='text'>TFS Administration Tool Version 1.4 in now available for download</title><content type='html'>Today we release v1.4 of TFS Administration Tool (you can download it &lt;a href="http://tfsadmin.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24283#DownloadId=66678"&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="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2009/04/26/team-foundation-server-administration-tool-version-1-4-has-been-released-on-codeplex.aspx"&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="http://tfsadmin.codeplex.com/"&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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5055481968591966487?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5055481968591966487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/04/tfs-administration-tool-version-14-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5055481968591966487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5055481968591966487'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/04/tfs-administration-tool-version-14-in.html' title='TFS Administration Tool Version 1.4 in now available for download'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6763660655163250474</id><published>2009-03-22T23:24:00.003+01:00</published><updated>2009-03-22T23:37:03.520+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MiX09'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Services'/><title type='text'>What's New in Microsoft SQL Data Services</title><content type='html'>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="http://videos.visitmix.com/MIX09/T06F"&gt;What&amp;#39;s New in Microsoft SQL Data Services - MIX Videos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's a talk that really doesn't present any really new fantastic technologies and that'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;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6763660655163250474?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6763660655163250474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/whats-new-in-microsoft-sql-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6763660655163250474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6763660655163250474'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/whats-new-in-microsoft-sql-data.html' title='What&apos;s New in Microsoft SQL Data Services'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7769885865758232504</id><published>2009-03-13T21:52:00.005+01:00</published><updated>2009-03-13T22:25:29.807+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Sql Data Services - A real cinderella story!</title><content type='html'>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've been a little slow on my blog reading) he announce what'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'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="http://blogs.msdn.com/ssds/archive/2009/03/10/9469228.aspx"&gt;The no spin details on the new SDS features&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ssds/archive/2009/03/12/9471765.aspx"&gt;First round of Questions and Answers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7769885865758232504?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7769885865758232504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/sql-data-services-real-cinderella-story.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7769885865758232504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7769885865758232504'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/sql-data-services-real-cinderella-story.html' title='Sql Data Services - A real cinderella story!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1415586424169249673</id><published>2009-03-13T21:24:00.002+01:00</published><updated>2009-03-13T21:25:33.244+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='TED 2009'/><title type='text'>Minority Report is coming to a neighbourhood near you!</title><content type='html'>Yesterday I watch a presentation from TED 2009 where &lt;a href="http://www.ted.com/index.php/speakers/pattie_maes.html"&gt;Pattie Maes&lt;/a&gt; from MIT Media Lab'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="http://peterblomqvist.blogspot.com/2009/02/siftables-toy-blocks-that-think.html"&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="http://www.ted.com/talks/pattie_maes_demos_the_sixth_sense.html"&gt;Pattie Maes demos the Sixth Sense | Video on TED.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1415586424169249673?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1415586424169249673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/minority-report-is-coming-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1415586424169249673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1415586424169249673'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/minority-report-is-coming-to.html' title='Minority Report is coming to a neighbourhood near you!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3687561747397605418</id><published>2009-03-03T21:23:00.004+01:00</published><updated>2009-03-03T21:39:25.747+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Build Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Build'/><title type='text'>Finally a proper book about MSBuild and Team Build</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_XY57yl89XM0/Sa2Ulcd4r_I/AAAAAAAAAJ0/2ktZtoUZqe8/s1600-h/msbuild.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_XY57yl89XM0/Sa2Ulcd4r_I/AAAAAAAAAJ0/2ktZtoUZqe8/s200/msbuild.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5309062906757296114" /&gt;&lt;/a&gt;&lt;br /&gt;I just finnished reading &lt;a href="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"&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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3687561747397605418?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3687561747397605418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/finally-proper-book-about-msbuild-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3687561747397605418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3687561747397605418'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/finally-proper-book-about-msbuild-and.html' title='Finally a proper book about MSBuild and Team Build'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1439237408921907978</id><published>2009-03-02T20:22:00.005+01:00</published><updated>2009-08-26T20:17:31.527+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>FathomDB a relational database in the cloud</title><content type='html'>I've been playing around with how to store your data in a cloudbased environment, mainly I'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="http://fathomdb.com/about/home"&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'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'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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1439237408921907978?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1439237408921907978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/fathomdb-relational-database-in-cloud.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1439237408921907978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1439237408921907978'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/03/fathomdb-relational-database-in-cloud.html' title='FathomDB a relational database in the cloud'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9151774793179924421</id><published>2009-02-25T21:54:00.005+01:00</published><updated>2009-02-25T22:03:33.728+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><title type='text'>Visual Studio 2010 IDE Goes WPF!</title><content type='html'>I just went through my backlog of blog posts (incredible how fast they pile up) and stubled upon a post by Jason Zander from the Visual Stduio 2010 team about the new look and feel of the IDE. As indicated by the CTP bits from PDC08 and the new .NET 4.0 designers we could expect more changes in the good old Visual Studio IDE. It looks very slick as you can see in the screenshoot in Jasons post &lt;a href="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-&lt;br /&gt;studio-2010.aspx"&gt;A New Look for Visual Studio 2010&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9151774793179924421?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9151774793179924421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/visual-studio-2010-goes-wpf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9151774793179924421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9151774793179924421'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/visual-studio-2010-goes-wpf.html' title='Visual Studio 2010 IDE Goes WPF!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-611635750290523487</id><published>2009-02-14T12:25:00.005+01:00</published><updated>2009-02-15T15:29:30.830+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VSTS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Build'/><title type='text'>Problems with getting the new TargetsNotLogged feature to work in VSTS2008 SP1</title><content type='html'>I guess many people have hade similar experiences as us since upgrading to TFS 2008 with build logs being way to verbose. Fourtunately SP1 fixed this problem for us like Aaron Hallberg describes in his post &lt;em&gt;&lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2008/05/05/orcas-sp1-tfs-build-changes.aspx"&gt;"Orcas SP1 TFS Build Changes"&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Unfourtunately there was a misstake in this patch which lead to only the first project reference got eliminated (also described by Aaron in this post &lt;em&gt;&lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2009/01/30/targetsnotlogged-hotfix-available.aspx"&gt;"TargetsNotLogged Hotfix Available"&lt;/a&gt;&lt;/em&gt;). But the good news is we have a &lt;a href="http://code.msdn.microsoft.com/KB958845"&gt;hotfix&lt;/a&gt; (kinda obvious by the title in the above mentioned post).&lt;br /&gt;&lt;br /&gt;So why the heck am I writing this post? Well as it turns out there seems to be a glitch in the installer when installing SP1 on a build server, the problem is that the new version of the file &lt;em&gt;"Microsoft.TeamFoundation.Build.targets"&lt;/em&gt; is not installed. So what you need to do is to copy it from a development machine running any team edition and replace the one on your build servers, you can find the file under the following path: &lt;em&gt;C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Don't forget to make sure that you are copying the file from a machine that has SP1 installed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE 2009-02-15:&lt;/strong&gt; As Buck points out in the comment you only have this problem if you can keep your fingers out of the cookie jar :) (I know I couldn't) and have made any changes to your &lt;em&gt;"Microsoft.TeamFoundation.Build.targets"&lt;/em&gt; file. If this is the case then the installer will not replace it since it doesn't consider it to be the same file since it used the original datestamp on the file when patching.&lt;br /&gt;&lt;br /&gt;Also I missed that my good friend &lt;a href="http://olausson.net/blog/default.aspx"&gt;Mathias Olausson&lt;/a&gt; also posted some notes on this issue in particular he some info on how you could quickly verify if you have this problem or not which I completely forgot about:&lt;br /&gt;&lt;blockquote&gt;open your "Microsoft.TeamFoundation.Build.targets" file and check that it contains the line &amp;ltTargetsNotLogged Condition=" '$(TargetsNotLogged)' == '' "&amp;gtGetTargetPath;GetNativeManifest;GetCopyToOutputDirectoryItems...&lt;/blockquote&gt;have a look a &lt;a href="http://olausson.net/blog/2009/02/12/ImprovedBuildPerformanceWithTeamBuildSP1HotfixKB958845.aspx"&gt;Improved build performance with Team Build SP1 + hotfix KB958845&lt;/a&gt; to read the whole post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-611635750290523487?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/611635750290523487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/problems-with-getting-new.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/611635750290523487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/611635750290523487'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/problems-with-getting-new.html' title='Problems with getting the new TargetsNotLogged feature to work in VSTS2008 SP1'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4078436144536860231</id><published>2009-02-12T21:59:00.002+01:00</published><updated>2009-02-12T22:02:50.129+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='TED 2009'/><title type='text'>Siftables, the toy blocks that think</title><content type='html'>I just watch the latest talk from TED 2009 given by &lt;a href="http://web.media.mit.edu/~dmerrill/siftables.html"&gt;David Merrill&lt;/a&gt; who is a grad student at MIT, where he is working on new technologies for interacting with digital media. In his talk he gives and absolutely awsome demo on their current project called Siftables, it is really awsome and I think this will have some major impact on how we think about interacting with computers atleast when it comes to dealing with digital media.&lt;br /&gt;&lt;br /&gt;It's a short presentation only 7 mins so take a break from whatever your doing and have a look: &lt;strong&gt;&lt;a href="http://www.ted.com/talks/david_merrill_demos_siftables_the_smart_blocks.html"&gt;David Merrill demos Siftables, the smart blocks&lt;/a&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4078436144536860231?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4078436144536860231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/siftables-toy-blocks-that-think.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4078436144536860231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4078436144536860231'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/siftables-toy-blocks-that-think.html' title='Siftables, the toy blocks that think'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7128486160806113193</id><published>2009-02-10T12:03:00.000+01:00</published><updated>2009-02-10T12:04:19.447+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><title type='text'>Getting started with Azure: Watch thoose VM hours!</title><content type='html'>About a week or two ago I recieved my invitation to participate in the Azure CTP, unfourtunately I was in the middle of reinstalling with Windows 7 Beta 1 then and discovered that the Azure SDK didn't function properly at the momement so I had to setup yet another development machine.&lt;br /&gt;&lt;br /&gt;Anyways, I'm finally on track with the Azure stuff and started playing around it. It was a breeze to get a simple hello world kind of service up and running, altough I'm expecting to hit some snags later on once I get into more details in a more real world like scenario.&lt;br /&gt;&lt;br /&gt;The warning though as the title of this post states is that you can go through your alloted VM hours quickly if you don't cleanup apropriately. I did some experimenting afer talking to a good friend that knew about some problems with running out of the alloted hours.&lt;br /&gt;&lt;br /&gt;The VM hours starts ticking as soon as you have started to deploy to the staging server no matter what state your service is in once you've uploaded it the clock starts ticking. Given that you get 2000 VM hours you can run a service for 83 days, I'm not sure what the deal is if you upload multiple services since I didn't try that. So the leasson is delete your services if you aren't working with them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7128486160806113193?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7128486160806113193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/getting-started-with-azure-watch-thoose.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7128486160806113193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7128486160806113193'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/getting-started-with-azure-watch-thoose.html' title='Getting started with Azure: Watch thoose VM hours!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-8258004456827310545</id><published>2009-02-06T21:45:00.002+01:00</published><updated>2009-02-06T21:47:10.599+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><title type='text'>Monitoring the health of your TFS servers using "TFS Performance Report Pack"</title><content type='html'>Grant Holliday is surely a swell dude :) before he joined Microsoft to work with Team System he gave us an awsome report to track performance on our TFS through a performance heat map report (you can find it &lt;a href="http://ozgrant.com/2008/04/05/tfs-performance-heat-map-reporting-services-report/"&gt;here&lt;/a&gt; if you aren't already running it be sure to give it a try).&lt;br /&gt;&lt;br /&gt;No he is back with even more goodies in what look like it will become part of a future power tools release, namely the TFS Performance Report Pack which is loaded with reports to monitor the health of your TFS servers (you can download it and read more about the reports &lt;a href="http://blogs.msdn.com/granth/archive/2009/02/03/announcing-tfs-performance-report-pack.aspx"&gt;here&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-8258004456827310545?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/8258004456827310545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/monitoring-health-of-your-tfs-servers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8258004456827310545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8258004456827310545'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/monitoring-health-of-your-tfs-servers.html' title='Monitoring the health of your TFS servers using &quot;TFS Performance Report Pack&quot;'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7414957448449526166</id><published>2009-02-04T14:24:00.005+01:00</published><updated>2009-08-26T20:27:10.198+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Win7 From the Trenches: Update on running ITunes 8 in VirtualBox</title><content type='html'>Just wanted to give some feedback on running ITunes 8 in a virtualized environment, even though it works good enough I have had to revert to using my server (running Windows 2008) as my ITunes machine :) abit weird but hey I need my ITunes...&lt;br /&gt;&lt;br /&gt;The reason for this has to do with the fact that my laptop has a wireless network adapter that do not support &lt;a href="http://en.wikipedia.org/wiki/Promiscuous_mode"&gt;promiscuous mode&lt;/a&gt;. This results in me having to use the "NAT" feature of VirtualBox and it is simply dead slow, it is impossible to work with any kind of downloads from ITunes. &lt;br /&gt;&lt;br /&gt;So unless your network card supports &lt;em&gt;"promiscuous mode"&lt;/em&gt; you shouldn't use the solution describe in my previous post: &lt;a href="http://peterblomqvist.blogspot.com/2009/01/win7-from-trenches-getting-itunes-8-to.html"&gt;Win7 From the Trenches: Getting ITunes 8 to run on Windows 7 Beta 1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7414957448449526166?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7414957448449526166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/win7-from-trenches-update-on-running.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7414957448449526166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7414957448449526166'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/win7-from-trenches-update-on-running.html' title='Win7 From the Trenches: Update on running ITunes 8 in VirtualBox'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5742542485354328059</id><published>2009-02-04T14:19:00.002+01:00</published><updated>2009-02-04T22:48:26.395+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyper-V'/><title type='text'>Win7 From the Trenches: Enabling Hyper-V Remote Administration</title><content type='html'>As I've written in my earlier posts I had some problems locating the Hyper-V administration console under Windows 7 Beta 1. As it turns out it's actually quite easy (found a nice little post on the subject &lt;a href="http://blogs.msdn.com/dstfs/archive/2009/01/22/hyper-v-remote-administration-from-windows-7.aspx"&gt;here&lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;All you have to do is download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=82516c35-c7dc-4652-b2ea-2df99ea83dbb&amp;displaylang=en"&gt;Remote Server Administration Tools for Windows 7&lt;/a&gt;&lt;br /&gt; and install it, unfourtunatelly this simple puts the bits on your machine (this is what got me) and you have to explicitly enable this particular feature.&lt;br /&gt;&lt;br /&gt;Todo this you'll have to open your control panel and click on the &lt;em&gt;“Turn Windows Features on or off”&lt;/em&gt;, then you'll have to locate the "Remote Server Administration Tools" and under there you'll find it under &lt;em&gt;"Role Administration Tools"&lt;/em&gt;. Great so now your set to go, right?&lt;br /&gt;&lt;br /&gt;Nopes if your like me and simply are running in workgroup mode at home the admin tool will not work very well with the hyper-v server unless you do some configuring. Personally I have given up at the moment I did follow the guidance provided by the eminient John Howard in his post: &lt;a href="http://blogs.technet.com/jhoward/archive/2008/11/14/configure-hyper-v-remote-management-in-seconds.aspx"&gt;Configure Hyper-V Remote Management in seconds&lt;/a&gt;. It simply won't work for me and I'll give it another try once I have some time over to create an proper domain for my machines in my home network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5742542485354328059?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5742542485354328059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/win7-from-trenches-enabling-hyper-v.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5742542485354328059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5742542485354328059'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/02/win7-from-trenches-enabling-hyper-v.html' title='Win7 From the Trenches: Enabling Hyper-V Remote Administration'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3525728677154067086</id><published>2009-01-23T18:00:00.002+01:00</published><updated>2009-08-26T20:27:10.199+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Win7 From the Trenches: Getting ITunes 8 to run on Windows 7 Beta 1</title><content type='html'>As I stated in my previous post on my first take on working with Windows 7 I am a IPod user and can not do without my IPod Touch thus I have an urgent need to have ITunes 8 working on my machine. First and for most let me state that if you are using ITunes 8 heavily you should probably consider not converting your primary box to running Windows 7 since the solution I am going to present is not for the faint of heart...&lt;br /&gt;&lt;br /&gt;Actually it not a fix to get ITunes running on Win7 rather it is a workaround that involves a virtual machine running on your Win7 box so you'll have to do the following:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1,&lt;/strong&gt; Install &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; and create a virtual machine select Windows XP as the target OS and create a virtual hard drive that can fit both the OS as well as the size of your ITunes library. &lt;br /&gt;&lt;br /&gt;You might be wondering why you have to use VirtualBox? Instead of VirtualPC, well the answer is simple. VirtualPC have no support for USB devices in the guest OS (VMWare does but that ain't free and VirtualBox is).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2,&lt;/strong&gt; Boot your virtual machine and install Windows XP as your would do using any virtualization tool. Once your done patching install ITunes 8.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3,&lt;/strong&gt; Time for some configuration of the virtual machine. Make sure you map the network correctly so that you can subscribe to podcasts and purchase new applications and songs. Set up a shared directory on the host machine where you can copy your ITunes library (or do it via usb or the network if you prefer). Finally plugin your IPod so it gets detected by the host and create a usb filter on your virtual machine for your IPod.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4,&lt;/strong&gt; Boot up the virtual machine containing your ITunes installation and copy over your existing library to your virtual machine from whatever source you choosed in the previous step. Finally you'll need to authorize the virtual machine to get the syncronization to work (otherwise it will delete all your purchased stuff from your IPod) you can always deauthorize it later once ITunes starts working on Win7.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5,&lt;/strong&gt; Make sure your virtual machine has focus (I usally put it in full screen mode when syncing) and plugin your IPod (most of the times it just works but from time to time it will not work then unplug it and try another usb port and it should work).&lt;br /&gt;&lt;br /&gt;So there you have it, quite abit of work to get it to work. I didn't do any screendumps with detailed instructions since I don't know if there is an huge audience for this post but if that is the case leave a comment to let me know and I'll put together a details instruction. Also I will keep trying any new versions of ITunes on Win7 and let you know if I find a version that seems stable enough to use.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update 2009-02-04:&lt;/strong&gt; Please read my follow up post about performance as well which you can find &lt;a href="http://peterblomqvist.blogspot.com/2009/02/win7-from-trenches-update-on-running.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3525728677154067086?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3525728677154067086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/win7-from-trenches-getting-itunes-8-to.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3525728677154067086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3525728677154067086'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/win7-from-trenches-getting-itunes-8-to.html' title='Win7 From the Trenches: Getting ITunes 8 to run on Windows 7 Beta 1'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6583395545066942199</id><published>2009-01-21T21:43:00.001+01:00</published><updated>2009-01-21T21:51:27.213+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>I'm in beta heaven or is it hell? First impressions on Windows 7 Beta 1</title><content type='html'>A couple of weeks ago when Microsoft released the first public beta version of Windows 7, I kind of had a brain meltdown and decided it was fun to go all out with the beta testing and switch over my main development machine to Windows 7 :)&lt;br /&gt;&lt;br /&gt;In retrospect I'm not sure it was a good investment timewise since I've been suffering abit with some application compalitbilities (I'll go into more details later) and thus I've been dedicating a considerable ammount of time to work around my problem areas.&lt;br /&gt;&lt;br /&gt;First out I gotta say that I really enjoy the new taskbar (it grows on you quickly) and the overall stability and performance are really good for a beta 1, that stated lets have a quick look on my pain points.&lt;br /&gt;&lt;br /&gt;First and foremost I'm an avid user of my IPod Touch and could not imagine life without it and alas it works crappy on Windows 7 (altough that was not all that suprisingly since it had it's fair share of problems on Vista as well). I simply can't get ITunes 8 to work properly (altough I have a work around in the works I'll post more on that later) it crashes my machine with an ugly BSOD or it simply hangs so bad that I have to power off to be able to shutdown the computer. Another really problematic issue with this is that most of the time it won't even start it just spawns up a process without any user interface (you'll see the process but you can't touch it). So if you really rely on your ITunes 8 to function properly you should probably consider testing Windows 7 on another machine.&lt;br /&gt;&lt;br /&gt;Then it was time to install some virus protection and Norton AntiVirus 2009 didn't work properly I was unable to run any updates if just didn't work. However this seems to be a passing problem since after running windows update and rebooting a couple of this all of the sudden it started to work. But fourtenately there seems to be a quick uptake on the antivirus market to support Windows 7 read more in this post &lt;em&gt;&lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/01/14/anti-virus-solutions-for-the-windows-7-beta.aspx"&gt;Anti-Virus Solutions for the Windows 7 Beta&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;After a couple of weird crashes I started to snoop around the device manager and saw a few driver related problems but I managed to work them out by going to HP's homepage and download the Vista drivers and so far it seems to work properly (not so many crashes anymore). I still experience some problems when playing movies using Windows Media Player, from time to time it simply freezes and I have to reboot or it won't start playback of the movie at all (currently I don't know why and it is not that frequent so I'm not gonna dig to deep into that).&lt;br /&gt;&lt;br /&gt;Another issue that bugged me (both very breifly since the problem solver in windows actually told med exactly what to do to solve the problem ... wooot that's not allways the case) but is has to do with running msi installations and you can read more about the problem is this post &lt;em&gt;&lt;a href="http://arstechnica.com/journals/microsoft.ars/2009/01/20/delete-regkey-to-fix-msi-installer-bug-in-windows-7-beta/"&gt;Delete regkey to fix msi installer bug in Windows 7 beta&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;After awhile I started to turn my attention to the sidebar gadgets (Windows 7 has done away with the sidebar that was introduced in Vista, I'm still not totally comfy with that) which now can be place anywhere you like on the desktop. I quickly discovered that nothing happened when I tried to add a gadget, this turned out to be caused by the fact that I've disabled UAC and then you can't have gadgets :( I really hope they work this out in later versions. If you are really diehard about the sidebar you can still enable it just follw the instructions in this blog post &lt;em&gt;&lt;a href="http://www.mydigitallife.info/2008/12/30/workaround-to-run-windows-vista-bar-style-sidebar-in-windows-7/"&gt;Workaround to Run Windows Vista Bar Style Sidebar in Windows 7&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;One thing I still haven't solve it the fact that I can't seem to get the Hyper-V Administration Console to work (I just can't find it! And yes I've downloaded and installed the update) when I get the time to work this out I'll post how I managed to do it.&lt;br /&gt;&lt;br /&gt;Finally and equally bad as the ITunes problem is the fact that the Azure SDK CTP doesn't function properly on Windows 7 so I end up running my Azure labs in an virtual machine instead. I'm currently considering to try out the MED-V Beta 1 to get the development environment to run seamlessly in the host os but I'm not sure I'm that brave (MED-V is currently not supported on Windows 7). Anyway if you want more details on the Azure SDK issue go to this post &lt;em&gt;&lt;a href="http://www.azurejournal.com/2009/01/windows-azure-sdk-jan-2009-ctp-doesnt-work-on-windows-7-beta/"&gt;Windows Azure SDK Jan 2009 CTP doesn’t work on Windows 7 Beta  AzureJournal - Windows Azure Blog&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;That's all folks :) I'm gonna keep posting on the topic whenever I bump into problems and solve them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6583395545066942199?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6583395545066942199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/im-in-beta-heaven-or-is-it-hell-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6583395545066942199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6583395545066942199'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/im-in-beta-heaven-or-is-it-hell-first.html' title='I&apos;m in beta heaven or is it hell? First impressions on Windows 7 Beta 1'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4748302917422738553</id><published>2009-01-21T09:35:00.002+01:00</published><updated>2009-01-21T09:36:31.791+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><title type='text'>MED-V 1.0 available as Beta (finally a windows alternative to VMWare Fusion and Parallels Desktop)</title><content type='html'>I read about MED-V (Microsoft Enterprise Desktop Virtualization) a while back and was happy to see this addtion to the microsoft virtualization family. &lt;br /&gt;&lt;br /&gt;The main goal with the product is to let you deal with noncompatile applications when upgrading your os, atleast that seems to be the major benefit altough if you read more about it on the official MED-V &lt;a href="http://www.microsoft.com/windows/enterprise/products/med-v.aspx"&gt;website&lt;/a&gt; it looks like there might be some intressting areas of application in the future.&lt;br /&gt;&lt;br /&gt;You can go download the &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=665"&gt;beta&lt;/a&gt; and start playing around with it but once it becomes final you will only be available through the &lt;em&gt;"Microsoft Desktop Optimization Pack"&lt;/em&gt; which you only get if you have purchased a &lt;em&gt;"Windows Client Software Assurance"&lt;/em&gt; license.&lt;br /&gt;&lt;br /&gt;You might wonder what my intrest in this product is since after all my main line of work is not dealing with the infrastructure (although I need to keep tabs on it)? The thing is that in dealing with architectural issues and process development I tend to work alot with products in beta of alot of virtual machines with different configurations to evaulate new ideas and technologies. &lt;br /&gt;&lt;br /&gt;It mainly boils down to one thing that has bugged me alot since I saw such products as &lt;a href="http://www.vmware.com/vmwarestore/fusion-recommended.html?src=refpropil&amp;pt=0001"&gt;VMWare Fusion&lt;/a&gt; and &lt;a href="http://www.parallels.com/landingpage/dskd10/?gclid=CK3rwritm5gCFQ6wQwodYzVFmg"&gt;Parallels Desktop&lt;/a&gt; on the Mac. I really missed the ability to run applications in a seamless fashion without having to dealing with switching between different virtual machine. It finally looks like I will be able to do this with MED-V, a little word of warning though beta 1 does not support Windows 7 as a host environment yet altough there are rumors that it will become available soon.&lt;br /&gt;&lt;br /&gt;For more information read the following posts on the subject:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/springboard/archive/2009/01/15/beta-1-for-microsoft-enterprise-desktop-virtualization-1-0-med-v-is-now-available.aspx"&gt;"Springboard Series - The Resource for Windows Desktop IT Professionals : Beta 1 for Microsoft Enterprise Desktop Virtualization 1.0 (MED-V) is now available"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/mdop/archive/2009/01/15/microsoft-enterprise-desktop-virtualization-med-v-beta-is-publicly-available.aspx"&gt;Microsoft Enterprise Desktop Virtualization (MED-V) Beta is publicly available&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4748302917422738553?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4748302917422738553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/springboard-series-resource-for-windows.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4748302917422738553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4748302917422738553'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/springboard-series-resource-for-windows.html' title='MED-V 1.0 available as Beta (finally a windows alternative to VMWare Fusion and Parallels Desktop)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4962290567916790672</id><published>2009-01-05T20:36:00.004+01:00</published><updated>2009-01-05T20:42:49.505+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extending'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><title type='text'>I've got an itch..... To code :)</title><content type='html'>I find myself suffering abit from lack of pet projects to code on and I thought I'd just ask you guys that read my blog if there are any particular needs that needs to be addressed when using TFS 2008?&lt;br /&gt;&lt;br /&gt;Please post any ideas as comments in response to this post and maybe we can get something going for 2009 (kind of miss working on &lt;a href="http://www.codeplex.com/tfsbuildlab"&gt;TFSBuildLab&lt;/a&gt;). So get those creative juices flowing so we can start building some usefull extensions to TFS 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4962290567916790672?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4962290567916790672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/ive-got-itch-to-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4962290567916790672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4962290567916790672'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/ive-got-itch-to-code.html' title='I&apos;ve got an itch..... To code :)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6858029318709895180</id><published>2009-01-01T23:18:00.001+01:00</published><updated>2009-01-01T23:19:16.189+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><title type='text'>Geekonomics ... What does a bug really cost?</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/SV0eiONicGI/AAAAAAAAAJk/lwQLsz0keN4/s1600-h/geekonomics.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 87px; height: 130px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SV0eiONicGI/AAAAAAAAAJk/lwQLsz0keN4/s200/geekonomics.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5286415110882095202" /&gt;&lt;/a&gt;I recently finnished reading &lt;a href="http://www.amazon.com/Geekonomics-Real-Cost-Insecure-Software/dp/0321477898/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1230839228&amp;sr=8-1"&gt;Geekonomics: The Real Cost of Insecure Software&lt;/a&gt; which is a very well written analysis of the problems caused by insecure software (or poorly written software if you like). This is a book that should be read by preferably everyone invovled in the development process, but at the very least all you architects out there should consider it a must read.&lt;br /&gt;&lt;br /&gt;It paints a pretty grim picture, but is in now way exaggerated. Technology is digging itself deeper and deeper into the very fabric of our socities which brings us great advantages but also presents some very dangerous scenarios. This is a subject that has been nagging in the back of my head for about a decade or so (about the time when my first son was born), mostly when you talk on a topic like this people tend to think you are exaggerating. However as the book clearly shows there are numerous of well documented cases where the shit really hit the fan.&lt;br /&gt;&lt;br /&gt;One such case is the hacker attack on Estonia in 2007 that more or less shutdown the goverment in Estonia just because they decided to take down a russian war monumental. Another incident is in the epilogue of the book which is a little nugget about when when world war 3 almost started due to a a software glitch in the russian radar system. &lt;br /&gt;&lt;br /&gt;So whats the deal why do we have all these problems with software? Well there are many factors but one prominent one is the fact that most software vendors are operating in a marketbased economy without any governmental regulations in place. The market is supposed to be selfregulatory, but when competition is driven by constantly creating new features and not necessarily by utility secure software is not allways on top of the list. Writing truely secure software is very hard and comes with a high monetary cost but little or no &lt;em&gt;"bling bling"&lt;/em&gt;. The whole software industry is operating in a &lt;em&gt;"just ship it"&lt;/em&gt; mode or as Guy Kawasaki very eloquently put it:&lt;blockquote&gt;&lt;strong&gt;“Don't worry, be crappy. Revolutionary means you ship and then test...”&lt;/strong&gt;&lt;/blockquote&gt;The author concludes that the tipping point for when it is impossible to take back control over software is rapidly approaching. We need to put into place govermental regulations for markets that affect our infrastructure as a whole, licensing of software developers needs to be put into place and we need to take away the absolute immunity granted to the software manufactors by adhesion contracts.&lt;br /&gt;&lt;br /&gt;He also proposes a intressting idea about vunerability taxes that would work similar to pollution taxes the more defects you unleash on the market the higher the taxation. This an intressting concept but it has some issues when applied in a competitive market.&lt;br /&gt;&lt;br /&gt;Personally I think that we need to put all the above into place but we also need to apply the mentality of &lt;strong&gt;"act local, think global"&lt;/strong&gt; and as software developers we need to take pride in what we do and consider our work more of a craftmanship.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6858029318709895180?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6858029318709895180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/geekonomics-what-does-bug-really-cost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6858029318709895180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6858029318709895180'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2009/01/geekonomics-what-does-bug-really-cost.html' title='Geekonomics ... What does a bug really cost?'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XY57yl89XM0/SV0eiONicGI/AAAAAAAAAJk/lwQLsz0keN4/s72-c/geekonomics.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4154485274808181785</id><published>2008-12-03T19:00:00.003+01:00</published><updated>2008-12-03T19:07:00.955+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista SP2'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyper-V'/><title type='text'>Sadly no Hyper-V on Vista SP2</title><content type='html'>I was really happy after reading Mary-Jo Foleys post on &lt;a href="http://blogs.zdnet.com/microsoft/?p=1745"&gt;Vista SP2: What’s inside?&lt;/a&gt; which indicated that Vista SP2 would include Hyper-V support. &lt;br /&gt;&lt;br /&gt;Unfourtunately my crappy laptop is only x86 I searched around abit and a found this little tadbit of info at &lt;a href="http://blogs.technet.com/springboard/archive/2008/12/02/windows-vista-sp2-what-s-inside-what-s-important.aspx"&gt;the springboard&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Hyper-V * &lt;br /&gt;Windows Vista SP2 includes Hyper-V™ technology, enabling full virtualization of server workloads&lt;br /&gt;&lt;br /&gt;*To clarify, Hyper-V is not included in Windows Vista SP2, it is part of the Windows Server 2008 service pack. This means that when you install SP2 for Windows Server 2008, or if you install a slipstreamed version of Windows Server 2008 with SP2, the RTM version of the Hyper-V role will be included. Hyper-V was released after Windows Server 2008, which means that the role you currently install is a pre-release role and needs to be updated to bring it up to RTM. This update will be applied (only if necessary) automatically when you install SP2.&lt;/blockquote&gt;&lt;br /&gt;So I guess no Hyper-V on Vista :( and since there started to popup postings about this I thought I'd just share this before people start formating the hard drives in euphoria (I know I almost did).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4154485274808181785?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4154485274808181785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/12/sadly-no-hyper-v-on-vista-sp2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4154485274808181785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4154485274808181785'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/12/sadly-no-hyper-v-on-vista-sp2.html' title='Sadly no Hyper-V on Vista SP2'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2530546052661853718</id><published>2008-12-01T10:28:00.002+01:00</published><updated>2009-08-26T20:23:03.073+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Modeling'/><title type='text'>Random thoughts on how "Oslo" is going to affect the every day life of an developer on the Microsoft platform...</title><content type='html'>I've been pondering abit on how this "Oslo" business is going to affect me as a developer, in what ways will it change the way I architect and implement the applications I'm working on? I'm sure that this will be a journey that will take a while and surely will result in further postings on the subject. &lt;br /&gt;&lt;br /&gt;The eminent mister Aaron Skonnard has written a looong and very well written article &lt;a href="http://www.pluralsight.com/community/blogs/aaron/archive/2008/11/03/introducing-quot-oslo-quot.aspx"&gt;Introducing "Oslo"&lt;/a&gt; that I recommend that you read. I will not go into that detail but rather skim the surface and inject a few of my own reflections on how this will affect me as a developer.&lt;br /&gt;&lt;br /&gt;"Oslo" is a modeling platform that consists of three things:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/STGWtNeaKpI/AAAAAAAAAH4/q8SwJLm8n-A/s1600-h/oslo1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 120px; height: 120px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/STGWtNeaKpI/AAAAAAAAAH4/q8SwJLm8n-A/s200/oslo1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274162342083046034" /&gt;&lt;/a&gt;A Language called "M" used for authoring models and textual DSLs. I think Don Box summed it up is pretty good as usally in his presentation of the language at PDC08. &lt;br /&gt;&lt;br /&gt;He states that is a language about data, in fact the process of capturing, schematizing and transforming data. He also clearly states that "M" is not a object oriented language and neither a replacement for T-SQL. &lt;br /&gt;&lt;br /&gt;"M" actually consists of three parts: &lt;strong&gt;MSchema&lt;/strong&gt; which is what you use to schematize your data, &lt;strong&gt;MGrammar&lt;/strong&gt; lets you create textual DSLs and finally &lt;strong&gt;MGraph&lt;/strong&gt; which is what is the compile result of the input to the "M" compiler.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/STGWtKlvPFI/AAAAAAAAAIA/5K75Ta5nzMg/s1600-h/oslo2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 120px; height: 120px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/STGWtKlvPFI/AAAAAAAAAIA/5K75Ta5nzMg/s200/oslo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274162341308480594" /&gt;&lt;/a&gt;A tool called "Quadrant for interacting visually with models. This is a very slick WPF based application which is extremly customizable. It looks very nice but it feels a little bit like drowning :) when you start using it.&lt;br /&gt;&lt;br /&gt;Hopefully this will be easier to work with when it release since some of the slides at the PDC08 hints at different SKUs are to be made avaiable but I am speculating here so don't hold me acountable :) the once mentention where:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Quadrant Web Editor (ASP.NET)&lt;br /&gt;Quadrant Service Editor (WCF/WF)&lt;br /&gt;Quadrant Entity Editor (Entity Framework)&lt;br /&gt;Quadrant Schema Editor (SQL/XML)&lt;/strong&gt;&lt;/blockquote&gt;The way you work with "Quadrant" is to create workspaces of infinite size that are zoomable (a really cool feature is to popup a model element to the foreground, letting you work with a part of the model while have a nice overview picture of the complete model). The vision behind this is to be working with large wall mounted multitouch screens in the conference rooms (remember Minority Report, we are not that for from this now).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XY57yl89XM0/STGWtQQIGmI/AAAAAAAAAII/TJhWj9K75ks/s1600-h/oslo3.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 120px; height: 120px;" src="http://1.bp.blogspot.com/_XY57yl89XM0/STGWtQQIGmI/AAAAAAAAAII/TJhWj9K75ks/s200/oslo3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274162342828448354" /&gt;&lt;/a&gt;A Repository for storing and sharing your models. The vision is that most products from Microsoft will use the repository for storing their configuration data and such, first out is the new application server "Dublin" and then in future versions System Center and Team Foundation Server has announce that they will move towards using the repository.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So to be able to start talking about what we can use this model driven platform for we kind of need to define &lt;strong&gt;what a model is&lt;/strong&gt;, or atleast what Microsoft are talking about in regards to "Oslo". You can categories models into three general categories: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Models for communication&lt;/em&gt;&lt;/strong&gt;, this is typically you boilerplate UML diagrams of your applications that you produce upfront and often then forget about. The main thing here is to communicate intent when creating your software and bridge the gap in between users and developers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Models assisting development&lt;/em&gt;&lt;/strong&gt;, pretty much when you take the communication models and generate code from this. Serves as a great kickstart when working with greenfeild development but in my personal experience the efforts that went into reverse enginering of code into model and vice versa (like in tools such as Rational Rose) never really succeded altough people keep trying.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Models driving development&lt;/em&gt;&lt;/strong&gt;, this is about declarative programming and there is a whole slew of examples such as HTML, CSS, XAML, BPEL, .NET Attribute, .NET Configuration and COM+ to name a few. This is the space where Microsoft wants to change the way we do software with "Oslo".&lt;br /&gt;&lt;br /&gt;A few examples of applications that are model driven (or data driven if you prefer it) you can look a Microsoft Sharepoint and Microsoft Dynamics. Both these applications are all about customization and they are driven by a repository containing their models. You have most likely written something similar yourselves (I know I have) maybe not on the magnitued of Sharepoint but still model driven applications are not really not that uncommon. The definition of model in this context is that the way the application looks and functions is driven by a model in some form of a repository).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's enough background for now, what are we gonna do with this Oslo stuff then? Well for one thing we will be using it all over the place when working with various microsoft products. It's not going to change our everyday situation as developers very much since we will continue to work in pretty much the same fashion as previously, but there are a whole new range of integration possibilities that opens up once we go for the central repository with the models both for us and for Microsoft. &lt;br /&gt;&lt;br /&gt;I can see three areas of usage for the everyday developer using Oslo today:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Modeling our domains&lt;/strong&gt; in a more friendly fashion and then use the complier to generate the SQL statements needed to create the database. One thing that will be a challenge with this however would be dealing with none greenfeild development and evolving your schema overtime. From what I have seen so far these areas are yet to be solved fully.&lt;br /&gt;&lt;br /&gt;One really nice feature here would be the fact that we can really easily create a textual DSL for working with the domain that our users could understand and use for populating the needed configuration data, we might be able to simplify data entrance to such a degree that writing a maintenance client wouldn't be needed. I seriously doubt that this would work for more complex data, but it is still an intressting idea since we could infer compliance through the DSLs syntax and thus prevent corrupt data from being inserted.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Simplify and automate development&lt;/strong&gt;, this is an area where "Oslo" really shines. Since it is so easy to create a textual DSL and with the available framework that we are provided with we could easliy create an simplified version of for instance WiX (which is in itself is an abstraction over MSI) adding yet another layer of abstraction over the installation process.&lt;br /&gt;&lt;br /&gt;Altough you can almost always speed up development or solve a tough problem using another layer of abstraction there is one drawback with this approach and that is the fact that the more layers of abstraction the more power over the details we loose. Thus abstracts like these pretty much always leads to homogenity across an domain which is good for performance but bad for innovation.&lt;br /&gt;&lt;br /&gt;I can personally see a bunch of places that we can use "Oslo" in our own frameworks we have build at my work. In these situations we strive for homogenity and speed of development and really the reason for not rolling your own little DSL is the sheer costs assosiated with writing compilers and such.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Drive our application with models&lt;/strong&gt;, this is the most intresting one in my oppinion. I remember an application that I wrote back in 1998 where we wanted to produce a dynamic user interface based on templates (we even went the extra mile to build a template designer as well) using java and reflection and even though this was a very fun ride it cost alot of money to implement. Had we done this targeting "Oslo" and WPF instead it would have been a breeze in comparision you can check out Josh Williams post &lt;a href="http://blogs.msdn.com/joshwil/archive/2008/11/12/using-mgrammar-to-create-net-instances-through-xaml.aspx"&gt;Using MGrammar to create .Net instances through Xaml&lt;/a&gt; for a really cool example of dynamically producing XAML using a textual DSL.&lt;br /&gt;&lt;br /&gt;Erik Wynne Stepp also wrote a good &lt;a href="http://erikwynne.blogspot.com/2008/11/oslo-42.html"&gt;post&lt;/a&gt; on the subject of dynamic interfaces and the impact of "Oslo" which is a good read as well.&lt;br /&gt;&lt;br /&gt;If you want to get more information about what "Oslo" is about you can watch and read the following material:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/sv-se/oslo/default(en-us).aspx"&gt;"Oslo" Developer Center&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL23/"&gt;A Lap around "Oslo"&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL27/"&gt;"Oslo": The Language&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL28/"&gt;"Oslo": Repository and Models&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL31/"&gt;"Oslo": Building Textual DSLs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL18/"&gt;"Oslo": Customizing and Extending &lt;br /&gt;the Visual Design Experience&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.biztalkgurus.com/media/p/21922.aspx"&gt;First Look at M – Oslo’s Modeling Language&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.biztalkgurus.com/media/p/21920.aspx"&gt;First Look at Quadrant - Oslo’s Modeling Tool&lt;/a&gt;   &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.modelsremixed.com/"&gt;Models Remixed&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd129870.aspx"&gt;MGrammar in a Nutshell&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd129869.aspx"&gt;MGrammar Language Specification&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2530546052661853718?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2530546052661853718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/random-thoughts-on-how-oslo-is-going-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2530546052661853718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2530546052661853718'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/random-thoughts-on-how-oslo-is-going-to.html' title='Random thoughts on how &quot;Oslo&quot; is going to affect the every day life of an developer on the Microsoft platform...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XY57yl89XM0/STGWtNeaKpI/AAAAAAAAAH4/q8SwJLm8n-A/s72-c/oslo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5976086552136712261</id><published>2008-11-27T21:48:00.001+01:00</published><updated>2008-11-27T21:48:20.053+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quality Assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Lab'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><title type='text'>Will the real slim shady please stand up? ... (VMWare Lab Manager vs Microsoft Team Lab)</title><content type='html'>I've been nagging myself for awhile about why I felt that the offerings of Team Lab felt so familiar and I just remembered why. &lt;br /&gt;&lt;br /&gt;Sometime around spring 2007 I had a peek at a product called &lt;a href="http://www.vmware.com/products/labmanager/"&gt;"VMWare Lab Manager"&lt;/a&gt; to see if we could benefit from it when virtualizing our test lab environements, when never ended up going down that road but it had more to do with the fact the we didn't have the energy to introduce yet another product at that time.&lt;br /&gt;&lt;br /&gt;Guess what though the products are extremly similar just take a look at one of the key goals with Lab Manager:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Capture and Reproduce Software Defects—Every Time&lt;/strong&gt;&lt;br /&gt;Enable developers and testers to quickly reproduce software defects and resolve them earlier in the software lifecycle—and ensure higher quality software and systems. VMware Lab Manager enables “closed loop” defect reporting and resolution through its unique ability to “snapshot” complex multi-machine configurations in an error state, capture them to the library, and make them available for sharing—and troubleshooting—across development and test teams.&lt;/blockquote&gt;&lt;br /&gt;I do believe that Microsoft have been heavily influenced by Lab Manager when designing their Team Lab SKU of Team System, as you can see in the architectural overview of Lab Manager below you get pretty much the same offerings in both products.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XY57yl89XM0/SScocPPKS-I/AAAAAAAAAHY/tsJak1GDGeo/s1600-h/vmware.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 248px;" src="http://4.bp.blogspot.com/_XY57yl89XM0/SScocPPKS-I/AAAAAAAAAHY/tsJak1GDGeo/s400/vmware.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5271226354452024290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One thing that bugs me though is the fact that neither Micrsoft nor VMWare has put the effort into integrating Lab Manager with TFS which has been done with other ALM suites:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Integrate with Leading Test Management Tools&lt;/strong&gt;&lt;br /&gt;Enable users to access VMware Lab Manager seamlessly from within their preferred test management tools. Off-the-shelf integrations with Borland SilkCentral Test Manager and HP Quality Center allow users simply to select the desired multi-tier configuration and Lab Manager will do the rest — automatically provision the test environment, tear down the environment after a test is run, and capture the state of the application, test date and virtual machine configuration in the event of a failed test.&lt;/blockquote&gt;&lt;br /&gt;Maybe this is something for the TFS community to produce? I'm intressted if someone can provide a enviroment for testing with licenses for the VMWare stuff since I don't have access to them myself (if you are intressted in a codeplex project about this let me know).&lt;br /&gt;&lt;br /&gt;So why am I writing this post? Well since the idea about eliminating the dreadful no-repro or it-works-on-my-machine scenario appeals to me, I wanted to make sure that people are aware of the fact that VMWare has an offering in this area as well. Also the fact that you don't have to wait until VSTS 2010 hits the streets is a big plus.&lt;br /&gt;&lt;br /&gt;Another good thing is since Team Lab is going to work with both VMWare and Hyper-V virtualization any effort you put into working with Lab Manager today will easily migrate to Team Lab in the future. There is one drawback with the Team Lab SKU as it looks today compared to Lab Manager and that is the fact that it is very integrated with the new test client (codenamed "Cameo") and as far as I have seen there are no web based management for the Team Lab stuff (yet at least), personally I believe it should be split from the test management since in my experience it is not the testers that provision the lab environments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5976086552136712261?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5976086552136712261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/will-real-slim-shady-please-stand-up.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5976086552136712261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5976086552136712261'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/will-real-slim-shady-please-stand-up.html' title='Will the real slim shady please stand up? ... (VMWare Lab Manager vs Microsoft Team Lab)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XY57yl89XM0/SScocPPKS-I/AAAAAAAAAHY/tsJak1GDGeo/s72-c/vmware.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9075246178865651826</id><published>2008-11-27T14:03:00.001+01:00</published><updated>2008-11-27T14:04:03.644+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>No more "Death-by-PowerPoint" ... Or how to improve your presentational techniques</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/SSqsRGOeUKI/AAAAAAAAAHw/r8k9OUUlxuA/s1600-h/slideology.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 95px; height: 97px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/SSqsRGOeUKI/AAAAAAAAAHw/r8k9OUUlxuA/s400/slideology.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5272215723519660194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/SSqsLew0lrI/AAAAAAAAAHo/3O31bnn9nV4/s1600-h/presentationzeb.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 107px; height: 130px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SSqsLew0lrI/AAAAAAAAAHo/3O31bnn9nV4/s400/presentationzeb.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5272215627026962098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XY57yl89XM0/SSqr7yJVpSI/AAAAAAAAAHg/FD4KCCfr8PY/s1600-h/beyondbulletpoints.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 106px; height: 130px;" src="http://1.bp.blogspot.com/_XY57yl89XM0/SSqr7yJVpSI/AAAAAAAAAHg/FD4KCCfr8PY/s400/beyondbulletpoints.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5272215357352158498" /&gt;&lt;/a&gt;&lt;br /&gt;A while back I did my first public presentation at a conferance and I just didn't feel I managed to pull it off as well as I had wanted todo. So I started to search around for some material and ended up buying a bunch of books that I just finnished reading. &lt;br /&gt;&lt;br /&gt;Since I'm personally comitted to not accidentally causing anymore "death-by-powerpoint" I'll keep posting about my sucesses and failures when ever I feel I have something to contribute with on the subject of presentation design and delivery. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/slide-ology-Science-Creating-Presentations/dp/0596522347/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1227533543&amp;sr=1-2"&gt;Slide:ology&lt;/a&gt; by Nancy Duarte&lt;br /&gt;&lt;br /&gt;This book is truely a must have for all us non-designers that still want to make our presentations memorarble for our audiences. Nancy Durate (one of the persons behind Al Gores successful climat change crisis presentation) has literally poured 20 years of knowledge into this book, the book it self is beutifully presented and is a joy to read. &lt;br /&gt;&lt;br /&gt;It works splendidly as a reference book on your desk for when ever you need to be creative and put together your presntations. I believe her husband is very much right in this quote from the forward of the book:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...slide:ology is destined to become the desk reference for building effective presentations and is a must read for all who present...&lt;/blockquote&gt;&lt;br /&gt;For more information goto &lt;a href="http://www.slideology.com"&gt;slideology.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Presentation-Zen-Simple-Design-Delivery/dp/0321525655/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1227533543&amp;sr=1-1"&gt;Presentation Zen&lt;/a&gt; by Garr Reynolds&lt;br /&gt;&lt;br /&gt;I must say that this book was truely a joy to read, I actually read it from cover to cover in on sitting (almost had to take care of the kids during the day so there where an breif period of none reading).&lt;br /&gt;&lt;br /&gt;The book is all about a state of mind in my oppinion. The author does not present us with a method that we are to follow rigorously to be successful, rather it gives us various pointers on how to create good presentation and become a better presenter.&lt;br /&gt;&lt;br /&gt;Some key take aways are:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Less is more, keep it Simple.&lt;br /&gt;&lt;br /&gt;Go Analog turn off the computer and start with pen and paper.&lt;br /&gt;&lt;br /&gt;Design matters and it is not the icing on the cake, it's the foundation.&lt;br /&gt;A picture says a thousand words.&lt;br /&gt;&lt;br /&gt;Put your self in your audience clothes why are they there?&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;If you are serious about becoming a better presenter you should get a copy of this book since it will most definitly inspire you. For more information goto &lt;a href="http://www.presentationzen.com/&lt;br /&gt;"&gt;presentationzen.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Beyond-Bullet-Points-PowerPoint%C2%AE-Presentations/dp/0735623872/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1227532766&amp;sr=8-1"&gt;Beyond Bullet Points&lt;/a&gt; by Cliff Atkinson&lt;br /&gt;&lt;br /&gt;This book is all about method and it gives you a straight recipie for creating presentations according to the bpp way, include a bunch of templates for getting started.&lt;br /&gt;&lt;br /&gt;Altough it contains alot of really good ideas which I am sure I will use the next time I create a presentation, the book itself is a rather boring read and uses way to many words to get to the point. I ended up skimming the book instead of reading it from cover to cover. This is kind of sad since I believe the author could have conveyed his message in half the pages or less. It is still a book that you should have read if you are working with slide based presentations.&lt;br /&gt;&lt;br /&gt;Some of the key ideas in the book has to do with:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Structure and how the brain processes information.&lt;br /&gt;&lt;br /&gt;3 is a magic number.&lt;br /&gt;&lt;br /&gt;Visual keys through the presentation and important.&lt;br /&gt;&lt;br /&gt;Headlines and illustrations, keep the ammount of information on the slides minimal.&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;I wont go into detail about the method since I expect that the author would not like that, so for more information goto &lt;a href="http://beyondbulletpoints.com/&lt;br /&gt;"&gt;beyondbulletpoints.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apart from reading the books presented in this posting you should start to hang around on a couple of sites as well ... &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net"&gt;SlideShare.net&lt;/a&gt; for studying other presentation designs.&lt;br /&gt;&lt;a href="http://www.iStockPhoto.com"&gt;iStockPhoto.com&lt;/a&gt; is a great place for finding graphics for your presentations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9075246178865651826?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9075246178865651826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/improving-your-presentational.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9075246178865651826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9075246178865651826'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/improving-your-presentational.html' title='No more &quot;Death-by-PowerPoint&quot; ... Or how to improve your presentational techniques'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XY57yl89XM0/SSqsRGOeUKI/AAAAAAAAAHw/r8k9OUUlxuA/s72-c/slideology.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-192710954576406977</id><published>2008-11-21T20:35:00.003+01:00</published><updated>2009-08-26T20:08:49.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quality Assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Test Lab Environment Automation In The Cloud (SkyTap Virtual Lab)</title><content type='html'>Yesterday when I was digging into some more details around Team Lab (the newest SKU of Visual Studio Team System) I stumbled upon something that I sure wish that I would have had access to when we first started to virtualize out quality assurance lab environment. &lt;br /&gt;&lt;br /&gt;A company called &lt;a href="http://www.skytap.com/"&gt;SkyTap&lt;/a&gt; announced a product called Virtual Lab back in april 2008 (read about it &lt;a href="http://www.skytap.com/index.php?view=article&amp;catid=25%3Apress-releases&amp;id=90%3Askytapannouncepr&amp;option=com_content&amp;Itemid=260"&gt;here&lt;/a&gt;). The product aims to provide a virtualized lab environment in the cloud, this has some real potential and I will surely look into this as a platform for our future lab environment.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XY57yl89XM0/SSb46OX4-HI/AAAAAAAAAHQ/gOS_6-zNJlo/s1600-h/skylab.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 180px;" src="http://1.bp.blogspot.com/_XY57yl89XM0/SSb46OX4-HI/AAAAAAAAAHQ/gOS_6-zNJlo/s400/skylab.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5271174093058144370" /&gt;&lt;/a&gt;&lt;br /&gt;What I find most attractive in a product like this is three things:&lt;br /&gt;&lt;br /&gt;1, It will ease the demand on the operations department when it comes in house expertise of virtualization technology (this is particularly needed for smaller and mid size companies who simply can't afford to staff that type of compentency).&lt;br /&gt;&lt;br /&gt;2, The self service provisioning model where you add the needed resources you want as you go and simply pay for what you use. No more large captial expenditure requests we can instead transfer the costs for this onto the running operational costs. This is also a very big deal for agile teams in my oppinion, since one of the problems we have is the fact that the preasure on the resources are very high on and off when running multiple agile teams where all the teams have a dire need for their own environment.&lt;br /&gt;&lt;br /&gt;3, We get a library with baselined virtual images which will save us tons of time in configuration and trying to create these our selves.&lt;br /&gt;&lt;br /&gt;Otherwise the product is very similar to &lt;a href="http://www.vmware.com/products/labmanager/"&gt;VMWare Lab Manager&lt;/a&gt;, it allows us to create labs consisting of multiple machines. We can easily create snapshots of the environent when ever we find a bug and attach a link to that snapshot to our defect report, which the developer later can bring back to life to investigate the in the same environment as the tester. We get access to a REST based automation API for our lab environments and much more.&lt;br /&gt;&lt;br /&gt;Another intressting tidbit is the &lt;a href="http://www.skytap.com/index.php?view=article&amp;catid=25%3Apress-releases&amp;id=156%3Askytap-announces-integrated-cloud-platform-for-professional-developers-&amp;option=com_content&amp;Itemid=260"&gt;announcement&lt;/a&gt; they made at the PDC08 about their integration with TFS. Nothing fancy but the have a custom control which we can embed in our work item type forms that will show the available snapshots so we can get the link straight in the Visual Studio IDE and double click it to get to it (if you want to get a peak at how it look watch this &lt;a href="http://blog.skytap.com/2008/10/visual-studio-team-system-screencast/"&gt;screencast&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-192710954576406977?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/192710954576406977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/team-lab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/192710954576406977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/192710954576406977'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/team-lab.html' title='Test Lab Environment Automation In The Cloud (SkyTap Virtual Lab)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XY57yl89XM0/SSb46OX4-HI/AAAAAAAAAHQ/gOS_6-zNJlo/s72-c/skylab.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7909564795590587897</id><published>2008-11-18T09:52:00.003+01:00</published><updated>2008-11-18T09:56:52.457+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><title type='text'>Clueless about Azure? Grab the Azure Services Training Kit and give it ago!</title><content type='html'>Just stumbled across the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en"&gt;Azure Services Training Kit&lt;/a&gt; which looks really nice as a starting point to playing around with the Azure Platform:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;The Azure Services Training Kit will include a comprehensive set of technical content including samples, demos, hands-on labs, and presentations that are designed to help you learn how to use the Azure Services Platform. This initial PDC Preview release includes the hands-on labs that were provided at the PDC 2008 conference. These labs cover the broad set of Azure Services including Windows Azure, .NET Services, SQL Services, and Live Services. Additional content will be included in future updates of this kit.&lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Download it and start playing...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7909564795590587897?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7909564795590587897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/clueless-about-azure-grab-azure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7909564795590587897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7909564795590587897'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/clueless-about-azure-grab-azure.html' title='Clueless about Azure? Grab the Azure Services Training Kit and give it ago!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1996358688626742959</id><published>2008-11-18T09:34:00.001+01:00</published><updated>2009-08-26T20:24:48.485+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sync Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Services'/><title type='text'>SQL Services: Codename "Huron" - Sync Enabled Cloud Data Hub</title><content type='html'>As I mentioned in my previous post the Microsoft Sync Framework and the SQL Services guys has teamed for some cool projects for the cloud. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://sqlserviceslabs.net/huron.html"&gt;Codename &amp;quot;Huron&amp;quot;&lt;/a&gt; which is one of them seems to be the answer to one of my intial questions I've been thinking about, namely the ability to maintain an application on-premise and using the Azure Platform for extending this application to handle peak loads or simply slicing of parts to run in the cloud.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XY57yl89XM0/SSHBwr8a45I/AAAAAAAAAHI/DYLdfT5lRBE/s1600-h/huron.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 256px;" src="http://4.bp.blogspot.com/_XY57yl89XM0/SSHBwr8a45I/AAAAAAAAAHI/DYLdfT5lRBE/s400/huron.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5269706081174217618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see in the picture "Huron" sits in the cloud acting like a master data hub allowing us to easliy build speaking to the local sync providers that either ships with the project. Currently they have build one for Access and SQL Server Compact but this will  be extended to include SQL Server as well (as you can see in the quote below).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;Leverage the power of SQL Data Services and Microsoft Sync Framework to enable organizations and individual workers to build business data hubs in the cloud allowing information to be easily shared with mobile users, business partners, remote offices and enterprise data sources all while taking advantage of new services in the cloud.  This combination provides a bridge, allowing on-premises and off-premises applications to work together.  Using “Huron”, enable sharing of relational stores like Microsoft Office Access, SQL Express, SQL Server Compact, and SQL Server, enable B2B data sharing, and push workgroup databases to field workers and mobile users.&lt;/em&gt;&lt;/blockquote&gt; &lt;br /&gt;The driving technology behind this project is the Microsoft Sync Framework so if youe not entirely up to speed on that you could start by having a look at the following article, &lt;a href="http://msdn.microsoft.com/en-us/sync/bb821992.aspx"&gt;Introduction to the Microsoft Sync Framework Runtime&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The configuration of the syncronization process is highly flexible since you can decide which tables you want to put in the cloud and you will be able to autosync bi-directionally or put the syncronization on a scheadule.&lt;br /&gt;&lt;br /&gt;Sadly the download like is not yet available on the project homepage, but as soon as it is I will start to take it for a spin which I would like to encourage you guys to do as well this is an important building block for allowing a smooth transition path in between on-premise and the cloud.&lt;br /&gt;&lt;br /&gt;For more information about the "Huron" and other interesting SQL Services incubation projects be sure to keep tabs on &lt;a href="http://www.microsoft.com/azure/sqllabs.mspx"&gt;SQL Services Labs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1996358688626742959?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1996358688626742959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/sql-services-codename-huron-sync.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1996358688626742959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1996358688626742959'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/sql-services-codename-huron-sync.html' title='SQL Services: Codename &quot;Huron&quot; - Sync Enabled Cloud Data Hub'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XY57yl89XM0/SSHBwr8a45I/AAAAAAAAAHI/DYLdfT5lRBE/s72-c/huron.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6361290091969517490</id><published>2008-11-16T23:23:00.002+01:00</published><updated>2009-08-26T20:27:43.525+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sync Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Services'/><title type='text'>SQL Services: Codename "Anchorage" - SyncToy Moves To The Cloud</title><content type='html'>The Microsoft Sync Framework and the SQL Services guys has teamed up to produce some rather intressting incubation projects the first one is &lt;a href="http://sqlserviceslabs.net/Anchorage.html"&gt;"Codename &amp;quot;Anchorage&amp;quot;&lt;/a&gt;:&lt;blockquote&gt;We’re evolving the popular SyncToy application to enable much more than just file/folder synchronization between PCs! With this project, providers will be able to register and be discovered in a variety of sync groups including contacts, files, favorites, videos, as well as synchronization across services such as the Live Mesh, PhotoBucket.com, Smugmug.com, and more. Powered by the Microsoft Sync Framework - this E2E and hub for sync providers has value for both consumers AND developers...&lt;/blockquote&gt;This project aims to provide syncronization between services. It's a provider based model that allows us to create so called sync groups to allow for greater flexibility when dealing with multiple sources and heterogenous data. At first glance I looks like this should really be integrated with &lt;a href="https://www.mesh.com/Welcome/default.aspx"&gt;Live Mesh&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Unfortunately the download link is still not public so I guess we will have to wait and see what gives, I'll probably post some more on this topic once the bits are available.&lt;br /&gt;&lt;br /&gt;For more information about the "Anchorage" and other interesting SQL Services incubation projects be sure to keep tabs on &lt;a href="http://www.microsoft.com/azure/sqllabs.mspx"&gt;SQL Services Labs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6361290091969517490?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6361290091969517490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/sql-services-codename-anchorage-synctoy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6361290091969517490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6361290091969517490'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/sql-services-codename-anchorage-synctoy.html' title='SQL Services: Codename &quot;Anchorage&quot; - SyncToy Moves To The Cloud'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4483005638410330504</id><published>2008-11-14T23:46:00.008+01:00</published><updated>2009-08-26T20:18:43.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE7'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Missing my custom icons for my desktop IE links (...hint they are called favicons...)</title><content type='html'>Finally I managed to get around to wrap my head around a little but really annoying thing that occured to me when upgrading to Vista on my laptop. After upgrading an restoring all my favourite website links on my desktop all the icons reverted to the big blue E which is the icon for IE, at first I thought it was related to the switch to Vista but it seems it's a IE7 related issue as you can read below.&lt;br /&gt;&lt;br /&gt;Anyway I'm sure there are still a few more poor suckers like me that still haven't figured it out yet so I thought I share the joy by posting about it... &lt;br /&gt;&lt;br /&gt;The reason behind this behavior is the following (you can read more about it &lt;a href="http://blogs.msdn.com/jeffdav/archive/2007/03/01/why-doesn-t-the-favicon-for-my-site-appear-in-ie7.aspx#1920419"&gt;here&lt;/a&gt;)&lt;blockquote&gt;Because the shell asks for 48x48 icons, but favicons are 16x16.  Stretching them would have looked bad.  This decision was made late in the IE7 cycle.  Many people have complained and we are considering a fix for a future release.&lt;/blockquote&gt;The remedy is really simple just do the following: Right click on your desktop and select the views menu and select classic icons and of you go (the picture below shows the menues in question): &lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/SR4EiaX5LOI/AAAAAAAAAHA/5lIre7CS9Os/s1600-h/icons.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/SR4EiaX5LOI/AAAAAAAAAHA/5lIre7CS9Os/s400/icons.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5268653603311660258" /&gt;&lt;/a&gt;&lt;br /&gt;Unfortunately the classic icons are smaller 16x16 and doesn't look that nice but I still prefer to have the customized icon of the site in question so I can find the link fast when looking at my desktop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4483005638410330504?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4483005638410330504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/missing-my-custom-icons-for-my-desktop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4483005638410330504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4483005638410330504'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/missing-my-custom-icons-for-my-desktop.html' title='Missing my custom icons for my desktop IE links (...hint they are called favicons...)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XY57yl89XM0/SR4EiaX5LOI/AAAAAAAAAHA/5lIre7CS9Os/s72-c/icons.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-8412658766206116704</id><published>2008-11-13T21:10:00.001+01:00</published><updated>2008-11-13T21:14:08.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Services'/><title type='text'>Windows Azure an introduction and what will it mean to the corporate developer? (Part 4)</title><content type='html'>This will be the final installment in my post about the Azure Services Platform, this time I'm going to talk about some of the building blocks available (in my oppinion the more interesting ones) namely .NET Services (formerly known as BizTalk Services) and SQL Services (formerly known as SQL Server Data Services).&lt;br /&gt;&lt;br /&gt;I will not talk about Live Services mainly because I haven't had the time to look in more details about it but I might get around to that later on since there are some interesting aspects to some of the offerings in there even for a more corporate centric application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;.NET Services - &lt;em&gt;ServiceBus&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This very cool piece of technology gives us a servicebus in the cloud which may change the way many companies will solve their integration scenarios in the future. &lt;br /&gt;&lt;br /&gt;The servicebus is not about hosting your services in the cloud, but rather making on-premise services publicly available in a really easy way. Everything is based upon WCF so your previous investments into this technology really pays of, the only thing we have to do is to change a binding, so exposing a already existing service using the servicebus in really a oneliner.&lt;br /&gt;&lt;br /&gt;In the current CTP release the focus lies on non durable communication, fourtunately Microsoft talks about implementing both durable multicast and something called anycast (which would be the first available subscriber will get the message). Personally I think the lack of durable multicast limits the servicebus somewhat in B2B integration since there are not so many scenarios when a partner or customer will be satisfied to only get their messages incase their apps are up and running. So we really need the durable multicast for this before usage will really pick up in this area.&lt;br /&gt;&lt;br /&gt;Apart from providing a volatile multicast mechanism we also can easily expose an on-premise service through the bus even though we are behind a firewall (it even works with NAT). Another really cool thing is the magic that they are working to establish a direct connection (you can configure this behaviour) even though the caller and callee both are behind a NAT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;.NET Services - &lt;em&gt;Workflow Services&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is another service that have great potential. Apart from providing us with an scalable hosting environment we should be about to constuct really elegant solutions using a workflow to orchestrate a set of services and providing new functionallity based on that. Or we simply want to massage the data somewhat before sending one or more versions of a message onto the servicebus.&lt;br /&gt;&lt;br /&gt;Unfortunately in the CTP they only allow fully declarative workflows, that means no custom activities which will limit the use somewhat. The subset of activities is rather small and contains the basic controll flow stuff and a bunch of HTTP and XML helper activities that are new in the Azure Platform.&lt;br /&gt;&lt;br /&gt;We will be able to host WF 3.5 and beyond and the deployment process is really a breaze, you simply rightclick on your workflow in Visual Studio to deploy to the cloud. Once you have your bits deployed you can manipulate the workflow types and instances through a management portal, unfortunatelly this portal is not suitable for large volumes of running instances and we are left (atleat as it looks now) to implement a better management client ourselves (luckily the management apis are avaiable to us).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;.NET Services - &lt;em&gt;Access Control&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Provides us with a Security Token Service (STS) in the cloud that can provide fedrated security by providing integration with a wide variety of different source such as Active Directory, Live ID, Cardspace and in the future Open ID as well. &lt;br /&gt;&lt;br /&gt;It works with the Servicebus, Workflow Services and SQL Services, providing us with a consistent access control model through out the breath of the building block services provided in the Azure Platform. &lt;br /&gt;&lt;br /&gt;There is alot happening in this area with the "Geneva" framework and server offerings which I haven't had the time to drill down into (honestly security is a nessecary evil :) ... nah but it is not as fun as the workflow and servicebus stuff so getting around to details ain't on the top the list yet).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SQL Services&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Aims to provides us with a database in the cloud, currently it is very similar to the storage offerings in Windows Azure with the main difference being that SQL Services are build upon SQL Server (as the name impiles). The way to get access to the data is through a REST API (or if you like ADO.NET Data Services).&lt;br /&gt;&lt;br /&gt;The storage model available now is really a hierarchical model that looks like this ... At the top we have a &lt;strong&gt;authority&lt;/strong&gt; which can contain one or many &lt;strong&gt;containers&lt;/strong&gt; which in turn consists of on or many &lt;strong&gt;entities&lt;/strong&gt; that are a collection of typed name value pairs. Right now we are limited to the following scalar types: &lt;em&gt;string&lt;/em&gt;, &lt;em&gt;binary&lt;/em&gt;, &lt;em&gt;boolean&lt;/em&gt;, &lt;em&gt;decimal &lt;/em&gt;and &lt;em&gt;dateTime&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;In the future we will get support for more SQL Server functionallity such as reporting, analysis and much more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-8412658766206116704?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/8412658766206116704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8412658766206116704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8412658766206116704'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_13.html' title='Windows Azure an introduction and what will it mean to the corporate developer? (Part 4)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4488113267647641352</id><published>2008-11-11T22:02:00.001+01:00</published><updated>2008-11-11T22:04:37.251+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Services'/><title type='text'>Windows Azure an introduction and what will it mean to the corporate developer? (Part 3)</title><content type='html'>This part of the post will talk a bit more in detail about Windows Azure. The pictures I use in this post comes from the excellent white paper &lt;a href="http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.docx"&gt;Introducing The Azure Services Platform&lt;/a&gt; written by &lt;a href="http://www.davidchappell.com/"&gt;David Chappell&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So what is Windows Azure? Microsoft them self defines it like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Windows® Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Azure Services Platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage Web applications on the Internet through Microsoft® data centers.&lt;/blockquote&gt;Or simply put its an operating system for the &lt;em&gt;cloud&lt;/em&gt; where the &lt;em&gt;cloud&lt;/em&gt; basically a group of server (typically a large number of them). Initially it will be available as a service running in the datacenters of Microsoft, altough there where some hints that this might be made available for others at well to run in their own datacenters as well.&lt;a href="http://3.bp.blogspot.com/_XY57yl89XM0/SRnlHNh7RkI/AAAAAAAAAGw/CIRbYEmeQCw/s1600-h/winazure2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;" src="http://3.bp.blogspot.com/_XY57yl89XM0/SRnlHNh7RkI/AAAAAAAAAGw/CIRbYEmeQCw/s400/winazure2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5267493151240308290" /&gt;&lt;/a&gt;&lt;br /&gt;As the picture indicates the central piece in this is the part called the fabric controller which handles the automated service management and makes sure that you applications are provisioned in the way that you have specified.&lt;br /&gt;&lt;br /&gt;These specifications are done using models that specify this such as topology information, health contraints, logical resources and so forth. As far I could tell they where not done using the "M" language yet but the intentions are that eventually all this will migrate into a cohesive whole. These models are then used to handle automated deployment and monitoring of your applications.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/SRnoelzcX2I/AAAAAAAAAG4/8k6v_1w5r1M/s1600-h/winazure1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 248px;" src="http://2.bp.blogspot.com/_XY57yl89XM0/SRnoelzcX2I/AAAAAAAAAG4/8k6v_1w5r1M/s400/winazure1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5267496851428106082" /&gt;&lt;/a&gt;As you can se in the picture above there are two ways of deployment into Azure namely the Web Role (used for the public endpoints of you applications) and the Worker Role (used for async work normally triggered by either listening to the servicebus or polling a queue in the storage system). &lt;br /&gt;&lt;br /&gt;In the current CTP release you can only deploy ASP.NET applications and .NET code, in the release version of Azure Microsoft intends to provide the possiblity to deploy PHP based application and support for unmanaged code as well. It worth to notice that the code is not running with full privelages but is running in a special sandbox mode that is similiar to what you get from todays application hosting environments.&lt;br /&gt;&lt;br /&gt;Along with all these goodies we get access to a scalable file system as well, its not to be confused with the SQL Services which intends to provide a database in the cloud. Much in the same fashion though the access APIs are via REST interfaces and are accessible either direct from your code running with in Azure as well as your on-premise application. Very quickly you can decribe the different types of storage available like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service Data&lt;/strong&gt; provided by blob support much like a regular file in your on premise environment (in future versions we get support for filestreams as well).&lt;br /&gt;&lt;strong&gt;Service State&lt;/strong&gt; provided by tables, which aren't really table :) kinda confusing but it is simply a hierarchical structure consisting of &lt;em&gt;enteties/properties/named and typed value&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service Communication&lt;/strong&gt; provided by queues which are exactly what it sounds like a regular oldfashioned queue where the web role typically posts something that gets picked up by the backend worker role.&lt;br /&gt;&lt;br /&gt;You access everything through a fancy web portal which looks nice in the CTP but leaves you with the impression that it will be a little painfull to deal with a major installation using the portal since it doesn't lend it self to well to large ammounts of data.&lt;br /&gt;&lt;br /&gt;Finally one of the coolest things if your a dev like me is the fact that you get a development fabric which is a complete simulation model for Windows Azure and lets you test out your code in a distributed fashion before deploying to the cloud. Simply put you get "The Cloud on your desktop" fully integrated with your favourite IDE Visual Studio.&lt;br /&gt;&lt;br /&gt;I'm really looking forward to getting hold of an account to actually trying out the bits for real, unfourtenatly I was one of those poor sods that had to attended the PDC via streaming on channel9 :) which means I have to wait a little longer (if by anychance anyone at Microsoft reads this feel free to help speed ut that process).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4488113267647641352?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4488113267647641352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4488113267647641352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4488113267647641352'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_11.html' title='Windows Azure an introduction and what will it mean to the corporate developer? (Part 3)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XY57yl89XM0/SRnlHNh7RkI/AAAAAAAAAGw/CIRbYEmeQCw/s72-c/winazure2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-916747708473242823</id><published>2008-11-10T21:06:00.001+01:00</published><updated>2008-11-10T21:07:22.639+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Services'/><title type='text'>Windows Azure an introduction and what will it mean to the corporate developer? (Part 2)</title><content type='html'>The previous post about the Azure Platform was more along the positive vibe so this time I tought we would have a go at the negative stuff, or atleast with some of the concerns buzzing about around in my head. I am going about this from a perspective in how this could benefit the LOB applications that we produce where I work and the problems that we might occur whilst trying to incorporate the Azure Platform into our overall architecture, that said lets get down to business.&lt;br /&gt;&lt;br /&gt;So when it comes to outsourcing in general (which applies in both SaaS and PaaS scenarios) we are confronted by the issues concerning trust. We need to have a really trusting relationship with our partners to be able to put parts of our business in their hands. Basically the trust issues boils down to two things as I see it &lt;strong&gt;Data&lt;/strong&gt; and &lt;strong&gt;Availability&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Data&lt;/strong&gt;, the concern here revolves around data ownership if we lock into on vendors storage solution it will become very difficult to move that data to another provider at a later point in time (I doubt that we will get much help from the vendors in a migration effort). Also regulatory issues are a big concern for many companies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Availability&lt;/strong&gt;, altough one has to remember that no system can really in practice garantuee 100% uptime there are simply to many fault factors in the equation. However I see one major difference which is that we are in control when a failure occurs on-premise (or atleast we like to think we are). Wether or not we actual are in control we do control the triage process of how we should go about to resolve the problem. I pretty sure that this procces will look completly different when left in the hands of a service provider (I'm guessing the ammount of dollars spent will affect the priorty you get and there is nothing wrong with that just simple economics).&lt;br /&gt;&lt;br /&gt;Below you can find a few links concerning availability issues from the current players such as Amazon, Google and Salesforce and I am worried that we will see the likes for Microsoft as well once the load starts to increase for them:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Amazon EC2 &amp; S3&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techcrunch.com/2008/04/07/amazon-web-services-gets-another-hiccup/"&gt;Amazon Web Services Gets Another Hiccup&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.roughtype.com/archives/2008/02/amazons_s3_util.php"&gt;Amazon's S3 utility goes down&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Google App Engine&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pcworld.com/businesscenter/article/147211/googles_app_engine_breaks_down.html"&gt;Google's App Engine Breaks Down&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.zdnet.com/projectfailures/?p=843"&gt;Google explains why App Engine failed&lt;/a&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Salesforce&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.roughtype.com/archives/2006/02/salesforcecoms.php"&gt;Salesforce.com's hiccups&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.zdnet.com/BTL/?p=2568"&gt;Salesforce.com down…again&lt;/a&gt;&lt;/blockquote&gt;Another issue that I think is even more important is the fact that in a multi-tenant environment we have issues with things such as resource exhaustion (it only takes one bad apple to spoil the bunch) in the Azure Platform they intend to tackle this with a configuration model that specifies things such as intended cpu load and average response times, using this information they will automate the process of scaling out the application when needed. However I still don't see this handling the poor suckers that end up on a machine with a bad app!&lt;br /&gt;&lt;br /&gt;Finally moving into the cloud will have some effect on the way we write applications, many of the aspects we know and love from writing scalable solutions on-premise just gets even more critical. Things such as stateless execution and node affinity (or rather the lack of) will be absolutly nessecary to be able to handle provisioning when a catastrophic failure occurs. Upgrading your application will become much more difficult since you'll have to build your applications in a way that they have no downtime, therefore we have to be both forward and backward compatible in both the interfaces, implementation and storage schemas (and belive me if you don't have any experience in this area, it is hard to not break anything).&lt;br /&gt;&lt;br /&gt;All in all I'm looking forward to tackle these issues in more detail when I get back from my paternety leave, altough I expect that I will not be able to drop the issue entirely before that and so I might write something more along the lines on what I think around the design considerations for using the Azure Platform in conjuction with an LOB appliction running on-premise. &lt;br /&gt;&lt;br /&gt;Next part in this series will look abit more at the details concerning Windows Azure followed by the final installment taking a little closer look at the building blocks closest to my heart .NET Services and SQL Services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-916747708473242823?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/916747708473242823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_10.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/916747708473242823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/916747708473242823'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what_10.html' title='Windows Azure an introduction and what will it mean to the corporate developer? (Part 2)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-8987794525784002205</id><published>2008-11-09T00:29:00.005+01:00</published><updated>2008-11-09T00:40:18.721+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Tools'/><title type='text'>TFS Power Tools October 2008 are available for download</title><content type='html'>The October release of TFS Power Tools are now available for download &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&amp;displaylang=en"&gt;here&lt;/a&gt; unfourtunately the are abit delayed since it's already November :) &lt;br /&gt;&lt;br /&gt;You can read more about it in this &lt;a href="http://blogs.msdn.com/bharry/archive/2008/11/08/oct-08-tfs-power-tools-are-available.aspx"&gt;post&lt;/a&gt; by Brian Harry. &lt;br /&gt;&lt;br /&gt;My personal favourite this time is the Team Member feature which lets you interact with your team members straight from within the Visual Studio IDE. You can also do things such as viewing theire checkin history, shelvesets and pending work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-8987794525784002205?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/8987794525784002205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/october-release-of-tfs-power-tools-are.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8987794525784002205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8987794525784002205'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/october-release-of-tfs-power-tools-are.html' title='TFS Power Tools October 2008 are available for download'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3464501624483907618</id><published>2008-11-09T00:22:00.004+01:00</published><updated>2008-11-21T15:58:54.028+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Services'/><title type='text'>Windows Azure an introduction and what will it mean to the corporate developer? (Part 1)</title><content type='html'>&lt;p&gt;I'm sitting here with a beer and listening to some nice rock music, the family is sound asleep and I figure I'd might as well start writing abit about my thoughts on what was the major theme of the PDC08 last week ... namely &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Azure Services Platform&lt;/a&gt; ... This post is probably gonna end up being a multipart posting since there is simple so much exciting new stuff to talk about in the and how it will change the way we write software on the microsoft platform.&lt;/p&gt;&lt;p&gt;The last couple of years there has been alot of discussion about delivering "Software as a Service" (&lt;a href="http://en.wikipedia.org/wiki/SaaS"&gt;SaaS&lt;/a&gt;), we have seen some successful attempts at this the most noteworthy is surely &lt;a href="http://www.salesforce.com/"&gt;SalesForce&lt;/a&gt; delivering CRM software as a service in the cloud. More recently we have seen an evolvment of this into "Platform as a Service" (&lt;a href="http://en.wikipedia.org/wiki/PaaS"&gt;PaaS&lt;/a&gt;) being pioneered by Amazon with their &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt; (Elastic Cloud Cloud) and &lt;a href="http://aws.amazon.com/s3/"&gt;S3&lt;/a&gt; (Simple Storage Service).&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;Update 2008-11-21:&lt;/strong&gt; &lt;em&gt;After being looking around alot more at the various cloud offerings out there and in respect to the comment below, I feel I should clarify my previous statement about Amazon EC2. It is ofcourse a &lt;a href="http://en.wikipedia.org/wiki/IaaS"&gt;IaaS&lt;/a&gt; that in it self is part of the Amazon Web Services (&lt;a href="http://aws.amazon.com/what-is-aws/"&gt;AWS&lt;/a&gt;) that is more correct to be calling a PaaS offering.&lt;/em&gt;&lt;br /&gt;&lt;p&gt;Well anyway last monday (October 27th 2008) Ray Ozzie announced the &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Azure Services Platform&lt;/a&gt; which is Microsofts step into the cloud computing arena. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_XY57yl89XM0/SRYPu3JJyqI/AAAAAAAAAFE/ys0YS6pDxzk/s1600-h/azure3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5266414112007113378" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 222px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XY57yl89XM0/SRYPu3JJyqI/AAAAAAAAAFE/ys0YS6pDxzk/s400/azure3.jpg" border="0" /&gt;&lt;/a&gt;As you can see from the picture the platform consists of four major parts where Windows Azure is the core component that everything else builds upon, so what exactly is Windows Azure then?&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It's an operating system for the cloud. Normally when talking about the could we are talking about the internet but really Windows Azure is not limited to that, we could just as easily apply the technology behind Azure on any larger datacenter. It's all about efficient management of resouces and global scalability and reach. Apart from a hosting environment for our applications we get a new highly scalable storage system and a set of building block services:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;.NET Services &lt;/strong&gt;(previously known as BizTalk Services), will provide us which things such as federated acces control, an hosting environment for our windows workflows and last but not least a servicebus for the internet which will play an important role in what we can do in regards to integration between companies.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SQL Services &lt;/strong&gt;(previously known as SQL Server Data Services), will provide us with a database in the cloud. Initially the offerings are rather limited and not that different from whats offered via the Azure storage system but we will get more and more capabilities here.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Live Services&lt;/strong&gt;, these are no newcommers you get your basic stuff such as Live ID and Live Contacts. The really intressteing piece here though apart from Live ID is probably the newcommer Live Mesh which will provide a syncronization platform for syncronizing data between all your devices.&lt;/p&gt;&lt;p&gt;The platform also contains more traditional SaaS offerings such as Sharepoint Services and Dynamic Services. Well enough with the details (there will be plenty more of those in furture pats of this posting) and lets get down to what this can mean for people developing software. As I see it there a atleast three different users of this platform:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Upstarts&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This is probably when a platform such as this really shines. Imagine all the creative people that can realize their ideas with just having to invest the time for realizing the code. We can skip the part where we have to build our own datacenter and staff it with expensive and hard to find people. Or once your in business you do that really expensive superbowl ad and get swamped with customer the next day, instead of building a datacenter for the worst case scenario we can just turn a knob and get some more juice ... you just gotta love it!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Small to Midsize companies&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Similar to the upstar company we do not have to build up an huge it department for getting our it infrastructure in place we will just pay as we go. The main difference here is that we are most likely not going to have the need for the huge scale that the next facebook would need, in this segment it's all about TCO and operational cost as opposed to expenditure costs.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Corporations&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;All the stuff we see for the midsize company applies here as well but I think there are some intressting scenarios here for producing hybrid solutions not only just putting parts of the application in the cloud. But maybe there are some possiblities for put load into the cloud based on expected flash load but still mantaining control of the application on premise (there will be several challenges with this and I will post more as I try this in real life).&lt;/p&gt;&lt;p&gt;Another really intressting idea is the fact that we will have more oppertunety to actually try out ideas since they will not incur the heavy expenditure costs for setting up an operational environment and thus we will be able to produce a real working application as a prof of concept which we then can bring inhouse if needed.&lt;/p&gt;&lt;p&gt;So when should we expect all these goodies? Microsoft are talking about a comercial release some time during 2009 which will include multiple datacenter with global distribution.&lt;br /&gt;&lt;br /&gt;For more detailed information regarding "Azure" check out the following PDC08 sessions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/ES16/"&gt;A Lap Around Windows Azure&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB01/"&gt;A Lap Around the Azure Services Platform&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB01/"&gt;Architecture of the .NET Services&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/ES01/"&gt;Developing and Deploying Your First Cloud Service&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/ES02/"&gt;Architecting &amp;amp; Managing Cloud Services&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB38/"&gt;.NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB27/"&gt;.NET Services: Orchestrating Services and Business Processes Using Cloud-Based Workflow&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB55/"&gt;.NET Services: Access Control In Microsoft .NET Services&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB11/"&gt;Identity Roadmap for Software + Services&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/BB15/"&gt;SQL Server: Database to Data Platform - Road from Server to Devices to the Cloud&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Or if you are short on time read the following articles to get a quick overview of what it's all about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.docx"&gt;Introducing the Azure Services Platform&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.davidchappell.com/CloudPlatforms--Chappell.pdf"&gt;A Short Introduction To Cloud Platforms&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.davidchappell.com/S_S_in_the_Microsoft_World--Chappell.pdf"&gt;Software + Services in the Microsoft World&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb906065.aspx"&gt;Internet Service Bus&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Another really cool thing about the whole &lt;strong&gt;Azure platform&lt;/strong&gt; is that microsoft is vigliant about this being a cross platform environment there is plenty of talk about the ability to host other languages than .NET in future version, but we already have accessibility from Ruby (&lt;a href="http://www.dotnetservicesruby.com/"&gt;.NET Services for Ruby&lt;/a&gt;) and Java (&lt;a href="http://jdotnetservices.com/"&gt;.NET Services for Java&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Finally be sure to check out Googles &lt;a href="http://code.google.com/appengine/"&gt;App Enginge&lt;/a&gt; if you are serious about learning more about cloud computing. See you in the next part of this post when I'll talk about my concerns in regards to how this will play out for a corporate application architect.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3464501624483907618?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3464501624483907618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3464501624483907618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3464501624483907618'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/windows-azure-introduction-and-what.html' title='Windows Azure an introduction and what will it mean to the corporate developer? (Part 1)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XY57yl89XM0/SRYPu3JJyqI/AAAAAAAAAFE/ys0YS6pDxzk/s72-c/azure3.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-8543314621967592405</id><published>2008-11-06T21:55:00.001+01:00</published><updated>2008-11-06T22:02:26.769+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Papa's Got a Brand New Bag ... A quick look at Windows Workflow 4.0</title><content type='html'>WF 4.0 gives us a completely rewritten workflow engine! Personally I find it a little scary when Microsoft shifts a product around in this fashion fortunately the changes they are making are really promising and might be just what is needed to get the adoption of WF to really take off.&lt;br /&gt;&lt;br /&gt;So what are we getting with this rewrite then? &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;* Fully declarative model it is now possible to write workflows totally composed using XAML.&lt;/blockquote&gt;&lt;blockquote&gt;* We get a new activity execution model that enables activities to have variables for storing data and arguments for passing data in and out from the activity. Basically it looks very much like a regular function signature with possiblity to have locally scooped variables within the function body (altough these variables are visible when walking down the parent/child chain sort of scoped global variables).&lt;/blockquote&gt;&lt;blockquote&gt;* Flowchart based workflows, which lets us get around some of the limitations when doing sequential workflow such as going back in the workflow after something had occured. Ofcourse this was possible to do using a statemachine workflow but not at all as cleanly as a flowchart would do it.&lt;/blockquote&gt;&lt;blockquote&gt;* The re-hosting of the workflow designer has gotten an real overhaul and gone form previously being a major undertaking guided by a 20+ page document to being a 4 lines of code experience.&lt;/blockquote&gt;&lt;blockquote&gt;* Totally rewritten WPF designer.&lt;/blockquote&gt;&lt;blockquote&gt;* Major performance improvments.&lt;/blockquote&gt;This is by no means all the stuff available in WF 4.0 but I'll have to get back with further postings after actually having spent some time with the bits. One thing that really bugs me though is the backward compatibilities with previous versions of WF, I'm worried that we will be subject to having to port our code by hand if we have not limited our workflows to strictly XAML based workflows (which isn't that easy to do in the present version).&lt;br /&gt;&lt;br /&gt;If you want to get some more details on what's comming check out these session recordings from PDC08:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL17/"&gt;WF 4.0: A First Look&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL21/"&gt;WF 4.0: Extending with Custom Activities&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL06/"&gt;WCF 4.0: Building WCF Services with WF in Microsoft .NET 4.0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-8543314621967592405?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/8543314621967592405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/papas-got-brand-new-bag-quick-look-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8543314621967592405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8543314621967592405'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/papas-got-brand-new-bag-quick-look-at.html' title='Papa&apos;s Got a Brand New Bag ... A quick look at Windows Workflow 4.0'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6676091500099939716</id><published>2008-11-05T18:39:00.003+01:00</published><updated>2009-08-26T20:22:14.010+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Share'/><category scheme='http://www.blogger.com/atom/ns#' term='File Sync'/><title type='text'>DropBox an alternative to Live Mesh</title><content type='html'>A while back when Microsoft announce there &lt;a href="https://www.mesh.com/Welcome/Default.aspx"&gt;Live Mesh&lt;/a&gt; services I was really excited until I signed up for a Beta account and where informed about the sad fact that once again we poor swedes have to wait since it's a US only thing for starters... &lt;br /&gt;&lt;br /&gt;Anyway I stumble upon an alternative called &lt;a href="https://www.getdropbox.com/home"&gt;DropBox&lt;/a&gt; which offers a similar service for syncing and sharing files. It works in an hetrogenous environment with clients for Windows, Mac and Linux. You get 2GB for free and then you can upgrade to 50GB for $99/year.&lt;br /&gt;&lt;br /&gt;However it is not a full replacement for Live Mesh since at the moment they have no public API (altough they are hinting that there will be one soon). and DropBox lacks support for mobile devices at the moment. Live Mesh also has the whole live desktop experience and deep integration with the other services in the live family.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6676091500099939716?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6676091500099939716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/dropbox-alternative-to-live-mesh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6676091500099939716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6676091500099939716'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/dropbox-alternative-to-live-mesh.html' title='DropBox an alternative to Live Mesh'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2797586923494797958</id><published>2008-11-05T18:11:00.004+01:00</published><updated>2008-11-05T18:37:49.966+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerpoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation'/><title type='text'>Creating amazing presentations using a zoomable canvas (pptPlex)</title><content type='html'>I've been focusing more and more on how to create efficient and goodlooking presentations last year and recently I stumbled upon a really amazing addin called &lt;a href="http://www.officelabs.com/projects/pptPlex/Pages/default.aspx"&gt;pptPlex&lt;/a&gt; which lets you create a zoomable canvas for your presentation. &lt;br /&gt;&lt;br /&gt;The addin comes from the "Office Labs" team at Microsoft and lets you create a presentation where you can have an intelligent background that presents the bulk of you slides in an intelligent way giving the audience an overview of what the talk is about and then we can start zooming in to the various sections. &lt;br /&gt;&lt;br /&gt;These presentations can also be very interactive since it becomes very easy to quickly jump between sections in your presentation without having to break out from presentation mode. Another really neat thing about this is that we can zoom in on the stuff in our slides so if we are presenting charts and such that are high on detail a quick mouseclick will let you blow up the numbers on the screen.&lt;br /&gt;&lt;br /&gt;You could also use this technique to load up your presentation with all the esoteric stuff that you might or might not need and shove them away in a corner of the canvas, then if a question arises you quickly zoom in and bring up a slide about it. &lt;br /&gt;&lt;br /&gt;If you want to see more of these kinds of presentations be sure to google on TouchWall which is multitouch based presentation screen which lets you do really cool presentations (altough the are not yet available to the average mortal) you can view a demo made by Bill Gates ealier this year &lt;a href="http://on10.net/blogs/sarahintampa/Bill-Gates-Demos-TouchWall-Like-Surface-for-the-Office/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2797586923494797958?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2797586923494797958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/creating-amazing-presentations-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2797586923494797958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2797586923494797958'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/creating-amazing-presentations-using.html' title='Creating amazing presentations using a zoomable canvas (pptPlex)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3181223916377221178</id><published>2008-11-03T21:37:00.003+01:00</published><updated>2009-08-26T20:25:25.908+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WAS'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Finally a application server for .NET (Codename "Dublin")</title><content type='html'>I've been waiting for this since the day Microsoft announced .NET without providing a .NET specific host environment. We have been left to host our components in COM+ for several years now, this has work ok but in my personal opinion this has lead to a to tight tie into a technology that had been declared as a legacy technology. This fact has at least for us lead to a slower adoption pace of .NET than we would have had liked.&lt;br /&gt;&lt;br /&gt;Anyway enough with the history let look forward. But before we do this lets resolve any issues concerning BizTalk. Microsoft are very clearly stating that "Dublin" is &lt;strong&gt;NOT&lt;/strong&gt; a &lt;em&gt;BizTalk Killer&lt;/em&gt;... BizTalk is still Microsoft solution for integration and will continue to be release on a bi-annual schedule as it looks now. Also there are no plans to add functionality to "Dublin" for rich transformations like BizTalk is capable of.&lt;br /&gt;&lt;br /&gt;Dan Eshner held a very good session at the PDC08 called &lt;a href="http://channel9.msdn.com/pdc2008/BB18/"&gt;"Dublin": Hosting and Managing Workflows and Services in Windows Application Server&lt;/a&gt; about how "Dublin" works, I've taken the liberty of using some of the pictures in his slides. "Dublin" or Windows Application Server Extensions as which is the current official name, is a set of extensions that builds ontop of Windows Process Activation Services (WPAS/WAS) which lets us host both workflows (WF) and services (WCF).&lt;br /&gt;&lt;br /&gt;The "Dublin" mantra is ... &lt;strong&gt;IT JUST WORKS&lt;/strong&gt; ... and I must say that the stuff we saw at the PDC08 looks promising. One really neat feature that aligns very well with this ambition is the import/export feature, which lets us deploy our binaries along with the correct configuration with a simple click. Under the covers this feature uses a new tool which is already in Beta 2 called MSDeploy you can read more about this tool at the MSDeploy team &lt;a href="http://blogs.iis.net/msdeploy/default.aspx"&gt;blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XY57yl89XM0/SQyyGS96_zI/AAAAAAAAAEc/issnPRptkeY/s1600-h/dublin3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5263777885729783602" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 302px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XY57yl89XM0/SQyyGS96_zI/AAAAAAAAAEc/issnPRptkeY/s400/dublin3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see in the picture above "Dublin" consists of:&lt;br /&gt;&lt;blockquote&gt;A &lt;strong&gt;runtime database&lt;/strong&gt; storing all the configuration and data concerning durable services as well as tracking and monitoring.&lt;/blockquote&gt;&lt;blockquote&gt;A &lt;strong&gt;management api&lt;/strong&gt; built using powershell commandlets which makes it very neat to use in regards to operationa task since we can very easily script very complex scenarios. We also get a nice set of management tools that utilize these commandlets build into the IIS management console.&lt;/blockquote&gt;&lt;blockquote&gt;A set of services in the middle consisting of:&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Hosting&lt;/strong&gt;, a part from dealing with the actual hosting of the workflows and services we will get support for discovery protocols and an service that will look for orphaned service calls and restart them if a catastrophic failure occurs (I'm guessing this is a config option since it will require some design considerations when implementing the service in question for instance we would need to deal with the fact that the service needs to be restartable and can't leave partially finnished work).&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Persistance&lt;/strong&gt;, we get a new and improved persistance provider for our workflows which now is cluster aware. So we can have multiple boxes handling the same queues without stomping all over each other.&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;, we get support for montitoring and tracing both workflows (WF) and services (WCF).&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;strong&gt;Messaging&lt;/strong&gt;, this is supercool we get a built in forwarding service which lets us do things such as routing based on data in the message (much like the parameter propagation in BizTalk) and we also get support for message correlation based on data within the message payload.&lt;/blockquote&gt;&lt;/blockquote&gt;Another cool management feature is the support for persisted instances which is very similar to the way BizTalk manages this for example we can view persisted instances that has failed grouped by exception and much more (see the webcast by Steven W. Thomas mentioned below for more details on how this works).&lt;br /&gt;&lt;br /&gt;Nothing in the presentations at the PDC08 talked about build in declarative transactional support such as we are use to in the COM+ environment, however Dan Eschner confirmed in the Q&amp;amp;A that it is on the roadmap for the product but not in v1.&lt;br /&gt;&lt;br /&gt;There is also integration with "Oslo" modelling initiative which will enable us to model our service configurations using M and then deploy them directly to "Dublin".&lt;br /&gt;&lt;br /&gt;So when will we see this as RTM? At PDC08 they talked about being released about 3 months after Visual Studio 2010 which in turn has been indicated to be appearing around the end of 2009 (which would correspond nicely with how Microsoft has released VS previously) however these dates are purely speculative. It will be released as download for Windows Vista, Windows 2008 and Windows 7 and it will be a part of the operating system in future versions.&lt;br /&gt;&lt;br /&gt;For more information take a peek at:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Steven W. Thomas of biztalkgurus.com has produced a webcast which will guide you through how the "Dublin" management extensions in IIS manager will look like.&lt;br /&gt;&lt;a href="http://www.biztalkgurus.com/media/p/21920.aspx"&gt;First Look at Windows Application Server (Dublin)&lt;/a&gt; &lt;/blockquote&gt;&lt;blockquote&gt;As always David Chappell has written a good overview of "Dublin" and a bunch of related stuff (this is a very quick introduction to the technologies it doesn't go very deep).&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd200919.aspx"&gt;Workflows, Services, and Models -- A First Look at WF 4.0, “Dublin”, and “Oslo”&lt;/a&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Finally I found a rather good FAQ like document at Microsoft which gives some more insights in what going on with "Dublin" in conjunction with .NET 4.0 (also a small document).&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/5/9/B/59B74A2A-245D-4304-802E-E0A0800FACD3/Dublin__NET_4_overview.docx"&gt;Riding the Next Platform Wave: Building and Managing Composite Applications&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;I hope this has given some insights into "Dublin" and look for further postings in the future since this is an area which I intend to dig deeper into.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3181223916377221178?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3181223916377221178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/finally-application-server-for-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3181223916377221178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3181223916377221178'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/11/finally-application-server-for-net.html' title='Finally a application server for .NET (Codename &quot;Dublin&quot;)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XY57yl89XM0/SQyyGS96_zI/AAAAAAAAAEc/issnPRptkeY/s72-c/dublin3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3090745591393607425</id><published>2008-10-30T20:26:00.001+01:00</published><updated>2008-10-30T20:27:36.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosario'/><category scheme='http://www.blogger.com/atom/ns#' term='VSTS 2010'/><title type='text'>Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 3)</title><content type='html'>Back again with the last installment in this blog post going through the big changes in VSTS 2010. Let's get on with the show. I know that I already covered most of the changes in the test deparment in the first part but after watching the session about &lt;strong&gt;Team Lab&lt;/strong&gt; I figured that it was worth a few more rows you can find the session &lt;a href="http://channel9.msdn.com/pdc2008/TL37/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Project Management&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There are so many new features here that I wish I had a year ago when starting to adopt the project management parts of TFS at our company (which has been a bumpy ride). The fact that we are getting heirachical work items has been known for a while now but the demos shown at PDC still made me abit warm inside :) ...&lt;br /&gt;&lt;br /&gt;It all boils down to the linking stuff where we now have support for both parent/child and predessor/successor relationships we can even create our own if we like, this also means that we have full support for Microsoft Project plans now.&lt;br /&gt;&lt;br /&gt;The work item queries have gotten some new stuff as well. A small but nifty feature is the query folders where we can start to group stuff and put permissions on those groups this will make it easier to find the queries for our team members and not get lost in all the noise in the query list. &lt;br /&gt;&lt;br /&gt;But a far more important change here is the fact that we can now query based on links and we can put conditions on both the right and left hand sides of the link as well as the link itself. This will enable queries such as give me all work items that still have no test cases assigned to them to give one example. We have some new filtering possiblities such as &lt;em&gt;in group&lt;/em&gt; and even though it's not in the latest CTP we will eventually get the possibility to filter based on other fields and not just on constants as today, an example of this could be give me alll tasks where completed time ís greater than estimated time.&lt;br /&gt;&lt;br /&gt;We have some new controls for usage within the proccess templates such as a really cool links control that can display and manage links on your work items and also we get rich text support (altough the only thing that get me going here is the fact that we get url support automatically when typing).&lt;br /&gt;&lt;br /&gt;We have gotten some major improvements in the integration with Excel 2007, we now have a ribbon control for accessing our team features and the workbooks we produce containing TFS data will support conditional formating that actual sticks when refreshing the TFS data, we even get to include our own columns with data in the spreadsheet if we want. Another cool Excel feature is the fact that we can handle heirarchical structures as well.&lt;br /&gt;&lt;br /&gt;We also have a new Excel workbook that ships with the product that helps out with the day to day stuff needed in an project (it's aimed at agile project management but has a lot of value for any one planning project resources) such as information about the iteration backlog and capacity planning of the assigned resources we quickly can see how the load is balanced between our co-workers in the project. A burndown chart is also included here there are more features in this workbook but I'll cover them later in a more detailed post once I have gotten around to play with the bits abit.&lt;br /&gt;&lt;br /&gt;Something that is really really cool though is the support for basing a Excel report on a WIT query that you can play around with to your hearts content. Now we don't have to involve a developer to get a report done (altough we developers are still valuable when it comes to more complex reports...)  &lt;br /&gt;&lt;br /&gt;The project dashboard/portal has been totally revamp but this is not included in the CTP bits.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lab Management&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Is a new SKU in the Team System family which focuses on providing a way to manage your test servers in an efficient fashion provided that you run them using virtualization.&lt;br /&gt;&lt;br /&gt;The product will consist of agents on the lab machines and a controller service running probably on the application tier. The user interface is hosted in the brand new WPF based client for test management codenamed "Cameo". &lt;br /&gt;&lt;br /&gt;Basically what this drills down to is a virtual machine manager of sorts that has been integrated into the workflow of the ALM process. We can create libraries of virtual machine and then create test labs based on these images that can easily be handled when testing and reporting bugs in conjution with actually using the same environments for bug reproduction.&lt;br /&gt;&lt;br /&gt;Once we have an lab inplace we can star with the really cool stuff. When we report a bug from "Cameo" we have the possiblity to include a link of the lab environment in the bug report based on a snapshot that we create in conjuction with reporting the bug. The developer then loads up the bug in VSTS and clicks on a link to the environment which will bring up some options. We can either revert to the snapshot (this will affect the state of the lab for the testers as well) or we can connect as is. In the final product we are to see another option that will enble us to create a copy of the lab that we as a developer can reproduce and debug without actually disturbing the testers (this will be achived with some sort of network fencing technique that will allow for multiple machines with the same name and ip to run simultaneously).&lt;br /&gt;&lt;br /&gt;Altough it look very nice the product has a really step pre-requite list and requires a lot of commitment (you will need to have someone being in charge of lab management):&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;System Center Operations Manager&lt;br /&gt;System Center Virtual Machine Manager&lt;br /&gt;Windows 2008 running Hyper-V or VMWare ESX Server&lt;/em&gt;&lt;/blockquote&gt;Also it will require vast ammounts of storage space due to the ammount of snapshot and copies that will be generated.&lt;br /&gt;&lt;br /&gt;I am a bit dissapointed that Microsoft hasn't yet included some sort of deployment engine yet but I expect that we are going to see this in the future as well since this will really complete the package. In the presentations at the PDC we only get some new activites for restoring and snapshooting the lab environment the rest is left to xcopy deployment which just doesn't cut it in the real world.&lt;br /&gt;&lt;br /&gt;You can expect future post regarding this product form me since it lays close at heart in our efforts at my company with how we are automating our lab management.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3090745591393607425?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3090745591393607425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010_30.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3090745591393607425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3090745591393607425'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010_30.html' title='Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 3)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2951686148923659152</id><published>2008-10-29T23:52:00.006+01:00</published><updated>2008-10-29T23:58:04.996+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosario'/><category scheme='http://www.blogger.com/atom/ns#' term='VSTS 2010'/><title type='text'>Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 2)</title><content type='html'>&lt;strong&gt;Supercalifragilisticexpialidocious&lt;/strong&gt;... I just got back home from watching the musical Mary Poppins at the local opera with my teenage kids. It was a real treat, the performances where outstanding and the play itself leaves you with a really good vibe that anything is possible if you just set your mind to it.&lt;br /&gt;&lt;br /&gt;Anyways previously this day I spent my time divided equally between following the PDC online and taking the middle son to the doctor and feeding the whole family :) ... I manage to watch two talks on VSTS 2010 the one on TFS by &lt;a href="http://channel9.msdn.com/pdc2008/TL52/"&gt;Brian Harry&lt;/a&gt; and one on agile development using TFS by &lt;a href="http://channel9.msdn.com/pdc2008/TL09/"&gt;Lori Lamkin&lt;/a&gt; and boy are we in for a treat. Yesterday I blogged about the news in the Testing and Architecture areas, today it's time for build automation, parallel development and project management.&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Build Automation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Going from TFS 2005 to TFS 2008 we go a more or less rewritten build automation system and it seems that this is happening again, what is happening this time is that the build script is now a windows workflow which allows us to do all sorts of stuff such as parallel activities and much much more. Apart from the fact we get a graphical view of the actual build script and all the strengths brought to the table with workflow I'm abit worried how this will affect people like myself who have invested heavily in the msbuild based build projects (I'll get back to this topic in future postings when I have had more time to play around with the bits).&lt;br /&gt;&lt;br /&gt;Another cool new feature is the build agent controllers that lets you pool build agents so that you do not have to dedicate a particular machine to a build project but you rather have a bunch of them serving you ondemand. A very cool feature here is the ability to tag the agents and then perform conditional evaluations based on these tags in your build agent selection process.&lt;br /&gt;&lt;br /&gt;Also if you are a fan of continuous intergration you are going to love the feature called &lt;strong&gt;gated checkins&lt;/strong&gt; which lets you configure a build trigger to occur prior to actually commiting the changeset to version control and if the build breaks the changes will be prevented from making it into the currently stable branch. You could compare them to optimistic and pessimistic locking strategies CI being optimistic and GC being pessimistic.&lt;br /&gt;&lt;br /&gt;Prior to VSTS 2010 we have had to endure a rather messy build report altough it was complete and detailed it was a pain to work with, we have now gotten a completely rewritten report that include features such as a minimap with errors and warnings highlighted to quickly travese the vast ammount of data in the log. The summary section quickly gives you the details on any errors and warnings no more digging through the log files for that. The histogram over the last few build at the top is also really neat it gives you a quick input on what state the build has been in and how long you should expect to be waiting for completion.&lt;br /&gt;&lt;br /&gt;Finally we have a new buddy report to the &lt;strong&gt;Build Quality Indicator&lt;/strong&gt; which is called &lt;strong&gt;Build Success Overtime&lt;/strong&gt; this gives us a nice heathmap over the build status for the last month this report could be really usefully as an information radiator upon a flatscreen in a project room I think.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parallel Development &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When working with branching and merging in TFS there has been some challenges in knowing the exact state on things which has lead to the fact that people are vary of using forward / reverse integration patterns for enabling a good environment for parallel development.&lt;br /&gt;&lt;br /&gt;Now we have gotten a whole slew of new features to remedy this fact. First we have &lt;strong&gt;rollback&lt;/strong&gt; incorporated into the gui and we have conflict during the merge process the conflict resolution is no longer model, you will instead find it incorporated into the pending changes window this will save tons of time when tracking down problems in merge conflicts.&lt;br /&gt;&lt;br /&gt;A branch has gotten some elevated properties in the source controll explorer now it is not just a folder anymore. We have a specific icon to visually indicate that it is of the type branch and then we a some properties such as the possibility to create an description and an assign an owner.&lt;br /&gt;&lt;br /&gt;The anotate feature which is great now even got greater, now we will not just se that a merge brought a change into the file in our branch but we will rather get the exact changeset information that the changes originated from even though they where not performed in our current branch. This is great stuff!&lt;br /&gt;&lt;br /&gt;The final feature I want to point out I actually intended to write and implementation for myself (I still have the code for it so I might decide to dust it off and package it up for use in TFS 2008) although the fancy graphics would have been some what challenged in comparision to what we will get in VSTS 2010. The feature I'm blabbing about is the new branch visualization available through the &lt;em&gt;show history&lt;/em&gt; and &lt;em&gt;track changeset&lt;/em&gt; actions. Now you will get an hierarchical view of the changesets and their relationships including the full path information directly in the query results. And the track changeset will give you the possibility to visualize both from a timeline and organisational view of the changeset. The timeline view will show you which branches has incorporated a changeset and when and the organisational view will let you see the parent/child relationship along with the direction that the changes has travelled between the branches.&lt;br /&gt;&lt;br /&gt;An super nice feature in these new branch visualisations is the fact that if a changeset is missing from a particular branch we can simply drag and drop it onto the branch we want to incorporate it in and viola it will trigger a merge.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;...Phew...&lt;/strong&gt; this post is starting to get a bit longish and I am starting to get tired so I'll continue with the project management stuff tomorrow take care until then!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2951686148923659152?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2951686148923659152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2951686148923659152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2951686148923659152'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010_29.html' title='Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 2)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4770054729451850603</id><published>2008-10-28T21:24:00.008+01:00</published><updated>2008-10-29T14:09:51.413+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC08'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosario'/><category scheme='http://www.blogger.com/atom/ns#' term='VSTS 2010'/><title type='text'>Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 1)</title><content type='html'>It's been awhile since I last posted :) ... I had a silly notion about keeping blogging during my parental leave but it didn't really turn out that way. I have been spending the last 4 months with my kids and actually managed to read a bunch of non technical books which was very nice and relaxing.&lt;br /&gt;&lt;br /&gt;Anyway let's get on with the real post, I figured that I'd start following the developments on VSTS 2010 again now when the newest CTP was released in conjuction with Microsoft PDC08 (the only drawback with being on parental leave gotta be the fact that I was unable to attend this conference). &lt;br /&gt;&lt;br /&gt;I'm really excited about some of the new features in VSTS which are promising a really huge leap in the ability to produce high quality software if applied correctly. The current release is focusing heavly on the Architecture and Test Editions of the product.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ARCHITECTURE EDITON&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I have never really bothered with this edition of VSTS before it has brought way to little to the table in my taste historically. But boy have I changed my mind about this I'm thrilled about the positbilitied with using the new &lt;strong&gt;Layer Diagram&lt;/strong&gt; to perform validation of architecture compliance during the build process this is really nice. Also the layer diagram is something that most of us produces anyway so it's good to see that we can use it for something else than presentations of the conceptual architecture.&lt;br /&gt;&lt;br /&gt;Also the architecture explorer which let's visualize dependencies between namespaces and classes looks very nice and will give us a nice way to investigate as well as produce documentation regarding the dependencies of our solutions. The visualizations looks very nice and they even carry semantics with them, for instance if there is a heavy dependency between two namespaces the line illustrating the link is thicker than is the dependency just concerns a class or two. The links lets you we information about the dependecy and navigate to the code that is causing the dependency by clicking and drilling down in the diagrams. &lt;br /&gt;&lt;br /&gt;The fact that Microsoft has joined the OMG and finally included UML support in the product is also nice although what I'm really excited about here is the feature that let's put the cursor in a method and then say generate sequence diagram and viola VSTS will parse the code and produce a diagram for us. We can even filter the pasing by specifying the call depth and excluding namespace that we don't care about. I guessing that we can save alot of time we looking for bugs and trying to improve our codebase using this feature.&lt;br /&gt;&lt;br /&gt;Finally if I understand this correctly we can produce these diagrams using the Architecture SKU and they will be read only in all the other SKU's which will make them really usefull in illustrating problem areas in the code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TEST EDITION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The manual testing parts of VSTS has not really been up to speed with their competitors such as HP Quality Center, but in this release this is changing when we get a totally new application called Cameo that our testers can use to plan and perform their tests. The really neat thing about this is that we as developers will get a slew of new information in conjuction with the bug report. Microsoft is aiming at eliminating the &lt;strong&gt;No Repro&lt;/strong&gt; effect (or as it's also known &lt;em&gt;"hey it works on my machine"&lt;/em&gt;). Some of this information that we get is a video recording of the actual test run, system information concerning service packs and such and a &lt;strong&gt;historical debugger&lt;/strong&gt; log (if you haven't looked at this you have to get a peak at it, you get a black box flight recording of what your application did before the failure which you can playback after the fact).&lt;br /&gt;&lt;br /&gt;When we find and fix our bugs or simply make a change to our code we have a new feature called &lt;strong&gt;Test Impact Analysis&lt;/strong&gt; which will analyse the changes in the background and produce a list of impacted tests so that you don't have to run all your tests for a small change this can improve productivity abit but I think it will really shine when you start to consider your changes and their impact on the test suite (provided that you have a fairly good coverage of your code), say for instance that you are changing a function and your test impact analysis goes of the chart and give you a list of thousands of test, you might want to consider getting a second oppinion on your change and bring in someone more senior on the change.&lt;br /&gt;&lt;br /&gt;Another really nice feature that we get is the concept of coded UI tests which in it self is nothing new (and I'm guessing that we will have some v1 issues here also) but what is really exciting is the fact that the test code produced to drive our is regular .NET code so it can be C# or VB.NET finally we get ride of all those nasty script based tests (as far as I know this is unique in the marketplace). Another nice thing about the coded UI test is that they build upon the existing unit test framework which we already know and love (atleast I do) all in all it looks really nice.&lt;br /&gt;&lt;br /&gt;... It's getting late and there are a ton of new features that I haven't talked about so I guess I'll have to get back to you later with that.&lt;br /&gt;&lt;br /&gt;You can get the bits from the new &lt;a href="https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790"&gt;Visual Studio 2010 and .NET Framework 4.0 CTP Feedback&lt;/a&gt; site or you can grab it using FDM following the instructions in Brain Kellers post &lt;a href="http://blogs.msdn.com/briankel/archive/2007/09/06/a-more-reliable-and-faster-download-experience-for-rosario-vs08-vpc-s.aspx"&gt;A More Reliable and Faster Download Experience for VS2010/ VS08 VPC's&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some links getting you upto speed on the comming features:&lt;br /&gt;&lt;blockquote&gt;Be sure to checkout Cameron Skinners &lt;a href="http://channel9.msdn.com/pdc2008/TL47/"&gt;presentation&lt;/a&gt; from PDC08 in LA which is available online &lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;Radio TFS is currently running a series of podcast titled &lt;strong&gt;Road To Rosario&lt;/strong&gt; which I recommend that you listen to&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.radiotfs.com/2008/10/16/RoadToRosarioSpecialVSTS2010Architecture.aspx"&gt;Road To Rosario - Architect&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.radiotfs.com/2008/10/23/RoadToRosarioSpecialVSTS2010Test.aspx"&gt;Road To Rosario - Test&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.radiotfs.com/2008/10/03/RoadToRosarioSpecialVSTS2010Development.aspx"&gt;Road To Rosario - Developer&lt;/a&gt;   &lt;/blockquote&gt; &lt;/blockquote&gt;  &lt;br /&gt;Finally Channel9 had a special on Visual Studio Team System 2010 you can find more info about it &lt;a href="http://channel9.msdn.com/VisualStudio/"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4770054729451850603?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4770054729451850603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4770054729451850603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4770054729451850603'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/10/now-we-are-really-talking-vsts-2010.html' title='Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 1)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3395598308768332417</id><published>2008-02-12T21:30:00.002+01:00</published><updated>2008-02-12T21:31:59.470+01:00</updated><title type='text'>TFS 2005 to 2008 Upgrade Experience</title><content type='html'>I've been meaning to write something about this for awhile now. Friday the 11th of January we migrated our exsisting TFS environment from TFS 2005 to 2008. All in all it was a rather painless transition, the bumps we ran into where related to the fact that we are running our TFS installation on a different port than 8080.&lt;br /&gt;&lt;br /&gt;The first issue though was an typo in the installation help. We figured it would be best to follow the latest version of the documentation. Before we started our upgrade we spotted that the documentation stated that you needed to remove TFS from the application tier on a single server installation which was not the case in the original documentation on the media. After some asking around we managed to come to the conclusion that this was only needed on the database tier in a dual server installation as the original instructions stated.&lt;br /&gt;&lt;br /&gt;Even though we had performed numerous test upgrades we managed to forget the fact that we did not run on a different port in the test environment. The upgrade does not picked up the configuration settings from the previous installation and thus it tried to communicate with TFS on the default port causing it to fail miserably. At this time we had spent about 3 hours and where getting abit worried if we where going to have to perform an emergency restore. &lt;br /&gt;&lt;br /&gt;So we gave it another shot and unpacked the image onto the local harddrive and modified the port settings in the msiproperty.ini (you will find it under the AT folder). Fortunately the upgrade of the database is performed transactionally and thus the database upgrade was rollback and we where able to perform that step again.&lt;br /&gt;&lt;br /&gt;The fact that the database upgrade is quite a large operation is something you need to consider when upgrading since it consumes alot of diskspace. If you have a 15GB database you should expect atleast the same ammount to acumulate during the upgrade in your transaction log of your database. So make sure you have plenty of disk avaiable where ever you store your transation logs.&lt;br /&gt;&lt;br /&gt;After we changed the port settings and ran again it took ages to perform the upgrade however it managed to get through it all and I where actually considering killing the upgrade and restoring to TFS 2005 but we started a database trace against the databases and managed to verify certain activity and let the upgrade continue. After about 6 hours we had managed to successfully upgrade our TFS installation.&lt;br /&gt;&lt;br /&gt;After a month have passed we have still not encountered any major issues with the 2008 version and everything is running along smoothly. I will be posting some &lt;em&gt;from the trenches&lt;/em&gt; posts on any issues we bump into.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3395598308768332417?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3395598308768332417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2008/02/tfs-2005-to-2008-upgrade-experience.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3395598308768332417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3395598308768332417'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2008/02/tfs-2005-to-2008-upgrade-experience.html' title='TFS 2005 to 2008 Upgrade Experience'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4355166403960333812</id><published>2007-12-20T20:14:00.000+01:00</published><updated>2009-08-26T20:20:55.712+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Continous Integration'/><title type='text'>TfsBuildLab v1.1 is released!!!</title><content type='html'>Just in time for christmas we have finnished up what is likely to be the last version (unless you guys using it request any new features or find any defect) since TFS 2008 is out there with most of the functionality covered. Altough TfsBuildLab is still a viable solution for all you guys that are unable to upgrade.&lt;br /&gt;&lt;br /&gt;You can download the latest release form &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=tfsbuildlab&amp;ReleaseId=9242"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some statistics since the start (didn't have the time to do the graphs this time): &lt;br /&gt;We have been dog fooding TfsBuildLab in production since 2007-04-24 on a several projects the largest of them consisting of 5 parallel development branches each containing aproximately 10 000 source files. &lt;br /&gt;&lt;br /&gt;4969 Automatic cleanups&lt;br /&gt;2511 Scheduled builds&lt;br /&gt;2238 Continous integration builds &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What's new in version 1.1?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We have improved the errorhandling dramaically in this release as well as tried to include more contextual information in the logs.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Added support for multiple build servers assosiaed to a trigger.&lt;br /&gt;* Added support for status notifications out build completion.&lt;br /&gt;* Fixed problem with to many changeset involved in build failure notifications when * checkin occurs at the same time as a build is failing. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Admin Client&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Overview of scheduled builds for a team project.&lt;br /&gt;* Support for multiple reports on the dashboard.&lt;br /&gt;* Add transaction support when copy config, this addresses the problem of caches becoming corrupt. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Notification Client&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Support for notification on assignment changes to work items.&lt;br /&gt;* Fixed problem with the configuration no always being persisted. &lt;br /&gt;&lt;br /&gt;Please let us know if you are using it, if you have trouble using it or if you have any requests for features. All feedback is wecome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4355166403960333812?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4355166403960333812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/12/tfsbuildlab-v11-is-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4355166403960333812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4355166403960333812'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/12/tfsbuildlab-v11-is-released.html' title='TfsBuildLab v1.1 is released!!!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-449651796962500335</id><published>2007-12-02T11:01:00.000+01:00</published><updated>2009-08-26T20:06:40.369+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2008'/><title type='text'>Update your old Team Project portals to use the new WSS 3.0 look and feel</title><content type='html'>I am by no mean an expert on Windows Sharepoint Services, but never the less we wanted to upgrade to WSS3.0 when we switched to using TFS 2008 and this proved to have some quirks that needed some sorting out.&lt;br /&gt;&lt;br /&gt;After you have upgraded you TFS 2005 installation you need to upgrade the WSS 2.0 installation manually (this is not part of an upgrade). To do this you can read the following &lt;a href="http://blogs.msdn.com/sudhir/archive/2007/05/31/upgrade-2005-with-wss2-0-to-orcas-wss3-0.aspx"&gt;post&lt;/a&gt;, it refers to the Beta version of TFS 2008 but the procedure is the same.&lt;br /&gt;&lt;br /&gt;You'll need the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e8a00b1f-6f45-42cd-8e56-e62c20feb2f1&amp;displaylang=en#filelist"&gt;prescan&lt;/a&gt; tool to perform the upgrade as well. You can find more details about this in the documentation section &lt;a href="http://msdn2.microsoft.com/en-us/library/bb909691(VS.90).aspx"&gt;Upgrading SharePoint Products and Technologies for Team Foundation Server&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Once you have upgraded your sharepoint installation you will notice that the old projects doen't quite look as slick as any new project portals you create...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_XY57yl89XM0/R1JzUEcop7I/AAAAAAAAAC8/w0kaccjeO7w/s1600-R/PreUpgrade.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:Left;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_XY57yl89XM0/R1JzUEcop7I/AAAAAAAAAC8/5UFQWGC2K6c/s400/PreUpgrade.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139296913411581874" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see below the new sites created have alot of new navigational features that will make your users life easier such as the sites section on the quicklaunch and the top bar (the tabs) is handled more correctly and it has a slicker look (atleast in my opinion)...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_XY57yl89XM0/R1JzUkcop8I/AAAAAAAAADE/He089kbkvRI/s1600-R/TargetLayout.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_XY57yl89XM0/R1JzUkcop8I/AAAAAAAAADE/pXBOjaOeg88/s400/TargetLayout.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139296922001516482" /&gt;&lt;/a&gt;&lt;br /&gt;To get around this you need to do the following steps (this is a solution that works for companies that have a not to large number of Team Project portals since it involves some manual steps):&lt;br /&gt;&lt;br /&gt;Step 1: Navigate to your portals site settings and then from the look and feel menu select the option &lt;em&gt;Reset to site definition&lt;/em&gt; (as shown in the picture):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_XY57yl89XM0/R1J6-Ecop9I/AAAAAAAAADM/vLh_PaJc-DI/s1600-R/ResetLayout1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_XY57yl89XM0/R1J6-Ecop9I/AAAAAAAAADM/wcuD_xtgm1w/s400/ResetLayout1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305331547482066" /&gt;&lt;/a&gt;&lt;br /&gt;make sure that you reset all the pages in your site&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_XY57yl89XM0/R1J6-Ucop-I/AAAAAAAAADU/fTv3QmAR0DY/s1600-R/ResetLayout2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_XY57yl89XM0/R1J6-Ucop-I/AAAAAAAAADU/VPqXxN_Av1E/s400/ResetLayout2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305335842449378" /&gt;&lt;/a&gt;&lt;br /&gt;This will make the site look like a newely created project portal, unfourtunately it will also break a few things that you'll need to fix manually.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_XY57yl89XM0/R1J6-kcop_I/AAAAAAAAADc/7Qn9QtMdWUg/s1600-R/PostUpgrade.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_XY57yl89XM0/R1J6-kcop_I/AAAAAAAAADc/z7tfAyNpoU0/s400/PostUpgrade.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305340137416690" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see the &lt;strong&gt;Process Guidance&lt;/strong&gt; link and the &lt;strong&gt;Reports&lt;/strong&gt; link have dissapeared. Also the Team System logo on the top of the page has vanished (this I have no clue on how to fix at the moment).&lt;br /&gt;&lt;br /&gt;Step 2: Navigate to the site settings of your site and under the look and feel section select the Top Link Bar and remove all links that are not subsites (Home, Documents and Lists, Create, Site Settings and Help).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_XY57yl89XM0/R1J6-kcoqAI/AAAAAAAAADk/octA-XwYPl0/s1600-R/FixTopLinkBar.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_XY57yl89XM0/R1J6-kcoqAI/AAAAAAAAADk/RMHIbWPEzps/s400/FixTopLinkBar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305340137416706" /&gt;&lt;/a&gt;&lt;br /&gt;Step 3: Navigate to the site settings of your site and under the look and feel section select the Quick Launch and remove all none wanted links (typically Pictures, Lists, Discussions and Surveys).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/R1J6-0coqBI/AAAAAAAAADs/J_Md8IcMu3Q/s1600-R/FixQuickLaunchBar.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/R1J6-0coqBI/AAAAAAAAADs/viuVcbT6ehI/s400/FixQuickLaunchBar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305344432384018" /&gt;&lt;/a&gt;&lt;br /&gt;Step 4: Recreate the &lt;strong&gt;Process Guidance&lt;/strong&gt; section in the &lt;em&gt;Quick Launch&lt;/em&gt; sidebar &lt;br /&gt;&lt;blockquote&gt;/sites/&lt;strong&gt;[YOURSITE]&lt;/strong&gt;/Process%20Guidance/ProcessGuidance.html&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_XY57yl89XM0/R1J7ZUcoqCI/AAAAAAAAAD0/Zh0eQzCmto8/s1600-R/FixProcessGuidanceLink.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_XY57yl89XM0/R1J7ZUcoqCI/AAAAAAAAAD0/tgxoDw88uYM/s400/FixProcessGuidanceLink.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305799698917410" /&gt;&lt;/a&gt;&lt;br /&gt;Step 5: Recreate the &lt;strong&gt;Reports&lt;/strong&gt; section in the &lt;em&gt;Quick Launch&lt;/em&gt; sidebar &lt;br /&gt;&lt;blockquote&gt;/sites/&lt;strong&gt;[YOURSITE]&lt;/strong&gt;/_layouts/tfsredirect.aspx?IsReport=0&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_XY57yl89XM0/R1J7ZkcoqDI/AAAAAAAAAD8/Cg5nZmPFzYg/s1600-R/AddReportsLink.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_XY57yl89XM0/R1J7ZkcoqDI/AAAAAAAAAD8/VT9oj_CofEk/s400/AddReportsLink.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305803993884722" /&gt;&lt;/a&gt;&lt;br /&gt;Step 6: Then add the links to the reports you had previously, for example to add the &lt;strong&gt;Bug Rates&lt;/strong&gt; report.&lt;br /&gt;&lt;blockquote&gt;/sites/&lt;strong&gt;[YOURSITE]&lt;/strong&gt;/_layouts/tfsredirect.aspx?IsReport=1&amp;ReportName=Bug+Rates&amp;ShowToolbar=1&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/R1J7Z0coqEI/AAAAAAAAAEE/Cx9_GqclBiE/s1600-R/AddSubReportLink.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/R1J7Z0coqEI/AAAAAAAAAEE/g78L4h67OcY/s400/AddSubReportLink.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5139305808288852034" /&gt;&lt;/a&gt;&lt;br /&gt;That is it, please comment if there are better ways todo this I'd love to get some pointer on how to do this easier (I guess you could do it by scripting?).&lt;br /&gt;&lt;br /&gt;Finally if you have a bunch of highly customized templates that you are using you can find more information about how to covert them to WSS 3.0 in the &lt;a href="http://www.microsoft.com/technet/solutionaccelerators/collaboration/default.mspx"&gt;Upgrade Toolkit for Windows SharePoint Services Sites and Templates Guide&lt;/a&gt; which was pointed out to me by the nice folks at Microsoft.&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-449651796962500335?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/449651796962500335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/12/update-your-old-team-project-portals-to.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/449651796962500335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/449651796962500335'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/12/update-your-old-team-project-portals-to.html' title='Update your old Team Project portals to use the new WSS 3.0 look and feel'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_XY57yl89XM0/R1JzUEcop7I/AAAAAAAAAC8/5UFQWGC2K6c/s72-c/PreUpgrade.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9013193639891089156</id><published>2007-11-29T12:03:00.000+01:00</published><updated>2007-11-29T12:04:25.651+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='TSWA 2005'/><title type='text'>TSWA 2005 crashes (Attempted to read or write protected memory)</title><content type='html'>A while back when we started using Team System Web Access 2005 we bumped into a problem with the website crashing sometimes several times during a day displaying the following error:&lt;strong&gt;&lt;blockquote&gt;Attempted to read or write protected memory. This is often an indication that other memory is corrupt. &lt;br /&gt;Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. &lt;br /&gt;&lt;br /&gt;Exception Details: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.&lt;br /&gt;&lt;br /&gt;Source Error: &lt;br /&gt;&lt;br /&gt;An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. &lt;/blockquote&gt;&lt;/strong&gt; we where able to get around it by manually go in an recycle the application pool for TSWA (which temporarily solve the problem). &lt;br /&gt;&lt;br /&gt;Clearly this was not a sufficient solution so after chatting about it with the good folks over in Redmond they where able to pinpoint the problem (this is as far as I know only a problem in TSWA 2005). To solve the problem you need to do the following:&lt;br /&gt; &lt;br /&gt;Switch TSWA over to use shared WIT cache mode which can be done by adding the following entry in the web.config for TSWA:&lt;strong&gt;&lt;blockquote&gt;&amp;ltconfiguration&amp;gt&lt;br /&gt;    …&lt;br /&gt;    &amp;ltappSettings&amp;gt&lt;br /&gt;        &amp;ltadd key="WorkItemTrackingCacheRoot" value="C:\FolderForCache" /&amp;gt&lt;br /&gt;    &amp;lt/appSettings&amp;gt&lt;br /&gt;    …&lt;br /&gt;&amp;lt/configuration&amp;gt&lt;/blockquote&gt;&lt;/strong&gt;After we added this entry we have experienced no problems with this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9013193639891089156?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9013193639891089156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/tswa-2005-crashes-attempted-to-read-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9013193639891089156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9013193639891089156'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/tswa-2005-crashes-attempted-to-read-or.html' title='TSWA 2005 crashes (Attempted to read or write protected memory)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-824245458880297618</id><published>2007-11-29T12:01:00.000+01:00</published><updated>2007-11-29T12:05:14.378+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='TestComplete'/><title type='text'>Those pesky TestType doesn't exsists error messages</title><content type='html'>Recently I had some problems with publishing of the test results for our test runs performed with a tool called &lt;strong&gt;AutomatedQA TestComplete&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;No matter what we did the only message we got back was:&lt;strong&gt;&lt;blockquote&gt;Publish Failed. Test Type not installed on the server for test type: "TestComplete6.VSI.Tests.TestCompleteTest"&lt;/blockquote&gt;&lt;/strong&gt;After a fair ammount of digging I finally found the solution and this applies to any custom test type used together with TFS (so I figured I'd share the information).&lt;br /&gt;&lt;br /&gt;As you can read in the documentation regarding custom test types you not only have to install the test type on the machine i has to be available in the probe path for the web services as well. &lt;em&gt;&lt;blockquote&gt;Test type extension assemblies must be installed to two locations on the applicationtier computer: &lt;br /&gt;&lt;br /&gt;To support the publishing Web service, install test type extension assemblies to this folder: Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Build\bin. This service publishes test results from Visual Studio to the application tier.&lt;br /&gt;&lt;br /&gt;To support the data warehouse adapter, install test type assemblies to this folder: Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Warehouse\bin\Plugins. This adapter pushes test result data into the data warehouse for reporting.&lt;/blockquote&gt;&lt;/em&gt; This MSDN documentation section explains it all &lt;a href="http://msdn2.microsoft.com/en-us/library/bb166009(VS.80).aspx#InstallComponentsApplicationTier"&gt;Packaging and Installing Test Type Extensions in Visual Studio Team System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And if you are considering writing your own custom test type be sure to read through this &lt;a href="http://msdn2.microsoft.com/en-us/library/bb165914(VS.80).aspx"&gt;Creating Custom Test Types in Visual Studio Team System&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I didn't find all that much information around this when digging around the net but this article gives some pointers on writing custom test types as well &lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/11/FUZZTesting/default.aspx"&gt;Create a Custom Test Interface Provider for Team System&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-824245458880297618?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/824245458880297618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/11/those-pesky-testtype-doesnt-exsists.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/824245458880297618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/824245458880297618'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/11/those-pesky-testtype-doesnt-exsists.html' title='Those pesky TestType doesn&apos;t exsists error messages'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-5410439139944408569</id><published>2007-11-21T20:27:00.000+01:00</published><updated>2007-11-21T20:32:10.236+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Come chat with the Team System product group - December 5th</title><content type='html'>It's time again for a chat with the &lt;strong&gt;Team System Product Group&lt;/strong&gt;, make sure that you clear you calender on the 5th of december.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Join members of the Visual Studio Team System product group to discuss features available in Team Foundation Server, Team Suite, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new for these editions for Visual Studio 2008.&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2442307&amp;SiteID=1"&gt;Read more about it here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-5410439139944408569?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/5410439139944408569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/11/come-chat-with-team-system-product.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5410439139944408569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/5410439139944408569'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/11/come-chat-with-team-system-product.html' title='Come chat with the Team System product group - December 5th'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2324159733384324176</id><published>2007-10-14T21:59:00.000+02:00</published><updated>2007-10-14T22:15:40.940+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Continous Integration'/><title type='text'>TfsBuildLab v1.0 is out there !!!</title><content type='html'>Finally we are feature complete as we intended it to be from the start (download it from &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=tfsbuildlab&amp;ReleaseId=7709"&gt;here&lt;/a&gt;) we missed out intended deadline by almost 3 weeks :( (before 22/9) but for a sparetime project it still is decent... We have now been dog fooding TfsBuildLab in production since 2007-04-24 on a several projects the largest of them consisting of 5 parallel development branches each containing aproximately 10 000 source files. &lt;br /&gt;&lt;br /&gt;Some statistics since the start (didn't have the time to do the graphs this time): &lt;br /&gt;&lt;br /&gt;2998 Automatic cleanups&lt;br /&gt;1554 Scheduled builds&lt;br /&gt;1359 Continous integration builds &lt;br /&gt;&lt;br /&gt;And here's how it looks over time:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_XY57yl89XM0/RxJ4js_nqRI/AAAAAAAAACM/h40zSUROQck/s1600-h/stats.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_XY57yl89XM0/RxJ4js_nqRI/AAAAAAAAACM/h40zSUROQck/s400/stats.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5121288281042430226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;What's new in version 1.0?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Automatic rescheduling when adding new scheduled trigger.&lt;br /&gt;* A report for displaying statistics from the triggers and retention policies.&lt;br /&gt;* Support for overriding build script parameters both for CI and queued builds.&lt;br /&gt;* Support for only deleting the build drops.&lt;br /&gt;* Support for configuring retention policies based on build quality.&lt;br /&gt;* Performance improvements by introducing caching&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Admin Client&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Added feedback when delteing multiple builds.&lt;br /&gt;* Support for forcing recaching on the server.&lt;br /&gt;* Support for overriding build script parameters on queued builds.&lt;br /&gt;* Support for overriding build script parameters on triggers.&lt;br /&gt;* Added range paramters when listing log entries to limit the result data. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Checkin Policies&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Removed the need for TfsBuildLab when using the restricted paths policy. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Build Task&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* New custom build task to use overloaded parameters (LoadOverriddenProperty) &lt;br /&gt;&lt;br /&gt;Please let us know if you are using it, if you have trouble using it or if you have any requests for features. All feedback is wecome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2324159733384324176?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2324159733384324176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/tfsbuildlab-v10-is-out-there.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2324159733384324176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2324159733384324176'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/tfsbuildlab-v10-is-out-there.html' title='TfsBuildLab v1.0 is out there !!!'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_XY57yl89XM0/RxJ4js_nqRI/AAAAAAAAACM/h40zSUROQck/s72-c/stats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6114850793075978994</id><published>2007-10-12T19:23:00.000+02:00</published><updated>2007-10-12T19:30:12.865+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='OreDev'/><title type='text'>Speaking at OreDev about our experiences with implementing and extending Team System</title><content type='html'>&lt;a href="http://bp0.blogger.com/_XY57yl89XM0/Rw-u3M_nqQI/AAAAAAAAACE/_HvgKOglQVA/s1600-h/OredevSpeaker.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_XY57yl89XM0/Rw-u3M_nqQI/AAAAAAAAACE/_HvgKOglQVA/s400/OredevSpeaker.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5120503564747647234" /&gt;&lt;/a&gt;&lt;br /&gt;Just wanted to do some advetising :) I'm gonna speak at OreDev this year about our experiences when implementing and extending Team System. Check out the session description &lt;a href="http://www.oredev.se/toppmeny/conference/methodstools/implementingandextendingvsts.4.76e8b1c6112f078db498000126368.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So if you are in the neighbourhood on November the 13th come listen and maybe swap some was stories?!?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6114850793075978994?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6114850793075978994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/speaking-at-oredev-about-our.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6114850793075978994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6114850793075978994'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/speaking-at-oredev-about-our.html' title='Speaking at OreDev about our experiences with implementing and extending Team System'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_XY57yl89XM0/Rw-u3M_nqQI/AAAAAAAAACE/_HvgKOglQVA/s72-c/OredevSpeaker.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4143000886074930044</id><published>2007-10-12T19:14:00.000+02:00</published><updated>2007-10-12T19:14:59.435+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><title type='text'>Automated builds of Visual Basic 6 project with Team System</title><content type='html'>Way back when we started to implement TFS as our primary provider for source control and build automation we experienced a fair ammount of pain due to the fact that we had a large body of Visual Basic 6 code that we needed to build using Team Build.&lt;br /&gt;&lt;br /&gt;Since there is still not that much information about this I decided to do a post about it. &lt;br /&gt;&lt;br /&gt;There are not that much to it but it has one quirk that you need to understand to get it to run smoothly. You have to use the /out argument and supply a path to a logfile that will capture the input. &lt;br /&gt;&lt;br /&gt;It's rather easy to say nah I don't need that information and run without using this argument. The problem then will start with the fact that even if you build vb6 projects using the commandline switches the IDE will prompt for input when failures occurs and block the build script indefinitly. It wont work just using the timeout property on the exec task either since this will leave the process running and locking the files and thus you will get a failed build the next time when Team Build attempts to clear the workspace.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using the &lt;em&gt;exec&lt;/em&gt; task&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;"This approach requires no external components but does not report any information back in the build report"&lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&amp;ltpropertygroup&amp;gt&lt;br /&gt;&amp;ltVB6&amp;gt$(ProgramFiles)\Microsoft Visual Studio\VB98\VB6.exe&amp;lt/vb6&amp;gt&lt;br /&gt;&amp;ltVB6Output&amp;gt$(BinariesRoot)\VB6\&amp;lt/VB6Output&amp;gt&lt;br /&gt;&amp;ltVB6Timeout&amp;gt150000&amp;lt/vb6timeout&amp;gt&lt;br /&gt;&amp;lt/propertygroup&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;lttarget name="CompileProject"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspinputs="%(ProjectToBuild.Identity)" &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspoutputs="Compiled %(ProjectToBuild.Identity)"&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltmessage text="CompileProject: %(ProjectToBuild.Identity)"&amp;gt&lt;br /&gt;&amp;ltmakedir directories="$(VB6Output)" condition="!Exists('$(VB6Output)')"&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltexec condition=" '@(ProjectToBuild)'!='' " &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspcommand="&amp;quot;$(VB6)&amp;quot; &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp/m &amp;quot;%(ProjectToBuild.Identity)&amp;quot; &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp/outdir &amp;quot;$(VB6Output)&amp;quot; &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp/out &amp;quot;$(VB6Output)VB6.log&amp;quot;"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsptimeout="%(VB6Timeout)"&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;lt/target&amp;gt&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using a custom build task&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;"This approach requires and external component which is included in my petproject &lt;a href="http://www.codeplex.com/TfsBuildLab"&gt;TfsBuildLab&lt;/a&gt;. The benefits with this is that the feedback is instant in the build report. Pleas note that the script below describes what the usage would look like using the build task VB6Build"&lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&amp;ltpropertygroup&amp;gt&lt;br /&gt;&amp;ltVB6&amp;gt$(ProgramFiles)\Microsoft Visual Studio\VB98\VB6.exe&amp;lt/vb6&amp;gt&lt;br /&gt;&amp;ltVB6Output&amp;gt$(BinariesRoot)\VB6\&amp;lt/VB6Output&amp;gt&lt;br /&gt;&amp;ltVB6Timeout&amp;gt300000&amp;lt/vb6timeout&amp;gt&lt;br /&gt;&amp;lt/propertygroup&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltTarget Name="CompileProject"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspInputs="%(ProjectToBuild.Identity)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspOutputs="Compiled %(ProjectToBuild.Identity)" &amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltMessage Text="CompileProject: %(ProjectToBuild.Identity)" /&amp;gt&lt;br /&gt;&amp;ltMakeDir Directories="$(VB6Output)" Condition="!Exists('$(VB6Output)')" /&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltVB6Build TeamFoundationUrl="$(TeamFoundationServerUrl)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspBuildUri="$(BuildUri)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspCompilerPath="$(VB6)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspProjectFile="%(ProjectToBuild.Identity)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspTimeout="$(VB6Timeout)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspOutput="$(VB6Output)" /&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;lt/Target&amp;gt&lt;br /&gt;&lt;br /&gt;Finally here are some links to a couple of postings that has been usefull for me when dealing with issues regarding building none Visual Studio 2005 related solutions...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2007/03/30/building-non-msbuild-projects-with-team-build.aspx"&gt;Building Non-MSBuild Projects With Team Build&lt;/a&gt; by Aaron Hallberg&lt;br /&gt;&lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2007/07/12/team-build-devenv-task.aspx"&gt;Team Build DevEnv Task&lt;/a&gt; by Aaron Hallberg&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/nagarajp/archive/2005/10/26/485368.aspx"&gt;Building binaries targeting .NET 1.1 and .NET 1.0 in TeamBuild&lt;/a&gt; by Nagaraju Palla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4143000886074930044?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4143000886074930044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/automated-builds-of-visual-basic-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4143000886074930044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4143000886074930044'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/automated-builds-of-visual-basic-6.html' title='Automated builds of Visual Basic 6 project with Team System'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9158462090417613440</id><published>2007-10-12T09:23:00.000+02:00</published><updated>2007-10-12T09:26:00.687+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Document Management'/><title type='text'>Removing the process guidance link from your portal</title><content type='html'>&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/Rw8et8_nqPI/AAAAAAAAAB8/K7-3cW_aiMs/s1600-h/processguidance.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/Rw8et8_nqPI/AAAAAAAAAB8/K7-3cW_aiMs/s400/processguidance.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5120345076159457522" /&gt;&lt;/a&gt;&lt;br /&gt;Just another small post about the team project portal and the layout. If like we don't have the possibility to produce the kind of flashy process guidance that comes with the SharePoint templates provided by Team System, but still have to modify the actual process (i.e. you can't use the one provided out of the box) you might want to remove the incorrect process guidance from your portals to avoid confusion.&lt;br /&gt;&lt;br /&gt;It is not that hard once you understand that you need to use Frontpage 2003 to edit the behaviour of your portals. So here are the steps to remove the process guidance like from an already created portal.&lt;br /&gt;&lt;br /&gt;1, Open site in question&lt;br /&gt;2, Open default.aspx for editing&lt;br /&gt;3, Select the process guidance and the row below.&lt;br /&gt;4, Right click and select cut&lt;br /&gt;5, Save chanes made to default.aspx&lt;br /&gt;&lt;br /&gt;That's it! But don't forget to remove the document library containing the guidance as well. Obviously it's better to actually modify the process guidance documentation or provide you own and create a new SharePoint template that's assosiated with your process template, but we are not always granted the luxury of being able to do all this during an incremental rollout of a major product like Team System.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9158462090417613440?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9158462090417613440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/removing-process-guidance-link-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9158462090417613440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9158462090417613440'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/removing-process-guidance-link-from.html' title='Removing the process guidance link from your portal'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_XY57yl89XM0/Rw8et8_nqPI/AAAAAAAAAB8/K7-3cW_aiMs/s72-c/processguidance.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-237315544821689438</id><published>2007-10-11T20:33:00.000+02:00</published><updated>2007-10-11T20:35:19.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Creating a test server by cloning your TFS production environment</title><content type='html'>Not long ago we created a lab environment for testing out new concepts and testing upgrades on an so on. We then had the brilliant :) idea that we should perform a clone by using the disaster recovery techniques describe in the msdn article: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms404869(VS.80).aspx"&gt;How to: Move Your Team Foundation Server from One Hardware Configuration to Another&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This worked great and we suddenly had a realistic lab environment, atleast that's what we though. Fourtunately for us we didn't have time to do anything with this new server after we created it and some time passed. During this time we created additional team projects and everything was fine.&lt;br /&gt;&lt;br /&gt;Imagine my suprise when we started using the test server and all of the suddenly saw the new projects on this server as well. After som digging around and talking to Microsoft support we where directed to an post by Buck Hodges that points out that the problem resides in the fact that when we restore the databases on another server we end up with 2 instances of TFS running with ther same instance ID (a guid stamped in the database). Since this guid is cached on the client it can cause all kinds of nasty issues if you access both servers from the same client.&lt;br /&gt;&lt;br /&gt;Anyway here's howto fix it:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;em&gt;Clear the client cache&lt;/em&gt;&lt;br /&gt;Delete the directory %userprofile%\Local Settings\Application Data\Microsoft\Team Foundation\1.0\Cache.  &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Clear the instance info&lt;/em&gt;&lt;br /&gt;“%TFSInstallDir%\Tools\InstanceInfo.exe" stamp /setup /install /rollback /d TFSWorkItemTracking,TFSBuild,TFSVersionControl,TFSIntegration /s &amp;ltyour new data tier&amp;gt&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Create new instance info&lt;/em&gt;&lt;br /&gt;"% TFSInstallDir %\Tools\InstanceInfo.exe" stamp /d TFSWorkItemTracking,TFSBuild,TFSVersionControl,TFSIntegration /s &amp;ltyour new data tier&amp;gt&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;And here is the link to the posting Buck Hodges made about it: &lt;a href="http://blogs.msdn.com/buckh/archive/2006/10/17/creating-a-new-server-from-an-old-one-beware-of-the-instanceid.aspx"&gt;Creating a new server from an old one: Beware of the InstanceId&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-237315544821689438?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/237315544821689438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/creating-test-server-by-cloning-your.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/237315544821689438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/237315544821689438'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/creating-test-server-by-cloning-your.html' title='Creating a test server by cloning your TFS production environment'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6343946578063946137</id><published>2007-10-11T20:13:00.000+02:00</published><updated>2007-10-11T20:13:23.180+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extending'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><title type='text'>LinkMania: HowTo create a custom build step for MSBuild</title><content type='html'>There is not much to writing extensions to msbuild but I've put together afew links as a starting point.&lt;br /&gt;&lt;br /&gt;The documentation would be a great place to start :) and it is very complete with alot of examples: &lt;a href="http://msdn2.microsoft.com/en-us/library/t9883dzc(VS.80).aspx"&gt;How To: Write a Task&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are also a couple of really good posts on the msbuild team blog about this:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/msbuild/archive/2006/01/21/515834.aspx"&gt;How To: Implementing Custom Tasks - Part I&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/msbuild/archive/2006/02/02/523714.aspx"&gt;How To: Implementing Custom Tasks - Part II&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/msbuild/archive/2005/09/28/474951.aspx"&gt;How To: Debug a custom MSBuild task using Visual Studio&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is also a great MSDN article on how the msbuild engine works and howto extended it here: &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/06/InsideMSBuild/default.aspx"&gt;Inside MSBuild Compile Apps Your Way With Custom Tasks For The Microsoft Build Engine&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6343946578063946137?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6343946578063946137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/linkmania-howto-create-custom-build.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6343946578063946137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6343946578063946137'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/linkmania-howto-create-custom-build.html' title='LinkMania: HowTo create a custom build step for MSBuild'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1189296227251616544</id><published>2007-10-11T18:56:00.000+02:00</published><updated>2007-10-11T18:57:00.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Document Management'/><title type='text'>Broken navigation in team portal when deleting security or requirements document library</title><content type='html'>Lately I've been mucking about with the portal parts of Team System since we wanted to move our documents into SharePoint and gain all the benefits there. &lt;br /&gt;&lt;br /&gt;We did however bump into a major issue that turned out to be a bug in the SharePoint templates in Team System. The bug is fixed in the upcomming release (TFS2008) in both template versions (WSS2.0 &amp; WSS3.0).&lt;br /&gt;&lt;br /&gt;The problem occurs when you delete certain document libraries from you portals, namely the security and requirements. This will corrupt the portal navigation (quicklaunch) and once you've ended up in a corrupted state you can not get any document libraries to appear on the quick launch.&lt;br /&gt;&lt;br /&gt;The bug is related to some sort of hardcoding in the template concerning the security and requirements document libraries. You can test this by enabling "show on quicklaunch" in these document librareis. This will generate duplicates on the quicklaunch. And if you remove either of them the navigation breaks.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/Rw32Xc_nqLI/AAAAAAAAABc/Hov3LETqOC0/s1600-h/table.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/Rw32Xc_nqLI/AAAAAAAAABc/Hov3LETqOC0/s400/table.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5120019234170579122" /&gt;&lt;/a&gt;&lt;br /&gt;After some discussions with Microsoft support we came to the conclusion that if you delete the security or requirements document libraries (either through team explorer or through the portal), it seems that an orphaned element is left in the dbo.navnodes table of your SharePoint content database. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_XY57yl89XM0/Rw4pws_nqMI/AAAAAAAAABk/CWjCgSee6ro/s1600-h/doclib.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_XY57yl89XM0/Rw4pws_nqMI/AAAAAAAAABk/CWjCgSee6ro/s400/doclib.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5120075743055292610" /&gt;&lt;/a&gt;&lt;br /&gt;There is a way to remove these document libraries with out breaking the navigation. To do this you need to use FrontPage 2003 and connect to the site in question. Then open the file default.aspx and you will see the following section on the left.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_XY57yl89XM0/Rw5T58_nqOI/AAAAAAAAAB0/UgZHyhF3ETk/s1600-h/linkbar.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_XY57yl89XM0/Rw5T58_nqOI/AAAAAAAAAB0/UgZHyhF3ETk/s200/linkbar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5120122081457449186" /&gt;&lt;/a&gt;&lt;br /&gt;Double click on either the security or requirements link and you will be presented with the "linkbar properties" dialogue. Then remove the link to the security and/or requirements document library from the quicklaunch. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you have done this it's ok to remove the document libraries from any tool you choose.&lt;br /&gt;&lt;br /&gt;If you like me have a trigger happy finger and don't like unused stuff and already have deleted the document libraries and are stuck with a broken portal there is a solution :).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE THAT THIS IS NOT A SOLUTION SUPPORTED BY MICROSOFT!!! So you should know what you are doing when performing this recovery strategy and always make sure that you have a made a complete backup of both sharepoint databases before starting this procedure!!!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Step 1, Get the identity of the orphaned document library from the navigation nodes table.&lt;/em&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;SELECT DocId FROM dbo.navnodes &lt;br /&gt;WHERE name = 'BrokenDocumentLibraryName' AND&lt;br /&gt;SiteId IN (SELECT SiteId FROM dbo.Webs WHERE FullUrl = 'sites/TeamProjectName') AND&lt;br /&gt;WebId IN (SELECT id FROM dbo.Webs WHERE FullUrl = 'sites/TeamProjectName') &lt;/blockquote&gt;&lt;br /&gt;&lt;em&gt;Step 2, Verify that the document library actually is orphaned.&lt;/em&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;SELECT * FROM docs&lt;br /&gt;WHERE Id = 'DocumentLibraryIdentity'&lt;/blockquote&gt;&lt;br /&gt;&lt;em&gt;Step 3, Remove the orphaned document library from the navigation node table.&lt;/em&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;DELETE FROM dbo.navnodes &lt;br /&gt;WHERE DocID = 'DocumentLibraryIdentity'&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1189296227251616544?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1189296227251616544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/broken-navigation-in-team-portal-when.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1189296227251616544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1189296227251616544'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/10/broken-navigation-in-team-portal-when.html' title='Broken navigation in team portal when deleting security or requirements document library'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_XY57yl89XM0/Rw32Xc_nqLI/AAAAAAAAABc/Hov3LETqOC0/s72-c/table.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2573566349562758074</id><published>2007-08-26T22:24:00.000+02:00</published><updated>2007-10-11T18:58:28.012+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Continous Integration'/><title type='text'>TfsBuildLab goes Beta 2</title><content type='html'>Time sure does fly when you have fun :) it's time for beta 2 (download it from &lt;a href="http://www.codeplex.com/tfsbuildlab/Release/ProjectReleases.aspx?ReleaseId=6585"&gt;here&lt;/a&gt;) almost exactly one month after beta 1 (kinda puts some preassure to finnish the v1 before 22/9)... We have now been dog fooding TfsBuildLab in production since 2007-04-24 on a several projects the largest of them consisting of 5 parallel development branches each containing aproximately 10 000 source files. &lt;br /&gt;&lt;br /&gt;Some statistics since the start (didn't have the time to do the graphs this time):&lt;br /&gt;&lt;br /&gt;1854 Automatic cleanups&lt;br /&gt;935 Scheduled builds&lt;br /&gt;754 Continous integration builds &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is new in Beta 2? &lt;/strong&gt;&lt;br /&gt;´&lt;br /&gt;&lt;strong&gt;Service&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;Support for tracing using trace listeners&lt;br /&gt;Made automatic notification registration optional&lt;br /&gt;Removed the need for LDAP to resolve email for notifications&lt;/blockquote&gt;&lt;strong&gt;Admin Client&lt;/strong&gt; &lt;br /&gt;&lt;blockquote&gt;Context menues with refresh commands&lt;br /&gt;Full screen mode (press F11 to toggle)&lt;br /&gt;Added hosting of reports in the dashboard&lt;br /&gt;Minimize to tray&lt;br /&gt;Sorting possibilities on the contents of the grids&lt;br /&gt;Added Edit trigger/policy&lt;br /&gt;Added Copy trigger/policy&lt;/blockquote&gt;&lt;br /&gt;&lt;strong&gt;Notification Client&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;Added support for executing alert commands&lt;br /&gt;Notifications occurs when a build starts as well&lt;/blockquote&gt;&lt;strong&gt;Policies&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;A policy for restricting checkins based on a source control path&lt;br /&gt;A policy for restricting checkins when the build is broken&lt;br /&gt;A policy for requiring a comment when performing a checkin&lt;/blockquote&gt;&lt;br /&gt;Please let us know if you are using it, if you have troubles installing it or if you have any requests for features. All feedback is wecome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2573566349562758074?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2573566349562758074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/tfsbuildlab-goes-beta-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2573566349562758074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2573566349562758074'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/tfsbuildlab-goes-beta-2.html' title='TfsBuildLab goes Beta 2'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1318286426302854914</id><published>2007-08-23T21:47:00.002+02:00</published><updated>2007-08-23T21:48:16.058+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extending'/><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><title type='text'>LinkMania: HowTo create a custom policy plug-in for Team System</title><content type='html'>First of all you'll need to download the &lt;em&gt;Team Foundation Server SDK&lt;/em&gt; which is included in the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=51a5c65b-c020-4e08-8ac0-3eb9c06996f4&amp;displaylang=en"&gt;Visual Studio SDK&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The most comprehensive guideline is most likely &lt;br /&gt;&lt;a href="http://www.codeplex.com/VSTSGuidance/Project/FileDownload.aspx?DownloadId=9469"&gt;Creating a Custom Check-in Policy for Team Foundation Server 2005&lt;/a&gt; written by the Patterns &amp; Practices team (sure wish I had this when I wrote my first plug-in).&lt;br /&gt;&lt;br /&gt;The documentation on MSDN is also very comprehensive&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb130351(VS.80).aspx"&gt;Check-in Policy Extensibility&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jim Presto wrote a series of blog posts on this way back that I still think are a very good place to look &lt;a href="http://blogs.msdn.com/jimpresto/archive/2004/09/27/234888.aspx"&gt;Create Policy - Step 1&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/jimpresto/archive/2005/01/05/347074.aspx"&gt;Create Policy - Step 2&lt;/a&gt; are the best two in my oppinion.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.infosupport.com/marcelv/default.aspx"&gt;Marcel de Vries&lt;/a&gt; obviously had way to much time on his hands when he wrote &lt;a href="http://blogs.infosupport.com/marcelv/pages/CustomPolicyArticle.aspx"&gt;How to build a custom check-in policy&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1318286426302854914?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1318286426302854914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/linkmania-howto-create-custom-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1318286426302854914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1318286426302854914'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/linkmania-howto-create-custom-policy.html' title='LinkMania: HowTo create a custom policy plug-in for Team System'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-9140022564206278836</id><published>2007-08-17T09:56:00.000+02:00</published><updated>2009-08-26T20:24:30.528+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extending'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Retrieving user email &amp; display name from Team Foundation Server</title><content type='html'>While working on the continous integration parts in our project TfsBuildLab we needed to resolve a users email based on the accountname retrieved when a checkin notification occurred. My first take was to go straight at the active directory implementing this using LDAP.&lt;br /&gt;&lt;br /&gt;However this is some what limiting so I was mucking about and trying to find out how to do it using the TFS api and guess what it isn't that hard at all the following sample illustrates how to do it and at the end of this post I've tried to explain some of the details of the method being used.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using Microsoft.TeamFoundation.Client;&lt;br /&gt;using Microsoft.TeamFoundation.Server;&lt;br /&gt;&lt;br /&gt;public Identity GetUserInfo(string accountname)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    string tfsUri = "YOURTFSSERVER";&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    string tfsUser = "YOURTFSACCOUNT";&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    string tfsPassword = "YOURTFSPASSWORD";&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    NetworkCredential nc = new NetworkCredential(tfsUser, tfsPassword);&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    TeamFoundationServer tfs = new TeamFoundationServer(tfsUri, nc);&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    IGroupSecurityService gss = (IGroupSecurityService)tfs.GetService(typeof(IGroupSecurityService));&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    Identity identity = gss.ReadIdentity(SearchFactor.AccountName, accountname, QueryMembership.None);&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    if (identity != null)&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    {&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp        //how to get the email&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp        //string email = identity.MailAddress;&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp        //how to get the displayname&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp        //string displayname = identity.DisplayName;&lt;br /&gt;        &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp        return identity;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    }&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp    return null;&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.server.igroupsecurityservice.readidentities(VS.80).aspx"&gt;IGroupSecurityService.ReadIdentity&lt;/a&gt; Takes three parameters the first being of the type &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.server.searchfactor(VS.80).aspx"&gt;SearchFactor&lt;/a&gt; which lets you specify how you intend to identity the user/group that you which to retrive information about the two most intressting ways (in my oppinion) would be:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SearchFactor.AccountName&lt;/strong&gt;&lt;em&gt; lets resolve identity based on a windows or tfs identity. The syntax being domain\username or projecturi\groupname&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SearchFactor.Sid&lt;/strong&gt;&lt;em&gt; lets you enter a sid and get back the information about that particular user/user. The syntax being S-1-5-21-1681502023-2202157333-1552196959-1028&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The second parameter is where you supply the actual identifier of the type you specified using the &lt;em&gt;SearchFactor&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;And the third parameter being of the type &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.server.querymembership(VS.80).aspx"&gt;QueryMembership&lt;/a&gt; is where you specify how groups will be expanded. If you retrieve a group the &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.server.identity(VS.80).aspx"&gt;Identity&lt;/a&gt; object you get back contains two member variables called &lt;strong&gt;&lt;em&gt;Members&lt;/em&gt;&lt;/strong&gt; (a string array containing the sid's of the members in the returned group empty if it's a not a group) and &lt;strong&gt;&lt;em&gt;MemberOf&lt;/em&gt;&lt;/strong&gt; (a string array containing the sid's of the groups the return group/user belongs to). You can specify this in the following way:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;QueryMembership.None&lt;/strong&gt;&lt;em&gt; the quickest way to retrieve the information for a user if you don't need information on which groups he/she belongs to. The aboce mentioned variables Members and MemberOf will be null when using this.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;QueryMembership.Direct&lt;/strong&gt;&lt;em&gt; will not expanded any groups that are members, but simply return the group as one sid.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;QueryMembership.Expanded&lt;/strong&gt;&lt;em&gt; will expand any groups that are members and return the sid's for the contained users in the group.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-9140022564206278836?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/9140022564206278836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/retrieving-user-email-display-name-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9140022564206278836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/9140022564206278836'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/08/retrieving-user-email-display-name-from.html' title='Retrieving user email &amp; display name from Team Foundation Server'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-2733858156401752217</id><published>2007-07-31T21:37:00.000+02:00</published><updated>2007-07-31T21:48:51.248+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>TFS Now! A Hosting service of TFS announced...</title><content type='html'>Just saw a blog by &lt;a href="http://notgartner.wordpress.com/"&gt;Mitch Denny&lt;/a&gt; that &lt;a href="http://www.readify.net/"&gt;Readify&lt;/a&gt; a aussie based consulting company with a strong presence in the TFS community has announce a service called TFS Now!&lt;br /&gt;&lt;br /&gt;You can find out more here in the &lt;a href="http://tfsnow.wordpress.com/2007/07/29/announcing-tfs-now-a-hosted-tfs-service/"&gt;posting&lt;/a&gt; our surf to &lt;br /&gt;&lt;a href="http://www.tfsnow.com/"&gt;www.tfsnow.com&lt;/a&gt; for more details about costs and such.&lt;br /&gt;&lt;br /&gt;I personally think this is a great initiative since there are many smaller players that want/need to use TFS but simply don't have the resources to make it happen, now they can get all the benefits but none of the headaches. Some of you might say, but what about &lt;a href="http://www.codeplex.com"&gt;codeplex&lt;/a&gt;? Well the difference is that you don't have to make your projects public.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-2733858156401752217?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/2733858156401752217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/tfs-now-hosting-service-of-tfs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2733858156401752217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/2733858156401752217'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/tfs-now-hosting-service-of-tfs.html' title='TFS Now! A Hosting service of TFS announced...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4761047010179596458</id><published>2007-07-23T08:08:00.000+02:00</published><updated>2007-07-22T23:09:26.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Continous Integration'/><title type='text'>TfsBuildLab goes Beta 1</title><content type='html'>&lt;p&gt;Finally it's released download beta 1 from &lt;a href="http://www.codeplex.com/tfsbuildlab/Release/ProjectReleases.aspx?ReleaseId=5673"&gt;here&lt;/a&gt; ... I started this project together with with &lt;a href="http://olausson.net/blog/"&gt;Mathias Olausson&lt;/a&gt; in the begining of april and now it's finally time to release the first public beta version :)&lt;/p&gt;&lt;p&gt;What is &lt;a href="http://www.codeplex.com/tfsbuildlab"&gt;TfsBuildLab&lt;/a&gt; then? It's and extention for Microsoft Team Foundation Server to provide additional functionallity to simplify day to day operations such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Continous Integration&lt;/li&gt;&lt;li&gt;Automatic Build Cleanup&lt;/li&gt;&lt;li&gt;Build Scheaduling&lt;/li&gt;&lt;li&gt;Build Queueing&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It's loosley based on the Orcas continous integration specs which will easy the transition to use the native functionality once it's there and we will provide a migration tool once Orcas gets closer to being released.&lt;/p&gt;&lt;p&gt;We have been dog fooding this codebase in production since 2007-04-24 on a several projects the largest of them consisting of 5 parallel development branches each containing aproximately 10 000 source files. &lt;/p&gt;&lt;p&gt;Some statistics since the start:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;1251 Automatic cleanups&lt;/li&gt;&lt;li&gt;551 Scheduled builds&lt;/li&gt;&lt;li&gt;597 Continous integration builds &lt;/li&gt;&lt;/ul&gt;You can also examine these statistics over time in the followin diagram:&lt;br /&gt;&lt;p align="right"&gt;&lt;a href="http://bp0.blogger.com/_XY57yl89XM0/RqEcFGqVlMI/AAAAAAAAABE/bgGjw4RQMO8/s1600-h/tfsbuildlab_stats_lines.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5089379927918482626" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 317px; CURSOR: hand; HEIGHT: 107px; TEXT-ALIGN: center" height="80" alt="" src="http://bp0.blogger.com/_XY57yl89XM0/RqEcFGqVlMI/AAAAAAAAABE/bgGjw4RQMO8/s320/tfsbuildlab_stats_lines.jpg" width="497" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;If there is anything you want to know about this project get in touch with us, any feedback is wecome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4761047010179596458?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4761047010179596458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/tfsbuildlab-goes-beta-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4761047010179596458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4761047010179596458'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/tfsbuildlab-goes-beta-1.html' title='TfsBuildLab goes Beta 1'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_XY57yl89XM0/RqEcFGqVlMI/AAAAAAAAABE/bgGjw4RQMO8/s72-c/tfsbuildlab_stats_lines.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1341550908708817503</id><published>2007-07-22T06:04:00.000+02:00</published><updated>2007-07-21T21:06:22.270+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Naked conversations... fun reading for people begining to explore the blogosphere</title><content type='html'>&lt;a href="http://bp0.blogger.com/_XY57yl89XM0/RqEcqGqVlNI/AAAAAAAAABM/h8rnJRPBQOo/s1600-h/nakedconversations.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5089380563573642450" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 256px; CURSOR: hand; HEIGHT: 225px" height="320" alt="" src="http://bp0.blogger.com/_XY57yl89XM0/RqEcqGqVlNI/AAAAAAAAABM/h8rnJRPBQOo/s320/nakedconversations.jpg" width="274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Naked-Conversations-Changing-Businesses-Customers/dp/047174719X/ref=sr_1_1/104-5420673-2688719?ie=UTF8&amp;s=books&amp;amp;qid=1184965449&amp;sr=1-1"&gt;Naked Conversations: How Blogs are Changing the Way Businesses Talk with Customers&lt;/a&gt; by Robert Scoble &amp;amp; Shel Israel&lt;br /&gt;&lt;br /&gt;Finnished reading this one the boat back home from my vacation, it was kind of a long read since it never grabbed my attention and made me read from cover to cover.&lt;br /&gt;&lt;br /&gt;Never the less it is a good read and in talks about some intressting topics on blogging and how it can change the way businesses interact with their customers. The book is build around lots of interviews with prominent bloggers around the world and is built around blog postings so it feels more like reading a blog than a book.&lt;br /&gt;&lt;br /&gt;It also gives a bit of background on where blogging comes from, all in all it's a good read for anyone intressted in blogging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1341550908708817503?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1341550908708817503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/naked-conversations-fun-reading-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1341550908708817503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1341550908708817503'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/naked-conversations-fun-reading-for.html' title='Naked conversations... fun reading for people begining to explore the blogosphere'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_XY57yl89XM0/RqEcqGqVlNI/AAAAAAAAABM/h8rnJRPBQOo/s72-c/nakedconversations.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6069093460967576639</id><published>2007-07-21T09:03:00.000+02:00</published><updated>2007-07-21T00:03:50.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='BisSubscribe'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Limitations using XPath and BisSubscribe</title><content type='html'>First of all sorry for being quite for the last few months but after all it's summer and vaction times. I've been enjoying such activities as island hopping in Greece with the family, renovating the house (which mostely sucks) and the occasional spare hour of programming on my pet project &lt;a href="http://www.codeplex.com/tfsbuildlab"&gt;TfsBuildLab&lt;/a&gt; (which I hope will get it's first public release this weekend).&lt;br /&gt;&lt;br /&gt;Anyway, from now on I'll try to be more regular in my postings, I'll start with finnishing of a few that has been laying around in draft mode for awhile now :)&lt;br /&gt;&lt;br /&gt;First out as the title states is a smaller limitation I bumped into when trying to setup email notfications using the built in functionality in TFS (namely BisSubscribe.exe which you can read more about in my previous posts &lt;a href="http://peterblomqvist.blogspot.com/2007/04/some-usefull-links-when-dealing-with.html"&gt;here&lt;/a&gt; and &lt;a href="http://peterblomqvist.blogspot.com/2007/04/bissubscribe-and-none-evaluating-filter.html"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Imagine that you need to setup a notification whenever a checkin occurs on a particular file extension and prefer to use xpath over regexp. The following two xpath expressions as both legal xpath examples for this but only the first will work:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Artifacts/Artifact[contains(@ServerItem, ".cls")] &lt;&gt; null&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;count(Artifacts/Artifact[contains(@ServerItem, ".cls")]) &gt; 1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The reason for this is the fact (which is illustrated by viewing the error message recieved when the notification filter is applied at runtime) TFS will append the filter you pass in to BusSubscribe with &lt;strong&gt;/CheckinEvent/&lt;/strong&gt; effectivly already positioning us in the document and we need to compensate for this.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;&lt;blockquote&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;TF53010: An unexpected condition has occurred in a Team&lt;br /&gt;Foundation component. The information contained here should be made available to&lt;br /&gt;your site administrative staff.&lt;br /&gt;Technical Information (for the&lt;br /&gt;administrative staff):&lt;br /&gt;Date (UTC): 2007-04-05 10:25:08&lt;br /&gt;Machine:&lt;br /&gt;[SERVERNAME]&lt;br /&gt;Application Domain:&lt;br /&gt;/LM/W3SVC/3/Root/services-2-128202238136148894&lt;br /&gt;Assembly:&lt;br /&gt;Microsoft.TeamFoundation.Server, Version=8.0.0.0, Culture=neutral,&lt;br /&gt;PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727&lt;br /&gt;Process Details:&lt;br /&gt;Process&lt;br /&gt;Name: w3wp&lt;br /&gt;Process Id: 6176&lt;br /&gt;Thread Id: 784&lt;br /&gt;Account name:&lt;br /&gt;[DOMAIN]\[ACCOUNT]&lt;br /&gt;&lt;br /&gt;Detailed Message: TF50285: Exception matching&lt;br /&gt;subscription: Microsoft.TeamFoundation.Server.SubscriptionOnServer:&lt;br /&gt;System.Xml.XPath.XPathException:&lt;br /&gt;'/CheckinEvent/count(Artifacts/Artifact[contains(@Folder, ".idl")])' has an&lt;br /&gt;invalid token.&lt;/span&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6069093460967576639?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6069093460967576639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/limitations-using-xpath-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6069093460967576639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6069093460967576639'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/07/limitations-using-xpath-and.html' title='Limitations using XPath and BisSubscribe'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1396022364850772820</id><published>2007-04-30T22:54:00.000+02:00</published><updated>2007-04-30T22:54:48.997+02:00</updated><title type='text'>Do charity work through Live Messenger</title><content type='html'>After a strugle with a broken computer the past weeks I found myself reinstalling windows once again and when I was getting a version of live messenger I saw that microsoft has launch a new charity program. &lt;br /&gt;&lt;br /&gt;They will donate a portion of their advertisement revenue generated through there &lt;em&gt;Live&lt;/em&gt; services when ever you send a instant message using live Messenger, you can even choose the cause you want to support (mainly american organisations) read more about it &lt;a href="http://im.live.com/Messenger/IM/Home/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1396022364850772820?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1396022364850772820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/do-charity-work-through-live-messenger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1396022364850772820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1396022364850772820'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/do-charity-work-through-live-messenger.html' title='Do charity work through Live Messenger'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1516573810296275688</id><published>2007-04-30T22:46:00.000+02:00</published><updated>2007-04-30T22:57:47.172+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Test Mangement in Visual Studio 2005 Pro and above...</title><content type='html'>Microsoft recently announce their intentions to release there unit test framework that is included in all Team System versions of Visual Studio 2005 for the professional version of VS2005 as well. This was great news and whats even better is that the after getting feedback on the subject they have decided to include the testmanagement tools in the package as well, read about it &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/04.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1516573810296275688?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1516573810296275688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/test-mangement-in-visual-studio-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1516573810296275688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1516573810296275688'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/test-mangement-in-visual-studio-2005.html' title='Test Mangement in Visual Studio 2005 Pro and above...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3009640297527333138</id><published>2007-04-22T18:44:00.000+02:00</published><updated>2007-04-30T22:57:07.702+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>TFS Migration Toolkit now available on CodePlex</title><content type='html'>Yesterday Microsoft announce a pre-release an upcomming power tool called TFS Migration and Synchronization Toolkit, you can download it &lt;a href="http://www.codeplex.com/MigrationSyncToolkit"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The toolkit aims to help people with the migration towards TFS and offers a set of apis to make life easier for people with heterogenous systems by helping with bi-directional syncronization. Be sure to check it out and remember to be share your solutions (CodePlex is a great place for this) my guess is we'll be seeing some nice integration tools soon.&lt;br /&gt;&lt;br /&gt;And a quote to rember when playing with this comes from &lt;a href="http://blogs.msdn.com/tfs_migration/default.aspx"&gt;Matthew Mitrik&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Please note that this is a prerelease version of the Migration and Synchronization Toolkit. Several features are not complete and as testing has not completed, the code has the potential to contain bugs and overwrite data stored in TFS. Please be careful to use this only in a testing environment and not on live production data.&lt;/blockquote&gt;&lt;br /&gt;Another one from &lt;a href="http://blogs.msdn.com/roberthorvick/"&gt;Robert Horvick&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Oh - and this is still under active development (and has known issues) so if you have any feedback it's still early enough for it to be considered for inclusion in the final drop.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3009640297527333138?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3009640297527333138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/tfs-migration-toolkit-now-available-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3009640297527333138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3009640297527333138'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/tfs-migration-toolkit-now-available-on.html' title='TFS Migration Toolkit now available on CodePlex'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-991217384217327350</id><published>2007-04-19T21:23:00.000+02:00</published><updated>2007-04-19T21:49:55.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='WIT'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><title type='text'>Recreating your WIT database (part 3/3)</title><content type='html'>So to round of this subject there are some alternative approaches that you can use.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Moving source control contents&lt;/strong&gt;, this approach consists of creating a temporary project where you can host a copy of your source controlled contents during the recreation of the project the steps to do this are:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1, Create a new team project.&lt;br /&gt;&lt;br /&gt;2, Move all your folders directly under the root of your team project to the new team projects root and checkin the changes.&lt;br /&gt;&lt;br /&gt;3, Delete the project using &lt;em&gt;TfsDeleteProject.exe&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;4, Recreate the project with the desired process template.&lt;br /&gt;&lt;br /&gt;5, Move back all your folders from your temporary team projects to the newly created project and checkin the changes.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The major drawback with this is that you will get a alot of activity in your merge process due to the fact that all files in all branches will get marked as changed  and if you like us have a branch intensive environment this simply is not possible. &lt;br /&gt;&lt;br /&gt;Finally you should look at the upcomming power tool &lt;strong&gt;&lt;em&gt;TFS migration toolkit&lt;/em&gt;&lt;/strong&gt; the team that is responsible for this tool has a &lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;a href="http://blogs.msdn.com/tfs_migration/default.aspx"&gt;blog&lt;/a&gt; where you can keep yourself updated on the progress. The migration toolkit is looking promising in alot of areas (one being the possiblity to perform a move of the source control database between projects with out affecting the contents in it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-991217384217327350?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/991217384217327350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-33.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/991217384217327350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/991217384217327350'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-33.html' title='Recreating your WIT database (part 3/3)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7909505217086409369</id><published>2007-04-19T21:03:00.000+02:00</published><updated>2007-04-19T21:48:42.121+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='WIT'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><title type='text'>Recreating your WIT database (part 2/3)</title><content type='html'>Ok, so we want to recreate the team project so we can apply a different process template on it (you really only have to do this in case you need to delete/rename work item types) but we don't want to loose all our history in source control.&lt;br /&gt;&lt;br /&gt;Here are the steps you need to do:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1, Back up all your databases acording to the documentation mentioned in part 1 of this post.&lt;br /&gt;&lt;br /&gt;2, Copy all your drops of your team builds to a backup location.&lt;br /&gt;&lt;br /&gt;3, Delete the Team Project using &lt;em&gt;TfsDeleteProject.exe&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;4, Recreate the TeamProject using the correct template and the same name as before.&lt;br /&gt;&lt;br /&gt;5, Restore the TfsVersionControl database to it's original state.&lt;br /&gt;&lt;br /&gt;6, Restore the team build drops to theri original location.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There reason this works is due to the fact that the only thing that links source control to the rest of the Team System functions is the logical path name based on the team project name. Thus if you have a project called "DEMO" the link to version control will always be "$/DEMO". This will most likely change when the Orcas release of TFS hits the streets since then we will get all kinds of goodies to deal with problems like this.&lt;br /&gt;&lt;br /&gt;I've tried this on many projects and most have been a success, I have not lost any project doing this but our main project (the reason for even thinking about this) failed misserably when doing this since it was to big and generated a timeout exception during the delete process leaving it in an inconsistent state (we had to restore it and resort to a different method, which I'll probably post a blog about as well).&lt;br /&gt;&lt;br /&gt;In the last part of this post I'll point you to a couple of different approaches that you can take if you like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7909505217086409369?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7909505217086409369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-23.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7909505217086409369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7909505217086409369'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-23.html' title='Recreating your WIT database (part 2/3)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6381359991992362845</id><published>2007-04-19T20:00:00.000+02:00</published><updated>2007-04-19T21:46:32.373+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='WIT'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><title type='text'>Recreating your WIT database (part 1/3)</title><content type='html'>Been awhile since I posted something now, I'll blame the weather :). Spring has come to Sweden and it's really lovely so it has mainly been gardening and not so much messing about with blogging and Team System.&lt;br /&gt;&lt;br /&gt;Anyway today is a cloudy day so what could be better then posting something about our adventures concerning work items and customized process templates. When we first decided to adopt Team System as our source control and collaboration system we decided to move ahead quickly and just implement the source control parts and deal with the rest at a later date.&lt;br /&gt;&lt;br /&gt;Boy was this a misstake, if you intend to not use the default process templates based upon MSF you must spend some time thinking through what you want to change since in version 1 of TFS there is no easy way of reversing your choices once you've created your team project.&lt;br /&gt;&lt;br /&gt;I'll describe a way to recreate the WIT database for your team project without loosing your source control data, but remember that this solution is not for the faint of heart :) and as someone told me:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;You should be clear that any messing around with TFS at that level is inherently complex and error prone (and not recommended :))&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Well with that out of the way here are the documentation you need to have read through and made certain it works on your installation of Team System before proceeding:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms253070(VS.80).aspx"&gt;How to: Back Up a Team Foundation Server&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms252458(VS.80).aspx"&gt;How to: Restore Team Foundation Server Data&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also I recommend that you read about and perform a move of your TFS so you got experience in disaster recovery in case anything goes awry:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms404883(VS.80).aspx"&gt;How to: Move Your Team Foundation Server from One Environment to Another&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well that should be enough with the saftey stuff in the next post I'll explain how to actually perform the magic...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6381359991992362845?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6381359991992362845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6381359991992362845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6381359991992362845'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/recreating-your-wit-database-part-13.html' title='Recreating your WIT database (part 1/3)'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-1664765831435641540</id><published>2007-04-06T22:23:00.000+02:00</published><updated>2007-04-06T22:30:01.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='BisSubscribe'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Some usefull links when dealing with notifications in TFS</title><content type='html'>I've been working with TFS Notification Services lately and figured I'd post the links I've found usefull when trying to get this to work the way I want. The first place to look should be &lt;a href="http://msdn2.microsoft.com/en-gb/library/bb130302(VS.80).aspx"&gt;&lt;em&gt;"Filtering Team Foundation Server Events"&lt;/em&gt;&lt;/a&gt; in the MSDN documentation&lt;br /&gt;&lt;br /&gt;Here comes a collection of good to have links on the subject, enjoy:&lt;br /&gt;&lt;br /&gt;Naren Datha (Microsoft)&lt;br /&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2006/07/27/679571.aspx"&gt;FAQ on VSTS subscriptions and common problems &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jeff Atwood (Vertigo)&lt;br /&gt;&lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/07/03/Subscribing_to_Team_Foundation_Server_Events.aspx"&gt;Subscribing to Team Foundation Server Events&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Howard van Rooijen (Conchango)&lt;br /&gt;&lt;a href="http://blogs.conchango.com/howardvanrooijen/archive/2006/04/29/3894.aspx"&gt;Team Foundation Server Notification Web Services: Visual Studio 2005 Project Template&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mathias Olausson (Callista Knowledgebase)&lt;br /&gt;&lt;a href="http://olausson.net/blog/PermaLink,guid,c6686b20-6dbf-49c7-8931-e95fe2a9cf2e.aspx"&gt;Using BisSubscribe.exe for Team Foundation Server notifications&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Subodh Sohoni as SEED InfoTech&lt;br /&gt;&lt;a href="http://www.sohoni.info/documents/"&gt;Articles on Visual Studio Team System (VSTS)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-1664765831435641540?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/1664765831435641540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/some-usefull-links-when-dealing-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1664765831435641540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/1664765831435641540'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/some-usefull-links-when-dealing-with.html' title='Some usefull links when dealing with notifications in TFS'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-379265431504230832</id><published>2007-04-06T22:21:00.000+02:00</published><updated>2007-04-06T22:22:36.743+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Merging'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>The order in your files, matters when merging...</title><content type='html'>This post is just some basics on how to behave well when dealing with merging changes from different branches.&lt;br /&gt;&lt;br /&gt;A rather common scenario is to have a main trunk and then branch of a maintenance version and a production release and a ongoing project branch. When dealing with a structure like this there tend to be alot of different people involved and all that goes along with that.&lt;br /&gt;&lt;br /&gt;So why does the order in your files matter then? Say for instance you have the following class:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic class MyClass&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic MyClass()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Then you find a bug in you production code which you have to correct asap and in the process needs to refactor the code for some reason ending up adding a new method to the class. Now our class looks like this in the production branch:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic class MyClass&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic MyClass()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void OurNeatNewBugfixMethod()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Then your people working in maintenance (maybe the same person that fixed the bug in the first place) have no patience to wait for the regular forward / reverse integration cycle between the branches and makes the correction in the maintenance branch as well. So far there is no problems, but what if someone else has added functions in the maintenance branch. No problems well just add the function last right? And the result would look like this:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic class MyClass&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic MyClass()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoMoreWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void OurNeatNewBugfixMethod()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;So what's the deal? Why is this a problem? Well now the day comes when we do our normal forward / reverse integration cycle and the merge detects changes in the file in both you branches. If you as lucky the file in question is a small one like this example and you'll get a merge conflict so you can catch it right away. However real life tends to be less compliant and you'll most likely have a large file and the problem code will not lie within the same block and thus slip through with out any conflict. The resulting file would look like this:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic class MyClass&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic MyClass()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void OurNeatNewBugfixMethod()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void DoMoreWork()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsppublic void OurNeatNewBugfixMethod()&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp{&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp}&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;So the moral of the story is that if you need to take shortcuts in your forward / reverse integration cycles make sure that you place the code in the exact same place in both branches and you'll save your self some problems with failing builds.&lt;br /&gt;&lt;br /&gt;If you are curious on what the heck I'm talking about when I mention forward and reverse integration check out my post on &lt;a href="http://peterblomqvist.blogspot.com/2007/03/branching-guidelines-for-tfs.html"&gt;branching guidelines for TFS&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-379265431504230832?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/379265431504230832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/order-in-your-files-matters-when.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/379265431504230832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/379265431504230832'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/order-in-your-files-matters-when.html' title='The order in your files, matters when merging...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7168644287327298161</id><published>2007-04-05T10:50:00.001+02:00</published><updated>2007-04-06T18:10:55.133+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='BisSubscribe'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>BisSubscribe and none evaluating filter expressions</title><content type='html'>After pulling my hair and screaming in agony over the darn filter property of TFS notifications I finally managed to figure it out :)&lt;br /&gt;&lt;br /&gt;These examples works:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;bissubscribe.exe /eventType CheckinEvent /address some@somewhere.com /deliveryType EmailHtml &lt;strong&gt;/server mytfsserver&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;bissubscribe.exe /eventType CheckinEvent /address some@somewhere.com /deliveryType EmailHtml &lt;strong&gt;/server http://mytfsserver:8080&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;bissubscribe.exe /eventType CheckinEvent /address some@somewhere.com /deliveryType EmailHtml &lt;strong&gt;/server http://mytfsserver:8080&lt;/strong&gt; /filter "TeamProject = MyProject"&lt;br /&gt;&lt;br /&gt;This one however does not work:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;bissubscribe.exe /eventType CheckinEvent /address some@somewhere.com /deliveryType EmailHtml &lt;strong&gt;/server mytfsserver&lt;/strong&gt; /filter "TeamProject = MyProject"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Since all commands will execute with no errors resulting in a subscription in the TfsIntegration.tbl_subscription one easily gets fooled into thinking it should work but in the case of the fourth command nothing will happen.&lt;br /&gt;&lt;br /&gt;The reason for this is that the /server switch of bissubscribe requires a fully qualified url address to your TFS server to function properly but only if you specify a filter with the /filter switch. &lt;br /&gt;&lt;br /&gt;Hopefully Microsoft will add some validation on this switch in the future since it's one of thoose things that are hard to spot when no errors are generated (when glancing over it you mostlikely will only register the server name as its correctness).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7168644287327298161?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7168644287327298161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/bissubscribe-and-none-evaluating-filter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7168644287327298161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7168644287327298161'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/04/bissubscribe-and-none-evaluating-filter.html' title='BisSubscribe and none evaluating filter expressions'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-7045500368950249224</id><published>2007-04-03T21:36:00.000+02:00</published><updated>2009-08-26T20:10:12.705+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>The old new thing a good dose of windows nostalgia and more</title><content type='html'>&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/RgldovbWfEI/AAAAAAAAAAU/M9EtSuzts0I/s1600-h/cover_oldnewthing.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/RgldovbWfEI/AAAAAAAAAAU/M9EtSuzts0I/s320/cover_oldnewthing.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5046667811952688194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Old-New-Thing-Development-Throughout/dp/0321440307/ref=pd_bbs_1/103-2422926-8850204?ie=UTF8&amp;s=books&amp;qid=1175018756&amp;sr=1-1"&gt;The Old New Thing: Practical Development Throughout the Evolution of Windows&lt;/a&gt; by Raymond Chen&lt;br /&gt;&lt;br /&gt;I recently finished reading the above book and I found it to be a very entertaining read, it contains everything you wanted to know about windows and it inner quirks. Much of the information is explanatory information on why windows is behaving in as it does in regards to backwards compatibility, but you will also find many good tips on how to write better applications for windows in general. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_XY57yl89XM0/RglckvbWfDI/AAAAAAAAAAM/ldace2ki7tI/s1600-h/cover_code.jpg"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_XY57yl89XM0/RglckvbWfDI/AAAAAAAAAAM/ldace2ki7tI/s320/cover_code.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5046666643721583666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The middle part of the book reminded me of the good old days reading Charles Petzold's book &lt;em&gt;Programming Windows&lt;/em&gt; ... which in turn leads to another book (by none other that Charles Petzold) for people who like to read about historical stuff and computers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=pd_bbs_1/103-2422926-8850204?ie=UTF8&amp;s=books&amp;qid=1175018332&amp;sr=8-1"&gt;Code: The Hidden Language of Computer Hardware and Software&lt;/a&gt; by Charles Petzold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-7045500368950249224?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/7045500368950249224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/old-new-thing-good-dose-of-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7045500368950249224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/7045500368950249224'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/old-new-thing-good-dose-of-windows.html' title='The old new thing a good dose of windows nostalgia and more'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_XY57yl89XM0/RgldovbWfEI/AAAAAAAAAAU/M9EtSuzts0I/s72-c/cover_oldnewthing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4004497303842987147</id><published>2007-03-30T23:06:00.000+02:00</published><updated>2007-03-30T23:14:49.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Unit testing for the masses</title><content type='html'>Naysawn Naderi announce earlier this week that Microsoft intends to release their unit test framework in the professional version of Visual Studio as well starting with the Orcas release. You can read more about it in his post &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/03/27/unit-testing-trickling-into-pro.aspx"&gt;Unit Testing Trickling into Pro!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He also asks for feedback on what else should go into the professional version so take the opportunity to comment on his post with some feedback. Hopefully this will end in a complete package including test management and code coverage trickeling down.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4004497303842987147?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4004497303842987147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/unit-testing-for-masses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4004497303842987147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4004497303842987147'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/unit-testing-for-masses.html' title='Unit testing for the masses'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-8746916506647870557</id><published>2007-03-29T21:20:00.000+02:00</published><updated>2007-04-06T22:08:14.593+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='Merging'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Where did my changes go? The black hole of merging...</title><content type='html'>Lately we have had some problems with files disappearing from our projects or even projects from our solutions when doing integration between our main trunk and its child branches.&lt;br /&gt;&lt;br /&gt;Since this was causing a bit of an issue when it comes to trusting Team System to handle merges correctly I did some investigation. The conclusion I came to was that it's not a bug (as I suspected). Although since we had problems with it I decided to post about it and maybe spare someone the trouble of having to figure out why it happens.&lt;br /&gt;&lt;br /&gt;The problem arises when you have the following chain of events:&lt;br /&gt;&lt;br /&gt;1, Make an addition to your project file in your main trunk.&lt;br /&gt;2, Make an addition to your project file in your branch.&lt;br /&gt;3, Perform a merge of the changes in the main trunk into the branch.&lt;br /&gt;4, Resolve the conflict by preserving target changes.&lt;br /&gt;5, Make an additional change to the project file in the main trunk.&lt;br /&gt;6, Perform a merge of the changes in the main trunk into the branch.&lt;br /&gt;&lt;br /&gt;What will happen is that the second merge will happily overwrite the changes made in the branch since there are no conflicting changes (remember we resolved the first conflict by ignoring the changes from the main trunk) it will simply merge the changes which results in a copy from source since we have no conflict between the files in the merge history.&lt;br /&gt;&lt;br /&gt;There is not much to do about this since the behaviour is by design and the only way to prevent this from happening would be to always do a content compare of a file before actually performing the merge.&lt;br /&gt;&lt;br /&gt;So the moral of the story is that if your resolving a conflict by choosing keep target you have to really know why your doing it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-8746916506647870557?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/8746916506647870557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/where-did-my-changes-go-black-hole-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8746916506647870557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/8746916506647870557'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/where-did-my-changes-go-black-hole-of.html' title='Where did my changes go? The black hole of merging...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-67454803238956140</id><published>2007-03-26T19:49:00.000+02:00</published><updated>2007-03-26T20:12:54.616+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>TeamPlain will become Microsoft Visual Studio Team System Web Access</title><content type='html'>Today Microsoft announce it's acquisition of Teamplain a really great web frontend for Team System. This fits very nicely in to the overall solution since there are alot of people in you average mid to large size project that aren't comfortable in the Visual Studio IDE. &lt;br /&gt;&lt;br /&gt;If you have a proper TFS server CAL you can download the v1.0 of &lt;a href="http://www.devbiz.com/downloads.aspx"&gt;here&lt;/a&gt; and start using it today.&lt;br /&gt;&lt;br /&gt;We'll see it fully integrated into the &lt;em&gt;"Orcas"&lt;/em&gt; release of Visual Studio 2005 but a interim release will be release as a VSTS Power Tool. Read more on &lt;a href="http://blogs.msdn.com/bharry/archive/2007/03/26/microsoft-acquires-teamplain.aspx"&gt;Brian Harry's&lt;/a&gt; blog.&lt;br /&gt;&lt;br /&gt;For more details on the acquisition go to the official &lt;a href="http://www.microsoft.com/presspass/features/2007/mar07/03-26VisualStudio.mspx"&gt;press release&lt;/a&gt; from Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-67454803238956140?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/67454803238956140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/teamplain-will-become-microsoft-visual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/67454803238956140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/67454803238956140'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/teamplain-will-become-microsoft-visual.html' title='TeamPlain will become Microsoft Visual Studio Team System Web Access'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-4340070595840649643</id><published>2007-03-23T22:04:00.000+01:00</published><updated>2007-03-26T20:13:12.774+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Branching guidelines for TFS</title><content type='html'>Well spring has finally come to Sweden (which makes it even harder to find the time actually sit down a do som blogging) the weather today has been absolutely fantastic.&lt;br /&gt;&lt;br /&gt;Anyway, Microsoft recently published a document on codeplex (kind of an odd distribution channel) which had been very useful to have when we setup shop with team system. There are alot of issues that needs to be considered and weighed when implementing a source control system in your development process. &lt;br /&gt;&lt;br /&gt;So go ahead and download a copy of &lt;a href="http://www.codeplex.com/BranchingGuidance"&gt;Team Foundation Server Branching Guidance&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also though I'd take the opportunity to write down some other useful links when we are on the subject of branching and merging. Maybe someone will be spared the work of assembling the information...&lt;br /&gt;&lt;br /&gt;Chris Birmele wrote a good whitepaper (it's mentioned in the guidance document aswell) &lt;a href="http://msdn2.microsoft.com/en-us/library/aa730834(VS.80).aspx"&gt;Branching and Merging Primer&lt;/a&gt; which gives you a good start if you are new to the concepts.&lt;br /&gt;&lt;br /&gt;Steve St Jean wrote an excellent document on the migration from VSS to TFS which you should read and consider to use (I'll save you the trouble of compiling your own for you developer teams) &lt;a href="http://sstjean.blogspot.com/2006/10/document-from-vss-to-tfs-introduction.html"&gt;From VSS to TFS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are like me and like to know the inner workings of things you should check out the writings of Eric Sink &lt;a href="http://software.ericsink.com/scm/source_control.html"&gt;Source Control HOWTO&lt;/a&gt; there is alot of food for thought in them when it comes to the basics of source control.&lt;br /&gt;&lt;br /&gt;Chuck Walrad &amp; Darrel Storm wrote a very good piece on branching models and how to use them &lt;a href="http://www.accurev.com/product/docs/SCMBranchingModels1.pdf"&gt;The importance of branching models in SCM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Brian Harry blogged about how they have organised themselves at Microsoft and the type of branching models the apply &lt;a href="http://blogs.msdn.com/bharry/archive/2005/11/12/492198.aspx"&gt;Branch structure in Developer Division at Microsoft&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last but not least you need to check out the postings on the subject of branching and merging by Mitch Denny he has written alot about this which I encourage you to read:&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&lt;a href="http://notgartner.wordpress.com/2006/01/23/tfvc-the-terminology-of-branching/"&gt;The Terminology of Branching&lt;/a&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&lt;a href="http://notgartner.wordpress.com/2006/01/25/tfvc-concurrent-development-with-branching/"&gt;Concurrent Development with Branching&lt;/a&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&lt;a href="http://notgartner.wordpress.com/2006/01/26/tfvc-reducing-source-file-contention-with-branching/"&gt;Reducing Source File Contention with Branching&lt;/a&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&lt;a href="http://notgartner.wordpress.com/2006/02/05/tfvc-implementing-quality-gates-with-team-foundation-version-control/"&gt;Implementing Quality Gates with Version Control&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you haven't already done so you should probably read the following book by Vincent Maraia, the book is a goldmine of information based practical experience: &lt;a href="http://www.amazon.com/Build-Master-Configuration-Management-Addison-Wesley/dp/0321332059/sr=8-1/qid=1158324301/ref=pd_bbs_1/102-8880996-6748922?ie=UTF8&amp;s=books"&gt;The Build Master: Microsoft's Software Configuration Management Best Practices&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-4340070595840649643?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/4340070595840649643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/branching-guidelines-for-tfs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4340070595840649643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/4340070595840649643'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/branching-guidelines-for-tfs.html' title='Branching guidelines for TFS'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-6930815386741127847</id><published>2007-03-08T20:03:00.000+01:00</published><updated>2007-03-26T20:13:37.605+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team System'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><title type='text'>Creating lists based on output from actions in your build script</title><content type='html'>I'm being haunted by the blog police at work so I figure I'd post something instead of watching the telly today...&lt;br /&gt;&lt;br /&gt;Sometimes when you create builds scripts for MSBuild you need to create collections based on the result of other actions in the script (for example after retrieving the latest files from source control or the output from a compilation). The problem is that it will not work when using wildcards since the expansion of the wildcards is done upfront before actually running the build script, so if your depending on the result from a get from source control for instance the first time you run your script the collection will be empty (since we have not yet retrieved the files) and ever execution after that will be based on the previous executions result (that is the files retrieved from source control the latest run).&lt;br /&gt;&lt;br /&gt;To get past this you'll either need to create a target that contains a &amp;ltCreateItem&amp;gt action with the path to the files in question then this will be evaluated during the execution of the script. But what if I want to create a reusable target that can be driven by creating an &amp;ltItemGroup&amp;gt what then?&lt;br /&gt;&lt;br /&gt;I've created a target that you can use to do this which is based on the concept of using escaped asterisks (%2a) when specifying the path to the files in question it looks like this:&lt;br /&gt;&lt;br /&gt;&amp;ltItemGroup&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;lt!--Dynamic List of Typelibraries--&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltFileList Include="$(SolutionRoot)\Typelibraries\%2a%2a\%2a.tlb"&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltOutDir&amp;gtMyFlattenOutput\&amp;lt/OutDir&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;lt/FileList&amp;gt&lt;br /&gt;&amp;lt/ItemGroup&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltTarget Name="AfterGet"&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltCallTarget Targets ="CopyFiles"/&amp;gt&lt;br /&gt;&amp;lt/Target&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;ltTarget Name="CopyFiles"&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltMessage Text="Copying Files" /&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;lt!—Create list of files--&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltCreateItem Include="%(FileList.Identity)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspAdditionalMetadata="OutDir=%(FileList.OutDir)"&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltOutput ItemName="ExpandedFileList" TaskParameter="Include"/&amp;gt&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;lt/CreateItem&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;ltCopy SourceFiles="@(ExpandedFileList)"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspDestinationFiles="@(ExpandedFileList -&amp;gt'$(DropLocation)\$(BuildNumber)\%(OutDir)%(RecursiveDir)\%(Filename)%(Extension)')"&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbspContinueOnError="True" /&amp;gt&lt;br /&gt;&amp;lt/Target&amp;gt&lt;br /&gt;&lt;br /&gt;Well that's all there is to it hope someone out there will have some use for this...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-6930815386741127847?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/6930815386741127847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/creating-lists-based-on-output-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6930815386741127847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/6930815386741127847'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/creating-lists-based-on-output-from.html' title='Creating lists based on output from actions in your build script'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2589343630458375844.post-3433920469951144040</id><published>2007-03-04T01:30:00.000+01:00</published><updated>2007-04-05T10:13:51.725+02:00</updated><title type='text'>Introductions...</title><content type='html'>The last six months or so I have started to realize the necessity to share information when working with technology. Many headaches have been solved browsing through various blogs, so I figured it was time to give some back...&lt;br /&gt;&lt;br /&gt;My main focus will be on architecture and the development process (although I might throw in a nugget from time to time dealing with day to day development tasks) and the occasional book review.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2589343630458375844-3433920469951144040?l=peterblomqvist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peterblomqvist.blogspot.com/feeds/3433920469951144040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/introductions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3433920469951144040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2589343630458375844/posts/default/3433920469951144040'/><link rel='alternate' type='text/html' href='http://peterblomqvist.blogspot.com/2007/03/introductions.html' title='Introductions...'/><author><name>Peter Blomqvist</name><uri>http://www.blogger.com/profile/08036550380654646505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
