<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Into ALM with TFS</title>
	
	<link>http://intovsts.net</link>
	<description>blogging about Application Lifecycle Management with Team Foundation Server</description>
	<lastBuildDate>Fri, 17 May 2013 10:36:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="intovsts.net" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Into ALM with TFS</title>
		<link>http://intovsts.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://intovsts.net/osd.xml" title="Into ALM with TFS" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/IntoVSTS" /><feedburner:info uri="intovsts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://intovsts.net/?pushpress=hub" /><item>
		<title>Slides for sessions at TechDays Belgium</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/ejbUc6xZiTc/</link>
		<comments>http://intovsts.net/2013/03/11/slides-for-sessions-at-techdays-belgium/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 09:27:26 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=755</guid>
		<description><![CDATA[Last week was extremely busy with TechDays Belgium where I presented two sessions on Application Lifecycle Management. My company Sparkles was also present with a conference booth and it has proven to be very valuable to listen to your feedback. Sparkles will continue to invest in offering the best advanced IT Training classes (Dev + [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=755&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last week was extremely busy with TechDays Belgium where I presented <a href="http://www.microsoft.com/belux/techdays/2013/SpeakerDetail.aspx?speakerId=18" target="_blank">two sessions on Application Lifecycle Management</a>.</p>
<p>My company <a href="www.sparkles.be" target="_blank">Sparkles</a> was also present with a conference booth and it has proven to be very valuable to listen to your feedback. Sparkles will continue to invest in offering the best advanced IT Training classes (Dev + IT Pro) with local and international experts. </p>
<p>Thank you all for attending one of the sessions and/or for showing up at the booth. Don’t forget to register for the Sparkles newsletter as you might still <a href="http://www.sparkles.be/training/wintrainingvouchers.aspx" target="_blank">win free IT Training Vouchers</a>.</p>
<p>Link to slides:</p>
<ul>
<li><a href="http://intovsts.files.wordpress.com/2013/03/labmanagement2012_final.pdf" target="_blank">Visual Studio Lab Management 2012</a></li>
<li><a href="http://intovsts.files.wordpress.com/2013/03/buildtestwin8appswithtfs_final.pdf" target="_blank">Build &amp; Test a Windows 8 App with Team Foundation Service</a> [duo-session with Kevin DeRudder]</li>
</ul>
<p>There are still a few seats left for the <a href="http://www.sparkles.be/training/almwithvs2012.aspx" target="_blank">3 day hands-on ALM training class</a> in Ghent.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/755/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=755&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/ejbUc6xZiTc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2013/03/11/slides-for-sessions-at-techdays-belgium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2013/03/11/slides-for-sessions-at-techdays-belgium/</feedburner:origLink></item>
		<item>
		<title>Why to invest in training/people?</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/nCXFhPXvN14/</link>
		<comments>http://intovsts.net/2013/01/10/why-to-invest-in-trainingpeople/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 22:51:40 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=748</guid>
		<description><![CDATA[Lately I have been discussing with other people (IT and non-IT) how important training is in the IT business. We also talked about the importance of self-study and about the new kid on the block: on-line training. There are just no excuses anymore to miss the boat. Anyway, it should be obvious for all people [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=748&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Lately I have been discussing with other people (IT and non-IT) how important training is in the IT business. We also talked about the importance of self-study and about the new kid on the block: on-line training. There are just no excuses anymore to miss the boat.</p>
<p>Anyway, it should be obvious for all people working in the IT business: if you don&#8217;t catch up from time to time on the new technology evolutions =&gt; soon or later it’s <em>game over</em> because your <em>market value</em> will decrease exponentially! And this doesn&#8217;t necessarily mean you are obliged to look for external (classroom) training or you need to attend specific software conferences. It only means <strong>you need to find the best way to update/upgrade/improve/broaden your skills</strong>. Some people are perfectly self-managing: they read books, articles, blogs, forums &#8230; and/or they simply experiment (hands-on) with new stuff in their spare time. But for the majority of people this isn&#8217;t a valid approach and learning everything by yourself may give you a very biased opinion.</p>
<p>Attending <strong>software conferences</strong> give you the advantage to easily grasp the bigger perspective of what&#8217;s going on in our industry and offer you the possibility to follow some side-tracks (consider it as <em>off-road</em>) which might be very interesting as well. And don&#8217;t forget the different networking opportunities which may lead to the best geek talk you ever experienced. Still, IMHO <strong>dedicated classroom training</strong> is the best choice to improve specific skills in a short period of time. This is only true if the (interactive) classroom training is led by an absolute expert in the field who has dealt with many different challenges in real-life projects. To learn something brand new or to switch to another (similar) technology, there are many courses/classes which might do initially, but to get you to the expert level of a specific topic, there are not that many options. Once you get past the junior/medior level, it’s a different game and you won’t benefit anymore from the default training classes!</p>
<p>It&#8217;s exactly that gap that I want to tackle in Belgium with the training offer (Master Classes) at <a href="http://www.sparkles.be/training">Sparkles</a>. In the past I partnered already with <a href="http://www.idesign.net">IDesign</a> which has a unique position of software industry leadership and reputation. The team of Juval Löwy will continue in 2013 to deliver their famous and intensive Master Classes in Belgium. Next to that, I&#8217;m also looking to setup other training classes on various topics (dev &amp; IT Pro) with local and international experts. The purpose is absolutely not to offer a typical 9-to-5 basic classroom training (which might be good for some people), but the goal is to create <strong>a unique intensive learning experience by selecting the best people</strong> &#8211; who are working in the trenches &#8211; to get you to that precious next level! Learn IT by the experts! Keep an eye on the <a href="http://www.sparkles.be/training/">upcoming training offering</a> and I hope to add some extra confirmed classes before <a href="http://www.techdays.be">TechDays</a> where Sparkles will be present with a <a href="http://www.microsoft.com/belux/techdays/2012/Partners.aspx">partner booth</a>.</p>
<p>A last note for companies freezing the training budget for their employees. I’m aware of the trade-offs which must be made, but in the end:<strong> not investing in the most appropriate training for your people is a double risk</strong>. One, you might lose your best talent who will take a job at the competition and your global <em>knowledge level</em> will stall which will lead to less attraction on the market to engage new talent. Mostly, the more well-spoken and brave employees are able to put some extra pressure on management to finally get registered for a software conference or a particular training class … but I do catalogue this outcome as a <em>quick win</em> and it will backfire soon or later. Treating your people as a cost will completely demoralize and demotivate your staff. I can already imagine some reactions: “but what if we train them and they leave the company”? OK, be sure to <a href="http://contentdivergent.blogspot.be/2011/05/what-happens-if-we-dont-invest-in-staff.html">read this</a> and let it sink. It depends of course greatly on the personal attitude of all individuals: basically they are in control of their continuous learning &amp; career path. So, <strong>it’s your call to invest in training or not</strong>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/748/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=748&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/nCXFhPXvN14" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2013/01/10/why-to-invest-in-trainingpeople/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2013/01/10/why-to-invest-in-trainingpeople/</feedburner:origLink></item>
		<item>
		<title>TechDays Belgium 2013</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/ohwiBkjVhuM/</link>
		<comments>http://intovsts.net/2013/01/08/techdays-belgium-2013/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 23:12:02 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Sparkles]]></category>
		<category><![CDATA[TechDays]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=741</guid>
		<description><![CDATA[The Microsoft DevDays/TechDays in Belgium remain a special recurring event. My first Microsoft conference as an attendee must have been DevDays 2003 (or 2002?) in Louvain-La-Neuve. As a junior .NET software developer (working for Compuware Belgium at that time) I must have realized that the only way forward is to discover and learn. I remember [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=741&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The Microsoft DevDays/TechDays in Belgium remain a special recurring event. My first Microsoft conference as an attendee must have been DevDays 2003 (or 2002?) in Louvain-La-Neuve. As a junior .NET software developer (working for Compuware Belgium at that time) I must have realized that the only way forward is to discover and learn. I remember getting in contact with some of the speakers, the dev community and some of my colleagues at that time. Unfortunately some of the usual faces/suspects like <a href="http://weblogs.asp.net/jan/archive/2008/09/05/patrick-tisseghem-passed-away.aspx">Patrick Tisseghem</a> and <a href="http://blogs.msdn.com/b/davbosch/archive/2007/09/04/david-boschmans.aspx">David Boschmans</a> are not among us anymore, but I’m sure I picked up some of the technology vibes from these guys and I’m happy to be able to pass these vibes to the next generation of software enthusiasts.</p>
<p><a href="http://www.microsoft.com/belux/techdays/2012/Home.aspx"><img title="TechDays2013" style="background-image:none;float:none;padding-top:0;padding-left:0;margin:0 auto;display:block;padding-right:0;border-width:0;" border="0" alt="TechDays2013" src="http://intovsts.files.wordpress.com/2013/01/techdays2013.jpg?w=404&#038;h=52" width="404" height="52"></a></p>
<p>Many valuable attendee-years did follow after my first close encounter and 10 years later, <strong>there’s still so much more to learn …</strong> even more than ever before! Compared to roughly 10 years ago (seems Stone Age right now!), there are so many new releases of interesting tools, frameworks and products. Let aside the multitude of platforms we can develop for! In the early years, there was just a (beta) release of the .NET Framework and the Visual Studio IDE and that was practically it …</p>
<p>I had already the pleasure to present <a href="http://channel9.msdn.com/blogs/liese/techdays-2010--branching--merging-strategies-with-team-foundation-server-2010">some</a> <a href="http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/TD033">sessions</a> at earlier editions of TechDays and this year will definitely become a very special edition once again!</p>
<p><a href="http://www.sparkles.be"><img title="Sparkles - Copy (2)" style="background-image:none;float:none;padding-top:0;padding-left:0;margin:0 auto;display:block;padding-right:0;border-width:0;" border="0" alt="Sparkles - Copy (2)" src="http://intovsts.files.wordpress.com/2013/01/sparkles-copy-2.jpg?w=304&#038;h=109" width="304" height="109"></a></p>
<p>I will not only be presenting <a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=18">two sessions</a> on ALM/TFS, but I will also have a <a href="http://www.microsoft.com/belux/techdays/2012/Partners.aspx">booth</a> with <a href="http://www.sparkles.be">Sparkles</a> (as a <a href="http://www.microsoft.com/belux/techdays/2012/Partners.aspx">Silver Partner</a>) to promote the <a href="http://www.sparkles.be/training/">upcoming training classes in Belgium</a>.</p>
<p>So, be sure to check out the <a href="http://www.microsoft.com/belux/techdays/2012/Home.aspx#p=sessions">full agenda</a> of TechDays Belgium, <a href="https://techdays.onetec.be/techdays/(S(cnf1d155gduqrp55jkkbmser))/en/registration.aspx">register</a> and come to visit me at the Sparkles’ booth. I’m still pondering about some promo material at the booth, giveaways and the like … Do send me your (crazy) suggestions!</p>
<p>In the past, DevDays was a dedicated event for the dev community, but since a few years now the event has broadened its scope to be the <strong>meeting point for all Microsoft technology professionals</strong> (dev &amp; IT Pro). One of the top speakers this year in the IT Pro track is <a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=128">Paula Januszkiewicz</a> and she happens to teach a <a href="http://www.sparkles.be/training/windowssecuritymasterclass.aspx">Master Class in Belgium (via Sparkles) on Windows Security</a>. She will be <em>manning</em> the Sparkles booth together with me to promote her <a href="http://www.sparkles.be/training/windowssecuritymasterclass.aspx">training class</a> and the other <a href="http://www.sparkles.be/training/">IDesign training classes</a> in 2013.</p>
<p>This year, there’s again a <a href="http://www.microsoft.com/belux/techdays/2012/Sessions.aspx?d=2">Deep Dive ALM Track</a> on the first day of the conference and I feel lucky to be part of a great line-up:</p>
<ul>
<li><a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=26">Application Lifecycle Management: It’s a Team Sport</a> [Brian Keller]
<li><a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=52">TFS in the cloud or TFS on premise, how do they compare and what are the benefits for my development team?</a> [Marcel de Vries]
<li><a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=53">Software Testing with Microsoft Test Manager 2012 and Lab Management 2012</a> [Brian Keller]
<li><a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=54">How to create cross browser test automation using Coded UI Testing</a> [Marcel de Vries]
<li><a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=55">Bring it all together: Build, Deploy and Test with Visual Studio Lab Management</a> [Pieter Gheysens]</li>
</ul>
<p>Something to look forward to is also my duo-session with Kevin DeRudder where we will talk about <a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=11">how to build and test a Windows 8 app with TFS Service and Microsoft Test Manager 2012</a>.</p>
<p>Hope to meet you at TechDays 2013 to share our passion!</p>
<p><a href="https://twitter.com/pietergheysens">Follow me on twitter (@pietergheysens)</a> for the latest news.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/741/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/741/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=741&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/ohwiBkjVhuM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2013/01/08/techdays-belgium-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2013/01/techdays2013.jpg" medium="image">
			<media:title type="html">TechDays2013</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2013/01/sparkles-copy-2.jpg" medium="image">
			<media:title type="html">Sparkles - Copy (2)</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2013/01/08/techdays-belgium-2013/</feedburner:origLink></item>
		<item>
		<title>Integration of Dynamics CRM 2011 solutions with TFS</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/pBkh8Guii-4/</link>
		<comments>http://intovsts.net/2012/12/28/integration-of-dynamics-crm-2011-solutions-with-tfs/#comments</comments>
		<pubDate>Thu, 27 Dec 2012 23:11:22 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Team Build]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[TFS2010]]></category>

		<guid isPermaLink="false">http://intovsts.net/?p=716</guid>
		<description><![CDATA[Some weeks ago I was asked for a proof of concept to design a TFS 2010 solution to fully (not less than 100%) automate a complex Dynamics CRM 2011 deployment for various environments (dev / test / staging / production). Many different components were involved: the CRM solution itself, but also web applications, database objects, [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=716&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Some weeks ago I was asked for a proof of concept to design a TFS 2010 solution to fully (not less than 100%) automate a complex Dynamics CRM 2011 deployment for various environments (dev / test / staging / production). Many different components were involved: the CRM solution itself, but also web applications, database objects, reports (SSRS), transformations, &#8230;</p>
<p><img src="http://intovsts.files.wordpress.com/2012/12/microsoft-dynamics-crm-2011.png?w=400" alt="Dynamics CRM" width="400" /></p>
<p>It has been an interesting journey so far and along the way I got to know (a bit) how Dynamics CRM 2011 is working. Not to my surprise, I realized that it&#8217;s quite hard to push all source related items to TFS and to force ALL changes/updates to a CRM environment from a version controlled solution in TFS. Many <i>things</i> in the CRM environment are easily modified by the development team via the CRM UI web interface and as result, directly stored in the CRM database(s). So, the POC also required me to think about <i>enforcing</i> best practices for the CRM development team to avoid inconsistencies in the global deployment solution and I definitly wanted to end up with a <i>build-once;deploy-many</i> solution.</p>
<p>Anyway, I won&#8217;t talk about the entire scope of the POC, but I want to highlight the approach I took for automating the export &amp; extract operation from the development CRM 2011 instance via a TFS build definition. The goal here was to automatically capture the daily changes which were published to deployed CRM development solutions.</p>
<p><strong>EXPORT</strong><br />
The <a href="http://mscrmtoolkit.codeplex.com/" target="_blank">MSCRM 2011 Toolkit</a> contains a <i>Solution Export</i> command line utility which enabled me to export one or multiple CRM solutions from an existing Solutions Export Profile into a single compressed solution file (.zip).</p>
<p><strong>EXTRACT</strong><br />
The compressed solution file (zip-format) is of course not ideal to track the individual changes and to bind it to a version control repository. Luckily, with the latest release of the <a href="http://www.microsoft.com/en-us/download/details.aspx?id=24004" target="_blank">Dynamics CRM 2011 SDK</a>, a new tool (<a href="http://msdn.microsoft.com/en-us/library/jj602974.aspx" target="_blank">SolutionPackager</a>) was added to extract the different components into individual files.</p>
<blockquote><p>The SolutionPackager tool, available in the Microsoft Dynamics CRM 2011 Update Rollup 10 version of the Microsoft Dynamics CRM SDK download, resolves the problem of source code control and team development of solution files. The tool identifies individual components in the compressed solution file and extracts them out to individual files. The tool can also re-create a solution file by packing the files that had been previously extracted. This enables multiple people to work independently on a single solution and extract their changes into a common location. Because each component in the solution file is broken into multiple files, it becomes possible to merge customizations without overwriting prior changes. A secondary use of the SolutionPackager tool is that it can be invoked from an automated build process to generate a compressed solution file from previously extracted component files without needing an active Microsoft Dynamics CRM server.</p></blockquote>
<p><img src="http://intovsts.files.wordpress.com/2012/12/tfs2010.png?w=400" alt="TFS 2010" width="400" /></p>
<p>So, these tools opened the door for me to work out a custom build process (workflow) in TFS 2010 with the following sequential activities:</p>
<ul>
<li>Export CRM solution from dev environment (MSCRM 2011 Toolkit)</li>
<li>Prepare TFS workspace before extract of solution file [Get Latest + Check-Out]</li>
<li>Extract compressed solution file into TFS workspace (SolutionPackager)</li>
<li>Scan TFS workspace for changes/additions/deletions</li>
<li>Check-In pending changes of the TFS workspace as a single changeset</li>
</ul>
<p>The scan of the TFS workspaces &#8211; to end up with <i>all differences</i> [changes/additions/deletions] &#8211; was a bit more complex than expected because I needed to use several <a href="http://msdn.microsoft.com/en-us/library/bb171828(v=vs.100).aspx">TFS API Workspace calls</a> like <i>PendEdit</i>, <i>PendAdd</i>, <i>PendDelete</i>, &#8230; I also made use of the <i>EvaluateCheckin2</i> method to detect potential conflicts and to perform proper exception handling.</p>
<p>This process allows the development team to easily follow-up the incremental changes (via TFS changesets) which were applied to the dev CRM environment. Note that the <i>SolutionPackager</i> tool is also able to generate a compressed solution file from the individual component files.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=716&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/pBkh8Guii-4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/12/28/integration-of-dynamics-crm-2011-solutions-with-tfs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/12/microsoft-dynamics-crm-2011.png" medium="image">
			<media:title type="html">Dynamics CRM</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/12/tfs2010.png" medium="image">
			<media:title type="html">TFS 2010</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/12/28/integration-of-dynamics-crm-2011-solutions-with-tfs/</feedburner:origLink></item>
		<item>
		<title>MSFT Partner ALM session with Jeff Beehler</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/-X1fXRsPHmE/</link>
		<comments>http://intovsts.net/2012/10/02/msft-partner-alm-session-with-jeff-beehler/#comments</comments>
		<pubDate>Tue, 02 Oct 2012 20:17:27 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=710</guid>
		<description><![CDATA[Update (October 20, 2012): download slides On October 19, I’m booked for a full day session on Application Lifecycle Management for Microsoft Partners in Belgium and apparently the registration is now also open for other people who would be interested in learning how to use the latest release of Microsoft’s application lifecycle management suite to [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=710&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><font color="red">Update (October 20, 2012)</font>: <a href="http://intovsts.files.wordpress.com/2012/10/introducing-alm-with-visual-studio-2012.pdf" target="_blank">download slides</a></p>
<p>On October 19, I’m booked for a full day session on <em>Application Lifecycle Management</em> for Microsoft Partners in Belgium and apparently the registration is now also open for other people who would be interested in learning how to use the latest release of Microsoft’s application lifecycle management suite to improve the software development process.</p>
<p><a href="http://www.microsoft.com/visualstudio/eng/whats-new"><img title="VS2012" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;margin:0 5px;border-left:0;display:inline;padding-right:0;" border="0" alt="VS2012" src="http://intovsts.files.wordpress.com/2012/10/vs2012.png?w=404&#038;h=80" width="404" height="80"></a></p>
<p>Recently I was informed that <a href="http://blogs.msdn.com/b/jeffbe/">Jeff Beehler</a> would also be in Belgium that day and quickly it was confirmed that Jeff would team up to deliver the keynote of the day. Jeff (Chief of Staff for Visual Studio at Microsoft) has already a long history in the Visual Studio product team and is the perfect speaker for setting the scene and to give the audience extra insight in the evolution of the product and where the product family is heading to. I’m very excited to have Jeff as a keynote speaker for this event in Belgium.</p>
<p><a href="http://www.microsoft.com/visualstudio/eng/alm"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;margin:0 5px;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/10/image.png?w=404&#038;h=219" width="404" height="219"></a></p>
<p>Here’s the final agenda for <strong>October 19</strong>:</p>
<ul>
<li>09h00 – 10h15: Continuous Value Delivery with VS ALM 2012 (Jeff Beehler)</li>
<li>10h15 – 10h30: break</li>
<li>10h30 – 12h00: Agile Project Management with Team Web Access and TFS Preview</li>
<li>12h00 – 13h00: lunch</li>
<li>13h00 – 14h30: TFS 2012 Version Control improvements + the new Team Explorer experience</li>
<li>14h30 – 14h45: break</li>
<li>14h45 – 16h15: Exploratory Testing with Microsoft Test Manager 2012 + IntelliTrace in Production</li>
<li>16h15 – 16h30: break</li>
<li>16h30 – 17h00: Continuous Deployment to Windows Azure with TFS Preview</li>
</ul>
<p>Note that this day is not scheduled as a hands-on workshop. I will only introduce and demo some new and powerful features inside the new release of <a href="http://www.microsoft.com/visualstudio/eng/products/visual-studio-team-foundation-server-2012">Team Foundation Server</a>.</p>
<p>Register at <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032528183&amp;Culture=nl-BE">Microsoft World Wide Events</a>.</p>
<p>Are you more looking for a deep-dive technical hands-on training on ALM with Visual Studio and Team Foundation Server? I’m organizing for the second time a <a href="http://www.sparkles.be/training/almwithvsnext.aspx">public 3 day ALM training class</a> on November 12, 13 &amp; 14. Register your spot right now for the full track or choose your preferred training day à-la-carte.</p>
<p>Hope to see you on one of the upcoming events!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/710/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/710/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=710&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/-X1fXRsPHmE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/10/02/msft-partner-alm-session-with-jeff-beehler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/10/vs2012.png" medium="image">
			<media:title type="html">VS2012</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/10/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/10/02/msft-partner-alm-session-with-jeff-beehler/</feedburner:origLink></item>
		<item>
		<title>Discard candidate merge changesets</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/fteLsBVqh7A/</link>
		<comments>http://intovsts.net/2012/08/30/discard-candidate-merge-changesets/#comments</comments>
		<pubDate>Thu, 30 Aug 2012 17:03:26 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=705</guid>
		<description><![CDATA[Doing parallel development across multiple branches is quite easy by creating a number of branches in TFS, but the difficult part is to setup a valid branching strategy and to enforce best practices like always pushing forward integration actions before the reverse integration operation, … In some scenarios it will be required to avoid that [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=705&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Doing parallel development across multiple branches is quite easy by creating a number of branches in TFS, but the difficult part is to setup a valid branching strategy and to enforce best practices like always pushing forward integration actions before the reverse integration operation, …</p>
<p>In some scenarios it will be required to avoid that individual changesets can be merged into another branch (for example configuration changes). Enter discarding candidate merges!</p>
<p>Using the Merge Wizard in TFS, you have the option to select the cherry-pick option to only see the changesets which haven’t been merged from Source to Target.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/08/snaghtml2604bce0.png"><img title="SNAGHTML2604bce0" style="background-image:none;padding-top:0;padding-left:0;margin:0 5px;display:inline;padding-right:0;border-width:0;" border="0" alt="SNAGHTML2604bce0" src="http://intovsts.files.wordpress.com/2012/08/snaghtml2604bce0_thumb.png?w=404&#038;h=357" width="404" height="357"></a></p>
<p><a href="http://intovsts.files.wordpress.com/2012/08/snaghtml26095c4a.png"><img title="SNAGHTML26095c4a" style="background-image:none;padding-top:0;padding-left:0;margin:0 5px;display:inline;padding-right:0;border-width:0;" border="0" alt="SNAGHTML26095c4a" src="http://intovsts.files.wordpress.com/2012/08/snaghtml26095c4a_thumb.png?w=404&#038;h=357" width="404" height="357"></a></p>
<p>But, from the UI it’s unfortunately still not possible (TFS 2012) to discard a candidate merge changeset. I would just love to right-click on a changeset and discard it from there.</p>
<p>Up till now I always switched to the <a href="http://msdn.microsoft.com/en-US/library/bd6dxhfy(v=VS.100).aspx">command-line</a> to discard the changeset from there (tf merge /discard).</p>
<p><a href="http://intovsts.files.wordpress.com/2012/08/snaghtml260ed8b9.png"><img title="SNAGHTML260ed8b9" style="background-image:none;padding-top:0;padding-left:0;margin:0 5px;display:inline;padding-right:0;border-width:0;" border="0" alt="SNAGHTML260ed8b9" src="http://intovsts.files.wordpress.com/2012/08/snaghtml260ed8b9_thumb.png?w=404&#038;h=207" width="404" height="207"></a></p>
<p>Recently I got a question at a customer to make this possible through the API. First of all I was a bit worried why on earth it would be necessary to automate this through the API because in the end this action should be quite exceptional. So, after going into more details it seemed that a background process was running which made a number of configuration changes to the branches, but those changesets were branch-specific and weren’t allowed to be merged into some other branch. These changesets were in fact seriously blocking the merge process due to the fact that only consecutive changesets can be merged from Source to Target and a number of these “configuration” changesets were sitting between other valid candidate merge changesets. Not good!</p>
<p>The solution for discarding changesets through the API is making use of the <a href="http://msdn.microsoft.com/en-us/library/bb139332(v=vs.110).aspx">Merge method on the Workspace object</a>. To discard, you must use the enumeration <strong>AlwaysAcceptMine</strong> as parameter for the <em>MergeOptions</em>. This will push the merge (without actual changes in the files) into the workspace after which the check-in can be executed. The check-in will make sure that the changeset won’t show up anymore in the candidate merge changesets.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/705/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=705&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/fteLsBVqh7A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/08/30/discard-candidate-merge-changesets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/08/snaghtml2604bce0_thumb.png" medium="image">
			<media:title type="html">SNAGHTML2604bce0</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/08/snaghtml26095c4a_thumb.png" medium="image">
			<media:title type="html">SNAGHTML26095c4a</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/08/snaghtml260ed8b9_thumb.png" medium="image">
			<media:title type="html">SNAGHTML260ed8b9</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/08/30/discard-candidate-merge-changesets/</feedburner:origLink></item>
		<item>
		<title>Sessions on Continuous Value Delivery and TFS 2012</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/wnTo68xhmig/</link>
		<comments>http://intovsts.net/2012/06/24/sessions-on-continuous-value-delivery-and-tfs-2012/#comments</comments>
		<pubDate>Sun, 24 Jun 2012 21:55:50 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[TFS2012]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=697</guid>
		<description><![CDATA[Last week was an interesting one with a MSDN LiveMeeting and a session at the 6th and biggest edition ever of Community Day Belgium (500 attendees). I remember being present on the first edition of Community Day, talking about Application Lifecycle Management and the first release of Team Foundation Server (TFS 2005). A lot has [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=697&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last week was an interesting one with a MSDN LiveMeeting and a session at the 6th and biggest edition ever of <a href="http://www.communityday.be" target="_blank">Community Day Belgium</a> (500 attendees). I remember being present on the first edition of Community Day, talking about Application Lifecycle Management and the first release of Team Foundation Server (TFS 2005). A lot has changed in the ALM space during these 6 years.</p>
<p>Both times last week, I delivered a session on setting the context for the upcoming TFS 2012 release and added a number of demos to show some new and interesting ALM features.</p>
<p>90% of my time I’m active as an ALM consultant at different (small/big) companies in Belgium and I do identify a number of common trends across these companies. One very important thing for the business is <strong>time-to-market</strong> and they want to see a continuous flow of value. The current model of delivering features in big releases with long lead times &#8211; and only a few times a year – is under enormous&#160; pressure. Development teams are getting pretty good at adopting agile and lean concepts in the technical development cycle, but the bottleneck is often the integration of the entire software value chain (stakeholders, development team, testing team and operations). Going for continuous value delivery really requires companies to improve the end-to-end value chain. What’s otherwise the value of having a top agile development team without the ability to frequently release new features in production? Delivering business value is all about optimizing the collaboration between different teams and software must be seen as a company-wide team sport.</p>
<p>Gartner has published a few weeks ago (June 5, 2012) an <strong>interesting report on Application Lifecycle Management</strong>. Microsoft has been identified as a leader in this area with the current TFS 2010 offering. So, this is already a clear indication that Microsoft has great tools for ALM, but I believe that the position of Microsoft will even be stronger with the new TFS 2012 release because they take care about the complete end-to-end value chain and they are creating the best tools for every individual stakeholder in the process.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/06/image.png"><img style="background-image:none;border-bottom:0;border-left:0;margin:0 5px;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/06/image_thumb.png?w=304&#038;h=314" width="304" height="314" /></a></p>
<p>Read the <a href="http://www.gartner.com/technology/reprints.do?id=1-1ASCXON&amp;ct=120606&amp;st=sb" target="_blank">full Gartner report</a> to find out more about the current ALM market situation..</p>
<p>Having only one hour to explain and demo the upcoming TFS 2012 release is just impossible. The goal was to give the audience an idea of what’s coming and the approach Microsoft is taking to tackle Application Lifecycle Management. Usually I spend three full days to get team members up-to-speed with all the new features of TFS 2012 during an on-site hands-on training.</p>
<p>My <a href="http://www.sparkles.be/training/almwithvsnext.aspx" target="_blank">next public training on TFS 2012</a> is scheduled in the week of August 20, 2012. This intensive 3 day training will give students a detailed overview of the new ALM features that will be included inside the next release of Visual Studio and Team Foundation Server 2012. Attendees will experience how this new release might unblock the impediments in software development processes to deliver continuous value for the business. The full training consists of 3 days, but according to personal preferences, people can sign up for the individual days as well. On-site training sessions can also be planned.</p>
<p>Download <a href="http://intovsts.files.wordpress.com/2012/06/a-lap-around-vs2012-alm-rc-community-day-2012.pdf" target="_blank">slide-deck Community Day 2012</a>: A lap around VS 2012 ALM RC.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/697/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=697&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/wnTo68xhmig" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/06/24/sessions-on-continuous-value-delivery-and-tfs-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/06/24/sessions-on-continuous-value-delivery-and-tfs-2012/</feedburner:origLink></item>
		<item>
		<title>TFS as a true cross-technology ALM platform</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/tEAVOkUR_CE/</link>
		<comments>http://intovsts.net/2012/03/03/tfs-as-a-true-cross-technology-alm-platform/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 21:05:19 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=681</guid>
		<description><![CDATA[A while ago I was involved in a request for a big financial institution to come up with a Proof-Of-Concept document to move a large Java development team to TFS 2010. The same request was sent to another consultancy firm to have a solution on top of GIT and the Atlassian tools. Guess what?! The [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=681&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A while ago I was involved in a request for a big financial institution to come up with a Proof-Of-Concept document to move a large Java development team to TFS 2010. The same request was sent to another consultancy firm to have a solution on top of GIT and the Atlassian tools.</p>
<p>Guess what?! The final decision was to move the entire Java development team to TFS 2010. During the evaluation process I had to cope with a lot of non-believers, but I’m pretty sure that a lot of Java people were quite impressed and unaware of the possibilities that the current and future ALM offering from Microsoft delivers. On the other hand, I was also surprised by some interesting features in the Atlassian product suite. Both solutions actually met the specific requirements, but in the end I strongly believe that the company made the correct decision to choose for TFS 2010 as a true cross-technology ALM platform. Ultimately this was an objective decision based on the facts and not a decision led by gut feeling or emotion.</p>
<p>First of all, there was already an existing and mature TFS 2010 infrastructure in place which served a .NET and SharePoint development team. Team Foundation Server 2010 introduced an <strong>evolved architecture built to scale to the most challenging of teams and scenarios</strong>. A high available multiple server environment was already set up to support a potential load of up to 400 developers. The architecture included two distinct TFS Application Tiers which sit behind a load balancer. The TFS Data Tier is running in a SQL Cluster for high availability. This architecture can easily be extended with an extra TFS Application Tier and an extra SQL Server instance for optimizing the load on multiple Team Project Collections.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/tfsinfra.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="TFSInfra" border="0" alt="TFSInfra" src="http://intovsts.files.wordpress.com/2012/03/tfsinfra_thumb.png?w=404&#038;h=289" width="404" height="289" /></a></p>
<p>More information on scalability for TFS 2010 can be found <a href="http://msdn.microsoft.com/en-us/library/hh529865.aspx" target="_blank">here</a>.</p>
<p>Another explicit requirement was to <strong>easily cope with the most important version control operations and to be able to track and manage individual changes in parallel development scenarios</strong>. The Java team was still stuck with an older version control system which could not live up to the expectations of a modern version control system.</p>
<p>Switching to another version control system like TFS Version Control (or GIT) means that the involved stakeholders will need to be trained to make use of the new tool/system in an optimal way. While switching to another tool, there’s also an opportunity to adapt the existing way of working. Choosing for example a more appropriate branching &amp; merging strategy is certainly recommended to simplify software configuration management. TFS 2010 introduced a number of excellent branching &amp; merging features to fully support development teams (including configuration managers and release managers) in their day-to-day operations. Most actions can be easily triggered from the UI and don’t require complex command line operations:</p>
<ul>
<li><font size="2"><em>Branches are first class citizens in the version control repository</em></font> </li>
<li><font size="2"><em>Branch Hierarchy &amp; Timeline View</em></font> </li>
<li><font size="2"><em>Tracking Individual Changesets across branches</em></font> </li>
<li><font size="2"><em>Drag And Drop Functionality to Merge Branches</em></font> </li>
<li><font size="2"><em>Cherry-pick merging</em></font> </li>
<li><font size="2"><em>Branching &amp; Merging on Label or DateTime</em></font> </li>
<li><font size="2"><em>Full rollback functionality for individual changesets or set of changesets</em></font> </li>
<li><font size="2"><em>View hierarchical history of changes across branches</em></font> </li>
<li><font size="2"><em>Annotate feature to view history in source code</em></font> </li>
<li><font size="2"><em>Compare version control folders on branch/label/datetime</em></font> </li>
<li><font size="2"><em>Compare local workspaces with server version control folders</em></font> </li>
<li><font size="2"><em>Fine-grained permissions on version control folders and branches</em></font> </li>
<li><font size="2"><em>Associate a distinct file type with a specific merge tool</em></font> </li>
</ul>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb.png?w=404&#038;h=252" width="404" height="252" /></a></p>
<p>Needless to say that GIT as a DVCS also offers a powerful version control system and even offers better support for <em>offline</em> version control but these scenarios were not explicitly required.</p>
<p>Deep version control integration in a Java IDE was naturally another requirement. Visual Studio <strong>Team Explorer Everywhere</strong> 2010 helps .NET and Java development teams collaborate across platforms. It provides the tools and plug-ins to access Team Foundation Server 2010, so everyone can work together to achieve business goals. Team Explorer Everywhere 2010 works with the Eclipse-based IDE, in the operating system of choice and helps to collaborate across .NET and Java development teams. It’s an easy-to-install standalone plug-in which offers easy access to all possible version control operations. More information on Team Explorer Everywhere can be found <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-explorer-everywhere" target="_blank">here</a>.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb1.png?w=404&#038;h=309" width="404" height="309" /></a></p>
<p>Of course, Team Foundation Server is a whole lot more than only version control. I will add a few other important integrated features that were important for the final decision.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image5.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb5.png?w=404&#038;h=251" width="404" height="251" /></a></p>
<p>The <strong>build services</strong> provided by TFS 2010 offer an enterprise-class, distributed build platform. Utilization of the build services is done inside the IDE (Team Explorer Everywhere plug-in in Eclipse) in which the code is being created. The build services provide notifications on build events using the standard TFS eventing mechanisms, which means that email alerts can easily be sent to the team regarding build status. Continuous Integration builds make sure that the individual developer can be identified who broke the build. There’s even a Gated Check-In trigger available that can prevent broken builds. The build process, based on Windows Workflow Foundation is highly extensible to adapt to the needs of complex business environment. The Team Foundation Build Architecture is also extremely scalable with the introduction of a Build Controller and a pool of Build Agents which can be spread across different machines.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb2.png?w=404&#038;h=291" width="404" height="291" /></a></p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image6.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb6.png?w=404&#038;h=299" width="404" height="299" /></a></p>
<p>As from the TFS 2010 release, the ALM offering also includes a full solution for managing test plans, designing test cases and test reporting. <strong>Microsoft Test Manager </strong>(part of the Test Professional Suite or Visual Studio Ultimate) is a tool for functional testers and connects to TFS for executing and recording manual/automated tests from dedicated test case work items. Creating bugs and follow-up has become convenient due to the excellent integration with the Build Automation system. Bug reports now include automatically (due to diagnostic data adapters) all important information the developers need to reproduce and fix the bug. <strong>Visual Studio Lab Management</strong> is an add-on for TFS that allows deploying and testing applications in virtual test environments and includes a framework to file rich actionable bugs due to the various data collectors (for example video recording). Automated UI tests can also be easily integrated in existing build definitions.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb3.png?w=404&#038;h=361" width="404" height="361" /></a></p>
<p><strong>Reporting</strong> in TFS 2010 is one of the most powerful features. All possible data in TFS is stored in a SQL Server database where data is regularly processed in a data warehouse and in analytical cubes. For every created Team Project in TFS, you will automatically get a number of out-of-the-box SQL Reporting Services reports and a number of customizable reporting dashboards in the SharePoint team project portal. Existing reports can be easily customized or new reports can be easily added and shared for multiple stakeholders. Microsoft Excel can also be used to quickly define ad-hoc Pivot table reports based on the SQL Analysis cubes.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/03/image4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intovsts.files.wordpress.com/2012/03/image_thumb4.png?w=404&#038;h=304" width="404" height="304" /></a></p>
<p><strong>What about compliance (Sarbanes-Oxley Act)</strong>? Well, this requirement was probably very important in the final decision! Team Foundation Server provides three main pieces of functionality as it relates to SOx – Work Item Tracking, Version Control and Automated Build. These three features working together provide the capability to eliminate many of the risks associated with SOx 404 compliance. At the heart of SOx is the ability to know who made what change when, what requirement was the change made for and who authorized the change to be made. Was the requirement tested to make sure that it works correctly and who authorized the release of that requirement to production? Or, to state it another way, is the requirement traceable? Many technical solutions require multiple tools to provide this kind of traceability and generally they break the traceability chain at some point because they are not integrated at all required points. With Team Foundation Server 2010, <b>full traceability is baked in</b>. Team Foundation Server provides a comprehensive and flexible set of capabilities through traceability, test case management and automated builds. The rich extensibility of both the built-in features and a third-party ecosystem gives you the tools you need in order to meet the requirements of SOx.</p>
<p>Full article on Sox and TFS 2010 available at <a href="http://msdn.microsoft.com/en-us/library/gg983694.aspx">http://msdn.microsoft.com/en-us/library/gg983694.aspx</a>.</p>
<p><strong>GIT</strong> on the other hand was initially designed as a version control system for open source workflows and may have <strong>compliance issues</strong> inside strictly regulated (financial) institutions due to a number of reasons:</p>
<ul>
<li><u>User Auditing</u>: a commit in GIT is associated with a simple string (any string but by convention a name and email address). This can be changed at any time and doesn’t offer full traceability to a controlled identity.</li>
<li><u>Path based access control</u>: TFS has very fine-grained control over permissions at any point in the repository. GIT (in common with other DVCS tools) has no way to do this.</li>
<li><u>Administration</u>: a centralized version control system life TFS provides a central place to perform and audit administration activities including security, access control, permissions management of user accounts, backup, et. DVCS tools like GIT don’t offer that out-of-the-box.</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>Team Foundation Server doesn’t only offer a solution for reliable version control, but offers a <strong>fully integrated Application Lifecycle Management (ALM) solution</strong> for the enterprise. The requested requirements for the entire Java development process could all be fulfilled with the existing high-available TFS 2010 setup that was currently in use for another existing development program. Against the global perception of Microsoft products, Team Foundation Server is really extensible on client- and server-side (<a href="http://msdn.microsoft.com/en-us/library/bb130146.aspx">http://msdn.microsoft.com/en-us/library/bb130146.aspx</a>) and offers a lot of room for customization on all levels. From the early beginning, extensibility was a core design principle – both to enable great 3<sup>rd</sup> party partners and because all development shops have a need to customize the tools they use. There’s also a public <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=22616">TFS 2010 SDK for Java</a> which includes documentation, samples and redistributable components to help developing software products that integrate with TFS 2010.</p>
<p>A final big thank you to all the Microsoft involved people who helped to make this project a success. This was also a good demonstration of vendor commitment to the customer: support by local sales persons, together with product group people and partners. Up to me now to accompany the rollout in the field!</p>
<p>TFS v.Next has also an interesting roadmap and will even more become the default cross-technology ALM choice:</p>
<ul>
<li>New Team Explorer: <a href="http://blogs.msdn.com/b/bharry/archive/2011/09/19/the-new-team-explorer-in-tfs-11.aspx">http://blogs.msdn.com/b/bharry/archive/2011/09/19/the-new-team-explorer-in-tfs-11.aspx</a></li>
<li>Version Control improvements/enhancements: <a href="http://blogs.msdn.com/b/bharry/archive/2011/08/02/version-control-model-enhancements-in-tfs-11.aspx">http://blogs.msdn.com/b/bharry/archive/2011/08/02/version-control-model-enhancements-in-tfs-11.aspx</a> + <a href="http://blogs.msdn.com/b/bharry/archive/2011/09/01/wrapping-up-tfs-11-version-control-improvements.aspx">http://blogs.msdn.com/b/bharry/archive/2011/09/01/wrapping-up-tfs-11-version-control-improvements.aspx</a></li>
<li>Agile Project Management: <a href="http://blogs.msdn.com/b/bharry/archive/2011/06/14/agile-project-management-in-visual-studio-alm-v-next.aspx">http://blogs.msdn.com/b/bharry/archive/2011/06/14/agile-project-management-in-visual-studio-alm-v-next.aspx</a></li>
</ul>
<p>Note that TFS v.Next went into Beta last week and includes a go-live license. More information can be found at the <a href="http://blogs.msdn.com/b/jasonz/archive/2012/02/29/welcome-to-the-beta-of-visual-studio-11-and-net-framework-4-5.aspx" target="_blank">blog of Jason Zander</a> (corporate vice president for the Visual Studio team in the Developer Division at Microsoft).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/681/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=681&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/tEAVOkUR_CE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/03/03/tfs-as-a-true-cross-technology-alm-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/tfsinfra_thumb.png" medium="image">
			<media:title type="html">TFSInfra</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/03/03/tfs-as-a-true-cross-technology-alm-platform/</feedburner:origLink></item>
		<item>
		<title>Managing Builds through the Build Quality value</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/p6jabMq_noU/</link>
		<comments>http://intovsts.net/2012/02/12/managing-builds-through-the-build-quality-value/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 21:21:01 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Team Build]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=637</guid>
		<description><![CDATA[The integration in TFS between Builds and Work Items is just too good. In this blog post I will describe a solution based on a TFS Server Plugin to have more fine-grained control on completed builds. Completed builds may sometimes be more valuable for the development team and only a few of them will eventually [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=637&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The integration in TFS between Builds and Work Items is just too good. In this blog post I will describe a solution based on a <strong>TFS Server Plugin</strong> to have more fine-grained control on completed builds.</p>
<p>Completed builds may sometimes be more valuable for the development team and only a few of them will eventually be published/deployed for (public) Testing. This means that Testers (in theory) should only be able to log bugs against these particular builds.</p>
<p>There are two important fields on a bug work item which may point to a build: “Found in Build” and “Integrated in Build”.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="BuildQuality1" border="0" alt="BuildQuality1" src="http://intovsts.files.wordpress.com/2012/02/buildquality1_thumb.png?w=404&#038;h=229" width="404" height="229" /></a></p>
<p>For both fields a value can be selected from a combobox. The values in the combobox are part of the global list for the builds in the active Team Project.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="BuildQuality2" border="0" alt="BuildQuality2" src="http://intovsts.files.wordpress.com/2012/02/buildquality2_thumb.png?w=404&#038;h=448" width="404" height="448" /></a></p>
<p>By default, <strong>ALL</strong> finished builds (failed + succeeded) will trigger the <em>BuildCompletion</em> event in the Team Project Collection and the accompanying Build Number will be appended to the existing global list for the builds in the Team Project. In Team Projects where a lot of builds are defined, this “Builds” global list will be flooded by superfluous builds which should never be selected for the above fields. CI builds for example should not be part of this global list. Only full builds which are deliberately transferred for testing should be searchable in the above comboboxes.</p>
<p>So, how to explicitly mark a build for “Testing”? This can be easily done with setting a <strong>Build Quality</strong> for a given build.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="BuildQuality3" border="0" alt="BuildQuality3" src="http://intovsts.files.wordpress.com/2012/02/buildquality3_thumb.png?w=404&#038;h=144" width="404" height="144" /></a></p>
<p>Note that people who want to modify the Build Quality should have the permission “Edit build quality”.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="BuildQuality4" border="0" alt="BuildQuality4" src="http://intovsts.files.wordpress.com/2012/02/buildquality4_thumb.png?w=404&#038;h=141" width="404" height="141" /></a></p>
<p>Build Quality values can also be managed in a dedicated list.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality5.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="BuildQuality5" border="0" alt="BuildQuality5" src="http://intovsts.files.wordpress.com/2012/02/buildquality5_thumb.png?w=404&#038;h=204" width="404" height="204" /></a></p>
<p>By using a specific Build Quality value, it’s also possible to create a TFS Server Plugin and to listen to a <em>BuildQualityChangedNotification</em> event and to only add the Build Number to the global list when the Build Quality is set to “Ready for Initial Test”. Of course, the default event-subscription for the <em>BuildCompleted</em> event must be disabled and the existing global list should be cleaned.</p>
<p>This is exactly what I did. Only the Build Numbers of the builds that get a desired Build Quality (“Ready For Initial Test”) will be pushed to the global list of the Builds in the Team Project.</p>
<p>When your team makes fully use of Microsoft Test Manager to file bugs, the “Found in build” field can be automatically set by associating particular builds to a Test Plan. Test execution can then be done against an approved build list. The “Integrated in build” field is normally automatically set by the build process which picks up a bug resolution through a changeset at check-in time.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality6.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality6" border="0" alt="BuildQuality6" src="http://intovsts.files.wordpress.com/2012/02/buildquality6_thumb.png?w=404&#038;h=176" width="404" height="176" /></a></p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality7.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality7" border="0" alt="BuildQuality7" src="http://intovsts.files.wordpress.com/2012/02/buildquality7_thumb.png?w=304&#038;h=242" width="304" height="242" /></a></p>
<p>Some more details how I did implement the customization of the global build list:</p>
<p><u>Delete the out-of-the-box event-subscription for the BuildCompleted event</u></p>
<p>The easiest way is actually to navigate to the event-subscription table via SQL Management Studio (tbl_EventSubscription in specific Team Project Collection database) and to delete the event-subscription row from there. But, that shortcut is not really recommended I’m afraid. A safer solution is to rely on the <em>Bissubscribe </em>command line tool ((executable can be found in :\Program Files\Microsoft Team Foundation Server 2010\Tools). Strange enough, there’s no option to list the existing event-subscriptions, but there certainly is an unsubscribe switch to unsubscribe from an event-subscription. You will need the ID of the event-subscription. The only way to get this ID without having to write custom code on the TFS API is to get the ID from looking into the tbl_EventSubscription table in SQL Management Studio. Note that it’s the Integer ID you will need instead of the GUID Subscriber ID.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality8.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality8" border="0" alt="BuildQuality8" src="http://intovsts.files.wordpress.com/2012/02/buildquality8_thumb.png?w=404&#038;h=134" width="404" height="134" /></a></p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality9.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality9" border="0" alt="BuildQuality9" src="http://intovsts.files.wordpress.com/2012/02/buildquality9_thumb.png?w=404&#038;h=117" width="404" height="117" /></a></p>
<p>Recreating this default event-subscription is possible through the command BisSubscribe /eventType BuildCompletionEvent /address <a href="http://:8080/tfs//WorkItemTracking/v1.0/Integration.asmx" rel="nofollow">http://:8080/tfs//WorkItemTracking/v1.0/Integration.asmx</a> /collection <a href="http://:8080/tfs/" rel="nofollow">http://:8080/tfs/</a>.</p>
<p><u>Clean up the existing “Builds” global list</u></p>
<p>The global list of a Team Project Collection can be exported/imported with the <a href="http://msdn.microsoft.com/en-us/library/dd236914.aspx" target="_blank">witadmin command-line options</a> or you can export/import a global list through the UI with the Process Editor from the <a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f" target="_blank">TFS Power Tools</a>.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality10.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality10" border="0" alt="BuildQuality10" src="http://intovsts.files.wordpress.com/2012/02/buildquality10_thumb.png?w=404&#038;h=74" width="404" height="74" /></a></p>
<p>You will be prompted to store the GlobalList.xml file after which you may edit the list. Delete as many <em>ListItem</em> entries as you want in order to clean up the Build list. This is the value list that will be used for the “Found in Build” and “Integrated in Build” fields.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality11.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality11" border="0" alt="BuildQuality11" src="http://intovsts.files.wordpress.com/2012/02/buildquality11_thumb.png?w=404&#038;h=147" width="404" height="147" /></a></p>
<p>Import the global list back to TFS via <a href="http://msdn.microsoft.com/en-us/library/dd236914.aspx" target="_blank">witadmin</a> or the Process Editor.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality12.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality12" border="0" alt="BuildQuality12" src="http://intovsts.files.wordpress.com/2012/02/buildquality12_thumb.png?w=304&#038;h=93" width="304" height="93" /></a></p>
<p>To immediately witness the result, you may need to restart Visual Studio to clear the cache.</p>
<p><u>Activate the TFS Server Plugin for processing BuildQualityChangedNotification events</u></p>
<p>Since TFS 2010, it has become fairly easy to write custom event handlers that will run in the context of Team Foundation Server. It’s a plugin (dll) that needs to be deployed on the TFS Application Tier. How to accomplish this is not well documented, but your best starting point would be to read Chapter 25 of the book <a href="http://www.amazon.com/Professional-Team-Foundation-Server-Programmer/dp/0470943327" target="_blank">Professional Team Foundation Server 2010</a>. <a href="http://blogs.msdn.com/b/granth/" target="_blank">Grant Holliday</a> &#8211; one of the authors – explains how the <a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.framework.server.isubscriber.aspx" target="_blank">ISubscriber interface</a> can be used for extending Team Foundation Server. </p>
<p>For my purpose I implemented the <em>ISubscriber</em> interface in my BuildQualityChangedEventHandler class. The Build Quality I will use in my example is “Ready For Initial Test”. This action should append the Build Number to the Build global list of the Team Project.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality13.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality13" border="0" alt="BuildQuality13" src="http://intovsts.files.wordpress.com/2012/02/buildquality13_thumb.png?w=404&#038;h=252" width="404" height="252" /></a></p>
<p>Next task was to pick up the <em>BuildQualityChangedNotificationEvent</em> and to take action when the Build Quality was set to “Ready For Initial Test”: export global list, append the current Build Number and import the list back to TFS.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality14.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality14" border="0" alt="BuildQuality14" src="http://intovsts.files.wordpress.com/2012/02/buildquality14_thumb.png?w=404&#038;h=229" width="404" height="229" /></a></p>
<p>That’s it, build the assembly and drop it in the plug-in folder on all active TFS Application Tiers.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality15.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality15" border="0" alt="BuildQuality15" src="http://intovsts.files.wordpress.com/2012/02/buildquality15_thumb.png?w=404&#038;h=194" width="404" height="194" /></a></p>
<p>Setting the Build Quality to “Ready For Initial Test” does the trick and adds the Build Number to the Build global list for the appropriate Team Project.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality16.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality16" border="0" alt="BuildQuality16" src="http://intovsts.files.wordpress.com/2012/02/buildquality16_thumb.png?w=404&#038;h=329" width="404" height="329" /></a></p>
<p>As an extra, I also decided to keep the “Ready For Initial Test” builds indefinitely.</p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality17.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality17" border="0" alt="BuildQuality17" src="http://intovsts.files.wordpress.com/2012/02/buildquality17_thumb.png?w=244&#038;h=54" width="244" height="54" /></a></p>
<p><a href="http://intovsts.files.wordpress.com/2012/02/buildquality18.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="BuildQuality18" border="0" alt="BuildQuality18" src="http://intovsts.files.wordpress.com/2012/02/buildquality18_thumb.png?w=404&#038;h=264" width="404" height="264" /></a></p>
<p>Controlling your builds with the Build Quality value in combination with a TFS Server plugin gives you a lot of power! The next step could be to trigger deployments off a Build Quality value …</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/637/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=637&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/p6jabMq_noU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2012/02/12/managing-builds-through-the-build-quality-value/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality1_thumb.png" medium="image">
			<media:title type="html">BuildQuality1</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality2_thumb.png" medium="image">
			<media:title type="html">BuildQuality2</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality3_thumb.png" medium="image">
			<media:title type="html">BuildQuality3</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality4_thumb.png" medium="image">
			<media:title type="html">BuildQuality4</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality5_thumb.png" medium="image">
			<media:title type="html">BuildQuality5</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality6_thumb.png" medium="image">
			<media:title type="html">BuildQuality6</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality7_thumb.png" medium="image">
			<media:title type="html">BuildQuality7</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality8_thumb.png" medium="image">
			<media:title type="html">BuildQuality8</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality9_thumb.png" medium="image">
			<media:title type="html">BuildQuality9</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality10_thumb.png" medium="image">
			<media:title type="html">BuildQuality10</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality11_thumb.png" medium="image">
			<media:title type="html">BuildQuality11</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality12_thumb.png" medium="image">
			<media:title type="html">BuildQuality12</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality13_thumb.png" medium="image">
			<media:title type="html">BuildQuality13</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality14_thumb.png" medium="image">
			<media:title type="html">BuildQuality14</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality15_thumb.png" medium="image">
			<media:title type="html">BuildQuality15</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality16_thumb.png" medium="image">
			<media:title type="html">BuildQuality16</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality17_thumb.png" medium="image">
			<media:title type="html">BuildQuality17</media:title>
		</media:content>

		<media:content url="http://intovsts.files.wordpress.com/2012/02/buildquality18_thumb.png" medium="image">
			<media:title type="html">BuildQuality18</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2012/02/12/managing-builds-through-the-build-quality-value/</feedburner:origLink></item>
		<item>
		<title>TFS 2010: Virus Scan file/folder exclusions</title>
		<link>http://feedproxy.google.com/~r/IntoVSTS/~3/183RXyJ4_FI/</link>
		<comments>http://intovsts.net/2011/12/20/tfs-2010-virus-scan-filefolder-exclusions/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 19:00:00 +0000</pubDate>
		<dc:creator>pietergheysens</dc:creator>
				<category><![CDATA[Installation & Configuration of TFS]]></category>
		<category><![CDATA[TFS2010]]></category>

		<guid isPermaLink="false">https://intovsts.wordpress.com/?p=621</guid>
		<description><![CDATA[At several customers I have seen that some Virus Scan Systems (no names) have a serious negative impact on the performance of Team Foundation Server. Especially the Build Server may be an easy target for the Virus Scanning actions. Here’s my latest recommendation I have sent to the Ops Team. Note that all involved servers [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=621&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>At several customers I have seen that some Virus Scan Systems (no names) have a serious negative impact on the performance of Team Foundation Server. Especially the Build Server may be an easy target for the Virus Scanning actions.</p>
<p>Here’s my latest recommendation I have sent to the Ops Team. Note that all involved servers run Windows Server 2008 R2 (64 bit) and the software is installed on the C drive. The TFS Application Tier also has WSS 3.0 (SP2) installed. Use at your own risk and good luck to get this approved by your Ops Team. Traditionally they handle the <i>presumption of innocence</i> principle: the virus scan is innocent until proven guilty!</p>
<ul>
<li><strong>TFS Application Tier</strong>
<ul>
<li>C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\_tfs_data [TFS Version Control Cache folder] </li>
<li>C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions [SharePoint Portal] </li>
<li>C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files [SharePoint Portal + Web Access] </li>
<li>C:\Users\<i>TFSWSSAccount</i>\AppData\Local\Temp [SharePoint Portal] </li>
</ul>
</li>
<li><strong>TFS Build Server(s)</strong>
<ul>
<li>Build Agent(s) working directory: D:\Builds </li>
<li>TFS local cache folder for TFSBUILD account: C:\Users\<i>TFSBUILDAccount</i>\AppData\Local\Microsoft\Team Foundation </li>
</ul>
</li>
<li><strong>TFS Data Tier</strong>
<ul>
<li>SQL Server data files: .mdf + .ldf </li>
</ul>
</li>
<li><strong>Client DevSeat</strong>
<ul>
<li>TFS workspaces folder: D:\TFS </li>
</ul>
</li>
</ul>
<p>I did find some official references:</p>
<ul>
<li><a href="http://support.microsoft.com/kb/2636507">http://support.microsoft.com/kb/2636507</a> [TFS 2010] </li>
<li><a href="http://support.microsoft.com/kb/309422">http://support.microsoft.com/kb/309422</a> [SQL Server] </li>
<li><a href="http://support.microsoft.com/kb/952167">http://support.microsoft.com/kb/952167</a> [SharePoint] </li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intovsts.wordpress.com/621/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intovsts.wordpress.com/621/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intovsts.net&#038;blog=5586949&#038;post=621&#038;subd=intovsts&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/IntoVSTS/~4/183RXyJ4_FI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://intovsts.net/2011/12/20/tfs-2010-virus-scan-filefolder-exclusions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/518b6f63e450a759ae797ff3b2ad664f?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pietergheysens</media:title>
		</media:content>
	<feedburner:origLink>http://intovsts.net/2011/12/20/tfs-2010-virus-scan-filefolder-exclusions/</feedburner:origLink></item>
	</channel>
</rss>
