<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Grant Holliday's Blog</title><link>http://blogs.msdn.com/b/granth/</link><description>Premier Field Engineer (PFE) for Visual Studio Team Foundation Server</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>New book: Professional Team Foundation Server 2012</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/16/new-book-professional-team-foundation-server-2012.aspx</link><pubDate>Fri, 15 Feb 2013 14:34:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10394002</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10394002</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10394002</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/16/new-book-professional-team-foundation-server-2012.aspx#comments</comments><description>&lt;p&gt;I’m very pleased to announce that our new book &lt;a href="http://bit.ly/ProTFS2012"&gt;Professional Team Foundation Server 2012&lt;/a&gt; is now available!&lt;/p&gt;  &lt;p&gt;It’s an update to &lt;a href="http://tinyurl.com/ProTFS2010"&gt;the 2010 edition&lt;/a&gt; that reflects all the great new features and changes introduced in Visual Studio Team Foundation Server 2012. For example, there are whole new chapters on &lt;strong&gt;Managing Teams&lt;/strong&gt;, &lt;strong&gt;Agile Planning Tools&lt;/strong&gt; and &lt;strong&gt;Integration with Project Server&lt;/strong&gt;. There’s also new content on the new &lt;strong&gt;Team Explorer&lt;/strong&gt; interface, the &lt;strong&gt;Code Review&lt;/strong&gt; tools, &lt;strong&gt;Local Workspaces&lt;/strong&gt; and the updated &lt;strong&gt;Testing and Lab Management&lt;/strong&gt; features. Throughout the book, we also talk about how to use the cloud hosted Team Foundation Service and talk about some of how the TFS internals have changed to support the service.&lt;/p&gt;  &lt;p&gt;We hope that you enjoy this book as much as the previous one and we look forward to reading your reviews.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="700" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="320"&gt;         &lt;p&gt;&lt;a href="http://bit.ly/ProTFS2012"&gt;&lt;img alt="Book cover for: Professional Team Foundation Server 2012" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5852.image_5F00_52E79096.png" width="300" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;em&gt;ISBN: 9781118314098&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="444"&gt;         &lt;p&gt;You can buy the book in the following ways:&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;&lt;a href="http://bit.ly/ProTFS2012"&gt;Amazon (Paperback)&lt;/a&gt;&lt;/li&gt;            &lt;li&gt;&lt;a href="http://bit.ly/ProTFS2012Kindle"&gt;Amazon (Kindle Edition)&lt;/a&gt;&lt;/li&gt;            &lt;li&gt;&lt;a href="http://bit.ly/ProTFS2012Ebook"&gt;E-Book Bundle (PDF, ePub, Kindle)&lt;/a&gt; from Wrox&lt;/li&gt;            &lt;li&gt;&lt;a href="http://bit.ly/ProTFS2012Book"&gt;From a local retailer in your country&lt;/a&gt;&lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;And you can &lt;a href="http://bit.ly/ProTFS2012Preview"&gt;preview&lt;/a&gt; some of the book before you buy:&lt;/p&gt;          &lt;p&gt;&lt;a href="http://bit.ly/ProTFS2012Preview"&gt;&lt;img title="" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="Preview the book before you buy" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5556.image_5F00_630332C2.png" width="200" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h2&gt;Table of Contents&lt;/h2&gt;  &lt;p&gt;The book is broken up into five sections and its written in a way that you can either read the whole thing cover-to-cover or jump in to a particular part or chapter that interests you. My personal favourite chapters are the ones in Part V – Administration, since I wrote most of them. &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/6433.wlEmoticon_2D00_smile_5F00_60E633F9.png" /&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="10" width="700" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="233"&gt;         &lt;p&gt;&lt;strong&gt;Part I – Getting Started&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;1 – Introducing Team Foundation Server 2012&lt;/p&gt;          &lt;p&gt;2 – Planning a Deployment&lt;/p&gt;          &lt;p&gt;3 – Installation and Configuration&lt;/p&gt;          &lt;p&gt;4 – Connecting to Team Foundation Server&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Part II – Version Control&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;5 – Overview of Version Control&lt;/p&gt;          &lt;p&gt;6 – Using Team Foundation Version Control&lt;/p&gt;          &lt;p&gt;7 – Ensuring Code Quality&lt;/p&gt;          &lt;p&gt;8 – Migration from Legacy Version Control Systems&lt;/p&gt;          &lt;p&gt;9 – Branching and Merging&lt;/p&gt;          &lt;p&gt;10 – Common Version Control Scenarios&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="233"&gt;         &lt;p&gt;&lt;strong&gt;Part III – Project Management&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;11 – Introducing Work-Item Tracking&lt;/p&gt;          &lt;p&gt;12 – Customizing Process Templates&lt;/p&gt;          &lt;p&gt;13 – Managing Teams and Agile Planning Tools&lt;/p&gt;          &lt;p&gt;14 – Reporting and SharePoint Dashboards&lt;/p&gt;          &lt;p&gt;15 – Integration with Project Server&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Part IV – Team Foundation Build&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;16 – Overview of Build Automation&lt;/p&gt;          &lt;p&gt;17 – Using Team Foundation Build&lt;/p&gt;          &lt;p&gt;18 – Customizing the Build Process&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="233"&gt;         &lt;p&gt;&lt;strong&gt;Part V – Administration&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;19 – Introduction to Team Foundation Server Administration&lt;/p&gt;          &lt;p&gt;20 – Scalability and High Availability&lt;/p&gt;          &lt;p&gt;21 – Disaster Recovery&lt;/p&gt;          &lt;p&gt;22 – Security and Privileges&lt;/p&gt;          &lt;p&gt;23 – Monitoring Server Health and Performance&lt;/p&gt;          &lt;p&gt;24 – Testing and Lab Management&lt;/p&gt;          &lt;p&gt;25 – Upgrading Team Foundation Server&lt;/p&gt;          &lt;p&gt;26 – Working with Geographically Distributed Teams&lt;/p&gt;          &lt;p&gt;27 – Extending Team Foundation Server&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h2&gt;Authors&lt;/h2&gt;  &lt;p&gt;With Ed joining Microsoft since the last book, that completes the set – all four authors work for Microsoft:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.edsquared.com/"&gt;Ed Blankenship&lt;/a&gt; is the Microsoft Program Manager for the Lab Management scenarios for Team Foundation Server and the Visual Studio ALM product family. He was voted as Microsoft MVP of the Year for Visual Studio ALM &amp;amp; Team Foundation Server before joining Microsoft.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://woodwardweb.com/"&gt;Martin Woodward&lt;/a&gt; is currently the Program Manager for the Microsoft Visual Studio Team Foundation Server Cross-Platform Tools Team. Before joining Microsoft, he was voted Team System MVP of the Year, and has spoken about Team Foundation Server at events internationally. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/granth/"&gt;Grant Holliday&lt;/a&gt; is a Senior Premier Field Engineer for Microsoft in Australia. Prior to this role, he spent three years in Redmond, Washington as a program manager in the Visual Studio Team Foundation Server product group. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/briankel/"&gt;Brian Keller&lt;/a&gt; is a Principal Technical Evangelist for Microsoft specializing in Visual Studio and application lifecycle management. He has presented at conferences all over the world and has managed several early adopter programs for emerging Microsoft technologies. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This time around we also had long-time TFS/ALM MVP &lt;a href="http://sstjean.blogspot.com/"&gt;Steve St. Jean&lt;/a&gt; contributing on some of the book as well as being a Technical Editor and checking all our facts.&lt;/p&gt;  &lt;h2&gt;Q &amp;amp; A&lt;/h2&gt;  &lt;p&gt;When people find out that I’ve written a book, there’s a few questions that often come up.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How much money do you make from the book?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A colleague wrote a book many years ago and he set my expectations right from the start. He used to say: “You don’t make a lot of money by writing a book – especially technical books”. Personally, the royalties are a nice surprise when they come, but I’m not headed for early retirement with them. &lt;img class="wlEmoticon wlEmoticon-smile" style="style" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/6433.wlEmoticon_2D00_smile_5F00_60E633F9.png" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There’s really two ways that authors get paid for their contributions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Advance&lt;/strong&gt; – This is a fixed sum, negotiated with the publisher before you sign a contract. Usually its paid in instalments, as you complete different milestones in the process. 50% draft, final draft, etc.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Royalties&lt;/strong&gt; – This is a how much you will get for each sale of the book. There is not a single percentage and it varies depending on whether the book was sold in the USA, e-book, translation, etc.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For a more complete explanation of how it all works, check out &lt;a href="http://www.charlespetzold.com/blog/2009/10/Book-Royalties-Advances-and-Retainers.html"&gt;Charles Petzold’s article on Book Royalties and Advances&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Then there’s the &lt;strong&gt;non-direct value&lt;/strong&gt; – you get to say “&lt;em&gt;I wrote the book&lt;/em&gt;” on your business card, which is instant credibility and opens up more opportunities.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You work for Microsoft – what do they think about you writing a book?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Microsoft has a Moonlighting policy which covers things like writing a book and building apps. Essentially, each of the authors had to seek approval from their manager before they could work on the book. The policy also has rules that say you can’t use any Microsoft resources and the work is not allowed to impact your daytime work duties.&lt;/p&gt;  &lt;p&gt;Since the subject of the book is a Microsoft product and it helps educate people on how to use it, there was never going to be much resistance to the idea.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What’s the process for writing a book?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://authorservices.wiley.com/life.asp"&gt;Wiley author site &lt;/a&gt;has more information on the Life of a book, but in short the process is:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Proposal &amp;gt; Contract &amp;gt; Draft writing &amp;gt; Editors &amp;gt; Tech Editors &amp;gt; Author Review &amp;gt; Proofs &amp;gt; Printing&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How long did it take you?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Writing a book takes a lot of time and it requires a lot of concentration. It took me a little while to settle into a rhythm, but eventually my style ended up as intense focus weekends every few weeks:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Monday-Thursday&lt;/strong&gt;: Start researching content for the chapter. Put all the links in a OneNote notebook. Do the hands on labs, etc. Basically immerse myself in the subject of that chapter and come up with a logical flow of sub-headings&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Thursday night&lt;/strong&gt;: Spend a few hours at home and take all the screenshots that I could possibly use.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Friday night, Saturday all day&lt;/strong&gt;: Take my laptop to a local coffee shop without an Internet connection. Then just write, write, write. Fill out all the paragraphs for the sub-headings, put in all the screenshots and get the word count up to where it should be.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Sunday&lt;/strong&gt;: Depending on where the word count was at, Sunday was usually spent reviewing and tidying up the formatting and getting it ready to submit. My goal was to upload the draft by Sunday night, since all our chapters were due on Mondays.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;What is the most annoying part of writing a book?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Screenshots. We had it easy for the 2010 edition – the product was RTM, so nothing was changing. With the 2012 edition, we were writing the book before the product was released. That meant that every time the UI changed between Beta/RC/RTM/Update 1, we had to go back to check and update our screenshots.&lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;To finish off, writing these books has been very personally rewarding experience. I saw it as a way of capturing 4-5 years worth of accumulated knowledge and experience and getting it down on paper so that others can learn from it. And hey, never in my wildest dreams did I imagine that &lt;a href="http://bit.ly/ProTFS2010Russian"&gt;I would see my name in Russian on the front of a book&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10394002" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>TFS2012: New tools for TFS Administrators</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-new-tools-for-tfs-administrators.aspx</link><pubDate>Wed, 13 Feb 2013 10:06:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10393269</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10393269</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10393269</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-new-tools-for-tfs-administrators.aspx#comments</comments><description>&lt;p&gt;This is a brand new feature in TFS 2012 that hasn’t really been documented or talked about yet. If you’re a TFS administrator and you browse to this address on your server, you will see a new web-based administration interface for some things inside of TFS:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;http://your-server:8080/tfs/&lt;strong&gt;_oi/&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Activity Log&lt;/h2&gt;  &lt;p&gt;The first page that we see, is a view on the TFS Activity Log. Internally, TFS has two tables in the Tfs_Configuration and Tfs_CollectionX databases called tbl_Command and tbl_Parameter. This tables keep a record of every single command that every single user has executed against TFS for the last 14 days.&lt;/p&gt;  &lt;p&gt;In this screenshot, you can see that the following columns are displayed:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Command Id – A unique ID (per database) given to the command execution.&lt;/li&gt;    &lt;li&gt;Application – Which component of TFS does it relate to? Version Control, WorkItem Tracking, Framework, Lab Management, etc&lt;/li&gt;    &lt;li&gt;Command Name – The server name of the command. You can usually work out what the equivalent client/API call is – but these command names are not documented anywhere.&lt;/li&gt;    &lt;li&gt;Status – 0 = Success, –1 = Failure&lt;/li&gt;    &lt;li&gt;Start Time – When was the request first received by TFS&lt;/li&gt;    &lt;li&gt;Execution Time – How long did the command run for (Divide by 1,000,000 to get seconds)&lt;/li&gt;    &lt;li&gt;Identity Name – The user name of the user who executed the command&lt;/li&gt;    &lt;li&gt;IP Address – IPv4 or IPv6 address&lt;/li&gt;    &lt;li&gt;Unique Identifier – Used to group/correlate multiple server requests that originate from a single client request.&lt;/li&gt;    &lt;li&gt;User Agent – the ‘User-Agent’ HTTP Header from the client. Tells you the name of the executable if it’s using the TFS API and what version/SKU.&lt;/li&gt;    &lt;li&gt;Command Identifier – When using the TFS Command Line tools, this helps you correlate to what command the user was using. ‘tf get’, ‘tf edit’, etc.&lt;/li&gt;    &lt;li&gt;Execution Count – How many times was this command executed. The logging mechanism has some smarts to reduce the noise in the log. If you download a bazillion files, it doesn’t log a bazillion individual rows in the log. It just sets this value to a bazillion for that entry.&lt;/li&gt;    &lt;li&gt;Authentication Type – NTLM or Kerberos.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/8255.image_5F00_14607FDB.png"&gt;&lt;img title="" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Screenshot of TFS Activity Log Web Interface" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7144.image_5F00_thumb_5F00_66630755.png" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;One of the things the TFS Activity Logger does, is that it logs the parameters passed in with a request when:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The command fails (i.e. a status of != 0)&lt;/li&gt;    &lt;li&gt;Or, the command takes longer than 30 seconds&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can see these parameters by double-clicking a row in the table:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7635.image_5F00_3F84CB48.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2330.image_5F00_thumb_5F00_5833F28B.png" width="500" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At the top of the Activity Log screen, you can also filter the log based upon Host/Collection and Identity Name. This is useful if a particular user complains about slow performance or TFS errors – you can easily look at the server logs to see what the server is seeing.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2821.image_5F00_2D9811AE.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3007.image_5F00_thumb_5F00_6AD8C675.png" width="500" height="132" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can also click the ‘Export’ link to download a CSV file of the same content.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;If you’d like to know more about how to query or interpret the contents of the TFS Activity Log – grab a copy of my &lt;a href="http://aka.ms/ProTFS2012"&gt;Professional Team Foundation Server 2012 book&lt;/a&gt; and look at Chapter 23 – Monitoring Server Health and Performance.&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;TFS Job Monitoring&lt;/h2&gt;  &lt;p&gt;Built-in to TFS is the TFS Background Job Agent. This job agent is responsible for the scheduling and queuing of maintenance jobs and other jobs within TFS. You can see &lt;a href="http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-what-are-all-the-different-jobs-built-in-to-tfs.aspx"&gt;my blog post on all the different jobs in TFS 2012&lt;/a&gt; for more information.&lt;/p&gt;  &lt;p&gt;If we click the ‘Job Monitoring’ tab, we get some fairly ugly charts that give us some insight into how long the jobs are taking to execute.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2313.image_5F00_40A9188D.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3630.image_5F00_thumb_5F00_3332DFBA.png" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There is another chart further down the ‘Job Summary’ page that shows us the number of times that a job has been run, and what was the status of each of those runs.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0804.image_5F00_73C5065C.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3527.image_5F00_thumb_5F00_2FC12245.png" width="500" height="302" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can click on one of the green bars in that chart, or the blue bars in the previous chat, or the ‘Job History’ link in the navigation bar to see a different view of the TFS jobs.&lt;/p&gt;  &lt;p&gt;This view shows us the number of jobs that were executing at a particular time, the average time that they waited in the job queue, and the average run time.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3286.image_5F00_540606C7.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4276.image_5F00_thumb_5F00_3E5BA85D.png" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you then click the ‘Job Queue’ link in the navigation bar, you can see which jobs are currently queued, their priorities and when they are expected to start.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7875.image_5F00_05814E90.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5226.image_5F00_thumb_5F00_612C4440.png" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10393269" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS+Administration/">TFS Administration</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>TFS, Load Balancers, Idle Timeout settings and TCP Keep-Alives</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs-load-balancers-idle-timeout-settings-and-tcp-keep-alives.aspx</link><pubDate>Wed, 13 Feb 2013 09:16:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10393256</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10393256</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10393256</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs-load-balancers-idle-timeout-settings-and-tcp-keep-alives.aspx#comments</comments><description>&lt;p&gt;Since TFS 2010, it has been possible to have multiple Application Tier servers configured in a load-balanced configuration. If you use something like a F5 BIG-IP LTM device, then the default Idle Timeout settings for the TCP Profile can cause problems. (But don’t despair, read the whole post).&lt;/p&gt;  &lt;p&gt;Here’s the scenario:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Between the TFS ASP.NET Application and SQL Server, there is a maximum execution timeout of 3600 seconds (1 hour) &lt;/li&gt;    &lt;li&gt;In IIS/ASP.NET there is a maximum request timeout of 3600 seconds (it’s no coincidence that it matches)&lt;/li&gt;    &lt;li&gt;This allows TFS operations to run for up to an hour before they get killed off. In reality, you shouldn’t see any TFS operations run for anywhere near this long – but on big, busy servers like the ones inside Microsoft, this was not uncommon.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Load balancers, in their default configuration usually have an ‘Idle Timeout’ setting of around 5 minutes. The reason for this is that every request that stays open, is consuming memory in the load balancer device. A longer timeout means that more memory is consumed and it’s a potential Denial-of-Service attack vector. (Side note: What’s stopping somebody using TCP Keep-Alives like I describe below to keep a huge number of connections open and have the same DoS effect?)&lt;/p&gt;  &lt;p&gt;So why is this a problem if your ‘Idle Timeout’ is set to something less than 3600 seconds? This is what can happen:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The client makes a request to TFS – for example: “Delete this really large workspace or branch”. That request/connection remains open until the command completes. &lt;/li&gt;    &lt;li&gt;The TFS Application Tier then goes off and calls a SQL Stored Procedure to delete the content. &lt;/li&gt;    &lt;li&gt;If that Stored Procedure takes longer than the ‘Idle Timeout’ value, &lt;strong&gt;&lt;u&gt;the load balancer will drop the connection between the client and the application tier&lt;/u&gt;&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;The request in IIS/ASP.NET will get abandoned, and the stored procedure will get cancelled. &lt;/li&gt;    &lt;li&gt;The client will get an error message like ‘&lt;strong&gt;The underlying connection was closed: A connection that was expected to be kept alive was closed by the server&lt;/strong&gt;’. Basically, this means that the connection got the rug pulled out from under it. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Prior to Visual Studio &amp;amp; Team Foundation Server 2012, I recommended that people talk to their Network Admin guys and get the load balancer configuration updated to a higher ‘TCP Idle Timeout’ setting. This usually involved lots of back-and-forth with the grumpy admins, and eventually you could convince them to begrudgingly change it, just for TFS, to 3600. If you think that you’re hitting this problem – one way to verify is to try the same command directly against one of your application tier servers, rather than via the load balancer. If it succeeds, then you’ve likely found your culprit.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;HTTP Keep-Alives&lt;/h2&gt;  &lt;p&gt;If you’ve administered web sites/webservers before, you’ve likely heard of &lt;strong&gt;&lt;u&gt;HTTP&lt;/u&gt; Keep-Alive&lt;/strong&gt;. Basically, when they’re enabled on the client and the server, the client keeps the TCP connection open after making a HTTP GET request, and reuses the connection for subsequent HTTP GET requests. This avoids the overhead of closing and re-establishing a new TCP connection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0755.image_5F00_7AD79C7F.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4532.image_5F00_thumb_5F00_163C52E9.png" width="471" height="459" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That doesn’t help our Idle Timeout problem, since we only make a single HTTP request. It’s that &lt;strong&gt;single&lt;/strong&gt; HTTP request that gets killed halfway through – HTTP Keep-Alives won’t help us here.&lt;/p&gt;  &lt;h2&gt;Introducing TCP Keep-Alives&lt;/h2&gt;  &lt;p&gt;There’s a mechanism built-in to the TCP protocol that allows you to send a sort-of “PING” back and forth between the client and the server, but not pollute the HTTP request/response. &lt;/p&gt;  &lt;p&gt;If you have a .NET &lt;strong&gt;client &lt;/strong&gt;application, this is the little gem that you can use in your code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;webRequest.ServicePoint.&lt;a href="http://msdn.microsoft.com/en-us/library/system.net.servicepoint.settcpkeepalive.aspx"&gt;SetTcpKeepAlive&lt;/a&gt;(true, 50 * 1000, 1000); // Enable TCP Keep-Alives. Send the first Keep-Alive after 50 seconds, then if no response is received in 1 second, send another keep-alive.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In this example NetMon network trace:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I deployed a web services to Windows Azure, where the load balancer had a TCP Idle Timeout set to 5 minutes (this has changed lately in Azure now that they moved to a software based load balancer). &lt;/li&gt;    &lt;li&gt;This web services was coded to do a Thread.Sleep(seconds) for however long I told it to, then send a response back. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2654.image_5F00_536CE1E3.png"&gt;&lt;img title="" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="NetMon capture that shows TCP KeepAlive packets" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5873.image_5F00_thumb_5F00_7337F346.png" width="500" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;First of all, you’ll notice that I did this investigation quite some time ago (~2 years…). Next, you’ll see that there’s some other traffic that happens on my connection between the HTTP:Request at frame 179 and the HTTP:Response at frame 307. Those are the TCP Keep-Alive ‘PING’ and ‘ACK’ packets.&lt;/p&gt;  &lt;p&gt;Finally, you can see that after 320 seconds have passed (i.e. 20 seconds after the load balancer should’ve closed the connection), I get a valid HTTP:Response back. This means that we have successfully avoided the load balancer killing our connection prematurely.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;What’s in it for me?&lt;/h2&gt;  &lt;p&gt;The whole reason I did this investigation was when I was working on the TFS team and they were getting ready to launch the &lt;a href="http://tfs.visualstudio.com/"&gt;Team Foundation Service&lt;/a&gt;. Although it was quite rare, there were instances where users could hit this TCP Idle Timeout limitation.&lt;/p&gt;  &lt;p&gt;The good news is that by working with the rock star dev on the Version Control team, &lt;a href="http://blogs.msdn.com/b/phkelley/"&gt;Philip Kelley&lt;/a&gt; – we were able to include a change in the TFS 2010 Forward Compatibility update and the TFS 2012 RTM clients to send TCP Keep-Alives every 30 seconds, thus avoiding the issues altogether when talking to the Team Foundation Service, and on-premises TFS servers deployed behind a load balancer. You can see this for yourself in Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestHelpers.PrepareWebRequest().&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;webRequest.ServicePoint.SetTcpKeepAlive(true, 30000, 5000);&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;A caveat&lt;/h2&gt;  &lt;p&gt;If you don’t have a direct connection between your client and your server, and you go via a HTTP proxy server or something like ISA/ForeFront Threat Management Gateway – the TCP Keep-Alive packets aren’t propagated through those proxies. You’ll get an error back with something like ‘502: Bad Gateway’, which basically means that the connection between the Proxy server and the TFS server was dropped.&lt;/p&gt;  &lt;p&gt;Here’s what the NetMon trace looks like for this example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0601.image_5F00_24B33B0F.png"&gt;&lt;img title="" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="NetMon capture that shows TCP KeepAlive packets, and ultimately the connection getting dropped" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4061.image_5F00_thumb_5F00_0684BBB4.png" width="500" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10393256" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>TFS: How to Customize Work Item Types</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs-how-to-customize-work-item-types.aspx</link><pubDate>Wed, 13 Feb 2013 08:21:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10393244</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10393244</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10393244</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs-how-to-customize-work-item-types.aspx#comments</comments><description>&lt;p&gt;Team Foundation Server has allowed you to modify your Work Item Type Definitions since the first version of TFS. &lt;em&gt;(Side note: this is not the case with the &lt;/em&gt;&lt;a href="http://tfs.visualstudio.com/"&gt;&lt;em&gt;Team Foundation Service&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, but the team hopes to enable that at some point in the future. At the moment, limiting the customization allows them to innovate the features in the Service at a faster pace without having to worry too much about everybody's customizations.)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The fundamentals for modifying Work Item Types are documented in the following places:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms243849.aspx"&gt;Customize Project Tracking Data, Forms, Workflow, and Other Objects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f/"&gt;Process Editor - Team Foundation Server Power Tools&lt;/a&gt; (Once you have it installed, see the help file at: C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\Help\ProcessEditor.mht) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd312129.aspx"&gt;Customizing and Managing Work Item Types [witadmin]&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd236914.aspx"&gt;witAdmin: Administering Objects for Tracking Work Items&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/aa718795.aspx"&gt;Process Templates and Tools&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In this post, I'm going to show you the tools and process that I personally use for customizing work item types.&lt;/p&gt;  &lt;h2&gt;Prerequisites / Tools&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Real (Production) TFS server / project &lt;/li&gt;    &lt;li&gt;Test (Staging) TFS server / project &lt;/li&gt;    &lt;li&gt;ExportWITDs.cmd - A batch file (included below) that uses the 'witadmin.exe exportwitd' command &lt;/li&gt;    &lt;li&gt;ImportWITDs.cmd &lt;/li&gt;    &lt;li&gt;Visual Studio, XML editor with IntelliSense &lt;/li&gt;    &lt;li&gt;Checkin.cmd - A batch file that uses tf.exe to prompt for a comment and check-in current changes. &lt;/li&gt;    &lt;li&gt;Team Foundation Server Power Tools - Process Editor &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Workflow&lt;/h2&gt;  &lt;p&gt;When I'm working with a customer and doing a series of process template or work item type customization, this is the workflow that I follow:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Run a script to export all Work Item Type definitions to my local machine &lt;/li&gt;    &lt;li&gt;Check-in a copy of the definitions to source control, so that we have a baseline to work from and revert back to &lt;/li&gt;    &lt;li&gt;Edit the XML definitions in Visual Studio as XML, with IntelliSense (see below) &lt;/li&gt;    &lt;li&gt;Run a script to import the definition to my Test project &lt;/li&gt;    &lt;li&gt;Verify the changes in a second copy of Visual Studio &lt;/li&gt;    &lt;li&gt;Check-in the changes &lt;/li&gt;    &lt;li&gt;Run a script to import the definition to my Production project &lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Step 1 - Export all work item types&lt;/h2&gt;  &lt;p&gt;The following script exports a list of the work item type names to a temporary file, then uses that list to export each of the work item types to a separate file in the current directory. It needs to be run from a Visual Studio Command Prompt, or you need to add ‘C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\ide’ to your PATH environment variable.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ExportWITDs.cmd:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SET collection=&amp;quot;http://tfs-server:8080/tfs/DefaultCollection&amp;quot;&lt;/p&gt;    &lt;p&gt;SET project=&amp;quot;Project XYZ&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin listwitd /collection:%collection% /p:%project% &amp;gt; %temp%\witd.txt&lt;/p&gt;    &lt;p&gt;:: Remove quotes from project name&lt;/p&gt;    &lt;p&gt;SET _string=###%project%###&lt;/p&gt;    &lt;p&gt;SET _string=%_string:&amp;quot;###=%&lt;/p&gt;    &lt;p&gt;SET _string=%_string:###&amp;quot;=%&lt;/p&gt;    &lt;p&gt;SET _string=%_string:###=%&lt;/p&gt;    &lt;p&gt;for /F &amp;quot;delims=&amp;quot; %%a in (%temp%\witd.txt) do witadmin exportwitd /collection:%collection% /p:%project% /n:&amp;quot;%%a&amp;quot; /f:&amp;quot;%3_%_string%_%%a.xml&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Step 2 - Check-in a copy&lt;/h2&gt;  &lt;p&gt;There’s no script for this step, since it’s a one-time thing. Just use Visual Studio, or ‘tf add . /R’ followed by ‘tf checkin . /R’&lt;/p&gt;  &lt;h2&gt;Step 3 - Open with XML Editor&lt;/h2&gt;  &lt;p&gt;See my previous blog post on &lt;a href="http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-intellisense-for-customizing-work-item-types-using-xml.aspx"&gt;how I enable IntelliSense for editing work item types as XML&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Step 4 - Import the changes to Test&lt;/h2&gt;  &lt;p&gt;Importing the changes is relatively straightforward. When I am rapidly iterating on a Work Item Type design, I like to create a 'ImportWITDs.cmd' batch file that imports everything that I'm currently working on. Then I can just leave a command prompt open and run it whenever I feel like it.&lt;/p&gt;  &lt;p&gt;Now, for the seasoned witadmin pros, you'll know that there's also a '/v' option that allows you to validate the changes before you actually upload them to the server. In my experience, this is a waste of time - two reasons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;If the XML is invalid, then it's going to fail if you try and upload it without validating first. &lt;/li&gt;    &lt;li&gt;The validation process doesn't validate everything - it misses some things. (I forget the specific cases, but I think it was something like fields that already exist or something like that). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So because of these two reasons and coupled with the fact that I'm also uploading to a test server first - I skip the '/v' validation step and try the import directly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ImportWITDs.cmd:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SET collection=&amp;quot;http://tfs-server:8080/tfs/DefaultCollection&amp;quot;&lt;/p&gt;    &lt;p&gt;SET project=&amp;quot;Project XYZ&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin importwitd /collection:%collection% /p:%project% /f:&amp;quot;_DefaultCollection_Task.xml&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin importwitd /collection:%collection% /p:%project% /f:&amp;quot;_DefaultCollection_Bug.xml&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin importwitd /collection:%collection% /p:%project% /f:&amp;quot;_DefaultCollection_Issue.xml&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin importwitd /collection:%collection% /p:%project% /f:&amp;quot;_DefaultCollection_Shared Steps.xml&amp;quot;&lt;/p&gt;    &lt;p&gt;witadmin importwitd /collection:%collection% /p:%project% /f:&amp;quot;_DefaultCollection_Test Case.xml&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Step 5 - Verify the changes&lt;/h2&gt;  &lt;p&gt;Once I've run the ImportWITDs.cmd script, and it completes without any errors - then it's time to verify the changes. To do this, I normally have a second copy of Visual Studio open.&lt;/p&gt;  &lt;p&gt;Before hitting 'Refresh' in Team Explorer, it's important to close all existing Work Item tabs. As having an open query or work item, can cause the metadata not to be reloaded correctly – then you start to wonder whether your changes were uploaded successfully or not.&lt;/p&gt;  &lt;p&gt;Once everything is closed, hit the 'Refresh' button at the top of Team Explorer. Then go ahead and open a New Work Item form for the type that you have just modified.&lt;/p&gt;  &lt;h2&gt;Step 6 - Check-in the changes&lt;/h2&gt;  &lt;p&gt;If you have verified the changes and everything looks great - it's a good idea to check the XML in to source control. This gives you a point that you can roll-back to in the future. It also helps your successor understand what changes have been made to the work item types and why they were made.&lt;/p&gt;  &lt;p&gt;After checking in the changes, we also check-out all the files again. (This is not strictly necessary if you are using Visual Studio 2012 and Local Workspaces, since the files will be read-write on disk and any changes will be detected anyway.)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Checkin.cmd:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;@echo off&lt;/p&gt;    &lt;p&gt;SET /P comment=&amp;quot;Checkin comment?&amp;quot;&lt;/p&gt;    &lt;p&gt;tf checkin . /r /noprompt /comment:&amp;quot;%comment%&amp;quot;&lt;/p&gt;    &lt;p&gt;tf edit . /R&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Step 7 - Import the changes to Production&lt;/h2&gt;  &lt;p&gt;Once we've checked-in a copy of our changes, it's time to upload the Work Item Type changes to the Production team project. If you're making the changes on behalf of a customer, then you would have them review the changes on your Test system first.&lt;/p&gt;  &lt;p&gt;Since I normally iterate on a set of changes a few times and upload to Production once at the end, I usually just modify the Server/Collection/Project settings in ImportWITDs.cmd and use that, rather than creating a separate batch file.&lt;/p&gt;  &lt;h2&gt;Other Tools&lt;/h2&gt;  &lt;p&gt;Although they are not part of the &amp;quot;normal&amp;quot; workflow, there are some other tools that I have used in the past for special situations.&lt;/p&gt;  &lt;h2&gt;TFS Team Project Manager&lt;/h2&gt;  &lt;p&gt;I can’t recommend this tool from Jelle Druyts highly enough for doing what I call “Bulk Administration” tasks in TFS. It lets you easily take a set of Work Item Types and upload them to all projects in your project collection. It also lets you bulk edit build definitions, build process templates, fields, source control settings and more.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Codeplex: &lt;a href="http://teamprojectmanager.codeplex.com/"&gt;http://teamprojectmanager.codeplex.com/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Visual Studio Gallery: &lt;a title="http://visualstudiogallery.msdn.microsoft.com/d5c7e795-2772-4e5c-b3c6-a3eff23a4938" href="http://visualstudiogallery.msdn.microsoft.com/d5c7e795-2772-4e5c-b3c6-a3eff23a4938"&gt;http://visualstudiogallery.msdn.microsoft.com/d5c7e795-2772-4e5c-b3c6-a3eff23a4938&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3276.image_5F00_13833142.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/1106.image_5F00_thumb_5F00_0A072074.png" width="500" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;ExportWITDSorted.exe&lt;/h2&gt;  &lt;p&gt;This is a little tool that I wrote for myself. The use case that I wrote it for was when you a working with heavily customised work item types that you don't have the original XML for.&lt;/p&gt;  &lt;p&gt;Although the way that you modify work item types is all in XML - that is not how the work item types are defined in the TFS database. When you tell TFS to import your work item type XML file, it shreds the XML, parses out all the fields, layouts, transitions, etc and puts them in separate SQL tables. When you tell TFS to export a work item type as XML, it does the opposite. The ordering of the elements in the XML is basically the ordering of the rows from the database. No sorting.&lt;/p&gt;  &lt;p&gt;If you are trying to do a diff of different work item type XML files, this can be pretty frustrating. Of course you can go and get a diff tool that understands XML semantics, but Visual Studio can't do this for you.&lt;/p&gt;  &lt;p&gt;This tool I wrote uses the same APIs that 'witadmin exportwitd' uses to get an export of the work item type, but then it iterates through the XML elements and sorts them by the 'name' attribute. This makes it a little easier to diff with a 'dumb' text-diff tool like Visual Studio or WinMerge.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System;     &lt;br /&gt;using Microsoft.TeamFoundation.Client;      &lt;br /&gt;using Microsoft.TeamFoundation.WorkItemTracking.Client;      &lt;br /&gt;using System.Xml;      &lt;br /&gt;using System.Xml.XPath;&lt;/p&gt;    &lt;p&gt;namespace ExportWitdSorted     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class Program      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (args == null || args.Length != 4)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Usage:&amp;#160;&amp;#160; ExportWitdSorted.exe &amp;lt;collection url&amp;gt; &amp;lt;project&amp;gt; &amp;lt;work item type&amp;gt; &amp;lt;outputfile&amp;gt;&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Example: ExportWitdSorted.exe http://tfsserver:8080/Collection MyProject \&amp;quot;My Bug\&amp;quot; mybug.xml&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Environment.Exit(1);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Connect to TFS     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(args[0]));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkItemStore wis = tpc.GetService&amp;lt;WorkItemStore&amp;gt;();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Project project = wis.Projects[args[1]];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkItemType type = project.WorkItemTypes[args[2]];&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Export the work item definition to an XmlDocument     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlDocument originalDoc = type.Export(false);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Create a copy of the definition and remove all the &amp;lt;FIELD&amp;gt; nodes so that we can replace them with a sorted list     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlDocument sortedDoc = new XmlDocument();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sortedDoc.LoadXml(originalDoc.OuterXml);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sortedDoc.SelectSingleNode(&amp;quot;//FIELDS&amp;quot;).RemoveAll();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Get the nodes from the original document and sort them     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode node = originalDoc.SelectSingleNode(&amp;quot;//FIELDS&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XPathNavigator navigator = node.CreateNavigator();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XPathExpression selectExpression = navigator.Compile(&amp;quot;FIELD/@name&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; selectExpression.AddSort(&amp;quot;.&amp;quot;, XmlSortOrder.Ascending, XmlCaseOrder.None, &amp;quot;&amp;quot;, XmlDataType.Text);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XPathNodeIterator nodeIterator = navigator.Select(selectExpression);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Import the sorted nodes into the new document     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while (nodeIterator.MoveNext())      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode fieldNode = originalDoc.SelectSingleNode(&amp;quot;//FIELD[@name='&amp;quot; + nodeIterator.Current.Value + &amp;quot;']&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode importedFieldNode = sortedDoc.ImportNode(fieldNode, true);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sortedDoc.SelectSingleNode(&amp;quot;//FIELDS&amp;quot;).AppendChild(importedFieldNode);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sortedDoc.Save(args[3]);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10393244" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS+Administration/">TFS Administration</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>TFS2012: IntelliSense for customizing Work Item Types using XML</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-intellisense-for-customizing-work-item-types-using-xml.aspx</link><pubDate>Wed, 13 Feb 2013 06:52:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10393230</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10393230</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10393230</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-intellisense-for-customizing-work-item-types-using-xml.aspx#comments</comments><description>&lt;p&gt;Team Foundation Server allows you to modify the Work Item Type definitions. You can use a graphical interface like the Process Editor included in the Team Foundation Server Power Tool, or you can edit the raw XML.&lt;/p&gt;  &lt;p&gt;For making changes across many work item types, I prefer to edit the raw XML in Visual Studio, since it allows me to use Find &amp;amp; Replace, Copy/Paste, and other useful text-editing functions.&amp;#160; &lt;/p&gt;  &lt;p&gt;One very useful feature of Visual Studio is IntelliSense for editing XML files. To activate IntelliSense for XML files, you need to have the XSD schema files in a special directory on your machine.&lt;/p&gt;  &lt;p&gt;In this blog post, I will show you how you can enable IntelliSesnse for editing Work Item Tracking XML files. This gives you the flexibility of editing the raw XML, with the safety net of IntelliSense and XML validation. It's based upon &lt;a href="http://www.benday.com/2006/05/20/intellisense-for-team-server-work-item-template-schemas/"&gt;an old blog post from Ben Day&lt;/a&gt; and updated for Team Foundation Server 2012. &lt;/p&gt;  &lt;h2&gt;Obtaining the latest schema files&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17/1727.Tfs2012_2D00_WorkItemType_2D00_XML_2D00_Schemas.zip"&gt;&lt;strong&gt;Download here&lt;/strong&gt;&lt;/a&gt; (11KB, Zip file)&lt;/p&gt;  &lt;p&gt;Or, you can open &lt;strong&gt;Microsoft.TeamFoundation.WorkItemTracking.Common.dll&lt;/strong&gt; from your GAC in Reflector and export out the schema files which are embedded as resources:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2063.image_5F00_39ADCE96.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5367.image_5F00_thumb_5F00_19166917.png" width="393" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Setting them up so IntelliSense works&lt;/h2&gt;  &lt;p&gt;Extract the XSD files to this folder on your local machine:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is where the Visual Studio IntelliSense engine looks for matching schema files, when you open an XML file.&lt;/p&gt;  &lt;h2&gt;Opening Work Item Type definitions in XML editor, instead of Process Editor&lt;/h2&gt;  &lt;p&gt;If you have the Team Foundation Server Power Tools installed, the Process Editor plug-in (ProejctTemplateEditor, in the list) is set as the default handler for work item XML files. So you get this UI view, rather than the raw XML:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2627.image_5F00_3FB4CF97.png"&gt;&lt;img title="image" style="margin: 0px; display: inline" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7571.image_5F00_thumb_5F00_0414C0D7.png" width="500" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To change this behaviour, you can go to&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;File &amp;gt; Open …&lt;/li&gt;    &lt;li&gt;Select the Work Item XML file&lt;/li&gt;    &lt;li&gt;Instead of clicking the ‘Open’ button, click the little arrow next to the ‘Open’ button and choose ‘Open With…’&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/1512.clip_5F00_image001_5F00_6BD25E4F.png"&gt;&lt;img title="clip_image001" style="display: inline" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2021.clip_5F00_image001_5F00_thumb_5F00_309E8284.png" width="500" height="77" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can then choose ‘XML (Text) Editor’ and optionally set it as the default editor for these files in the future.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/8865.clip_5F00_image002_5F00_7C1DB03B.png"&gt;&lt;img title="clip_image002" style="display: inline" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7875.clip_5F00_image002_5F00_thumb_5F00_3E4118BF.png" width="500" height="327" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you’ve followed all these steps, you get the joy of editing the Work Item Type XML file with the power and syntax checking of IntelliSense.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/6813.image_5F00_67B758E9.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/6064.image_5F00_thumb_5F00_16B994C1.png" width="500" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;The entire Work Item Type XML schema is documented on MSDN at &lt;a href="http://msdn.microsoft.com/en-us/library/aa337615.aspx"&gt;Index to XML Element Definitions for Work Item Types&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10393230" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS+Administration/">TFS Administration</category></item><item><title>TFS2012: What are all the different Jobs built-in to TFS?</title><link>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-what-are-all-the-different-jobs-built-in-to-tfs.aspx</link><pubDate>Tue, 12 Feb 2013 22:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10393134</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10393134</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10393134</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2013/02/13/tfs2012-what-are-all-the-different-jobs-built-in-to-tfs.aspx#comments</comments><description>&lt;p&gt;This is a question that I get occasionally, and it&amp;rsquo;s covered in more detail in the &lt;a href="http://aka.ms/ProTFS2012"&gt;Professional Team Foundation Server 2012 book&lt;/a&gt; that I wrote.&lt;/p&gt;
&lt;p&gt;Team Foundation Server has a Job Agent built in. It&amp;rsquo;s implemented as a Windows Service that runs on your Application Tier servers. There are some tables and stored procedures in the Tfs_Configuration database and your collection databases that define the jobs, the job queue and the job history. You can read more about the internals of the &lt;a href="http://blogs.msdn.com/b/chrisid/archive/2010/02/15/introducing-the-tfs-background-job-agent-and-service.aspx"&gt;TFS Background Job Agent in Chris Sidi&amp;rsquo;s blog post&lt;/a&gt;, including how to control it using the TFS API and PowerShell.&lt;/p&gt;
&lt;p&gt;The following table describes all of the jobs across the configuration and collection databases and their default schedule:&lt;/p&gt;
&lt;table style="width: 498px;" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="344"&gt;
&lt;p&gt;&lt;strong&gt;Job Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="152"&gt;
&lt;p&gt;&lt;strong&gt;Scheduled Interval&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="345"&gt;
&lt;p&gt;Build Cleanup Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="153"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="344"&gt;
&lt;p&gt;Build Information Cleanup Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="154"&gt;
&lt;p&gt;2 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Build Warehouse Sync&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;30 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Cleanup Discussion Database&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Cleanup TestManagement Database&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Common Structures Warehouse Sync&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;30 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;File Container Cleanup&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Job History Cleanup Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;2 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Message Queue Cleanup Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;2 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Optimize Databases&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;7 days (collection)&lt;br /&gt;1 day (configuration)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Prune Registry Audit Log&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;7 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Repopulate Dynamic Suites&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;hourly&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Security Identity Cleanup Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Synchronize Test Cases&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;10 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Activity Logging Administration&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;2 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Coverage Analysis&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;hourly&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Event Processing&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Framework Data Cleanup&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Framework File Service Cleanup&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Team Foundation Server Send Mail Job&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Test Management Warehouse Sync&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;30 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Upgrade - Version Control Code Churn Online&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Version Control Administration&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;5 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Version Control Code Churn&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Version Control Delta Processing&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Version Control Statistics Update&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Version Control Warehouse Sync&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;30 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Administration&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Integration Synchronization&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;hourly&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Referenced Identities Update&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;7 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Remove Orphan Attachments&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;daily&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Remove unused constants&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;14 days&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="343"&gt;
&lt;p&gt;Work Item Tracking Warehouse Sync&lt;/p&gt;
&lt;/td&gt;
&lt;td width="155"&gt;
&lt;p&gt;30 minutes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The ones that I often get questions about are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimize Databases &amp;ndash; This will reorganize/rebuild any indexes in SQL that exceed the fragmentation threshold&lt;/li&gt;
&lt;li&gt;TFS Activity Log Administration &amp;ndash; This will purge data in the activity log (tbl_Command) that is older than 14 days&lt;/li&gt;
&lt;li&gt;Version Control Code Churn Online &amp;ndash; This is a once-off job that runs after upgrade from TFS2010 to TFS2012. The format for storing the code churn data changed, so rather than converting that data during upgrade, it was done slowly over time post-upgrade by this job.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;Thanks for the comment Tommy - I forgot a very important aspect of some of these jobs. Although the default schedules are listed above, some of them are queued 'on demand' by events that happen in TFS. Two examples of this are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Team Foundation Server Event Processing - This job is responsible for sending out email alert subscriptions and SOAP alert subscriptions. For example, when a work item is changed - this job is queued on demand to process any alerts.&lt;/li&gt;
&lt;li&gt;The various Warehouse Sync jobs - These jobs are also triggered to run when data changes as well. By default, they don't run more often than every 5 minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another concept which you might come across is 'Host Dormancy'. This is a feature built-in to the 'kernel' of TFS that will pause jobs from running if a collection hasn't been accessed in a period of time. If a collection isn't being accessed, that means that the data isn't changing, so there's no need to run some jobs. This is key functionality that allows the Team Foundation Service to scale to thousands of collections.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10393134" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS+Administration/">TFS Administration</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>Getting started on your new Microsoft Surface RT</title><link>http://blogs.msdn.com/b/granth/archive/2012/12/18/getting-started-on-your-new-microsoft-surface-rt.aspx</link><pubDate>Mon, 17 Dec 2012 14:35:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10378672</guid><dc:creator>Grant Holliday - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10378672</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10378672</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2012/12/18/getting-started-on-your-new-microsoft-surface-rt.aspx#comments</comments><description>&lt;p&gt;So, you've just unpacked your brand new Microsoft Surface with Windows RT. What now? Where do you start? Here's my list of things to do and hopefully it helps you.&lt;/p&gt;  &lt;h2&gt;Step 1 – Choose the right Microsoft account / Windows Live ID &lt;/h2&gt;  &lt;p&gt;&amp;quot;Microsoft account&amp;quot; is the new name given to &amp;quot;Windows Live ID&amp;quot;. You might know it as your &amp;quot;Hotmail account&amp;quot; or your &amp;quot;Xbox Live login&amp;quot;. &lt;/p&gt;  &lt;p&gt;If you have a Windows Phone, then it's a good idea to &lt;strong&gt;use the same account that your phone is associated with&lt;/strong&gt;. Then you will get all the goodness of a common SkyDrive and roaming settings (for apps that support it).&lt;/p&gt;  &lt;h4&gt;To find which account you're using on your Windows Phone: &lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;On &lt;strong&gt;Start&lt;/strong&gt;, flick left to the &lt;strong&gt;App&lt;/strong&gt; list, tap &lt;strong&gt;Settings&lt;/strong&gt; &lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5280.121712_5F00_1435_5F00_Gettingstar1.png" /&gt;, and then tap &lt;strong&gt;Email+accounts&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Look for the first email account in the list that is named &amp;quot;Microsoft account&amp;quot; or &amp;quot;Windows Live&amp;quot;.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Tip: If you renamed your primary account to something other than &amp;quot;Microsoft account&amp;quot; look for the first account that is listed with the Windows logo &lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2072.121712_5F00_1435_5F00_Gettingstar2.png" /&gt; next to it. &lt;/p&gt;  &lt;h2&gt;Step 2 – Secure your Surface &lt;/h2&gt;  &lt;p&gt;With Windows 8, you no longer have to create a separate logon to your machine. You can just login using your Microsoft account and password. If you haven't set this up already, follow these steps to set it up: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;From the &lt;a href="http://windows.microsoft.com/en-US/windows-8/charms"&gt;Settings charm&lt;/a&gt; (swipe from the right of the screen), tap or click &lt;strong&gt;Change PC settings&lt;/strong&gt; (at the very bottom of the screen). &lt;/li&gt;    &lt;li&gt;In the left pane, tap or click &lt;strong&gt;Users&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Tap or click &lt;strong&gt;Switch to a Microsoft account&lt;/strong&gt; and follow the instructions. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0361.image_5F00_3180E4FB.png" width="240" height="224" /&gt;&lt;/p&gt;  &lt;h4&gt;Create a picture password &lt;/h4&gt;  &lt;p&gt;One of the things that gets tiresome pretty quickly on a touch device, is having to type in your complex password all the time. This is easily solved by creating a picture password. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows-8/picture-passwords"&gt;Sign in with a picture password&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://windows.microsoft.com/en-US/windows-8/picture-passwords"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2061.image_5F00_17C4B882.png" width="350" height="227" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you want to know more about picture passwords, see the following blog posts on the Building 8 blog: &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/12/16/signing-in-with-a-picture-password.aspx"&gt;Signing in with a picture password&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/12/19/optimizing-picture-password-security.aspx"&gt;Optimizing picture password security&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Step 3 – Apply latest Windows Updates &lt;/h2&gt;  &lt;p&gt;On the Surface RT, this is a critical step. The December 2012 updates include a firmware update that dramatically improves battery life. Also, since the Surface ships with the &amp;quot;Preview&amp;quot; version of Office 2013, you will need to download the update to the final version. &lt;/p&gt;  &lt;p&gt;In total, it will be about 700MB of updates and one or two reboots – so it's a good idea if you are connected to a fast network and do it when you have some time to spare. Since this is such a large update, it's a good idea to do it proactively rather than wait for Windows to automatically do it for you.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;From the &lt;a href="http://windows.microsoft.com/en-US/windows-8/charms"&gt;Settings charm&lt;/a&gt; (swipe from the right of the screen), tap or click Change PC settings (at the very bottom of the screen). &lt;/li&gt;    &lt;li&gt;In the left pane, scroll to the bottom and tap or click &lt;strong&gt;Windows Update&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Tap or click &lt;strong&gt;Check for updates now&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Repeat the process until there are no more updates to install. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2425.image_5F00_21FDD32C.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/8666.image_5F00_thumb_5F00_2FA06967.png" width="400" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;&lt;/ol&gt;  &lt;h2&gt;Step 4 – Download a Windows theme &lt;/h2&gt;  &lt;p&gt;A theme is a combination of desktop background pictures, window colours, and sounds. Of course you can customise these things yourself, but it's very convenient to just apply a theme that catches your eye. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows/themes"&gt;Browse the Windows themes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows/terra-dynamic-download-theme"&gt;Terra Dynamic theme&lt;/a&gt; (95+ images, updated periodically) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows/cityscapes-panoramic-download-theme"&gt;Panorama themes&lt;/a&gt; (if you have dual monitors) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://windows.microsoft.com/en-US/windows/australia-download-theme"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0815.121712_5F00_1435_5F00_Gettingstar3.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Step 5 – Apps from the Windows Store &lt;/h2&gt;  &lt;h4&gt;Updating all your apps to the latest versions &lt;/h4&gt;  &lt;p&gt;If there are updates available for any of your installed apps, then the &lt;strong&gt;Store &lt;/strong&gt;app Live Tile will have a little number on it, indicating the number of updates available. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open the &lt;strong&gt;Store&lt;/strong&gt; app and click the 'X updates available' text in the top right corner. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Re-installing apps that you have on another Windows 8 PC &lt;/h4&gt;  &lt;p&gt;A convenient feature of the Windows Store app lets you see which apps that you have previously installed on another Windows 8 PC. From this screen, you can then select all the apps and install them on your new Surface. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;On the Start screen, tap or click &lt;strong&gt;Store&lt;/strong&gt; to open the Windows Store. &lt;/li&gt;    &lt;li&gt;Swipe down from the top edge of the screen, and then tap &lt;strong&gt;Your apps&lt;/strong&gt;. (If you're using a mouse, point to the top of the screen, right-click, and then click &lt;strong&gt;Your apps&lt;/strong&gt;.) &lt;/li&gt;    &lt;li&gt;Choose the apps you want to install, and then tap or click &lt;strong&gt;Install&lt;/strong&gt; (from the bottom of the screen). &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Essential apps for your Surface RT&amp;#160; &lt;/h4&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/f022389f-f3a6-417e-ad23-704fbdf57117"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4532.121712_5F00_1435_5F00_Gettingstar4.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/f022389f-f3a6-417e-ad23-704fbdf57117"&gt;OneNote&lt;/a&gt; – Although your Surface comes with the Desktop version of OneNote pre-installed, there is a Metro Windows Store version of OneNote available from the Store. It's pretty much &lt;em&gt;the&lt;/em&gt; app for using your Surface in meeting to take notes. (I used it to draft this blog post, before copying and pasting over to Word 2013). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/ba4b9485-8712-41ff-a9ea-6243a3e07682"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/1805.121712_5F00_1435_5F00_Gettingstar5.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/ba4b9485-8712-41ff-a9ea-6243a3e07682"&gt;Lync&lt;/a&gt; – If you have access to Lync either via your work or an Office 365 subscription, then you'll want to download the Lync app. You can use it to have IM conversations join video conferences and make phone calls. If you allow it, it can run in the background all the time while you are using your Surface. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/5e19cc61-8994-4797-bdc7-c21263f6282b"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3554.121712_5F00_1435_5F00_Gettingstar6.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/5e19cc61-8994-4797-bdc7-c21263f6282b"&gt;Skype&lt;/a&gt; – Now that Skype supports signing in with a Microsoft account, if you have logged on to Windows using a Microsoft account, it will automatically sign you in. This is one of the reasons why it's so important to get your Microsoft accounts in order. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/571b1120-f579-47d3-88c8-a722652643b3"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4135.121712_5F00_1435_5F00_Gettingstar7.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/571b1120-f579-47d3-88c8-a722652643b3"&gt;Xbox SmartGlass&lt;/a&gt; – lets you control your Xbox from your Surface and view extra context about movies and games. See the &lt;a href="http://www.youtube.com/watch?v=NBGkSuaqWEE"&gt;Xbox SmartGlass Walkthrough video&lt;/a&gt; for more details. &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3554.121712_5F00_1435_5F00_Gettingstar8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apps.microsoft.com/webpdp/app/9c10bc10-75bf-41e3-a26a-01aba908af85"&gt;Wordament&lt;/a&gt; – built by two Microsoft employees in their spare time, Wordament is just like Boggle – but you compete with hundreds of other players on the same board at the same time. Caution: it's addictive, especially once you start unlocking &lt;a href="http://wordament.com/2012/04/20/wordament-achievements/"&gt;Xbox Live achievements&lt;/a&gt; for it (try playing in your non-native language for some fun..) &lt;/p&gt;  &lt;h2&gt;Step 6 - Configure your mail account(s) &lt;/h2&gt;  &lt;p&gt;Let's start with the bad news. There is no Outlook for Surface RT and the built-in Mail app is functional, but not great. The good news is that it supports multiple accounts (Exchange/Outlook.com/Hotmail/etc) and it integrates with the lock screen to show you unread messages. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows-8/mail-app-faq"&gt;How do I add my email account to Mail?&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;One of the things I like to do to my email accounts is customise the email signatures: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;On Start, tap or click &lt;strong&gt;Mail&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Swipe in from the right edge of the screen, and then tap &lt;strong&gt;Settings&lt;/strong&gt;.       &lt;br /&gt;(If you're using a mouse, point to the upper-right corner of the screen, move the mouse pointer down, and then click &lt;strong&gt;Settings&lt;/strong&gt;.) &lt;/li&gt;    &lt;li&gt;Tap or click &lt;strong&gt;Accounts&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Tap or click the account you want to change the signature for. &lt;/li&gt;    &lt;li&gt;Decide how you want to change your signature: &lt;/li&gt;    &lt;li&gt;Set &lt;strong&gt;Use a signature&lt;/strong&gt; to either &lt;strong&gt;On&lt;/strong&gt; or &lt;strong&gt;Off&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;If you're using a signature, change the text. At this time, there aren't any options to add images or change font settings (like color or type) in your signature. &lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Step 7 – HomeGroup &lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;A homegroup is a group of PCs on a home network that can share files and printers. Using a homegroup makes sharing easier. You can share pictures, music, videos, documents, and printers with other people in your homegroup. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;One feature that existed in previous versions of Windows is HomeGroup. It's well worth the effort to set up the computers in your house on the same HomeGroup. I've never quite realised the benefits of HomeGroup until recently (see File History on the next step). Once you have connected your Surface to your home WiFi network, follow these instructions: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows/homegroup-help"&gt;HomeGroup from start to finish&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Step 8 – Continuous backups with File History &lt;/h2&gt;  &lt;p&gt;Have you thought about a backup strategy for your Surface? Obviously if you're storing all your documents/pictures/notebooks in your SkyDrive, then you will have a copy up there. But what about all those other files on your Surface? &lt;/p&gt;  &lt;p&gt;This is where File History comes in. It's a continuous backup of all the files in your Library folders. It keeps multiple versions as well, in case you need to go back to a previous version. &lt;/p&gt;  &lt;p&gt;The beauty is when you have both HomeGroup and File History configured. Your Surface can continuously and automatically backup your files to a HomeGroup PC when you're connected at home. The HomeGroup PC can also have an external USB drive connected (with BitLocker-To-Go encryption), so then you have a continuous, secure backup of your home PC and Surface. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windows.microsoft.com/en-US/windows-8/how-use-file-history"&gt;How to use File History&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/Windows8Step0TurnOnContinuousBackupsViaFileHistory.aspx"&gt;Scott Hanselman: Turn on continuous backups via File History&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4544.image_5F00_2DEF9D93.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/1004.image_5F00_thumb_5F00_21154775.png" width="400" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7245.image_5F00_17D90C34.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7824.image_5F00_thumb_5F00_683AEDA7.png" width="400" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Step 9 – Accessorize &lt;/h2&gt;  &lt;p&gt;If you're planning on watching a bunch of movies on a long plane trip or you just feel comfortable having more storage, you should invest in a large, fast microSD card. The Surface RT supports up to 64GB, which makes the &lt;a href="http://www.amazon.com/gp/product/B007WTAJTO/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B007WTAJTO&amp;amp;linkCode=as2&amp;amp;tag=granthollidas-20"&gt;SanDisk Ultra 64GB Class 10 microSD&lt;/a&gt; a good choice:&amp;#160; &lt;/p&gt; &lt;a href="http://www.amazon.com/gp/product/B007WTAJTO/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B007WTAJTO&amp;amp;linkCode=as2&amp;amp;tag=granthollidas-20"&gt;&lt;img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B007WTAJTO&amp;amp;Format=_SL160_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=granthollidas-20" /&gt;&lt;/a&gt;&lt;img style="margin: 0px;" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=granthollidas-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B007WTAJTO" width="1" height="1" /&gt;   &lt;p&gt;Personally, I like the safety blanket of a real mouse. A touchscreen is great and the touchpad on the keyboard is great as well, but for high-precision or mouse-intensive work, a real mouse is nice to have in your bag. &lt;/p&gt;  &lt;p&gt;Most of the Microsoft mice that have come out in the last few years have had little USB dongles called &amp;quot;Nano transceivers&amp;quot;. There's nothing wrong with those and they will all work with the Surface – but it does mean that you have to put the transceiver in your single USB port. A nicer looking option is to get one of the new &lt;a href="http://www.amazon.com/gp/product/B008OEHV6U/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B008OEHV6U&amp;amp;linkCode=as2&amp;amp;tag=granthollidas-20"&gt;Microsoft Wedge mice&lt;/a&gt; that use Bluetooth – no dongles.&lt;/p&gt; &lt;a href="http://www.amazon.com/gp/product/B008OEHV6U/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B008OEHV6U&amp;amp;linkCode=as2&amp;amp;tag=granthollidas-20"&gt;&lt;img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B008OEHV6U&amp;amp;Format=_SL160_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=granthollidas-20" /&gt;&lt;/a&gt;&lt;img style="margin: 0px;" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=granthollidas-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B008OEHV6U" width="1" height="1" /&gt;   &lt;h4&gt;Step 10 – Start building apps &lt;/h4&gt;  &lt;p&gt;If you have any sort of interest in building apps for the Windows Store, you'll want to do two things: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/apps/"&gt;Start looking at all the great training content online&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/"&gt;Become a Windows Store developer and reserve your app names&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Although you can't write apps directly on the Surface, you can deploy and debug apps on your Surface from your development PC. See the following links: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30674"&gt;Remote tools for Visual Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/vstudio/bt727f1t.aspx"&gt;How to setup remote debugging&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh441469.aspx"&gt;Running Windows Store apps on a remote machine&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And of course, if you want to track your work and store your code somewhere, you can sign up for free to &lt;a href="http://tfs.visualstudio.com/"&gt;http://tfs.visualstudio.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://tfs.visualstudio.com/en-us/home/features/feature-tour/"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/0081.image_5F00_44013F66.png" width="400" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10378672" width="1" height="1"&gt;</description></item><item><title>TFS2012: Monitoring Management Pack</title><link>http://blogs.msdn.com/b/granth/archive/2012/12/10/tfs2012-monitoring-management-pack.aspx</link><pubDate>Mon, 10 Dec 2012 00:08:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10375913</guid><dc:creator>Grant Holliday (granth)</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10375913</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10375913</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2012/12/10/tfs2012-monitoring-management-pack.aspx#comments</comments><description>&lt;p&gt;The Visual Studio 2012 Team Foundation Server Monitoring Management Pack for monitoring TFS with System Center Operations Manager 2007 SP1 or 2012 is now available. &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=35773"&gt;You can download it here&lt;/a&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The Team Foundation Server 2012 Monitoring Management Pack provides both proactive and reactive monitoring of Microsoft Team Foundation Server 2012. It monitors TFS components such as application tier server instances, team project collections, build servers, and proxy servers.      &lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Feature Summary &lt;/b&gt;      &lt;br /&gt;The monitoring provided by this management pack includes availability and configuration monitoring, performance data collection, and default thresholds. You can integrate the monitoring of Team Foundation Server components into your service-oriented monitoring scenarios. &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Auto discovery of TFS components &lt;/li&gt;      &lt;li&gt;Implements containment hierarchy, reflecting logical architecture of the Product &lt;/li&gt;      &lt;li&gt;Implements a proper health model using Monitors &lt;/li&gt;      &lt;li&gt;Contains tasks, diagnostic and recovery for certain failures &lt;/li&gt;      &lt;li&gt;Provides events that indicate service outages &lt;/li&gt;      &lt;li&gt;Provides alerts that show configuration issues and connected data source changes &lt;/li&gt;      &lt;li&gt;Verification that all dependent services are running &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;Here’s a screenshot of the Health Explorer view, where you can see some of the monitors for some of the TFS events in the event log.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/3326.image_5F00_4FC0634D.png"&gt;&lt;img title="" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Health Explorer of a TFS server" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/4578.image_5F00_thumb_5F00_4257BF96.png" width="400" height="280" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And here’s an example of the Availability Report available through SCOM for the application tier.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7612.image_5F00_10C9C150.png"&gt;&lt;img title="" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Availability Report sample" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/7215.image_5F00_thumb_5F00_54E57D47.png" width="400" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This monitoring pack has a dependency on and is meant to be used in conjunction with Microsoft Visual Studio Team Foundation Server 2012. For monitoring TFS2010, see the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=6325"&gt;Visual Studio 2010 Team Foundation Server Monitoring Management Pack&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10375913" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/Performance/">Performance</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>Visual Studio and Team Foundation Server 2012 Update 1 is now available</title><link>http://blogs.msdn.com/b/granth/archive/2012/11/27/visual-studio-and-team-foundation-server-2012-update-1-is-now-available.aspx</link><pubDate>Mon, 26 Nov 2012 23:56:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10371821</guid><dc:creator>Grant Holliday (granth)</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10371821</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10371821</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2012/11/27/visual-studio-and-team-foundation-server-2012-update-1-is-now-available.aspx#comments</comments><description>&lt;p&gt;The Visual Studio Updates are a new mechanism that the team is using to provide ongoing value through the year to Visual Studio and Team Foundation Server customers. For more information on the updates, see:&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=272487"&gt;Visual Studio 2012 Update 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/somasegar/archive/2012/11/26/visual-studio-2012-update-1-now-available.aspx"&gt;Visual Studio 2012 Update 1 Now Available&lt;/a&gt; (Soma’s Blog) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=272486"&gt;Visual Studio 2012 Downloads Page&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386063.aspx"&gt;What's New in Visual Studio 2012&lt;/a&gt; (note the sections: “New in Visual Studio 2012 Update 1”) &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Downloading the updates&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2012 Update 1 (&lt;a href="http://go.microsoft.com/?linkid=9821199"&gt;web installer&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Team Foundation Server 2012 with Update 1 (&lt;a href="http://go.microsoft.com/?linkid=9810334"&gt;web installer&lt;/a&gt; or 1.1 GB &lt;a href="http://go.microsoft.com/?linkid=9810324"&gt;ISO file&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You’ll notice that there is no standalone or ISO installer available for the Visual Studio update. Fortunately you can still download all the packages locally and use that without being connected to the Internet. Just download the web installer, then run it with &lt;strong&gt;/Layout&lt;/strong&gt; as the command line parameter.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;en_visual_studio_2012_x86_update_1_1203928.exe &lt;strong&gt;&lt;font color="#ff0000"&gt;/Layout&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The installer will then run and prompt you where you would like to download the packages to, and then run through the process of downloading the packages without actually installing them.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5102.image_5F00_2C054C76.png"&gt;&lt;img title="" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio Update 1 - Download Location" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/5102.image_5F00_thumb_5F00_0224D841.png" width="171" height="240" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/1464.image_5F00_4D870CB6.png"&gt;&lt;img title="" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio 2012 Update 1 - Acquiring dialog" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2047.image_5F00_thumb_5F00_03F7BEB9.png" width="172" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This will then create a ‘packages’ folder with all the installation media that can be used to do an offline install of Visual Studio 2012 Update 1.&lt;/p&gt;  &lt;p&gt;&lt;img title="" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Screenshot of explorer showing VS2012 Update 1 packages folder" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-06-17-metablogapi/2047.image_5F00_7A9E8A35.png" width="240" height="140" /&gt;&lt;/p&gt;  &lt;p&gt;Brian Harry has blogged &lt;a href="http://blogs.msdn.com/b/bharry/archive/2012/10/29/visual-studio-2012-update-1-final-ctp.aspx"&gt;a list of improvements in TFS2012 Update 1&lt;/a&gt;. The major ones are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Kanban support in TFS Web Access &lt;/li&gt;    &lt;li&gt;Extend TFS server side path limits from 260 characters to 400 characters &lt;/li&gt;    &lt;li&gt;Usability improvements for Version Control &lt;/li&gt;    &lt;li&gt;TFS web access usability improvements      &lt;ul&gt;&lt;/ul&gt;      &lt;ul&gt;       &lt;ul&gt;&lt;/ul&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;SCVMM 2012 SP1 support with Lab Management for Windows 2012 hosts &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10371821" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item><item><title>TFS Administration Tool 2.2 Released</title><link>http://blogs.msdn.com/b/granth/archive/2012/11/25/tfs-administration-tool-2-2-released.aspx</link><pubDate>Sun, 25 Nov 2012 01:29:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10371340</guid><dc:creator>Grant Holliday (granth)</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/rsscomments.aspx?WeblogPostID=10371340</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/granth/commentapi.aspx?WeblogPostID=10371340</wfw:comment><comments>http://blogs.msdn.com/b/granth/archive/2012/11/25/tfs-administration-tool-2-2-released.aspx#comments</comments><description>&lt;p&gt;I am pleased to announce that the TFS Administration Tool 2.2 has been released. This release works against Team Foundation Server 2012 and installs on a machine with &lt;a href="http://aka.ms/TeamExplorer2012"&gt;Team Explorer 2012&lt;/a&gt;. You no longer need to install Team Explorer 2010 to use this tool.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://tfsadmin.codeplex.com/downloads/get/540190"&gt;&lt;font size="4"&gt;&lt;strong&gt;Download TFS Administration Tool 2.2&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; (1.55 MB, MSI)&lt;/p&gt;  &lt;p&gt;The TFS Administration Tool allows administrators to manage permissions across TFS, SharePoint and Reporting Services from one convenient interface.&lt;/p&gt;  &lt;p&gt;Changes made:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Built the tool against the TFS2012 object model (v11.0 assemblies)&lt;/li&gt;    &lt;li&gt;Updated the installer to look for the TFS2012 object model as a dependency&lt;/li&gt;    &lt;li&gt;Updated the installer to support &lt;a href="http://wix.sourceforge.net/manual-wix3/major_upgrade.htm"&gt;version upgrades&lt;/a&gt; in the future&lt;/li&gt;    &lt;li&gt;Removed all references to 2.1 in the UI and installer&lt;/li&gt;    &lt;li&gt;Updated assembly and installer versions to 2.2&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are no functional changes between the previous release (2.1) and this release – it was mostly just a recompile.&lt;/p&gt;  &lt;p&gt;If you find a bug, please &lt;a href="http://tfsadmin.codeplex.com/WorkItem/Create"&gt;open an issue&lt;/a&gt; and include either the contents of the &amp;quot;Output&amp;quot; window or the contents of the log file saved in the &amp;quot;Logs&amp;quot; folder so that we can easily reproduce and investigate the problem. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10371340" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS+Administration/">TFS Administration</category><category domain="http://blogs.msdn.com/b/granth/archive/tags/TFS2012/">TFS2012</category></item></channel></rss>