<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:icbm="http://postneo.com/icbm">

<channel>
<title>Martin Woodward</title>
<link>http://www.woodwardweb.com/</link>
<description></description>
<dc:language>en-us</dc:language>

<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>

<dc:creator>webmaster@woodwardweb.com</dc:creator>
<dc:date>2016-02-10T10:53:11+00:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=4.32-en" />
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>


<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>New Gig</title>
<link>http://www.woodwardweb.com/dotnet/new_gig.html</link>
<description><![CDATA[<p>I'm excited to say that today I started a <a href="http://www.dotnetfoundation.org/blog/net-foundation-welcomes-executive-director-martin-woodward">new job as the Executive Director</a> of the <a href="http://dotnetfoundation.org">.NET Foundation</a>.  The .NET Foundation is an independent non-profit organization set up to foster open development, innovation and collaboration around the Microsoft .NET development framework. It's been going a year now and I've been involved with the team from the beginning, but it's fabulously exciting to be an active part of it now. Also quite scary - the team is fantastic with some of the smartest people on the planet, so my job initially is to figure out how to keep out their way as they do awesome stuff while figuring out what I can do to help unblock more openness and innovation by ensuring that the wider community is always involved along the way.</p>

<p>I'll still be an employee of Microsoft but my job is now to focus 100% of my time on the .NET Foundation helping co-ordinate lots of the day-to-day operations of the non-profit organization but also set the strategy and tone for the future. If folks have ideas then please head over to the <a href="http://forums.dotnetfoundation.org/">.NET Foundation Forums</a> and post your suggestions. You can always reach out to me on Twitter(<a href="http://twitter.com/martinwoodward">@martinwoodward</a>) or my new work email address (<a href="mailto:martin@dotnetfoundation.org">martin@dotnetfoundation.org</a>).</p>

<p>It's an incredibly exciting time to join the team as they are doing some amazing stuff. .NET as a platform is going through rapid innovation at the moment. But more importantly the project teams are working in the open and are focused heavily on responding to pull requests that come in and taking the platform forward with wider community participation which I see as a very good sign.</p>

<p>The .NET Community has always been a passionate one, and a place in which I have found many of my friends. But it is a friendly one as well. I was always the "Mac guy" or the "Eclipse guy" when it came to .NET User Group meetings yet I never felt an outsider - everyone has always been very welcoming and just keen to learn more from one and other.  The MVP and RD communities around .NET contain so many passionate, dedicated and smart people.</p>

<p>It's a fantastic time to be involved in .NET. We're at an inflection point in the platforms history and all signs are that things are heading to some very good places indeed.</p>

<p>Now I just need to not mess up and do what I can to help make sure the .NET Community continues to be a great place to be. Drop me a line if you have any ideas, suggestions or feedback as to what I can do to help.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2276@http://www.woodwardweb.com/</guid>
<dc:subject>Dotnet</dc:subject>
<dc:date>2015-04-03T07:51:57+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002276.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Community TFS Build Extensions Released</title>
<link>http://www.woodwardweb.com/vsts/tfs/community_tfs_b.html</link>
<description><![CDATA[<p>If you are looking to extend Team Foundation Build using workflow activities, then the first thing you should do it take a look at the latest stable release of the <a href="http://tfsbuildextensions.codeplex.com/" target="_blank">Community TFS Build Extensions</a> over on CodePlex.&#160; This is a collection of around 100 activities that can provide many commonly requested functions incluing running CodeMetrics and NUnit tests, creating a Zip archive, wrapping RoboCopy for deployment, updating AssemblyInfo files, running StyleCop, merging assemblies with ILMerge etc etc.&#160; Basically most of the building blocks for major common customization already done for you.&#160; Also – as it’s an open source project ran by the MVP community you have access to a bunch of great code that shows you how to create your own activity should you want to do something that has yet to be done (don’t forget to contribute it back if you can)</p>  <p><a href="http://tfsbuildextensions.codeplex.com/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=tfsbuildextensions&amp;DownloadId=138951&amp;Build=17950" width="349" height="33" /></a></p>  <p>Great job to the <a href="http://tfsbuildextensions.codeplex.com/team/view" target="_blank">team of folks contributingg</a> to the <a href="http://tfsbuildextensions.codeplex.com/" target="_blank">community build extensions</a> (many of which I am proud to call my friends) – I’m looking forward to seeing the project go from strength to strength now that they have their first stable release out the door.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2270@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-07-05T13:36:51+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002270.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Eclipse 3.7 (Indigo) with Team Explorer Everywhere 2010 SP1</title>
<link>http://www.woodwardweb.com/vsts/tfs/eclipse_37_indi.html</link>
<description><![CDATA[<p>As you have probably heard by now, <a href="http://www.eclipse.org">Eclipse 3.7 shipped today</a>.&#160; Congratulations to everyone involved.&#160; From a personal point of view I’m secretly pleased to see that one of my own bug reports manage to sneak it’s way in to this release as well which I think means I have managed to do my bit and contribute a little something to every Eclipse since 3.4</p>  <p>We’ve been tracking the Indigo release internally through the latter milestone builds and so far we’ve yet to discover any issues when using Eclipse 3.7 with Team Explorer Everywhere 2010 SP1 (as many of the team do every day).</p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Ecl.7-Indigo-with-Team-Explorer-Everywhe_13517/indigo_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Eclipse 3.7 with Team Explorer Everywhere 2010 SP1" border="0" alt="Eclipse 3.7 with Team Explorer Everywhere 2010 SP1" src="http://www.woodwardweb.com/Windows-Live-Writer/Ecl.7-Indigo-with-Team-Explorer-Everywhe_13517/indigo_thumb.png" width="643" height="484" /></a></p>  <p>Let me know if you think you do find something but as we don’t use any internal Eclipse API’s, we stick to the standard Eclipse contributions and install via the standard update site model - Eclipse 3.7 is looking very good with TEE 2010 SP1.</p>  <p>I’ll be showing off Team Explorer Everywhere 2010 SP1 in Indigo at the following events over the next few days:</p>  <ul>   <li><a href="http://jazoon.com/Conference/Thursday-23-June/Martin-Woodward">Jazoon 2011</a> (Thursday, 23 June 2011, 10:30-11:20)</li>    <li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Indigo_2011/Amsterdam">Eclipse DemoCamp Indigo 2011, Amsterdam</a> (Tuesday 28 June 2011, 17:15-18:00)</li> </ul>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2269@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-06-22T21:14:50+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002269.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Creating a HTTPHandler in WebMatrix</title>
<link>http://www.woodwardweb.com/dotnet/creating_a_http.html</link>
<description><![CDATA[<p>This weekend I thought I would get round to a project that I’ve been meaning to do for a long time – a new website for the Radio TFS podcast that I do with Mickey and Paul.&#160; I haven’t had the chance to play with WebMatrix before so thought that I would give it a try when building the new Radio TFS site.&#160; I’m also behind in my learning's around ASP.NET MVC, WebDeploy and IIS 7 so it’s going to be a good weekend!&#160; </p>  <p>One thing that I wanted to do was make sure that all the old episode links redirect to the new locations.&#160; To do this I’m building a HttpHandler that listens for all the requests ending in *.aspx (which is what the episode links did) and then look up that link in the database to redirect them to the new link.&#160; However it took me a while to figure out how to create a HttpHandler in Webmatrix.&#160; As with everything – once you know the answer it is easy but as it took me a while to figure out I’m documenting it here in case others try searching for the answer with the same keywords I was using.</p>  <p>The first step is to create your HttpHandler class.&#160; In the App_Code directory in your WebMatrix site create a new C# file (mine is called LegacyUrlHandler.cs).&#160; A very simple HttpHandler is below.</p>  <blockquote>   <p><font face="Courier New">using System;        <br />using System.Collections.Generic;         <br />using System.Web;</font></p>    <p><font face="Courier New">namespace RadioTFS        <br />{         <br />&#160;&#160;&#160; public class LegacyURLHttpHandler : IHttpHandler         <br />&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public bool IsReusable         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // The same instance of this class can be re-used so we return true.         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return true;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></p>    <p><font face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; public void ProcessRequest(HttpContext context)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpResponse response = context.Response;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; response.Write(&quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello World!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;);         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160; }         <br />}</font></p> </blockquote>  <p>You then have to register this HttpHandler in the web.config.&#160; Assuming this is being deployed to IIS7 you register it as follows:</p>  <blockquote>   <p><font face="Courier New">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;        <br />&lt;configuration&gt;         <br />&#160;&#160;&#160; &lt;system.webServer&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; .....         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;handlers&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;add name=&quot;LegacyUrlHandler&quot; verb=&quot;*&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; path=&quot;*.aspx&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; type=&quot;RadioTFS.LegacyURLHttpHandler&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resourceType=&quot;Unspecified&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/handlers&gt;&#160; <br />&#160;&#160;&#160; &lt;/system.webServer&gt;         <br />&#160;&#160;&#160; ....         <br />&lt;/configuration&gt;</font></p> </blockquote>  <p>Hope that helps you.&#160; I’ll probably be blogging again over the weekend as I discover more – and I’ll definitely let you know when the new site is live.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2268@http://www.woodwardweb.com/</guid>
<dc:subject>Dotnet</dc:subject>
<dc:date>2011-06-18T09:31:18+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002268.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Incremental Builds with TFS 2010</title>
<link>http://www.woodwardweb.com/vsts/tfs/incremental_bui.html</link>
<description><![CDATA[<p>When you create a new build definition with TFS 2010 by default it does a clean build for you every time.&#160; That is to say that between builds all the source from the previous build is deleted along with the compiled outputs and then the source is downloaded fresh, built and you are good to go.&#160; There is a good reason for this to be the default – it is the safest option.&#160; If your build script messes around with the files in your source directory at all (perhaps baking in a build number into the AssemblyInfo files etc) then you want to get a clean workspace to ensure that you are back to a known good state.</p>  <p>However, if you know what you are doing then there are couple of really good reasons why only building the things that changed between builds would be very useful:</p>  <ol>   <li><strong>Speed</strong> – if you are doing CI builds (which you should be doing if you are not BTW) then the only thing that will have changed between builds to the same build agent are the contents of a single check-in – a single changeset.&#160; If you are checking in regularly (which you should be doing BTW) then these changesets usually contain a small number of changes.&#160; Downloading only the files that have changed between builds speeds things up but also only compiling new versions of assemblies that have been affected saves even more time.</li>    <li><strong>Differential Deployment</strong> – For websites it makes a lot of sense to use something like robocopy to deploy the output of a build to a directory used by a test IIS instance.&#160; By using robocopy you can specify that only the files that have changed should be copied over.&#160; When TFS does a get into a clean workspace the files did not previously exist in that location on disk.&#160; Therefore the creation date and modification dates of the source files are taken as the time at which they are downloaded to the machine – i.e. the time of doing a get.&#160; By switching to incremental builds files which haven’t been touched are left alone so older files keep their timestamps.&#160; Only the changes files have a new timestamp.&#160; Utilities such as robocopy can therefore easily identify these and therefore only deploy the changes files over to IIS.&#160; IIS then sees that the file is new and so compiles it first time that page is accessed or a page references an assembly that has been updated.</li> </ol>  <p>Traditionally, in the world of build solutions, incremental builds were always treated with a bit of “<a href="http://en.wikipedia.org/wiki/Here_be_dragons" target="_blank">Here be dragons</a>”.&#160; Many version control systems can leave orphan files around in your local working copy when you update to the latest version from the server (for example in the case that a file was deleted, moved or renamed on the server).&#160; TFS however cleans up your workspace as you go along so that when you do a <em>get</em> deleted files are deleted from your local file system, as are the old versions when you do a rename/move etc.</p>  <h3><font style="font-weight: bold">Enabling Incremental Builds with TFS 2010</font></h3>  <p>To enable incremental builds, edit the build definition in Visual Studio 2010 and set the Clean Workspace property to “None”.</p>  <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="Default Template build process properties shown when editing the build definition in Visual Studio 2010" border="0" alt="Default Template build process properties shown when editing the build definition in Visual Studio 2010" src="http://www.woodwardweb.com/Windows-Live-Writer/Incremental-Builds-with-TFS-2010_4A1E/incremental_builds_3.png" width="640" height="367" /></p>  <p>Note that there are a few options for Clean Workspace, All; Outputs; None – take a look at the handy property help text to learn more about what they mean. For example Outputs is useful if you want the benefit of not downloading all your source every time but are not able or do not trust the ability to incrementally compile your binaries.</p>  <p>Your mileage may vary depending on your build process and what you do during it.&#160; Depending on assumptions made during and build customization work you have done you may indeed need to re-engineer the way that you do your build to be able to reap the benefits of incremental builds.&#160; Also, you may want to do things like incremental builds to a dev test instance but a full clean build for your nightly drop to a QA test environment.&#160; Also remember that even with a CI build set for incremental builds, you can at any time Queue a manual build from Visual Studio by right clicking on the build definition in Team Explorer.&#160; From there you can (if you wanted) set the Clean Workspace property to All for your manual build if something funny was going on and you just wanted to reset everything – and if you are really fancy you might even do it so that a deployment of a clean build to IIS not only copies all the files over fresh but forces an IIS Reset for the true belt and braces approach.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2267@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-06-14T05:53:23+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002267.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Getting Started with the TFS SDK for Java</title>
<link>http://www.woodwardweb.com/programming/getting_started_1.html</link>
<description><![CDATA[<p>As you may have read over on <a href="http://blogs.msdn.com/b/bharry/archive/2011/05/16/announcing-a-java-sdk-for-tfs.aspx">Brian Harry’s blog</a>, we recently made available a TFS SDK for Java.&#160; This is the same core code that we use in Team Explorer Everywhere 2010 SP1 to talk to TFS from Eclipse and from our Cross-platform command line client – just packaged up into a single jar file to make it easier to consume and re-distribute in your own applications.</p>  <p>The TFS SDK for Java ships with a bunch of sample applications, check-in policies, custom work item controls and some handy snippets of code.&#160; It also includes an Ant build script to allow you to build the samples that we ship.&#160; However – I thought it would be interesting to walk through how you can consume the SDK in a simple Eclipse project and make use of some of the nice Eclipse features such as inline Javadoc.</p>  <p>To begin, download the TFS SDK for Java 10.1.0 from the download site and unzip it to a handy location. Next create a new blank Java project in Eclipse (File, New, Java Project).</p>  <p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="New Java Project dialog" border="0" alt="New Java Project dialog in Eclipse" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_3.png" width="280" height="338" /></p>  <p>Give the project a name (i.e. com.contoso.tfsplay), then press Finish to create the empty project.&#160; The next thing that we are going to do is browse to the empty project in the file system to copy over the relevant files in the SDK.&#160; Having the SDK as part of your Java project makes it much easier to build and deploy it later.</p>  <p>First of all, browse to your Eclipse workspace folder in the file system (for example mine is at C:\play\tfssdk4j\com.contoso.tfsplay but you can find where yours is by right clicking on the project you just created and selecting properties).&#160; Inside the project folder, create a new folder to hold your TFS SDK bits.&#160; Mine is called tfssdk at the root at the folder.&#160; Inside this copy the redist folder from the TFS SDK ZIP archive.&#160; I also personally ZIP up the Javadoc folder from the TFS and also include it – however if you have a copy of the TFS SDK Javadoc installed on an intranet server somewhere you could just point to it later on.</p>  <p>Now that we have the SDK inside our project, if I press refresh back in Eclipse on the package explorer I get something that looks like the following:</p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Eclipse with the TFS SDK in a project" border="0" alt="Eclipse with the TFS SDK in a project" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_thumb_1.png" width="640" height="480" /></a></p>  <p>Now we want to configure the project to include the SDK in it’s build path. Right click on your project, select Properties, then Java Build Path.&#160; In the Libraries tab press Add JAR… Select the com.microsoft.tfs.sdk-10.1.0.jar file from your tfssdk/redist/lib folder.&#160; Now that the JAR file is included, we want to expand it to let Eclipse know about the Javadoc and the natives.&#160; Double click on the Javadoc location and point it to where the TFS SDK Javadoc is located.&#160; Do the same for the natives for your platform.</p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_11.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Configuring Java build path in Eclipse" border="0" alt="Configuring Java build path in Eclipse" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_thumb_4.png" width="640" height="345" /></a></p>  <p>Your JAR file definition should then look like the above and you are now up and ready to start talking to TFS via the SDK in your Java project.</p>  <p>For our example, let’s create a quick class with a main method. (Right click on the project, New, Class…)</p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_9.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="New Class Dialog" border="0" alt="New Class Dialog" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_thumb_3.png" width="542" height="637" /></a></p>  <p>Then inside the main method, I’ll quickly steal the code that Brian used in his <a href="http://blogs.msdn.com/b/bharry/archive/2011/05/16/announcing-a-java-sdk-for-tfs.aspx">TFS SDK for Java announcement blog</a> post.&#160; </p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_15.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Example code in Eclipse" border="0" alt="Example code in Eclipse" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_thumb_6.png" width="640" height="371" /></a></p>  <p>Once the code is included and modified to point at my TFS project collection, I’ll quickly debug the code (Run, Debug As…, Java Application…)</p>  <p>I’ll be posting more samples shortly, but now the code is running let’s step through it.&#160; To begin with we first need to get hold of a project collection. In Brian’s example he uses:</p>  <p><font face="Courier New">TFSTeamProjectCollection tpc =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new TFSTeamProjectCollection(&quot;http://tfs2010:8080/tfs/DefaultCollection&quot;);</font></p>  <p>The reason this works is that the native code libraries are configured correctly so the SDK can then get the credentials of the logged in user and use those to authenticate with TFS.&#160; However – what if you don’t want to use those credentials but want to pass them in via code?&#160; Well luckily the TFSTeamProjectCollection has lots of overloads including one that allows you to pass username, password and domain.</p>  <p><a href="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_17.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Javadoc for TFSTeamProjectCollection" border="0" alt="Javadoc for TFSTeamProjectCollection" src="http://www.woodwardweb.com/Windows-Live-Writer/Getting-Started-with-the-TFS-SDK-for-Jav_8CCD/image_thumb_7.png" width="640" height="324" /></a></p>  <p><font face="Courier New">TFSTeamProjectCollection tpc =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new TFSTeamProjectCollection(&quot;http://tfs2010:8080/tfs/DefaultCollection&quot;,       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;username&quot;,&quot;domain&quot;,&quot;password&quot;);</font></p>  <p>In our example, we now want to query work items – so we get hold of a work item client as follows:</p>  <p><font face="Courier New">WorkItemClient workItemClient = tpc.getWorkItemClient();</font></p>  <p>We then create the query that we want to run.&#160; In the example we’re going to execute an ad-hoc query in TFS’s Work Item Query Language (WIQL).</p>  <p><font face="Courier New">// Define the WIQL query.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />String wiqlQuery =       <br />&#160;&#160;&#160; </font><font face="Courier New">&quot;Select ID, Title from WorkItems where (State = 'Active') order by Title&quot;;</font></p>  <p><font face="Courier New">// Run the query and get the results.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />WorkItemCollection workItems = workItemClient.query(wiqlQuery);</font>     <br /></p>  <p>&#160;</p>  <p>Finally, we then need to loop over the collection of results and display them.&#160; The WorkItemCollection class contains logic to efficiently handle large result sets.&#160; It will page in a set of query results as needed rather than waiting for all the results to be returned before you can start iterating over them.&#160; This makes it much more efficient if you just need a page of data – i.e.</p>  <p><font face="Courier New">final int maxToPrint = 20;</font></p>  <p><font face="Courier New">for (int i = 0; i &lt; workItems.size(); i++)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />{       <br />&#160;&#160;&#160; if (i &gt;= maxToPrint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;[...]&quot;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;       <br />&#160;&#160;&#160; }       <br />&#160;&#160;&#160; WorkItem workItem = workItems.getWorkItem(i);       <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; System.out.println(workItem.getID() + &quot;\t&quot; + workItem.getTitle());&#160; <br />}       <br /></font></p>  <p>&#160;</p>  <p>The full code for the QueryWorkItemExample is below.&#160; Hope that is makes a bit more sense now that we’ve walked through it.&#160;&#160; </p>  <p><font face="Courier New">package com.contso.tfsplay;</font></p>  <p><font face="Courier New">import com.microsoft.tfs.core.TFSTeamProjectCollection;      <br />import com.microsoft.tfs.core.clients.workitem.WorkItem;       <br />import com.microsoft.tfs.core.clients.workitem.WorkItemClient;       <br />import com.microsoft.tfs.core.clients.workitem.query.WorkItemCollection;</font></p>  <p><font face="Courier New">public class QueryWorkitemExample {</font></p>  <p><font face="Courier New">&#160;&#160;&#160; /**      <br />&#160;&#160;&#160;&#160; * @param args       <br />&#160;&#160;&#160;&#160; */       <br />&#160;&#160;&#160; public static void main(String[] args)       <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; TFSTeamProjectCollection tpc =       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new TFSTeamProjectCollection(&quot;</font><font face="Courier New">http://tfs2010:8080/tfs/DefaultCollection&quot;</font><font face="Courier New">,      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;username&quot;,&quot;password&quot;,&quot;domain&quot;);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; WorkItemClient workItemClient = tpc.getWorkItemClient();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Define the WIQL query.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; String wiqlQuery =       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;Select ID, Title from WorkItems where (State = 'Active') order by Title&quot;;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Run the query and get the results.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; WorkItemCollection workItems = workItemClient.query(wiqlQuery);</font></p>  <p><font face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;Found &quot; + workItems.size() + &quot; work items.&quot;);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Write out the heading.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;ID\tTitle&quot;);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Output the first 20 results of the query       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; final int maxToPrint = 20;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; workItems.size(); i++)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (i &gt;= maxToPrint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;[...]&quot;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WorkItem workItem = workItems.getWorkItem(i);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(workItem.getID() + &quot;\t&quot; + workItem.getTitle());&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&quot;Done&quot;);       <br />&#160;&#160;&#160; }</font></p>  <p><font face="Courier New">}</font></p>  <p>In future posts I’ll talk about how to do more advanced things in Java against TFS.&#160; If you have any requests then please drop me a line, but for now take a look at the snippets that we ship in the SDK.&#160; I’ll also be posting walkthrough posts discussing custom check-in policies in Team Explorer Everywhere, custom Work Item Controls as well as other ways of extending Team Explorer Everywhere and using the SDK.&#160; Again – if you have anything in particular that you’d like me to use as an example then let me know.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2266@http://www.woodwardweb.com/</guid>
<dc:subject>Programming</dc:subject>
<dc:date>2011-05-26T18:19:03+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002266.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Professional Team Foundation Server 2010 Now Available</title>
<link>http://www.woodwardweb.com/vsts/tfs/professional_te_1.html</link>
<description><![CDATA[<p><a href="http://www.amazon.com/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470943327" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Professional Team Foundation Server 2010" border="0" alt="Professional Team Foundation Server 2010" align="right" src="http://www.woodwardweb.com/Windows-Live-Writer/Professional-Team-Foundation-Server-2010_D86E/tfs2010_book_3.jpg" width="204" height="256" /></a>I’ve always wanted to write a technical book and when I started getting involved in Team Foundation Server I thought that this technology area might be my chance.&#160; I was lucky enough to get involved with the <a href="http://www.amazon.com/gp/product/0470484268/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470484268" target="_blank">Professional Application Lifecycle Management with Visual Studio 2010</a> book and contributed to the TFS chapters in that one – but I knew I had one more book in me.</p>  <p>Luckily, the ALM book was so popular that the publishers came back for more and so I was able to get involved in the book I’ve been wanting to write for the past 6 years.&#160; Not only that, I got to work with <a href="http://blogs.msdn.com/b/granth/" target="_blank">Grant Holliday</a>, <a href="http://www.edsquared.com/" target="_blank">Ed Blankenship</a> and <a href="http://blogs.msdn.com/b/briankel/" target="_blank">Brian Keller</a> who are three of the people I regularly turn to for advice on TFS matters.&#160; Having those guys on board made it hard when looking for technical reviewers but luckily <a href="http://www.teamsystemrocks.com/" target="_blank">Mickey Gousset</a> and <a href="http://sstjean.blogspot.com/" target="_blank">Steve St Jean</a> agreed to help out and so the journey began in creating the <a href="http://www.amazon.com/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470943327" target="_blank">TFS 2010 book</a> which is now available on <a href="http://www.amazon.com/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470943327" target="_blank">Amazon.com</a> (both in <a href="http://www.amazon.com/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470943327" target="_blank">paperback</a> and <a href="http://www.amazon.com/gp/product/B004S82RRE/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B004S82RRE" target="_blank">Kindle</a> versions) and available for pre-order on <a href="http://www.amazon.co.uk/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodwardwebcom&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0470943327" target="_blank">Amazon.co.uk</a>.&#160; As with the <a href="http://www.amazon.com/gp/product/0470484268/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470484268" target="_blank">ALM book</a> there is a <a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-Team-Foundation-Server-2010.productCd-0470943327.html" target="_blank">DRM Free eBook available at the Wrox site</a> if you prefer but I’ll also expect electronic versions to be available in all the popular eBook stores in due time.&#160; One neat thing about buying the electronic version of the TFS Book for devices that have a color screen is that in many versions the diagrams and screenshots are in color (which helped me when talking about Branch Visualization or the build reports :-) )</p>  <p><a href="http://www.amazon.com/gp/product/0470484268/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470484268" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="vs2010alm_book" border="0" alt="vs2010alm_book" align="left" src="http://www.woodwardweb.com/Windows-Live-Writer/Professional-Team-Foundation-Server-2010_D86E/vs2010alm_book_3.jpg" width="212" height="266" /></a>People have asked us what’s the difference between the <a href="http://www.amazon.com/gp/product/0470484268/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470484268" target="_blank">ALM book</a> and the Pro TFS book.&#160; The ALM book was deliberately written as an overview to the huge amount of functionality available in the entire Visual Studio Application Lifecycle Management suite.&#160; Though there are a couple of chapters, the Team Build one in particular, that get pretty technical – the Pro ALM book tries to keep things approachable by everyone.</p>  <p>The Pro TFS 2010 book is a deep dive on TFS.&#160; We tried to make it so that you can pick up the book having never used TFS before any by the end of it not only know how to use TFS but how to administer a complex TFS instance and even use it to study for the <a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-512" target="_blank">TFS Administration exam</a>.&#160; I’ve learnt something from every single chapter in the Pro TFS book, but I would also hope that someone new to TFS could pick up the book and learn just enough to get going then come back for more over time.</p>  <p>Anyway – while I’ve seen the PDF version of the book and enjoyed reading the chapters contributed by my co-authors, I’m looking forward to getting my physical copy soon from the publisher.&#160; If you happen to get a copy then be sure to let me know what you think.&#160; If you wanted to splash out and get the complete reference set then my personal recommendation would be to get the <a href="http://www.amazon.com/gp/product/0470484268/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470484268" target="_blank">ALM book</a>, the <a href="http://www.amazon.com/gp/product/0470943327/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470943327" target="_blank">TFS Book</a> and the excellent <a href="http://www.amazon.com/gp/product/0735645248/ref=as_li_ss_tl?ie=UTF8&amp;tag=woodweb03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735645248">Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build (2nd Edition)</a>.</p>  <p>Hope you enjoy it anyway – I’m proud of this one so looking forward with nervousness to see what the reviews are when they start coming in.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2264@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-03-25T17:18:14+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002264.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>The Team Explorer Everywhere Tour 2011</title>
<link>http://www.woodwardweb.com/teamprise/the_team_explor.html</link>
<description><![CDATA[<p><a href="http://www.woodwardweb.com/Windows-Live-Writer/f15622a5b7ac_8071/TEE_World_Tour_2.jpg" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Team Explorer Everywhere World Tour" border="0" alt="Team Explorer Everywhere World Tour" align="right" src="http://www.woodwardweb.com/Windows-Live-Writer/f15622a5b7ac_8071/TEE_World_Tour_thumb.jpg" width="240" height="161" /></a><a href="http://www.edwardthomson.com/" target="_blank">Ed Thomson</a> from the Team Explorer Everywhere team is going to be doing a tour of the mid-west and central United States in early April.&#160; For those of you who don’t know Ed, he is one of the original Teamprise developers that came over to Microsoft after the acquisition and now one of the core developers on Team Explorer Everywhere.&#160; He knows more about the inner workings of our Eclipse integration than anyone else on the planet.</p>  <p>While he’ll be speaking at a lot of user groups and Microsoft events in various cities, places are filling up fast.&#160; However there is still some availability in a few cities.&#160; If you are nearby or know someone who is then I encourage you to register and come along.</p>  <p><strong>Austin TX</strong></p>  <ul>   <li>Monday April 4 (<a href="https://sites.google.com/site/tfsaustinusergroup/home">Information</a>)</li> </ul>  <p><strong>Minneapolis</strong></p>  <ul>   <li>Wednesday April 6 (Details soon)</li> </ul>  <p><strong>Chicago</strong></p>  <ul>   <li>Thursday April 7 2:00pm – 4.30pm (<a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032481095&amp;IO=FugavZ%2bXR1EgFiFq7swLOw%3d%3d">Register</a>)</li>    <li>Thursday April 7 6:30pm - 8:30pm (<a href="http://chicagoalmug.org/">Register</a>)</li> </ul>  <p><strong>Milwaukee</strong></p>  <ul>   <li>Friday April 8 9:00am – 11:30am (<a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032481099&amp;IO=FugavZ%2bXR1FKUHEf842Wzw%3d%3d">Register</a>)</li> </ul>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2263@http://www.woodwardweb.com/</guid>
<dc:subject>Teamprise</dc:subject>
<dc:date>2011-03-23T23:18:00+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002263.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Only Running Impacted Tests in a CI Build.</title>
<link>http://www.woodwardweb.com/vsts/tfs/only_running_im.html</link>
<description><![CDATA[<p>One of the key things about your CI build is to ensure that is runs fast so that you have a very quick feedback loop to see if you have a good build or not.&#160; <a href="http://scrumdod.blogspot.com/">Rob Maher</a> has an <a href="http://scrumdod.blogspot.com/2011/03/tfs-2010-build-only-run-impacted-tests.html">interesting blog post up</a> describing how he customized the build process to make use of the test impact analysis feature so that only the impacted tests are run as part of the CI build and then the full test suite run later.&#160; </p>  <blockquote class="quote">   <p>If your tests take a long time to run, you may wish to only run the tests that have been impacted by code changes checked in with the build (and of course run a full nightly build that executes all tests :) Unfortunately there is no out of the box feature to do this, so we need to edit our build xaml to do it.</p>    <p align="right"><a href="http://scrumdod.blogspot.com/2011/03/tfs-2010-build-only-run-impacted-tests.html">TFS 2010 Build - Only run impacted tests</a> – <a href="http://scrumdod.blogspot.com/">Robert Maher</a></p> </blockquote>  <p>In Rob’s example he uses a nightly build process to baseline the test impact analysis – however this might be a good candidate for a Rolling Build set to run once an hour or so (I personally prefer builds to run when there is someone still at work able to fix a build process should it break).&#160; Anyway, it’s an interesting read not only for the idea but also as a good example of some of the key techniques when customizing a build in TFS 2010.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2262@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-03-14T10:34:32+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002262.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Using Project Server Feature Pack from Team Explorer Everywhere</title>
<link>http://www.woodwardweb.com/vsts/tfs/using_project_s.html</link>
<description><![CDATA[<p>As Brian Harry announced earlier today, it’s been a busy week already here.&#160; Not only was Visual Studio 2010 SP1 released but so was Team Foundation Server 2010 SP1 and also the topic of this post, the Project Server Feature Pack.</p>  <p>For more information, see Brian’s Blog Post:</p>  <ul>   <li><a href="http://blogs.msdn.com/b/bharry/archive/2011/03/08/vs-tfs-2010-sp1-and-tfs-project-server-integration-feature-pack-have-released.aspx">VS/TFS 2010 SP1 and TFS-Project Server Integration Feature Pack have Released</a></li> </ul>  <p>One thing that I wanted to add is that if you are going to be editing a work item in Eclipse and that work item has been configured to be integrated with the project server using the feature pack then you will need to upgrade your client to <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=53c27216-c4f0-48b6-9bed-fe1718a2e3b0">Team Explorer Everywhere 2010 SP1</a>.&#160; I’d recommend you upgrade to this release is you haven’t already because there is a lot of goodness there – but you’ll definitely want to do it if you are planning on installing the Project Server feature pack.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2261@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-03-09T06:26:23+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002261.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Explaining TFS to a Subversion User</title>
<link>http://www.woodwardweb.com/vsts/tfs/explaining_tfs.html</link>
<description><![CDATA[<p>In my travels I often run into former Subversion users coming to Team Foundation Server and struggling to come to terms with the differences in the version control model employed by TFS.&#160; <a href="http://tinyurl.com/svn2tfs">Ed Hintz posted a recent blog post that is very good</a>, but as someone who’s used many version control systems in the past (including Subversion) I’ve put together the following deck over the years that I use when giving people advance warning about the differences between the two.&#160; I recently updated my deck based on the latest power tools release and including some of Ed’s points.&#160; Speaking with a few folks at the recent MVP Summit it seemed like this deck might be useful for others so sharing it here:</p>  <p align="center"><iframe height="327" src="http://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&amp;p2=1&amp;p3=SDC7A08AE2600D197A!1511&amp;p4=" frameborder="0" width="402" scrolling="no"></iframe></p>  <p>Note that I’m just a developer who likes TFS so much he got a job working on the team.&#160; I’m not a marketing person or anything so this is very much a pragmatic view as to why it is different and what you should watch out for – it assumes that you are already motived to <em>want</em> to move (i.e. there are no slides saying why TFS is great and why you might want to switch etc).&#160; If you find this useful then feel free to use – if you make any improvements then let me know as I’m always keen to make it better.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2260@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-03-08T07:21:24+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002260.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Five Hidden Features in Team Explorer Everywhere 2010 SP1</title>
<link>http://www.woodwardweb.com/vsts/tfs/five_hidden_fea.html</link>
<description><![CDATA[<p>Hopefully you have heard the news by now that in February we shipped <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=53c27216-c4f0-48b6-9bed-fe1718a2e3b0">Team Explorer Everywhere 2010 SP1</a>.&#160; Brian Harry has a couple of great blog posts (<a href="http://blogs.msdn.com/b/bharry/archive/2011/02/09/team-explorer-everywhere-2010-sp1-is-available.aspx">here</a> and <a href="http://blogs.msdn.com/b/bharry/archive/2010/11/03/team-explorer-everywhere-2010-sp1-beta-is-available-for-download.aspx">here</a>) talking about the headline features of what was added, but I wanted to follow up with some smaller features that I personally use every day that you probably didn’t know about.&#160; Note that the features have been deliberately made somewhat hard to find as we’d currently class them as “power user” functionality, but I figure anyone bothering to read my blog comes into the power user category :-)</p>  <p><strong>1: Links to Shelvesets</strong></p>  <p>We have a lot of remote working in our team across three continents and so we find ourselves passing around shelvesets a lot.&#160; We also use shelvesets for code reviews.&#160; As our team is so geographically spread out that we’re actually in four different domains inside Microsoft (one for Redmond, North Carolina, Europe and Asia).&#160; Therefore we find the best way to share a shelveset name is in the <font face="Courier New">ShelvesetName;DOMAIN\Username</font> syntax as that is fully qualified.&#160; It’s also great to include a link to the shelveset in web access, that way you can quickly review a shelveset without having to pull down the files into your local workspace or even fire up an IDE.</p>  <p>To do this quickly, open the Unshelve dialog (by pressing the Unshelve button in the Pending Changes view), select the shelveset that you want to send a link to and simply use the keyboard shortcut for copy (i.e. Ctrl-C on Windows/Linux or Command-C on Mac).&#160; Paste this into something that accepts HTML and you’ll get a fully qualified shelveset name including the link to web access.&#160; Paste into something that just accepts text and you will just get the fully qualified shelveset name.</p>  <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Getting a link to the shelveset name from the unshelve dialog" border="0" alt="Getting a link to the shelveset name from the unshelve dialog" src="http://www.woodwardweb.com/Windows-Live-Writer/Five-Features-you-didnt-know-about-in-Te_9E6E/unshelve_links_3.png" width="640" height="473" /></p>  <p><strong>2: Query Results Copy/Paste</strong></p>    <p>In the query results view, you can select a range of work items, right click and from the context menu select Copy Selected Results to Clipboard or Copy All Results to Clipboard.&#160; If you paste them into something that just understands text then you get a tab delimited set of results but if you paste into something that understands HTML (such as Outlook, Word, Excel or things link Mail, Numbers, Pages on the Mac) then you will get a nicely formatted table of results including the column headers and links to web access.&#160; We use this all the time when emailing work items around, especially if reporting process outside of the team where people might not have our project collection set up as a connection in VS or Eclipse but they still have access to our work items via web access (lots of people in Microsoft have read access to our work items).</p>  <p><strong>3: Opening a Work Item in Web Access</strong></p>  <p>We have a fully features work item editor in Eclipse, but some customers have different work item form layouts for Eclipse and for Web Access or perhaps you might want to view a web access version of the work item so that you can share the link with team members etc.&#160; We added an “Open With…” option when you right click on a work item to allow you to pick which work item editor you wanted to use.&#160; This is actually an extension point so people can add other editors that they might want to use instead of the one we ship with (for example, in future releases TaskTop could add an editor here and you could open the work item with their Task editor).&#160; The default work item editor is now a preferrence that the user can adjust in the Eclipse preferences.&#160; If this is changed then opening a work item in all of the places that we show work items in the UI will open it in the preferred editor.</p>  <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Open With context menu on Work Items" border="0" alt="Open With context menu on Work Items" src="http://www.woodwardweb.com/Windows-Live-Writer/Five-Features-you-didnt-know-about-in-Te_9E6E/image_6.png" width="400" height="222" /></p>  <p><strong></strong></p>  <p><strong>4: Eclipse Project Specific Actions</strong></p>  <p>There are a bunch of “power-user” version control actions that we only make available when you right click on an Eclipse Project in Package Explorer / Resource Navigator.&#160; </p>  <ul>   <li><strong>Detect Local Changes</strong> – will examine your local disk for changes that you have not yet created pending changes for with Team Foundation Server.&#160; This is useful if you have been working outside of Eclipse for some reason.&#160; For example if you have edited a file by setting it read/write, if you have added a file etc.&#160; This is functionally the same as going offline and then returning online.</li>    <li><strong>Go Offline</strong> – sometimes you know that you are going to work offline from TFS (i.e. you’ve picked up your laptop and walked into a meeting room with no corporate wifi connection).&#160; The Go Offline menu option will allow you to tell the Eclipse plug-in not to bother attempting to connect to TFS first but to just assume that you are offline.</li>    <li><strong>Go Online</strong> – When you get back to your desk you want to reconnect to TFS so select Go Online.&#160; This will connect you back up again.&#160; It will perform a local change detection to try and help you sync up the changes that occurred since you went offline.</li>    <li><strong>Disconnect Project Permanently</strong> – You may have bound a project to Eclipse but then decided that you don’t want Team Explorer Everywhere managing the files for you.&#160; In this case you can disconnect the project from being bound with TFS for version control.&#160; To reverse this operation (i.e to bind it again with TFS) then you go to Team, Share Project… and select TFS.&#160; We will then automatically detect the working folder mapping is present in TFS and simply add the bindings back into Eclipse so that you see the TFS items in the team menu.</li> </ul>  <p><strong>5: Label Decorations</strong></p>  <p>In Team Explorer Everywhere we decorate the labels given to files and folders in package explorer.&#160; However sometimes it is useful to have more information – for example if you use the “Switch to Branch” feature frequently then knowing what the server path a particular project corresponds to us very useful.&#160; Therefore we added a bunch of label decoration preferences to allow you to customize.</p>  <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Team Explorer Everywhere Label Decoration Pereferences" border="0" alt="Preferences, Team, Team Foundation Server, Label Decorations" src="http://www.woodwardweb.com/Windows-Live-Writer/Five-Features-you-didnt-know-about-in-Te_9E6E/image_5.png" width="640" height="476" /></p>  <p>&#160;</p>  <p>Hope you find some of these power user features useful.&#160; Remember these are all Eclipse specific – not in the Visual Studio user interface.&#160; There are more to discover as well so take some time to poke around the preferences and the context menus and let me know what features you find invaluable.</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2259@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2011-03-06T20:21:09+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002259.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>NRB Case Study on using TFS 2010 for Heterogeneous Development</title>
<link>http://www.woodwardweb.com/vsts/tfs/nrb_case_study.html</link>
<description><![CDATA[<p><b><img hspace="5" vspace="5" align="right" src="http://www.microsoft.com/belux/cases/images/nrb_300x200.jpg" width="226" height="151" /></b>A couple of weeks ago I was in Antwerp for a partner event and I also had the pleasure of meeting with a few customers from the Belgium and Luxembourg region.&#160; One of the customers I spoke with was Network Research Belgium (NRB) who were doing some very interesting work and using Team Foundation Server 2010 for their heterogeneous development efforts.</p>  <p>Tom Mertens has <a href="http://blogs.technet.com/b/belpta/archive/2010/12/02/nrb-reduces-development-costs-by-10-with-team-foundation-server-2010.aspx" target="_blank">published information on a Case Study</a> just completed with them where they show how they have reduced the development costs by 10% using Team Foundation Server to develop software for .NET, Java, Cobol and PL/1.&#160; For more information and for the English, French or Dutch versions of the case study see:</p>  <ul>   <li><a href="http://blogs.technet.com/b/belpta/archive/2010/12/02/nrb-reduces-development-costs-by-10-with-team-foundation-server-2010.aspx" target="_blank">NRB reduces development costs by 10% with Team Foundation Server 2010</a></li>    <li><a href="http://www.microsoft.com/belux/fr/cases/?case=nrb">NRB réduit ses frais de développement de 10% grâce au Team Foundation Server 2010 </a></li>    <li><a href="http://www.microsoft.com/belux/nl/cases/?case=nrb">NRB vermindert ontwikkelkosten met tien procent dankzij Team Foundation Server 2010 </a></li> </ul>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2258@http://www.woodwardweb.com/</guid>
<dc:subject>tfs</dc:subject>
<dc:date>2010-12-03T12:54:46+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002258.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Talking on .NET Rocks</title>
<link>http://www.woodwardweb.com/podcasting/talking_on_net.html</link>
<description><![CDATA[<p><a href="http://www.dotnetrocks.com/default.aspx?showNum=615"><img style="background-image: none; border-right-width: 0px; margin: 0px 0px 4px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dnr" border="0" alt="dnr" align="right" src="http://www.woodwardweb.com/Windows-Live-Writer/Talking-on-.NET-Rocks_FDBE/dnr_3.png" width="379" height="104" /></a>On Monday I was a little under the weather suffering from the winter tummy bug that is floating around at the moment, but my day was cheered up by a phone call from Carl and Richard over at <a href="http://www.dotnetrocks.com/">.NET Rocks</a>.&#160; We had a catch-up chat as to what has been happening in the past year since starting work at Microsoft, talked about Team Explorer Everywhere and TFS in general.&#160; Blame the fact that I hadn’t eaten for two days, but we jumped around a lot and covered a whole different bunch of stuff about Team Foundation Server and ALM in general.&#160; </p>  <blockquote>   <p><a href="http://www.dotnetrocks.com/default.aspx?showNum=615">.NET Rocks #615: Martin Woodward Brings Team Foundation Server to Everyone!</a></p> </blockquote>  <p>Anyway, it’s always fun talking with the guys but hopefully it turned out to be an interesting enough podcast.&#160; Let me know what you think!</p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2257@http://www.woodwardweb.com/</guid>
<dc:subject>Podcasting</dc:subject>
<dc:date>2010-12-02T10:09:06+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002257.xml
</wfw:commentRss>
</item>

<item>
<icbm:latitude>54.7569</icbm:latitude> 
<icbm:longitude>-6.3483</icbm:longitude>
<title>Talk at Eclipse Summit Europe 2010</title>
<link>http://www.woodwardweb.com/vsts/talk_at_eclipse.html</link>
<description><![CDATA[<p>On November 3rd, I had the pleasure of announcing <a href="http://blogs.msdn.com/b/bharry/archive/2010/11/03/team-explorer-everywhere-2010-sp1-beta-is-available-for-download.aspx">Team Explorer Everywhere 2010 SP1 Beta</a> at my session during Eclipse Summit Europe.&#160; Thanks to everyone that came along to the session, and for all the follow-up discussions at the Microsoft area.&#160; As promised, the slides for my talk are accessible below:</p>  <p><iframe height="327" src="http://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&amp;p2=1&amp;p3=SDC7A08AE2600D197A!1232&amp;p4=" frameborder="0" width="402" scrolling="no"></iframe></p>]]></description>
<slash:comments>0</slash:comments>
<guid isPermaLink="false">2256@http://www.woodwardweb.com/</guid>
<dc:subject>Vsts</dc:subject>
<dc:date>2010-11-04T01:41:51+00:00</dc:date>
<wfw:commentRss>
  http://www.woodwardweb.com/commentrss/002256.xml
</wfw:commentRss>
</item>


</channel>
</rss>