<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	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/"
	>

<channel>
	<title>.NET Entwicklung &#38; Architektur</title>
	<atom:link href="https://peroxide20.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://peroxide20.wordpress.com</link>
	<description>blog by Daniel K.</description>
	<lastBuildDate>Wed, 11 Jun 2014 07:27:32 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">765921</site><cloud domain='peroxide20.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>.NET Entwicklung &#038; Architektur</title>
		<link>https://peroxide20.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://peroxide20.wordpress.com/osd.xml" title=".NET Entwicklung &#38; Architektur" />
	<atom:link rel='hub' href='https://peroxide20.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Anpassungsm&#246;glichkeiten des TFS 2013</title>
		<link>https://peroxide20.wordpress.com/2014/06/11/anpassungsmglichkeiten-des-tfs-2013/</link>
					<comments>https://peroxide20.wordpress.com/2014/06/11/anpassungsmglichkeiten-des-tfs-2013/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Wed, 11 Jun 2014 07:27:32 +0000</pubDate>
				<category><![CDATA[alm]]></category>
		<category><![CDATA[Process-Template]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2013]]></category>
		<category><![CDATA[Powertools]]></category>
		<category><![CDATA[Process Template]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/?p=179</guid>

					<description><![CDATA[Beim Thema Anpassung und Erweiterung des TFS muss man sich immer mit verschiedenen Aspekten auseinandersetzen. So zum Beispiel: “Welche Prozesstemplates gibt es und wo finde ich eine Dokumentation?” “Welche Felder, Stati, Workflows gibt es?” “Was kann ich wann ändern?” “Wie kann ich ein bestehendes Projekt am Prozesstemplate updaten?” “Welche Erweiterungsmöglichkeiten habe ich neben dem Prozesstemplate?” [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Beim Thema Anpassung und Erweiterung des <a href="http://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx" target="_blank">TFS</a> muss man sich immer mit verschiedenen Aspekten auseinandersetzen. So zum Beispiel:</p>
<ul>
<li>“Welche Prozesstemplates gibt es und wo finde ich eine Dokumentation?”</li>
<li>“Welche Felder, Stati, Workflows gibt es?”</li>
<li>“Was kann ich wann ändern?”</li>
<li>“Wie kann ich ein bestehendes Projekt am Prozesstemplate updaten?”</li>
<li>“Welche Erweiterungsmöglichkeiten habe ich neben dem Prozesstemplate?”</li>
</ul>
<p>Dazu habe ich ein paar passende Links gesammelt:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/dd997574.aspx" target="_blank">MSF for CMMI</a>, <a href="http://msdn.microsoft.com/en-us/library/dd380647.aspx" target="_blank">MSF for Agile software development</a> und <a href="http://msdn.microsoft.com/en-us/library/ff731587.aspx" target="_blank">Visual Studio Scrum process template</a> liegen im Moment in Version 2013.2 vor. Eine Field-Reference findet sich <a href="http://msdn.microsoft.com/en-us/library/ms194971.aspx" target="_blank">hier</a>.</li>
<li>Zum Thema Anpassungsmöglichkeiten des TFS im allgemeinen empfehle ich die folgenden Seiten: <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2013/12/19/customization-and-configuration-in-vs-alm.aspx" target="_blank">hier</a> und <a href="http://msdn.microsoft.com/en-us/library/dd286521.aspx" target="_blank">hier</a></li>
<li>Zum Thema Möglichkeiten die Änderungen nachdem man ein Projekt mit einem bestimmten Template angelegt hat für bestehende Projekte zu übernehmen gibt es <a href="http://nakedalm.com/do-you-know-how-to-upgrade-a-process-template-but-still-keep-your-data-intact/" target="_blank">hier</a> &#8211; eine schöne Gegenüberstellung von Pro und Contra der Varianten. </li>
<li>Zum Thema TFS 3rd Party Erweiterung war es eigentlich angedacht <a href="http://www.tfsasap.com/video.html" target="_blank">dieses Tool</a> zu evaluieren. </li>
<li>Ein Videotraining in der <a href="http://www.microsoftvirtualacademy.com/training-courses/anpassungen-und-erweiterungen-am-team-foundation-server-2013">Microsoft Virtual Academy</a> zum Thema Anpassung und Erweiterung von TFS 2013 findet man <a href="http://almsports.net/videotraining-anpassungen-und-erweiterungen-am-tfs2013-in-der-microsoft-virtual-academy-online/1269/" target="_blank">hier</a>.</li>
</ul>
<p>Viel Spaß beim Anpassen und gerne nehme ich weitere gute Informationen als Kommentar entgegen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2014/06/11/anpassungsmglichkeiten-des-tfs-2013/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">179</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>Lange ein Ziel und Traum &#8211; MCSD: Application Lifecycle Management</title>
		<link>https://peroxide20.wordpress.com/2014/05/13/lange-ein-ziel-und-traum-mcsd-application-lifecycle-management/</link>
					<comments>https://peroxide20.wordpress.com/2014/05/13/lange-ein-ziel-und-traum-mcsd-application-lifecycle-management/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Tue, 13 May 2014 07:43:12 +0000</pubDate>
				<category><![CDATA[TFS]]></category>
		<category><![CDATA[Zertifizierung]]></category>
		<category><![CDATA[alm]]></category>
		<category><![CDATA[MCSD]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/?p=177</guid>

					<description><![CDATA[Lange ein Ziel und Traum und jetzt endlich habe ich den MCSD Application Lifecycle Management erfolgreich abgeschlossen. Ich habe ja schon lange den TFS als ein Nebenschauplatz-Hobby für mich entdeckt und nun endlich auch die passende Zertifizierung (mit 3 Prüfungen) abgeschlossen. Schon letztes Jahr konnte ich zum Glück ohne Vorbereitung die 2 Prüfungen zur Administration [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Lange ein Ziel und Traum und jetzt endlich habe ich den <a href="http://www.microsoft.com/learning/en-us/mcsd-application-lifecycle-management.aspx" target="_blank">MCSD Application Lifecycle Management</a> erfolgreich abgeschlossen. </p>
<p><a title="MCSD: ALM" href="http://www.microsoft.com/learning/en-us/mcsd-application-lifecycle-management.aspx" target="_blank"><img title="MCSD_2013(rgb)_1509" 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="MCSD_2013(rgb)_1509" src="https://peroxide20.wordpress.com/wp-content/uploads/2014/05/mcsd_2013rgb_1509.png?w=164&#038;h=142" width="164" height="142" /></a></p>
<p>Ich habe ja schon lange den TFS als ein Nebenschauplatz-Hobby für mich entdeckt und nun endlich auch die passende Zertifizierung (mit 3 Prüfungen) abgeschlossen. Schon letztes Jahr konnte ich zum Glück ohne Vorbereitung die 2 Prüfungen zur Administration und Delivering Continuous Value in kurzem Abstand erfolgreich abschließen. Die dritte zum Thema Software Testing hatte ich immer vor mir her geschoben, da die Vorbereitungszeit nie da war und das Thema Testen nicht mein “tägliches Brot” im TFS darstellt. Jetzt konnte ich mich mit dem Thema etwas intensiver vertraut machen und habe noch kräftig hinzugelernt.</p>
<p>Überraschung für mich war die Gültigkeit, denn die Zertifizierung ist nur 2 Jahre aktiv/gültig.</p>
<p>Vorbereitet habe ich mich unter anderem mit folgenden Informationen:</p>
<ul>
<li><a href="http://blog.aitgmbh.de/2013/02/15/inhalte-der-zertifizierungsprufung-zur-tfs-administration-70-496" target="_blank">70-496</a>:&#160; Administering Microsoft Visual Studio Team Foundation Server 2012</li>
<li><a href="http://blog.aitgmbh.de/2013/05/17/inhalte-der-zertifizierungsprufung-zum-software-testing" target="_blank">70-497</a>:&#160;&#160; Software Testing with Visual Studio 2012</li>
<li><a href="http://msdn.microsoft.com/en-us/library/ee461565.aspx" target="_blank">70-498</a>: Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2014/05/13/lange-ein-ziel-und-traum-mcsd-application-lifecycle-management/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">177</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2014/05/mcsd_2013rgb_1509.png" medium="image">
			<media:title type="html">MCSD_2013(rgb)_1509</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS 2013 WebAccess Funktionen je nach Zugriffs-Berechtigung (Lizenz)</title>
		<link>https://peroxide20.wordpress.com/2014/04/17/tfs-2013-webaccess-funktionen-je-nach-zugriffs-berechtigung-lizenz/</link>
					<comments>https://peroxide20.wordpress.com/2014/04/17/tfs-2013-webaccess-funktionen-je-nach-zugriffs-berechtigung-lizenz/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Thu, 17 Apr 2014 08:11:40 +0000</pubDate>
				<category><![CDATA[alm]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2013]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/?p=172</guid>

					<description><![CDATA[Immer wieder kommen Kollegen und fragen, warum sie eine bestimmte Funktion im TFS WebAccess nicht sehen?! Dazu muss man sich ein bisschen mit dem Berechtigungsschema beschäftigen was hinter dem TFS steckt. Im WebAccess ist die einizige Stelle wo es abhängig von der zugeordneten Lizenz auch unterschiedliche Zugriffslevel gibt. Hier gibt es zur Zeit drei verschiedene [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Immer wieder kommen Kollegen und fragen, warum sie eine bestimmte Funktion im <a href="http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx" target="_blank">TFS</a> WebAccess nicht sehen?! Dazu muss man sich ein bisschen mit dem Berechtigungsschema beschäftigen was hinter dem TFS steckt. Im WebAccess ist die einizige Stelle wo es abhängig von der zugeordneten Lizenz auch unterschiedliche Zugriffslevel gibt. Hier gibt es zur Zeit drei verschiedene Level:</p>
<ol>
<li>Limited – Man kann nur seine eigenen WorkItems sehen (keine TFS CAL notwendig)</li>
<li>Standard (default) – Standardfunktionen, Agile boards, Backlog&amp;sprint planing, Chart viewing (Nutzer mit TFS CAL)     <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/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="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/image_thumb.png?w=380&#038;h=174" width="380" height="174" /></a></li>
<li>Full – Alle verfügbaren Funktionen (Nutzer mit <a href="http://msdn.microsoft.com/de-de/subscriptions/default.aspx" target="_blank">MSDN Subscription</a>)      <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/image1.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="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/image_thumb1.png?w=380&#038;h=230" width="380" height="230" /></a></li>
</ol>
<p>Wer in welchem Access Level einsortiert ist findet man auf seinem TFS unter <a href="http://&lt;tfsurl&#038;gt" rel="nofollow">http://&lt;tfsurl&#038;gt</a>;:8080/_admin/_licenses.&#160; Über den “Export audit log” Link wird ein entsprechendes CSV zur Verfügung gestellt was je Account den letzten Zugriff und die eingerichtete Zugriffsberechtigung enthält.</p>
<p>Weitere Informationen findest du <a href="http://msdn.microsoft.com/de-de/library/jj159364.aspx" target="_blank">hier</a>. </p>
<p><strong>Fazit: </strong>Der “Limited” Zugriff kann zum Beispiel für Kunden ohne Lizenz genutzt werden, die über den TFS Webzugriff nur Bugs, Issues o.a einstellen wollen. Der “normale” Softwareentwickler hat in den meisten Fällen eine <a href="http://msdn.microsoft.com/de-de/subscriptions/default.aspx" target="_blank">MSDN Subscription</a> (Visual Studio Ultimate mit MSDN, Visual Studio Premium mit MSDN oder Visual Studio Test Professional mit MSDN) und damit den vollen Zugriff mit allen Funktionen, die er gar nicht unbedingt alle braucht. Der Projektleiter, Anforderungsmanager, … hat in den wenigsten Fällen eine MSDN Subscription und damit nur den Standard-Zugriff. Es fehlen ihm also genau die Funktionen die er am meisten benötigt, wie Feedback Management, Agile Portfolio Management oder Diagrammerstellung… Nutzt der Mitarbeiter ohne Vollzugriff die anderen Möglichkeiten wie Excel, Project, Reporting Services oder Team Explorer für den Zugriff auf den TFS, reicht ihm nach wie vor die TFS CAL um alle von dem jeweiligen Tool angebotenen Funktionen des TFS zu nutzen. Zum Thema Lizenzen und TFS gibt es ein <a href="http://www.microsoft.com/en-us/download/details.aspx?id=13350" target="_blank">White Paper</a> und auch einige <a href="http://blogs.msdn.com/b/govdev/archive/2012/05/14/understand-tfs-licensing.aspx" target="_blank">Blogbeiträge</a>….</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2014/04/17/tfs-2013-webaccess-funktionen-je-nach-zugriffs-berechtigung-lizenz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">172</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2014/04/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>CodedUI mit TFS Teambuild</title>
		<link>https://peroxide20.wordpress.com/2014/04/11/codedui-mit-tfs-teambuild/</link>
					<comments>https://peroxide20.wordpress.com/2014/04/11/codedui-mit-tfs-teambuild/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Fri, 11 Apr 2014 08:23:22 +0000</pubDate>
				<category><![CDATA[CodedUI]]></category>
		<category><![CDATA[Teambuild]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2013]]></category>
		<category><![CDATA[VS2013]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/?p=164</guid>

					<description><![CDATA[Es geht darum CodedUI Tests während eines TFS Teambuilds ohne Labmanagement auszuführen. Dazu gibt es eine ganze Reihe Informationen im Netz, trotzdem gibt es ein paar Fallstricke die es nicht einfacher machen. Gerade wenn man nach einer Lösung zum Fehler “Failed to initialize the unit test extension &#8218;urn:CodedUITest&#8216;: A unit test extension is not registered [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Es geht darum CodedUI Tests während eines TFS Teambuilds ohne Labmanagement auszuführen. Dazu gibt es eine ganze Reihe <a href="http://blog.aitgmbh.de/2010/09/13/codedui-tests-ohne-lab-management-ausfhren/" target="_blank">Informationen im Netz</a>, trotzdem gibt es ein paar Fallstricke die es nicht einfacher machen. Gerade wenn man nach einer Lösung zum Fehler “Failed to initialize the unit test extension &#8218;urn:CodedUITest&#8216;: A unit test extension is not registered for the following attribute: Microsoft.VisualStudio.TestTools.UITesting.CodedUITestAttribute” sucht, kommt man nicht so richtig zu einem eindeutigen Ergebnis.</p>
<p>Mit einer vorhandenen VS 2013 Solution mit CodedUI Tests (Class Library mit .Net Framework 4.5 konfiguriert) wurden folgende Konstellationen getestet:</p>
<ol>
<li>TFS 2012 Update 3/4, TFS Build Controller 2012, Visual Studio 2013.1 Premium, Build Agent als Interaktiver Prozess &gt; Ergebnis: “Failed to initialize the unit test extension &#8218;urn:CodedUITest&#8216;: A unit test extension is not registered for the following attribute: Microsoft.VisualStudio.TestTools.UITesting.CodedUITestAttribute.”</li>
<li>TFS 2013, TFS Build Controller 2012, Visual Studio 2013.1 Premium/Ultimate Testmanager, Build Agent als Interaktiver Prozess &gt; Ergebnis: “Failed to initialize the unit test extension &#8218;urn:CodedUITest&#8216;: A unit test extension is not registered for the following attribute: Microsoft.VisualStudio.TestTools.UITesting.CodedUITestAttribute.”</li>
<li>TFS 2013, TFS Build Controller 2013, VS 2013 Ultimate, Testmanager 2013,  Build Agent als Interaktiver Prozess &gt; Ergebnis: Tests laufen</li>
<li>TFS 2013, TFS Build Controller 2013, VS 2013 Premium, Build Agent als Interaktiver Prozess &gt; Ergebnis: Tests laufen</li>
</ol>
<p><strong>Fazit: </strong>CodedUI Tests sollten immer mit der zur TFS-Version passenden Visual Studio Version entwickelt werden. Bei TFS 2012 also Visual Studio 2012 + TFS Build Controller 2012 + Build Agent 2012 mit VS 2012 Premium verwenden. Unsere zur Zeit passende Konstellation ist TFS 2013, TFS Build Controller 2013, Build Agent 2013 (interaktiver Prozess), VS 2013 Premium</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2014/04/11/codedui-mit-tfs-teambuild/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">164</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft Visual Studio ALM Days 2011 (ehemals TeamConf)</title>
		<link>https://peroxide20.wordpress.com/2011/11/01/microsoft-visual-studio-alm-days-2011-ehemals-teamconf/</link>
					<comments>https://peroxide20.wordpress.com/2011/11/01/microsoft-visual-studio-alm-days-2011-ehemals-teamconf/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Tue, 01 Nov 2011 11:45:18 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[patterns&practices]]></category>
		<category><![CDATA[Teambuild]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS API]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[tfs 2010]]></category>
		<category><![CDATA[Vortrag]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/11/01/microsoft-visual-studio-alm-days-2011-ehemals-teamconf/</guid>

					<description><![CDATA[Vom 23.-25. November findet die TeamConf 2011 unter neuem Namen ALM Days in München statt. Wie in den vergangenen Jahren werden hochkarätige Vorträge und Speaker u. a. Sam Guckenheimer (Microsoft) und Brian Harry (Microsoft) vor Ort sein. Auch wir von der T-Systems Multimedia Solutions GmbH sind mit Vorträgen rund um das Thema ALM vertreten. Sebastian [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vom 23.-25. November findet die TeamConf 2011 unter neuem Namen <a href="http://teamconf.de">ALM Days</a> in München statt. Wie in den vergangenen Jahren werden <a href="http://www.teamconf.de/agenda.html">hochkarätige Vorträge</a> und Speaker u. a. Sam Guckenheimer (Microsoft) und Brian Harry (Microsoft) vor Ort sein. </p>
<p>Auch wir von der <a href="http://www.t-systems-mms.com/unternehmen/events_termine/messen/alm-days" target="_blank">T-Systems Multimedia Solutions GmbH</a> sind mit Vorträgen rund um das Thema ALM vertreten. <b>Sebastian Wagner</b>, Projektleiter und <b>Daniel Kubis, </b>Software<b> </b>Architekt bei der MMS, <a href="http://www.teamconf.de/vortraege/management-day/articles/praxisstudie-zum-erfolgreichen-einsatz-des-tfs-2010-bei-der-t-systems-multimedia-solutions-gmbh.html">berichten über Erfahrungen bei der Einführung des TFS 2010 und die Einbindung in die Unternehmensprozesse</a> bei der T-Systems MMS. <b>Daniel Kubis </b>stellt am Technical Day <a href="http://www.teamconf.de/vortraege/technical-day/articles/was-ist-tfs-teambuild-was-kann-ich-damit-machen-und-wie-passe-ich-den-prozess-an-meine-beduerfnisse-an.html">Erfahrungen und Best Practices mit TFS Teambuild</a> und Sebastian Wagner <a href="http://www.teamconf.de/vortraege/technical-day/articles/einblick-in-die-sharepoint-entwicklung-mit-dem-team-foundation-server-2010-bei-der-t-systems-multimedia-solutions-gmbh.html">best practices bei der SharePoint Entwicklung mit TFS 2010</a> vor.</p>
<p>Hier finden Sie die Agenda, das begleitende Workshop-Angebot und das Anmeldungsformular:    <br /><strong><a href="http://www.teamconf.de">www.teamconf.de</a></strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/11/01/microsoft-visual-studio-alm-days-2011-ehemals-teamconf/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">162</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS 2010 Teambuild &#124; Mythen zum Gated Check-In</title>
		<link>https://peroxide20.wordpress.com/2011/09/30/tfs-2010-teambuild-mythen-zum-gated-check-in/</link>
					<comments>https://peroxide20.wordpress.com/2011/09/30/tfs-2010-teambuild-mythen-zum-gated-check-in/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Fri, 30 Sep 2011 06:45:00 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#4.0]]></category>
		<category><![CDATA[Teambuild]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[Check-in]]></category>
		<category><![CDATA[CheckIn]]></category>
		<category><![CDATA[Continuous Build]]></category>
		<category><![CDATA[Gated]]></category>
		<category><![CDATA[tfs 2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/09/30/tfs-2010-teambuild-mythen-zum-gated-check-in/</guid>

					<description><![CDATA[Ich hatte ja schon vor Tagen einen Artikel über Gated Check-In aus Entwicklersicht geschrieben und versucht ein paar Mythen auszuräumen. Trotzdem kommen immer wieder neue Fragen und Fragezeichen auf. Ein Kollege wollte gerne eine Check-In Policy, die ein “Get Latest” vor dem Check-In simuliert, weil sie das Gefühl hatten, dass dank des Gated Check-In Code [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich hatte ja schon <a href="https://peroxide20.wordpress.com/2011/07/03/gated-builds-gated-check-in-mit-tfs2010-vs2010-aus-sicht-eines-entwicklers/" target="_blank">vor Tagen einen Artikel über Gated Check-In aus Entwicklersicht geschrieben</a> und versucht ein paar Mythen auszuräumen. Trotzdem kommen immer wieder neue Fragen und Fragezeichen auf. </p>
<p>Ein Kollege wollte gerne eine Check-In Policy, die ein “Get Latest” vor dem Check-In simuliert, weil sie das Gefühl hatten, dass dank des Gated Check-In Code verloren geht. Das konnte ich nicht glauben und war auch der Meinung, das so eine Check-In Policy völliger Quatsch ist. Beim Check-In wird der Entwickler sowieso gezwungen bei Konflikten einen Merge am Client zu machen. Wenn die Konflikte behoben sind kann er den Check-In vornehmen und der Gated Build würde den Code bei erfolgreichem Build auch in den TFS Server einchecken.</p>
<p>Was ist also der Grund für den Policy Wunsch bzw. der Grund für den “verlorenen” Code? Nehmen wir mal an zwei oder mehr Entwickler ändern genau an den gleichen Codezeilen und versuchen nahezu zeitgleich einzuschecken. Bei jedem Entwickler wird auf seinem Client mit dem Stand der im TFS eingecheckt ist ein Merge vollzogen und kein Konflikt festgestellt. Der Code geht also an den Team-Build und reiht sich in die Schlange der Gated Builds ein. Siehe Abbildung 1.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image002.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="clip_image002" border="0" alt="clip_image002" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image002_thumb.jpg?w=380&#038;h=90" width="380" height="90" /></a>     <br /><strong><font size="1">Abb. 1: Gleichzeitige “Gated Builds” werden in Build-Queue eingereiht.</font></strong></p>
<p>Wenn der Code erfolgreich gebaut hat, wird der Code des “schnellsten” Entwicklers an den TFS Server übergeben. Der nächste Gated Build kann aus der Queue durch der Build-Controller gestartet werden. Jetzt kann es passieren, dass der Gated Build schon am Anfang fehl schlägt, wenn kein “Auto-Merge” durchgeführt werden kann (weil ja die Entwickler auf der gleichen Codezeile Änderungen vorgenommen hatten). Das erwartete Verhalten ist also, dass folgende Builds aus der Queue immer nur nacheinander und nie zeitgleich ablaufen und dass bei Merge-Konflikten der Build fehlschlägt und der Entwickler erneut Clientseitig Mergen muss um einen weiteren Gated Build anzustoßen.</p>
<p>Jetzt haben wir aber das Phänomen, dass wie in Abbildung 2 zu sehen, die weiteren Gated Builds aus der Queue NICHT wie erwartet nacheinander Loslaufen sondern auf einmal gleichzeitig auf verschiedenen Agents?! </p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image0024.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image0024_thumb.jpg?w=380&#038;h=84" width="380" height="84" /></a>     <br /><strong><font size="1">Abb. 2: Fehler? “Gated Builds” werden aus der Build-Queue gleichzeitig gestartet.</font></strong></p>
<p>Hier liegt vermutlich das Problem. Jeder Build für sich ist auf dem Agent valide und geht erfolgreich durch und wird in den TFS eingecheckt. Wenn aber Änderungen an gleichen Codepassagen vorhanden sind, kann es passieren, dass Code verloren geht?! Wer hat ähnliche Phänomene und kann Tipps geben.</p>
<p>In verschiedenen Foren haben wir ähnliche Probleme entdeckt, aber noch keine Lösung. Wir nutzen nur einen Build-Controller, der wiederum sehr viele Agents verwaltet. Es ist auch schon häufiger aufgetreten dieses Problem.</p>
<p><strong>Fazit:</strong> Es würde definitiv keine Check-In Policy helfen, die “Get Latest” vor dem Check-In erzwingt, denn Merge Konflikte muss der Entwickler sowieso manuell lösen und das geht nur gegen den Code der im TFS eingecheckt ist. Würde die Queue im Falle eines Gated Check-In auch wie erwartet arbeiten (also alle Builds sequentiell) würde aus meiner Sicht auch nie Code überschrieben/verloren gehen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/09/30/tfs-2010-teambuild-mythen-zum-gated-check-in/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">158</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image002_thumb.jpg" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/10/clip_image0024_thumb.jpg" medium="image">
			<media:title type="html">clip_image002[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Gated Builds / Gated Check-in mit TFS2010 / VS2010 aus Sicht eines Entwicklers</title>
		<link>https://peroxide20.wordpress.com/2011/07/03/gated-builds-gated-check-in-mit-tfs2010-vs2010-aus-sicht-eines-entwicklers/</link>
					<comments>https://peroxide20.wordpress.com/2011/07/03/gated-builds-gated-check-in-mit-tfs2010-vs2010-aus-sicht-eines-entwicklers/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Sun, 03 Jul 2011 13:04:15 +0000</pubDate>
				<category><![CDATA[Teambuild]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[Check-in]]></category>
		<category><![CDATA[CheckIn]]></category>
		<category><![CDATA[Continuous Build]]></category>
		<category><![CDATA[Gated]]></category>
		<category><![CDATA[tfs 2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/07/03/gated-builds-gated-check-in-mit-tfs2010-vs2010-aus-sicht-eines-entwicklers/</guid>

					<description><![CDATA[Seit TFS 2010 gibt es die Möglichkeit einen “Gated Check-in” zu erzwingen. Dadurch ändert sich das Handling für den normalen Entwickler ein bisschen, denn der TFS checkt den Code eines Entwicklers nur dann ein, wenn der “Gated Build” erfolgreich war. Wie der normale Workflow ist habe ich hier für alle Entscheidungen und Fälle bei einem [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Seit <a href="http://www.microsoft.com/germany/visualstudio/products/team/visual-studio-team-foundation-server.aspx" target="_blank">TFS 2010</a> gibt es die Möglichkeit einen <a href="http://msdn.microsoft.com/en-us/library/dd787631.aspx" target="_blank">“Gated Check-in”</a> zu erzwingen. Dadurch ändert sich das Handling für den normalen Entwickler ein bisschen, denn der TFS checkt den Code eines Entwicklers nur dann ein, wenn der “Gated Build” erfolgreich war.     <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image.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="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb.png?w=380&#038;h=100" width="380" height="100" /></a></p>
<p>Wie der normale Workflow ist habe ich hier für alle Entscheidungen und Fälle bei einem Gated Check-in zusammengefasst:</p>
<ul>
<li>
<h5>Unmittelbar vor dem Einchecken: </h5>
</li>
<ol>
<li>&quot;Get Latest&quot;, damit verhindert man ggf. Check-in Konflikte.</li>
<li>Rebuild Solution, danach ggf. Warnings, Fehler entfernen</li>
<li>UnitTests durchführen, evtl. Fehler beseitigen</li>
</ol>
<li>
<h5>Änderungen Einchecken:</h5>
</li>
<ol>
<li>Kommentar zum Check-in abgeben</li>
<li>Mit Work Item verknüpfen (im Idealfall mit einem Task, Bug und diesen auf Resolved stellen)</li>
<li>Mit OK wird der verbundene <em>“Gated Check-in”</em> angezeigt. Hier hat der Entwickler zwei Möglichkeiten (Änderungen lokal beibehalten, oder nicht beibehalten): </li>
<li><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb1.png?w=380&#038;h=232" width="380" height="232" /></a></li>
<li>Abhängig ob man die Änderungen lokal beibehalten oder nicht beibehalten hat, muss man je nach Erfolg des Builds verschiedene Schritte durchführen:</li>
</ol>
<li>
<h5>Nach erfolgreichem Build (&quot;Preserve my Pending Changes&quot;/Änderungen lokal beibehalten angewählt):</h5>
</li>
<ol>
<li><em>&quot;Reconcile Workspace&quot;</em> &#8211; gleicht lokalen Stand mit dem auf dem Server ab</li>
<li><em>&quot;Undo Pending Changes&quot;</em> &#8211; macht Checkout von nicht geänderten Dateien rückgängig</li>
<li>Jetzt hat man lokal wieder den letzten Stand aller Sourcen und hat keine Dateien mehr ausgecheckt.</li>
</ol>
<li>
<h5>Nach erfolgreichem Build (&quot;Preserve my Pending Changes&quot;/Änderungen lokal nicht beibehalten abge-wählt):</h5>
<ol>
<li><em>&quot;Get Latest&quot;</em> &#8211; letzten Stand abrufen, da vorher ein Shelve + undo pending changes lokal gemacht wurde</li>
</ol>
</li>
<li>
<h5>Nach Fehlerhaftem Build (&quot;Preserve my Pending Changes&quot; angewählt):</h5>
</li>
<ol>
<li>ggf. “Get Latest Version” oder “Get Specific Version”       <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image2.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="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb2.png?w=380&#038;h=143" width="380" height="143" /></a></li>
<li>Problem beheben, Fehler fixen, Tests fixen</li>
<li>Erneut einchecken und warten</li>
</ol>
<li>
<h5>Nach Fehlerhaftem Build (&quot;Preserve my Pending Changes&quot; abgewählt):</h5>
</li>
<ol>
<li>Stand &quot;unshelven&quot; um lokal wieder den Fehlerhaften Stand zu haben.</li>
<li>Problem beheben, Fehler fixen, Tests fixen</li>
<li>Erneut einchecken und warten</li>
</ol>
</ul>
<p>Man kann unabhängig ob man die Änderungen bei einem Gated Check-in lokal beibehält oder nicht prinzipiell weiterarbeiten. Vielleicht bietet es sich trotzdem an den Gated Build abzuwarten und solange keine weiteren Änderungen vorzunehmen. Wenn man sich mit den ganzen Workflows vertraut gemacht hat und die Mechanik verstanden hat, wird man feststellen, dass es durchaus möglich ist ganz normal weiterzuarbeiten und sich von der ganzen “Gated Build Problematik” nicht weiter einzuschränken. Es ist also meiner Meinung nach ein “Mythos” dass Gated Check-in eine Blockade oder Bremse bei der Entwicklung darstellt.</p>
<p>Dinge wie “<em>Reconcile</em>” oder “<em>Unshelve</em>” kann man an verschiedenen Stellen machen. Die beste ist eigentlich im “Build Explorer” an einem bestimmten Build mit rechter Maustaste:</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image3.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="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb3.png?w=216&#038;h=164" width="216" height="164" /></a>    <br /><strong>Rechte Maustaste an einem fehlgeschlagenen “Gated Build”</strong></p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image4.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="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb4.png?w=231&#038;h=143" width="231" height="143" /></a>    <br /><strong>Rechte Maustaste an einem erfolgreichen “Gated Build”</strong></p>
<p>Was alles bei einem Gated Check-in Workflow passieren soll (nur Compilieren, oder auch UnitTests usw.) entscheidet letztendlich der Buildmanager. Was man dort alles machen und optimieren kann werde ich in einem weiteren gesonderten Post beschreiben.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/07/03/gated-builds-gated-check-in-mit-tfs2010-vs2010-aus-sicht-eines-entwicklers/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">151</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/07/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>VS 2010 Extensions &#8211; meine Favoriten</title>
		<link>https://peroxide20.wordpress.com/2011/06/30/vs-2010-extensions-meine-favoriten/</link>
					<comments>https://peroxide20.wordpress.com/2011/06/30/vs-2010-extensions-meine-favoriten/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 20:08:31 +0000</pubDate>
				<category><![CDATA[AddOn]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[Extension]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/06/30/vs-2010-extensions-meine-favoriten/</guid>

					<description><![CDATA[Ich hatte ja schon mal vor langer Zeit einen beliebten Artikel zu Visual Studio Erweiterungen. Jetzt ist wieder viel Zeit vergangen und es ist inzwischen deutlich komfortabler geworden, dank des Extension Managers in Visual Studio. Hier also eine kleine Auflistung in verschiedenen Kategorien. Ohne geht gar nicht: ReSharper (die einzige kostenpflichtige in der Aufstellung) Productivity [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich hatte ja schon mal vor langer Zeit einen <a href="https://peroxide20.wordpress.com/2008/11/10/visual-studio-addons-addins-plugins-links/" target="_blank">beliebten Artikel zu Visual Studio Erweiterungen</a>. Jetzt ist wieder viel Zeit vergangen und es ist inzwischen deutlich komfortabler geworden, dank des Extension Managers in Visual Studio. Hier also eine kleine Auflistung in verschiedenen Kategorien.</p>
<h5>Ohne geht gar nicht:</h5>
<ul>
<li><a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a> (die einzige kostenpflichtige in der Aufstellung)</li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef" target="_blank">Productivity Power Tools</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/e5f41ad9-4edc-4912-bca3-91147db95b99" target="_blank">PowerCommands for Visual Studio 2010</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f" target="_blank">Team Foundation Server Power Tools March 2011</a></li>
</ul>
<h5>Sollte man haben:</h5>
<ul>
<li><a href="http://stylecop.codeplex.com/" target="_blank">Stylecop</a> (schon mit ReSharper Integration)</li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/080540cb-e35f-4651-b71c-86c73e4a633d" target="_blank">TFS Auto Shelve</a> (nie mehr das Shelven am Abend vergessen!)</li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/b8d3f3b8-4693-44b8-9998-310cdd8b08b2" target="_blank">Search Work Items</a></li>
</ul>
<h5>Kann man mal probieren und ist ganz nett:</h5>
<ul>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/46A20578-F0D5-4B1E-B55D-F001A6345748" target="_blank">GhostDoc</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/4b92b6ad-f563-4705-8f7b-7f85ba3cc6bb" target="_blank">Highlight all occurrences of selected word</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/237f823c-45b4-4f1f-b9e2-607fe66eaae7" target="_blank">Application Architecture Guide Layer Diagrams</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/9c8051f8-e8f7-45b1-8d04-dad6afc697d2" target="_blank">Architecture Layers Patterns</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/35daa606-4917-43c4-98ab-38632d9dbd45" target="_blank">Inmeta.VisualStudio.TeamExplorer.BuildExplorer</a></li>
</ul>
<p>Viel Spaß beim installieren und ausprobieren. Bis auf ReSharper sind alles kostenlose Extensions für Visual Studio 2010.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/06/30/vs-2010-extensions-meine-favoriten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">139</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS Check-In Policy &#124; Nur auf &#8220;aktive&#8221; Work Items einchecken</title>
		<link>https://peroxide20.wordpress.com/2011/06/30/nur-auf-aktive-work-items-einchecken/</link>
					<comments>https://peroxide20.wordpress.com/2011/06/30/nur-auf-aktive-work-items-einchecken/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 19:30:55 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[AddOn]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[Check-In Policy]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[tfs 2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/06/30/nur-auf-aktive-work-items-einchecken/</guid>

					<description><![CDATA[Ein Kollege fragte heute, wie er seine Entwickler dazu bekommt nur auf aktive Work Items im TFS einzuchecken. Ja dafür gibt es eigentlich eine ganz passable Möglichkeit in dem man die “Work Item Query Policy” verwendet. &#160; Team Project Settings &#62; Source Control &#160; Check-in Policy &#62; Add &#62; Work Item Query Policy Jetzt noch [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ein Kollege fragte heute, wie er seine Entwickler dazu bekommt nur auf aktive Work Items im TFS einzuchecken. Ja dafür gibt es eigentlich eine ganz passable Möglichkeit in dem man die “Work Item Query Policy” verwendet.</p>
<p>&#160;<a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image2.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image_thumb2.png?w=400&#038;h=206" width="400" height="206" /></a>     <br />Team Project Settings &gt; Source Control</p>
<p>&#160;<a href="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image3.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image_thumb3.png?w=400&#038;h=259" width="400" height="259" /></a>     <br />Check-in Policy &gt; Add &gt; Work Item Query Policy</p>
<p>Jetzt noch eine entsprechende Team Query auswählen und fertig. Jetzt können die Entwickler nur noch Work Items auswählen, die durch die Query gefunden werden. Sinnvoll ist dann z.B. “All My Active WorkItems” als Query anzulegen. Es kann aber auch Sinn machen, dass ein Entwickler nur WorkItems aus einem aktuellen Sprint wählen kann. Auch dass kann man ja durch anpassen der Query entsprechend erreichen.</p>
<p>Wo kommt nun diese Check-in Policy her? Jeder Teilnehmer des Team Projektes muss in seinem Visual Studio die folgende Extension installieren: <a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f?SRC=VSIDE" target="_blank">Team Foundation Server Power Tools March 2011</a></p>
<p>Der Projektadmin kann entsprechende Queries anlegen oder modifizieren und auch die Check-in Policies administrieren.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/06/30/nur-auf-aktive-work-items-einchecken/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">133</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2011/06/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Abfragen aller Builds auf einer Project Collection</title>
		<link>https://peroxide20.wordpress.com/2011/06/23/abfragen-aller-builds-auf-einer-project-collection/</link>
					<comments>https://peroxide20.wordpress.com/2011/06/23/abfragen-aller-builds-auf-einer-project-collection/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Thu, 23 Jun 2011 11:51:42 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[TFS API]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2011/06/23/abfragen-aller-builds-auf-einer-project-collection/</guid>

					<description><![CDATA[Mit der TFS API ist es relativ einfach zu einer Project Collection alle Build-Definitions und deren Eigenschaften abzufragen. Im Beispiel werden z.B. die gesetzten BuildController und Tags abgefragt: 1: using System; 2: using System.Linq; 3: using System.Xml.Linq; 4: using System.Xml.XPath; 5: using Microsoft.TeamFoundation.Build.Client; 6: using Microsoft.TeamFoundation.Client; 7: 8: namespace ConsoleApplication1 9: { 10: class Program [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Mit der TFS API ist es relativ einfach zu einer Project Collection alle Build-Definitions und deren Eigenschaften abzufragen. Im Beispiel werden z.B. die gesetzten BuildController und Tags abgefragt:</p>
<div style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;background-color:#fbfbfb;min-height:40px;width:430px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding:5px;">1: <span style="color:#0000ff;">using</span> System; </p>
<pre></pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  2: <span style="color:#0000ff;">using</span> System.Linq;
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  3: <span style="color:#0000ff;">using</span> System.Xml.Linq;
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  4: <span style="color:#0000ff;">using</span> System.Xml.XPath;
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  5: <span style="color:#0000ff;">using</span> Microsoft.TeamFoundation.Build.Client;
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  6: <span style="color:#0000ff;">using</span> Microsoft.TeamFoundation.Client;
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  7: 
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  8: <span style="color:#0000ff;">namespace</span> ConsoleApplication1
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;">  9: {
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 10:     <span style="color:#0000ff;">class</span> Program
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 11:     {
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 12:         <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 13:         {
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 14:             Console.WriteLine("<span style="color:#8b0000;">Collection Url:</span>");
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 15:             var MyCollectionUrl = "<span style="color:#8b0000;">http://tfs:8080/collection</span>";
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 16:             Console.WriteLine("<span style="color:#8b0000;">Collection Url: {0}</span>", MyCollectionUrl);
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 17:             var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(<span style="color:#0000ff;">new</span> Uri(MyCollectionUrl));
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 18:             var bs = tfs.GetService&lt;IBuildServer&gt;();
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 19:             var bsSpec = bs.CreateBuildDefinitionSpec("<span style="color:#8b0000;">*</span>", "<span style="color:#8b0000;">*</span>");
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 20:             var results = bs.QueryBuildDefinitions(bsSpec);
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 21: 
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 22:             <span style="color:#0000ff;">foreach</span> (var qb <span style="color:#0000ff;">in</span> results.Definitions)
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 23:             {
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 24:                 <span style="color:#0000ff;">if</span> (qb.BuildController != <span style="color:#0000ff;">null</span>)
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 25:                 {
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 26:                     var cu = qb.BuildController.Name;
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 27:                     var p2 = qb.BuildController.ServiceHost.Name;
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 28:                     <span style="color:#0000ff;">string</span> tags = "<span style="color:#8b0000;">null</span>";
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 29:                     <span style="color:#0000ff;">if</span> (qb.ProcessParameters != <span style="color:#0000ff;">null</span>)
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 30:                     {
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 31:                         var xmlProcessParameters = XElement.Parse(qb.ProcessParameters);
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 32: 
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 33:                         var agentsettings =
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 34:                             xmlProcessParameters.Nodes().Select(xNode =&gt; xNode).Where(
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 35:                                 name =&gt; name.ToString().Contains("<span style="color:#8b0000;">AgentSettings</span>"));
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 36:                         <span style="color:#0000ff;">if</span> (agentsettings.FirstOrDefault() != <span style="color:#0000ff;">null</span>)
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 37:                             tags = agentsettings.First().CreateNavigator().GetAttribute("<span style="color:#8b0000;">Tags</span>", <span style="color:#0000ff;">string</span>.Empty);
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 38:                     }
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 39: 
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 40:                     <span style="color:#0000ff;">string</span> def = qb.TeamProject + @"<span style="color:#8b0000;">\</span>" + qb.Name;
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 41:                     Console.WriteLine("<span style="color:#8b0000;">{0}\t{1}\t{2}\tTags: {3} </span>", cu, p2, def, tags);
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 42:                 }
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 43:                 <span style="color:#0000ff;">else</span>
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 44:                 {
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 45:                     <span style="color:#0000ff;">string</span> def = qb.TeamProject + @"<span style="color:#8b0000;">\</span>" + qb.Name;
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 46:                     Console.WriteLine("<span style="color:#8b0000;">{0}\t{1}\t{2} </span>", "<span style="color:#8b0000;">null</span>", "<span style="color:#8b0000;">null</span>", def);
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 47:                 }
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 48:             }
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 49: 
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 50:             Console.ReadLine();
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 51:         }
</pre>
<pre style="background-color:#ffffff;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 52:     }
</pre>
<pre style="background-color:#fbfbfb;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;margin:0;"> 53: }</pre>
</div>
<p>In der Ausgabe erhält man bei diesem Beispiel eine Ansicht aller Teamprojekte der Projektcollection “collection” auf die man als Ausführer Zugriff besitzt. Welcher Buildcontroller und welche Agent-Tags werden für welche Builddefinition verwendet.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2011/06/23/abfragen-aller-builds-auf-einer-project-collection/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">124</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft Process Template (MPT) mit TFS2010</title>
		<link>https://peroxide20.wordpress.com/2010/06/04/microsoft-process-template-mpt-mit-tfs2010/</link>
					<comments>https://peroxide20.wordpress.com/2010/06/04/microsoft-process-template-mpt-mit-tfs2010/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Fri, 04 Jun 2010 10:40:09 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#4.0]]></category>
		<category><![CDATA[Process-Template]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[mpt]]></category>
		<category><![CDATA[Process Template]]></category>
		<category><![CDATA[tfs 2008]]></category>
		<category><![CDATA[tfs 2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2010/06/04/microsoft-process-template-mpt-mit-tfs2010/</guid>

					<description><![CDATA[Microsoft hat auf Codeplex ein Template zur Verfügung gestellt, dass für Visual Studio Team System 2008 (VSTS) eine hierarchische Abbildung von Work Items ermöglicht. Mit TFS 2010 wird die Hierarchie nun aber von Haus aus unterstützt und somit ist mit Sicherheit eine Reimplementierung dieses Templates notwendig. Zur Zeit steht aber weder dieses Template auf Codeplex [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Microsoft hat auf C<a href="http://mpt.codeplex.com/" target="_blank">odeplex</a> ein Template zur Verfügung gestellt, dass für Visual Studio Team System 2008 (VSTS) eine hierarchische Abbildung von Work Items ermöglicht. Mit <a href="http://www.microsoft.com/germany/visualstudio/products/team/visual-studio-team-foundation-server.aspx" target="_blank">TFS 2010</a> wird die Hierarchie nun aber von Haus aus unterstützt und somit ist mit Sicherheit eine Reimplementierung dieses Templates notwendig. Zur Zeit steht aber weder dieses Template auf Codeplex zur Verfügung noch, dass es Infos zu diesem Template im Zusammenhang mit TFS 2010 existieren.</p>
<p>Wir haben dieses Template etwas abgewandelt eingesetzt und standen jetzt aber vor dem Schritt, wie wir dieses weiter unter TFS 2010 supporten, bevor die Projekte auslaufen oder auf neue Templates migriert werden. Die gute Nachricht vorweg, wir haben einen Weg für uns gefunden, den zugehörigen Dienst weiterhin funktionstüchtig zu halten. Dazu hier ein kurzer Abriss zu den notwendigen Schritten:</p>
<ol>
<li>Es bietet sich an die Solution mit Visual Studio 2010 zu öffnen und die verwendeten Referenzen auf den TFS neu zu setzen (von Version 9.0.0.0 auf 10.0.0.0)      <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image_thumb.png?w=400&#038;h=165" width="400" height="165" /></a>       <br />Das gilt für das Projekt “MptCodeLibrary” und “Test.UnitTest” </li>
<li>Ein Recompile des Codes liefert jetzt einige Warnungen von denen man einige sehr schnell abarbeiten kann. Folgende Änderung sollte man auf jeden Fall durchführen:
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:95.28%;font-family:&#039;direction:ltr;height:51px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> TeamFoundationServer tfs </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>   = TeamFoundationServerFactory.GetServer(serverName)</pre>
<p><!--CRLF--></div>
</p></div>
<p>ersetzen durch: </p>
<p></p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:95.86%;font-family:&#039;direction:ltr;height:74px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> TfsTeamProjectCollection tfs </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>   = TfsTeamProjectCollectionFactory.</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     GetTeamProjectCollection(<span style="color:#0000ff;">new</span> Uri(serverName));</pre>
<p><!--CRLF--></div>
</p></div>
<p></li>
<li>In der App.config müssen die WCF Einstellungen an 2 Stellen angepasst werden, weitere Infos findet man auch <a href="http://mskold.blogspot.com/2010/02/upgrading-tfs-event-subscriptions-to.html" target="_blank">hier</a> und <a href="http://www.google.de/url?q=http://social.msdn.microsoft.com/Forums/en-US/tfsgeneral/thread/d6260ca0-ec1a-4fb3-af1e-b5efdf83975b&amp;sa=X&amp;ei=_bMITJ7hJcOXOObzhdsP&amp;ved=0CBkQrAIoADAA&amp;usg=AFQjCNGydjuLrF-kc_4qB5EKP1TWOTK11g" target="_blank">hier</a>:&#160;
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image1.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image_thumb1.png?w=400&#038;h=99" width="400" height="99" /></a> </p>
<p><strong>basicHttpBinding zu wsHttpBinding</strong>&#160; <br />und wsHttpBinding muss&#160; an der entsprechenden Stelle noch konfiguriert werden: </p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:98.7%;font-family:&#039;direction:ltr;height:189px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100.24%;font-family:&#039;direction:ltr;height:158px;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">bindings</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">webHttpBinding</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     ...</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">webHttpBinding</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">wsHttpBinding</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">binding</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&quot;noSecurity&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>       <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">security</span> <span style="color:#ff0000;">mode</span><span style="color:#0000ff;">=&quot;None&quot;</span><span style="color:#0000ff;">/&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">binding</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>   <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">wsHttpBinding</span> <span style="color:#0000ff;">&gt;</span>          </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">bindings</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></div>
</p></div>
</li>
<li>Es muss jetzt die URL der Collection zu den Team Projekten in die App.config eingetragen werden.
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:98.58%;font-family:&#039;direction:ltr;height:99px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">teamServerSection</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>  <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">teamservers</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">teamserver</span> <span style="color:#ff0000;">servername</span><span style="color:#0000ff;">=&quot;http://tfs:8080/tfs/default&quot;</span> <span style="color:#0000ff;">/&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>  <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">teamservers</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">teamServerSection</span><span style="color:#0000ff;">&gt;</span></pre>
<p><!--CRLF--></div>
</p></div>
</li>
<li>In der TeamFoundationFacade muss in einer Methode die Sid ermittelt und mit übergeben werden (alter Code wurde auskommentiert):
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:98.63%;font-family:&#039;direction:ltr;height:273px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> SignupForReceivingEvent(<span style="color:#0000ff;">string</span> serverName, </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>     <span style="color:#0000ff;">string</span> receiverPath, <span style="color:#0000ff;">string</span> filterExpression)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span> ...</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>   <span style="color:#0000ff;">try</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>   {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#008000;">//eventEndpoint.SubscribeEvent(&quot;Sid is ignored&quot;, </span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     <span style="color:#008000;">//  &quot;WorkItemChangedEvent&quot;, filterExpression, delPreference);</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>     <span style="color:#008000;">// get sid from current user</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>     <span style="color:#0000ff;">string</span> sid </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         = System.Security.Principal.WindowsIdentity</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>         .GetCurrent().User.Value;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>     eventEndpoint.SubscribeEvent(sid, <span style="color:#006080;">&quot;WorkItemChangedEvent&quot;</span>, </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span>         filterExpression, delPreference);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum15">  15:</span>   }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum16">  16:</span> ...</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum17">  17:</span> }</pre>
<p><!--CRLF--></div>
</p></div>
</li>
<li>Jetzt sollte man den Stand erreicht haben, dass wieder Events am Service ankommen, doch leider werden sie noch nicht richtig bearbeitet. Dazu muss eine weitere kleine Anpassung in GlobalListBuilder erfolgen (in diesem Fall wurde nur für eine Collection eine Unterstützung eingebaut!!!):
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:96.79%;font-family:&#039;direction:ltr;height:270px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">string</span> DeriveTfsServerName(</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>   XContainer workItemChangedEvent)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>   ...</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>   Uri artifactMoniker = <span style="color:#0000ff;">new</span> Uri(displayUrlElement.First().Value);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>   <span style="color:#008000;">//IEnumerable&lt;TeamServerConfiguration&gt; teamServers </span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>   <span style="color:#008000;">//   = from teamServer in mptConfiguration.TeamServers where ...</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span> ...</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>   <span style="color:#008000;">//if (teamServers.Count() &lt;= 0)</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>   <span style="color:#008000;">//    throw new MptException(&quot;Could not determine the TFS...</span></pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>   <span style="color:#0000ff;">return</span> artifactMoniker.Scheme + <span style="color:#006080;">&quot;://&quot;</span> </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>          + artifactMoniker.Authority </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>          +<span style="color:#006080;">&quot;/tfs/defaultCollection&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#039;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span> }</pre>
<p><!--CRLF--></div>
</p></div>
</li>
<li>Jetzt sollte sowohl der Dienst als auch das TFS Event empfangen und bearbeiten funktionieren. </li>
</ol>
<p>Ziel ist es nach der Migration des TFS 2008 auf TFS 2010 die Projekte mit dem <a href="http://mpt.codeplex.com/" target="_blank">MPT Template</a> weiter zu unterstützen, aber perspektivisch auf ein neues Template zu migrieren. Dazu wollen wir die Tools von der <a href="http://tfsintegration.codeplex.com/" target="_blank">TfsIntegration</a> Plattform verwenden. Vielleicht kann ich ja dazu in den kommenden Wochen auch noch Erfahrungsberichte veröffentlichen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2010/06/04/microsoft-process-template-mpt-mit-tfs2010/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">123</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/06/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>SmartCard Reader Cherry ST-2000 mit Windows 7 und StarMoney 7</title>
		<link>https://peroxide20.wordpress.com/2010/03/05/smartcard-reader-cherry-st-2000-mit-windows-7-und-starmoney-7/</link>
					<comments>https://peroxide20.wordpress.com/2010/03/05/smartcard-reader-cherry-st-2000-mit-windows-7-und-starmoney-7/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:58:27 +0000</pubDate>
				<category><![CDATA[cherry]]></category>
		<category><![CDATA[HBCI]]></category>
		<category><![CDATA[Off-Topic]]></category>
		<category><![CDATA[SmartCard]]></category>
		<category><![CDATA[Starmoney]]></category>
		<category><![CDATA[Treiber]]></category>
		<category><![CDATA[Windows7]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2010/03/05/smartcard-reader-cherry-st-2000-mit-windows-7-und-starmoney-7/</guid>

					<description><![CDATA[Da mein letzter Artikel zu einem Windows 7 Problem mit einem HP Scanner so großen Zuspruch genießt, dachte ich mir ich werde auch eine weitere Problemlösung die nicht zum sonstigen Inhalte meines Blogs passt hier veröffentlichen. Mir ging es darum meinen SmartCard Reader von Cherry (ST-2000U) unter Windows 7 zum Laufen zu bekommen und vor [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Da mein <a href="https://peroxide20.wordpress.com/2010/01/30/hp-scanjet-4100c-scanner-unter-windows-7-verwenden/" target="_blank">letzter Artikel zu einem Windows 7 Problem mit einem HP Scanner</a> so großen Zuspruch genießt, dachte ich mir ich werde auch eine weitere Problemlösung die nicht zum sonstigen Inhalte meines Blogs passt hier veröffentlichen.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/st2000_4681.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="ST-2000_468[1]" border="0" alt="ST-2000_468[1]" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/st2000_4681_thumb.jpg?w=400&#038;h=228" width="400" height="228" /></a> </p>
<p>Mir ging es darum meinen <a href="http://www.cherry.de/deutsch/produkte/kartenlesegeraete_SmartTerminal_ST-2000U.htm" target="_blank">SmartCard Reader von Cherry</a> (ST-2000U) unter Windows 7 zum Laufen zu bekommen und vor allem den PIN-Modus 2 (PIN Eingabe am Card Reader und nicht auf der Computertastatur) im Zusammenhang mit <a href="https://www.starfinanz.de/" target="_blank">Starmoney</a> (HBCI) verwenden zu können. </p>
<p>Auf den <a href="http://www.cherry.de/deutsch/service/download.php" target="_blank">Seiten von Cherry</a> gibt es zwar einen <a href="http://www.cherry.de/files/software/Cherry-SmartDeviceSetup_20_DE.msi" target="_blank">aktuellen Treiber</a> auch für Windows 7, doch leider hat bei mir immer nur der PIN Modus 1 (PIN auf der Computer Tastatur eingeben) funktioniert.</p>
<p>Um den Kartenleser mit <a href="https://www.starfinanz.de/" target="_blank">Starmoney</a> zu verwenden öffnet man das Kartenleser Setup und findet dann unter Ct API leider keinen Kartenleser zur Auswahl. Auch das Manuelle einrichten (<a href="https://www.starfinanz.de/forum/viewtopic.php?f=85&amp;t=16569" target="_blank">wie hier beschrieben</a>) hat bei mir nicht funktioniert.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb.png?w=277&#038;h=305" width="277" height="305" /></a>     <br /><strong><font size="1">Starmoney 7 Kartenleser Setup</font></strong></p>
<p>Nach ein bisschen Recherche bin irgendwie auf SCM Microsystems SPR 532 gekommen und habe mir das Packet “<a href="http://www.scmmicro.com/support_tmp/download.php?file=SPR532_setup_V1.86.zip" target="_blank">SCM Microsystems SPR 532 SmartCard Reader (SPR532 PC/SC CT-API installer)</a>” heruntergeladen und installiert.</p>
<p>Nach einem Neustart tauchte auch im Starmoney Kartenleser Setup unter Ct API der neue Eintrag auf.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image1.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb1.png?w=277&#038;h=305" width="277" height="305" /></a>     <br /><strong><font size="1">Starmoney 7 Kartenleser Setup – Neuer Eintrag unter Ct API</font></strong></p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image2.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb2.png?w=400&#038;h=278" width="400" height="278" /></a>     <br /><strong><font size="1">Starmoney 7 Kartenleser Setup – PIN-Modus 2 in den Eigenschaften</font></strong></p>
<p>In den Eigenschaften war der Test auch mit PIN Modus 2 erfolgreich. Im Starmoney kann mit diesem Standard-Reader wie gewohnt auch unter Windows 7 die HBCI Pin am PIN Pad eingegeben werden.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image3.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb3.png?w=325&#038;h=196" width="325" height="196" /></a>    <br /><strong><font size="1">PIN Abfrage mit Eingabe am PIN Pad</font></strong>&#160;</p>
<p>Vielleicht habe ich nur irgendetwas Falsch gemacht, aber da das gewünschte Ergebnis in dieser Variante erreicht ist bin ich vorerst zufrieden und vielleicht hilft der Post trotzdem dem ein oder anderen mit ähnlichen Problemen und Anforderungen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2010/03/05/smartcard-reader-cherry-st-2000-mit-windows-7-und-starmoney-7/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">116</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/st2000_4681_thumb.jpg" medium="image">
			<media:title type="html">ST-2000_468[1]</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>HP ScanJet 4100C Scanner unter Windows 7 verwenden</title>
		<link>https://peroxide20.wordpress.com/2010/01/30/hp-scanjet-4100c-scanner-unter-windows-7-verwenden/</link>
					<comments>https://peroxide20.wordpress.com/2010/01/30/hp-scanjet-4100c-scanner-unter-windows-7-verwenden/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Sat, 30 Jan 2010 14:01:07 +0000</pubDate>
				<category><![CDATA[HP]]></category>
		<category><![CDATA[Off-Topic]]></category>
		<category><![CDATA[Treiber]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[Windows7]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2010/01/30/hp-scanjet-4100c-scanner-unter-windows-7-verwenden/</guid>

					<description><![CDATA[Weil ich daran eine Weile gebastelt habe und mich dann so gefreut habe, dass es doch funktioniert einen 11 Jahre alten Flachbettscanner von HP unter Windows 7 zum laufen zu bringen möchte ich die Lösung hier mal teilen, auch wenn es sonst eher nicht zu den Inhalten auf meinem Blog passt.&#160; Wer will schon einen [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Weil ich daran eine Weile gebastelt habe und mich dann so gefreut habe, dass es doch funktioniert einen 11 Jahre alten Flachbettscanner von HP unter Windows 7 zum laufen zu bringen möchte ich die Lösung hier mal teilen, auch wenn es sonst eher nicht zu den Inhalten auf meinem Blog passt.&#160; Wer will schon einen eigentlich funktionierenden Scanner den man nur 1 mal im Monat benötigt durch einen neuen ersetzen?</p>
<p>Ich bin folgend vorgegangen:</p>
<ol>
<li><a href="http://download.cnet.com/HP-TWAIN-DS-zip/3000-2110_4-113567.html" target="_blank">Hier</a> habe ich ein <a href="http://download.cnet.com/HP-TWAIN-DS-zip/3000-2110_4-113567.html" target="_blank">HP-TWAIN-DS</a> Paket heruntergeladen.      <br />Das ist für folgende Scanner unter Windows 95/98/2000/XP/2003/NT:</li>
</ol>
<ol>
<ul>
<li>Hewlett-Packard ScanJet 7400C </li>
<li>Hewlett-Packard ScanJet 5p </li>
<li>Hewlett-Packard ScanJet 6100C </li>
<li>Hewlett-Packard ScanJet 4p </li>
<li>Hewlett-Packard ScanJet 3p </li>
<li>Hewlett-Packard ScanJet IIcx </li>
<li>Hewlett-Packard ScanJet IIp </li>
<li>Hewlett-Packard ScanJet IIc </li>
<li>Hewlett-Packard ScanJet 5100C </li>
<li>Hewlett-Packard ScanJet 6200C </li>
<li>Hewlett-Packard ScanJet 5200C </li>
<li>Hewlett-Packard ScanJet 6300C </li>
<li>Hewlett-Packard ScanJet 4100C </li>
</ul>
</ol>
<li>Das habe ich entpackt und anschließend im Gerätemanager für den Scanner nach einem Treiber auf dem Rechner im entpackten Ordner gesucht.     <br /><a href="https://peroxide20.wordpress.com/wp-content/uploads/2010/01/image.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2010/01/image_thumb.png?w=260&#038;h=195" width="260" height="195" /></a>       <br />Wichtig ist dabei, dass man manuell “Auf dem Computer nach einem Treiber” sucht und dort “Aus einer Liste von Gerätetreibern auf dem Computer” wählt und im Anschluss auf “Datenträger” klickt um den Ordner auszuwählen.</li>
<li>Der Treiber für den HP ScanJet 4100C steht zur Auswahl und wurde erfolgreich installiert.</li>
<li>Leider konnte man nun trotz erfolgreich installierten Treiber mit keiner Software einen Scan starten also versuchte ich HP Software zu finden.</li>
<li>Danach benötigt man die HP Scansoftware die man <a href="http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=sj398en&amp;lc=en&amp;dlc=en&amp;cc=us&amp;lang=en&amp;os=181&amp;product=58394" target="_blank">hier</a> findet heruntergeladen, entpackt und installiert. (Ggf. Windows XP kompatibilitätsmodus einschalten, bei mir ging es auch ohne)</li>
<li>Rechner neu starten.</li>
<li>Sowohl mit den Tasten am Scanner als auch direkt über die Programme (Scannen bzw. kopieren) konnte ich den Scanner nutzen. Die Programme habe ich auf “Windows XP SP3” Kompatibilitätsmodus konfiguriert.</li>
<li>Windows Fax und Scan erkennt den Scanner leider trotzdem nicht, stört mich aber nicht solange die anderen HP Tools den Scanner ansprechen können.</li>
<p><a href="http://www.motherboardpoint.com/scanjet-4100-c-under-windows-xp-fix-t51607.html" target="_blank">Dieser Eintrag</a> hat mich auf diese Idee gebracht. Das ganze sollte auch unter Windows Vista funktionieren denke ich. Auch da hatte ich eine Weile geforscht, den Scanner aber nie richtig zum laufen bekommen (außer mit <a href="http://www.hamrick.com/" target="_blank">VueScan</a>). Viel Spaß, vielleicht hilft der Tipp ja noch dem einen oder anderen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2010/01/30/hp-scanjet-4100c-scanner-unter-windows-7-verwenden/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">105</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2010/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010, TFS 2010 Linksammlung</title>
		<link>https://peroxide20.wordpress.com/2010/01/27/visual-studio-2010-tfs-2010-linksammlung/</link>
					<comments>https://peroxide20.wordpress.com/2010/01/27/visual-studio-2010-tfs-2010-linksammlung/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Wed, 27 Jan 2010 09:12:26 +0000</pubDate>
				<category><![CDATA[alm]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[patterns&practices]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2010/01/27/visual-studio-2010-tfs-2010-linksammlung/</guid>

					<description><![CDATA[Hier ein paar gesammelte und kategorisierte Links zum Thema TFS 2010, Visual Studio 2010. Links &#124; Guidance, best practices Visual Studio TFS Branching Guide 2010 Team Development with Visual Studio Team Foundation Server Visual Studio 2010 Quick Reference Guidance Visual Studio 2010 Team Foundation Server Requirements Management Guidance Microsoft Visual Studio 2010 Test Case Import [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Hier ein paar gesammelte und kategorisierte Links zum Thema TFS 2010, Visual Studio 2010.</p>
<p><strong>Links | Guidance, best practices<br />
</strong></p>
<ul>
<li><a href="http://tfsbranchingguideiii.codeplex.com/">Visual Studio TFS </a><a href="http://tfsbranchingguideiii.codeplex.com/">Branching</a><a href="http://tfsbranchingguideiii.codeplex.com/"> Guide 2010</a></li>
<li><a href="http://tfsguide.codeplex.com/">Team Development with Visual Studio Team Foundation Server</a></li>
<li><a href="http://vs2010quickref.codeplex.com/">Visual Studio 2010 Quick Reference Guidance</a><a href="http://vstfs2010rm.codeplex.com/"> </a></li>
<li><a href="http://vstfs2010rm.codeplex.com/">Visual Studio 2010 Team Foundation Server Requirements Management Guidance </a></li>
<li><a href="http://tcmimport.codeplex.com/">Microsoft Visual Studio 2010 Test Case Import Utilities</a></li>
<li><a href="http://msbuildextensionpack.codeplex.com/">MSBuild Extension Pack</a></li>
</ul>
<p><strong>Links | Entwicklung</strong></p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx">Visual Studio 2010 and .NET Framework 4</a><a href="http://spvsx.codeplex.com/"> </a></li>
<li><a href="http://spvsx.codeplex.com/">SharePoint 2010 Visual Studio 2010 Extensions project</a></li>
<li><a href="http://cksdev.codeplex.com/">Community Kit for SharePoint: Development Tools Edition</a></li>
<li><a href="http://sptoolbasket2010.codeplex.com/">SharePoint Tool Basket 2010</a></li>
</ul>
<p><strong>Links | Infrastruktur</strong></p>
<ul>
<li><a href="http://ranversvsvmfactory.codeplex.com/">Visual Studio 2010 and Team Foundation Server 2010 VM Factory</a></li>
<li><a href="http://vs2010upgradeguide.codeplex.com/">Visual Studio 2010 TFS Upgrade Guide</a></li>
<li><a href="http://tfsintegration.codeplex.com/">TFS Integration </a><a href="http://tfsintegration.codeplex.com/">Platform</a></li>
<li><a href="http://witsynchronizer.codeplex.com/">WIT </a><a href="http://witsynchronizer.codeplex.com/">Synchronizer</a></li>
</ul>
<p><strong>Links | Installation</strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ca86215b-a824-44e7-b4c3-982c7ecea46d&amp;displaylang=en">Visual Studio Team Explorer 2010</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&amp;displaylang=en">Visual Studio Team System 2008 Service Pack 1 Forward Compatibility Update for Team Foundation Server 2010</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=60A539EA-A345-446A-9DA0-EF86E4A4798F&amp;displaylang=en">Microsoft Visual Studio Test Elements 2010</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=DC333AC8-596D-41E3-BA6C-84264E761B81&amp;displaylang=en">Microsoft Visual Studio 2010 Ultimate</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99">Visual Studio Power Commands</a></li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/en-us/0e69a28f-020c-488b-80b3-f4c89a20621d">Team Foundation Server Power Tools 2010</a></li>
</ul>
<p><strong>Links | Blogs</strong></p>
<ul>
<li><a href="http://blogs.msdn.com/bharry/default.aspx">Brian Harry</a></li>
<li><a href="http://blogs.msdn.com/granth/default.aspx">Granth‘s </a><a href="http://blogs.msdn.com/granth/default.aspx">blog</a></li>
<li><a href="http://blogs.msdn.com/willy-peter_schaub/default.aspx">VSTS </a><a href="http://blogs.msdn.com/willy-peter_schaub/default.aspx">Rangers</a></li>
<li><a href="http://blogs.msdn.com/vstsqualitytools/default.aspx">Visual Studio Team Test</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2010/01/27/visual-studio-2010-tfs-2010-linksammlung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">101</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS 2010 Beta 2 Installation &#8211; Advanced Scenario</title>
		<link>https://peroxide20.wordpress.com/2009/12/02/tfs-2010-beta-2-installation-advanced-scenario/</link>
					<comments>https://peroxide20.wordpress.com/2009/12/02/tfs-2010-beta-2-installation-advanced-scenario/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Wed, 02 Dec 2009 09:07:42 +0000</pubDate>
				<category><![CDATA[alm]]></category>
		<category><![CDATA[Process-Template]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Powertools]]></category>
		<category><![CDATA[TFS 2010 Beta2]]></category>
		<category><![CDATA[Topologie]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2009/12/02/tfs-2010-beta-2-installation-advanced-scenario/</guid>

					<description><![CDATA[Vor ein paar Tagen hatte ich ja schon kurz vom TFS 2010 Beta 2 berichtet. Jetzt kann ich auch ein paar Details berichten. Ziel war es Application Tier (AT), Data Tier (DT) und Sharepoint voneinander zu trennen. Die Installation erfolgt also auf 3 Maschinen. Alle 3 wurden mit Windows 2008 R2 Enterprise Server ausgestattet. Auf [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vor ein paar Tagen hatte ich ja schon kurz vom TFS 2010 Beta 2 berichtet. Jetzt kann ich auch ein paar Details berichten.</p>
<p>Ziel war es Application Tier (AT), Data Tier (DT) und Sharepoint voneinander zu trennen. Die Installation erfolgt also auf 3 Maschinen. Alle 3 wurden mit Windows 2008 R2 Enterprise Server ausgestattet. Auf dem DT wurde dann SQL Server 2008 Standard Edition SP1 mit Reporting- und Analysis Services installiert. Das ganze ging relativ schnell und ohne weitere Komplikationen. Jetzt wollte ich den AT installieren, da die SharePoint-Komponente für den TFS 2010 optional ist und somit auch im Nachgang installiert und konfiguriert werden kann.</p>
<p>Der AT ist eigentlich auch ziemlich übersichtlich zu installieren, nur an einer Stelle kann es passieren, dass man ins stocken gerät. Bei den Analysis Services erscheint wahrscheinlich bei den meisten erst mal der Fehler “<strong>TF255040: Install SQL Reporting Services or at a minimum SQL Client Connectivity Tools on the application tier to ensure Analysis Services object model is present for warehouse processing.</strong>” Meine Lösung zu dem Thema sieht wie folgt aus. Ich habe auf dem AT das <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b" target="_blank">SQL Management Studio 2008 installiert</a> und den Installation-Wizard + TFS Admin-Console komplett geschlossen (das ist wichtig!!!). Nach dem neu Öffnen der TFS Admin Console und des Installation-Wizard hat der Test im Analysis Service Bereich nach Eingabe des SQL Servers geklappt und der Installation stand nix mehr im wege.</p>
<p>Beim Sharepoint 2007 (MOSS) auf dem W2k8 R2 Server gab es das nächste Problem (KB article 962935, der aber leider noch nicht live zu sein scheint…). Hier hilft ein <a href="http://blogs.msdn.com/sharepoint/archive/2009/10/02/install-sharepoint-server-2007-on-windows-server-2008-r2.aspx" target="_blank">Eintrag vom SharePoint Blog</a>. Folgt man der Anleitung für SharePoint 2007 SP2 Slipsteam, dann klappt es mit der Installation auch ohne Fehlermeldung.</p>
<p>Jetzt, da endlich die <a href="http://blogs.msdn.com/bharry/archive/2009/12/01/tfs-2010-power-tools-are-available.aspx" target="_blank">TFS 2010 Beta 2 PowerTools verfügbar</a> sind kann es auch mit dem Customizing des ProzessTemplates los gehen. Infos dazu kommen sicher bald.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2009/12/02/tfs-2010-beta-2-installation-advanced-scenario/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">100</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>Neues von der 2010er Welle &#8211; TFS2010, SharePoint 2010</title>
		<link>https://peroxide20.wordpress.com/2009/10/19/neues-von-der-2010er-welle-tfs2010-sharepoint-2010/</link>
					<comments>https://peroxide20.wordpress.com/2009/10/19/neues-von-der-2010er-welle-tfs2010-sharepoint-2010/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Mon, 19 Oct 2009 19:49:45 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#4.0]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Sharepoint2010]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2009/10/19/neues-von-der-2010er-welle-tfs2010-sharepoint-2010/</guid>

					<description><![CDATA[Heute ist nun nach langem Warten endlich die Beta 2 (mit “Go live” Lizenz) des Microsoft Team Foundation Servers 2010 veröffentlicht worden. Auch das Lizenzmodell und die Bezeichnungen der Visual Studio 2010 Versionen haben sich geändert. Sie heißen jetzt: Express Professional Premium Ultimate Wir haben uns den Team Foundation Server 2010 Beta 2 und die [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Heute ist nun nach langem Warten endlich die <a href="http://msdn.microsoft.com/de-de/vstudio/dd582936.aspx" target="_blank">Beta 2</a> (mit “<a href="http://blogs.msdn.com/bharry/archive/2009/10/03/going-live-with-tfs-beta-2.aspx" target="_blank">Go live” Lizenz</a>) des <a href="http://blogs.msdn.com/bharry/archive/2009/10/19/vs-2010-beta-2-is-now-available-for-msdn-subscriber-download.aspx" target="_blank">Microsoft Team Foundation Servers 2010 veröffentlicht worden</a>. Auch das Lizenzmodell und die <a href="http://blogs.msdn.com/bharry/archive/2009/10/19/vs-2010-licensing-changes.aspx" target="_blank">Bezeichnungen der Visual Studio 2010 Versionen</a> haben sich geändert. Sie heißen jetzt:</p>
<ul>
<li>Express </li>
<li>Professional </li>
<li>Premium </li>
<li>Ultimate</li>
</ul>
<p>Wir haben uns den Team Foundation Server 2010 Beta 2 und die Visual Studio 2010 Ultimate Beta 2 Edition schon runtergeladen und morgen geht die Evaluation los. Sowohl intern als auch für ein Kundenprojekt haben wir schon auf die Beta 2 gewartet. Da ist in den nächsten Wochen und Monaten sicher noch die ein oder andere News hier zu erwarten.</p>
<p>Bezüglich Sharepoint 2010 gab es heute mit dem Start der <a href="http://www.mssharepointconference.com/Pages/default.aspx" target="_blank">Sharepoint-Konferenz 2009 in Las Vegas</a> auch die dazu passenden Neuigkeiten. So ist vor allem auch für die <a href="http://msdn.microsoft.com/en-us/library/ee330921%28VS.100%29.aspx" target="_blank">Entwickler mit Visual Studio 2010 + Sharepoint 2010</a> ein erheblicher Schritt nach vorn unternommen worden. </p>
<p>Weitere englischsprachige Anleitungen zu Visual Studio 2010 (mit Sharepoint 2010, Silverlight, WPF, Parallel Computing, Office Development, Workflow Foundation und vielen mehr) findet ihr <a href="http://msdn.microsoft.com/de-de/vstudio/dd441784%28en-us%29.aspx" target="_blank">hier</a>.</p>
<p>Viel Spaß, ich hoffe und denke den werde ich auch haben;)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2009/10/19/neues-von-der-2010er-welle-tfs2010-sharepoint-2010/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">99</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
		<item>
		<title>Team Foundation Server &#8211; Prozess Template anpassen</title>
		<link>https://peroxide20.wordpress.com/2009/07/27/team-foundation-server-prozess-template-anpassen/</link>
					<comments>https://peroxide20.wordpress.com/2009/07/27/team-foundation-server-prozess-template-anpassen/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Mon, 27 Jul 2009 11:05:51 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[alm]]></category>
		<category><![CDATA[Process-Template]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[VS2008]]></category>
		<category><![CDATA[VSTS]]></category>
		<category><![CDATA[Process Template Manager]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2009/07/27/team-foundation-server-prozess-template-anpassen/</guid>

					<description><![CDATA[Wer sich schon immer gefragt hat wie man das Prozess Template anpassen kann kommt auf keinen Fall am “Process Template Manager” des TFS vorbei. Zu finden ist dieser im “Team Explorer” (z.B. Visual Studio 2005/2008 öffnen) und das Team Explorer Fenster anzeigen (View &#62; Team Explorer). Wenn man dort den TFS Server eingetragen hat, kann [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Wer sich schon immer gefragt hat wie man das Prozess Template anpassen kann kommt auf keinen Fall am “Process Template Manager” des TFS vorbei.</p>
<p>Zu finden ist dieser im “Team Explorer” (z.B. Visual Studio 2005/2008 öffnen) und das Team Explorer Fenster anzeigen (View &gt; Team Explorer). Wenn man dort den TFS Server eingetragen hat, kann man den “Process Template Manager” unter “Team Foundation Server Settings” finden.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager.jpg" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="processtemplatemanager" border="0" alt="processtemplatemanager" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager_thumb.jpg?w=260&#038;h=187" width="260" height="187" /></a>&#160; <br /><strong>Process Template Manager starten</strong></p>
<p>Im Manager kann man dann komplette Templates Hoch- und Runterladen sowie löschen. </p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager1.jpg" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="processtemplatemanager1" border="0" alt="processtemplatemanager1" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager1_thumb.jpg?w=260&#038;h=192" width="260" height="192" /></a>    <br /><strong>Process Template Manager</strong> </p>
<p>Ein Prozess-Template besteht aus einer Reihe Ordner und Dateien (viel XML). Zum Anpassen eines Templates kann man z.B. ein vorhandenes (Standard-Template bei TFS Installation oder z.B. von <a href="http://mpt.codeplex.com/" target="_blank">Codeplex</a>) in einen lokalen Ordner herunterladen und an der gewünschten Stelle mit Visual Studio bearbeiten.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager2.jpg" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="processtemplatemanager2" border="0" alt="processtemplatemanager2" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager2_thumb.jpg?w=260&#038;h=194" width="260" height="194" /></a>     <br /><strong>Ordnerstruktur eines TFS Process Templates</strong></p>
<p>Visual Studio unterstützt sowohl bei der Bearbeitung von Feldern, Layouts, Workflows und Workitem Typen. Das ganze kann man beliebig Komplex betreiben und ist sicher Inhalt vieler weiterer Blogeinträge, Artikel, …</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager3.jpg" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="processtemplatemanager3" border="0" alt="processtemplatemanager3" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager3_thumb.jpg?w=260&#038;h=187" width="260" height="187" /></a>&#160; <br /><strong> TFS Process Template im Visaul Studio bearbeiten</strong></p>
<p><strong></strong>    <br />Hat man nun seine gewünschten Änderungen vorgenommen lädt man das angepasste Template über den Process Template Manager wieder hoch (Auswahl des Ordners wo die “ProcessTemplate.xml” liegt). Zuvor sollte man die Bezeichnung des Templates anpassen. War der Upload erfolgreich kann man nun ein neues Projekt mit dem gewünschten Template anlegen.</p>
<p>Viel Spaß beim ersten anpassen eines Templates.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2009/07/27/team-foundation-server-prozess-template-anpassen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">98</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager_thumb.jpg" medium="image">
			<media:title type="html">processtemplatemanager</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager1_thumb.jpg" medium="image">
			<media:title type="html">processtemplatemanager1</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager2_thumb.jpg" medium="image">
			<media:title type="html">processtemplatemanager2</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/07/processtemplatemanager3_thumb.jpg" medium="image">
			<media:title type="html">processtemplatemanager3</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS Team Build: Testen von Webservices mit UnitTests auf dem Client und Team Build Server</title>
		<link>https://peroxide20.wordpress.com/2009/02/26/tfs-team-build-testen-von-webservices-mit-unittests-auf-dem-client-und-team-build-server/</link>
					<comments>https://peroxide20.wordpress.com/2009/02/26/tfs-team-build-testen-von-webservices-mit-unittests-auf-dem-client-und-team-build-server/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Thu, 26 Feb 2009 09:04:20 +0000</pubDate>
				<category><![CDATA[TFS]]></category>
		<category><![CDATA[UnitTests]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[VS2008]]></category>
		<category><![CDATA[VSTS]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2009/02/26/tfs-team-build-testen-von-webservices-mit-unittests-auf-dem-client-und-team-build-server/</guid>

					<description><![CDATA[Damit ein UnitTest, den wir gegen einen WebService (z.B. TOService) ausführen auch auf dem Team-Build Server läuft sind folgende Schritte notwendig: 1. Im UnitTest eine WebReference zum Webservice einfügen: 2. Im UnitTest folgendes Attribut über der UnitTest-Methode einfügen: [AspNetDevelopmentServer("TOServiceHost", "%PathToWebRoot%\\Test.TOServiceHost")] 3. In der UnitTest-Methode den WebServiceHelper verwenden: var sc = new TOService(); WebServiceHelper.TryUrlRedirection(sc, TestContext,"TOServiceHost"); Assert.NotNull(sc.MyMethodForTest()); [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Damit ein UnitTest, den wir gegen einen WebService (z.B. TOService) ausführen auch auf dem Team-Build Server läuft sind folgende Schritte notwendig:</p>
<p><strong>1. Im UnitTest eine WebReference zum Webservice einfügen: </p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="160" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb.png?w=255&#038;h=160" width="255"/></a> </strong></p>
<p><strong>2. Im UnitTest folgendes Attribut über der UnitTest-Methode einfügen:</strong></p>
<div class="CodeFormatContainer">
<pre class="csharpcode">[AspNetDevelopmentServer("<span style="color:#8b0000;">TOServiceHost</span>", 
		"<span style="color:#8b0000;">%PathToWebRoot%\\Test.TOServiceHost</span>")]
</pre>
</div>
<p><strong>3. In der UnitTest-Methode den WebServiceHelper verwenden:</strong></p>
<pre>var sc = <span style="color:#0000ff;">new</span> TOService(); 
WebServiceHelper.TryUrlRedirection(sc, 
			TestContext,"<span style="color:#8b0000;">TOServiceHost</span>"); 
Assert.NotNull(sc.MyMethodForTest()); 
</pre>
<p><strong>4. Im Visual Studio unter “Tools” &gt; “Options” &gt; “Test Tools” &gt; “Test Execution” den Pfad eintragen:</strong></p>
<p>Es kann passieren, das auf dem Client der Ordner zum Webservice nicht richtig aufgelöst wird. Dann kann man im VS einstellen, wo der Basisordner (%PathToWebRoot%) liegen soll. Den Ordner, wo der Webservice “Test.TOServiceHost” drin liegt den ihr testen wollt entsprechend einstellen.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image1.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="160" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb1.png?w=260&#038;h=160" width="260"/></a>&nbsp;</p>
<p><strong>5. In der .vsmdi Datei den Test in die Liste eintragen, die im Teambuild ausgeführt wird:</strong></p>
<p>In der VSMDI Datei können dann alle UnitTests der Solution in eine Liste eingefügt werden: </p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image2.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="84" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb2.png?w=260&#038;h=84" width="260"/></a></p>
<p>Im Teambuild File wird die Liste aus dem VSMDI File angegeben, womit alle UnitTests dieser Liste auf dem Teambuild Server ausgeführt werden:</p>
<pre><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">MetaDataFile</span> <span style="color:#ff0000;">Include</span>=
   <span style="color:#0000ff;">"$(BuildProjectFolderPath)/../../Main/Source/Test/test.vsmdi"</span><span style="color:#0000ff;">&gt;</span>
   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">TestList</span><span style="color:#0000ff;">&gt;</span>AllTests<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">TestList</span><span style="color:#0000ff;">&gt;</span>
<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">MetaDataFile</span><span style="color:#0000ff;">&gt;</span>
</pre>
<pre></pre>
</p>
<p>In der Liste können jetzt auch Tests aufgeführt werden, die einen WebService aus der Solution aufrufen.</p>
<p><strong>6. SolutionFile ggf. bearbeiten:</strong></p>
<p>Wichtig ist, dass der Webservice bzw. die Webapplikation mit auf dem Server compiliert wird. Das kann z.B. über die Solution Configuration “Debug” sichergestellt werden. Wenn hier ein anderer Typ eingeführt wurde (z.B. “Debug_CodeAnalysis”) kann es passieren, dass die Website auf dem Server nicht unter “_PublishedWebsites” kompiliert/abgelegt wird. Dann funktionieren die UnitTests auf dem Server wieder nicht. Es bietet sich an den Solution-Typ “Debug” und für alle gewünschten Projekte (außer Webprojekte) einen anderen Typ z.B. “Debug_CodeAnalysis” zu verwenden:</p>
<p>&nbsp;<a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image3.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="171" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb3.png?w=260&#038;h=171" width="260"/></a></p>
<p><strong>7. Teambuild mit Codeanalysis, CodeCoverage und UnitTests:</strong></p>
<p>Jetzt sind wir schon ziemlich weit gekommen und freuen uns das endlich unser Webservice um den es im Projekt zentral geht auch über UnitTests auf dem Team Build Server jeder Zeit (z.B. jede Nacht – Continuous Integration) getestet werden kann. Verwendet man nun alle Features die zum Team Build dazu gehören, wie Code Analysis und Code Coverage, wundert man sich doch recht schnell warum die Coverage Werte sehr niedrig sind. Ein kleine Recherche in den erzeugten Dateien und Reports ergibt, dass alle UnitTests die über den WebService gelaufen sind nicht im CodeCoverage auftauchen ;(… Das ist natürlich schlecht!!! Wenn ich aber die WebService-Methoden nicht über die WebReference sondern direkt teste fehlt mir wieder der HTTP-Context in den Tests.) Was ist hier nun die beste Lösung? Mocking vom HTTPContext und wieder ohne WebReference testen?</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image4.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="103" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb4.png?w=260&#038;h=103" width="260"/></a></p>
<p>WordPress Tags: <a href="http://wordpress.com/tag/Team" rel="Tag">Team</a>,<a href="http://wordpress.com/tag/Build" rel="Tag">Build</a>,<a href="http://wordpress.com/tag/Webservice" rel="Tag">Webservice</a>,<a href="http://wordpress.com/tag/UnitTests" rel="Tag">UnitTests</a>,<a href="http://wordpress.com/tag/PathToWebRoot" rel="Tag">PathToWebRoot</a>,<a href="http://wordpress.com/tag/Test" rel="Tag">Test</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2009/02/26/tfs-team-build-testen-von-webservices-mit-unittests-auf-dem-client-und-team-build-server/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">82</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/02/image-thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>UnitTests, automatische Tests mit TFS 2008</title>
		<link>https://peroxide20.wordpress.com/2009/01/23/unittests-automatische-tests-mit-tfs-2008/</link>
					<comments>https://peroxide20.wordpress.com/2009/01/23/unittests-automatische-tests-mit-tfs-2008/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Fri, 23 Jan 2009 07:55:57 +0000</pubDate>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[UnitTests]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[VS2008]]></category>
		<category><![CDATA[VSTS]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2009/01/23/unittests-automatische-tests-mit-tfs-2008/</guid>

					<description><![CDATA[Fast immer benötigt man für das Ausführen von UnitTests eine Umgebung wie im wirklichen Leben. Es sind also auch z.B. Konfigurationsfiles an einem bestimmten Ort (wie z.B. in einem Unterordner “config”) notwendig. Die Visual Studio UnitTests werden aber in einem eigenen Ordner ausgeführt und genau dort braucht man nun auch diesen Unterordner mit seinen Dateien. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Fast immer benötigt man für das Ausführen von UnitTests eine Umgebung wie im wirklichen Leben. Es sind also auch z.B. Konfigurationsfiles an einem bestimmten Ort (wie z.B. in einem Unterordner “config”) notwendig. Die Visual Studio UnitTests werden aber in einem eigenen Ordner ausgeführt und genau dort braucht man nun auch diesen Unterordner mit seinen Dateien. Hier gibt es im großen und ganzen zwei Ansätze. Entweder man konfiguriert die Testkonfiguration (siehe 2 Abbildungen):</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="185" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb.png?w=416&#038;h=185" width="416"/></a> <br />&#8211;&gt; öffnen der Testkonfiguration mit Wizard </p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image1.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="146" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb1.png?w=417&#038;h=146" width="417"/></a> <br />&#8211;&gt; Definieren von Dateien die für die UnitTests notwendig sind unter “Deployment” </p>
<p>Leider bietet der Wizard keine Möglichkeit einen Unterordner/Zielordner mit anzugeben. Dazu muss man das “.testconfig” File im XML-Editor öffnen und selbst am DeploymentItem-Tag herumeditieren. Dort steht einem nun das Attribut “outputDirectory” zur Verfügung.</p>
<table cellspacing="0" cellpadding="2" width="441" border="1">
<tbody>
<tr>
<td valign="top" width="439">
<pre><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Deployment</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">DeploymentItem</span> <span style="color:#ff0000;">filename</span>=<span style="color:#0000ff;">"log4net.conf.xml"</span> 
    <span style="color:#ff0000;">outputDirectory</span>=<span style="color:#0000ff;">"config"</span> <span style="color:#0000ff;">/&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">DeploymentItem</span> <span style="color:#ff0000;">filename</span>=<span style="color:#0000ff;">"myentlib.config"</span> <span style="color:#0000ff;">/&gt;</span>
<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Deployment&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
<p>&#8211;&gt; .testconfig File im XML-Editor</p>
<p>Der zweite Ansatz ist über ein Attribut im Testcode selbst zu definieren welche Dateien für den Test notwendig sind:</p>
<p>DeploymentItems (<a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(VS.80).aspx" target="_blank">DeploymentItemsAttribute bei MSDN</a>)</p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<div style="font-size:10pt;background:white;color:black;font-family:courier new;">
<pre>[TestMethod()]
[DeploymentItem("<span style="color:#8b0000;">config\\log4net.conf.xml</span>", "<span style="color:#8b0000;">config</span>")]
<span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> MyTest()
{
    ...
}</pre>
</div>
</td>
</tr>
</tbody>
</table>
<p>&#8211;&gt; DeploymentItemAttribut im Code</p>
<h5>DeploymentItems und TFS Team Build:</h5>
<p>Leider hat man nun das nächste Problem mit den DeploymentItems und UnitTests im Zusammenhang mit Teambuild. Auf dem Teambuild Server können die UnitTests nur ausgeführt werden, wenn Visual Studio installiert ist. Das VS2008 hat hier wohl einen Bug, denn er sucht die für den UnitTest definierten DeploymentItems nicht im Ordner wo die Tests ausgeführt werden, sondern im Ordner wo Visual Studio auf dem Teambuild Server installiert ist (<em>System.Configuration.ConfigurationErrorsException: The configuration folder &#8218;D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\config\log4net.conf.xml&#8216; doesn&#8217;t exist</em>).</p>
<p>Geholfen hat jetzt nur ein Workaround im Testcode:</p>
<table cellspacing="0" cellpadding="2" width="439" border="1">
<tbody>
<tr>
<td valign="top" width="437">
<div style="font-size:10pt;background:white;color:black;font-family:courier new;">
<pre>[ClassInitialize()]
<span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> MyClassInitialize(
  TestContext testContext)
{
    AppDomain.CurrentDomain.SetData("<span style="color:#8b0000;">APPBASE</span>", 
     Environment.CurrentDirectory);
}</pre>
</div>
</td>
</tr>
</tbody>
</table>
<p>&#8211;&gt; Bei jedem UnitTest in der Initialisierung einzufügen (<a href="http://social.msdn.microsoft.com/forums/en-US/vststest/thread/f5cb58f4-a35d-41f8-900a-3bc69637afc9/" target="_blank">Forum post hier</a>)</p>
<h5>Team Build – Code Coverage – Partially Succeeded</h5>
<p>Manchmal kommt es trotz erfolgreichen Build und auch erfolgreichen durchführen aller UnitTests zu dem Status “Partially Succeeded”.</p>
<p><a href="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image2.png" target="_blank"><img title="image" style="display:inline;border-width:0;" height="165" alt="image" src="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb2.png?w=424&#038;h=165" width="424"/></a></p>
<p>&#8211;&gt; “Partially Succeeded” trotz erfolgreichem Build und no failed UnitTests ?!</p>
<p>Ein bisschen Nachforschung bringt einen dann auf den Pfad, dass es ein paar Warnungen gegeben hat, die man auch Abarbeiten kann. Man lädt sich die Testresults auf den lokalen Rechner (Link unter “Test Run” anklicken) und arbeitet die Warnungen ab. Zum Beispiel will Code Coverage zwingend x86 dlls (siehe auch <a href="http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/thread/abf4ae19-114f-492a-9191-28df94a6be1f/" target="_blank">hier</a>). Weiterhin müssen alle dlls die im Code Coverage eingeschlossen sind auch verfügbar sein. Code Coverage wird übrigens auch in der .testconfig Datei definiert und kann mit dem Wizard (siehe oben im Artikel) eingerichtet werden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2009/01/23/unittests-automatische-tests-mit-tfs-2008/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">71</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://peroxide20.wordpress.com/wp-content/uploads/2009/01/image-thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio AddOns, AddIns, Plugins &#8211; Links</title>
		<link>https://peroxide20.wordpress.com/2008/11/10/visual-studio-addons-addins-plugins-links/</link>
					<comments>https://peroxide20.wordpress.com/2008/11/10/visual-studio-addons-addins-plugins-links/#respond</comments>
		
		<dc:creator><![CDATA[Daniel Kubis]]></dc:creator>
		<pubDate>Mon, 10 Nov 2008 21:09:12 +0000</pubDate>
				<category><![CDATA[AddOn]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[VS2008]]></category>
		<category><![CDATA[VS2010]]></category>
		<guid isPermaLink="false">http://peroxide20.wordpress.com/2008/11/10/visual-studio-addons-addins-plugins-links/</guid>

					<description><![CDATA[Das nackte Visual Studio 2005 und 2008 ist schon ganz nett, aber wenn man dann noch das ein oder andere Plugin installiert wird es ein super Tool. Die meisten der Plugins sind sowohl für Visual Studio 2005 als auch 2008 verfügbar. Die meisten davon verwende ich oder habe ich zumindest schon ausprobiert. Die Reihenfolge gibt [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Das nackte Visual Studio 2005 und 2008 ist schon ganz nett, aber wenn man dann noch das ein oder andere Plugin installiert wird es ein super Tool. Die meisten der Plugins sind sowohl für Visual Studio 2005 als auch 2008 verfügbar. Die meisten davon verwende ich oder habe ich zumindest schon ausprobiert. Die Reihenfolge gibt keine Aussage über die Wertigkeit oder häufigkeit der Verwendung (wobei Ghostdoc und ReSharper schon zu meinen Lieblingen zählen;) Die Liste ist mit Sicherheit nicht vollständig, aber das ändert sich sowieso ab und zu, wie man auch an dem Inhalt eines <a href="https://peroxide20.wordpress.com/2007/02/09/favorite-visual-studio-2005-addons/" target="_blank">früheren Artikels</a> von mir sieht.</p>
<ul>
<li><a href="http://www.roland-weigelt.de/ghostdoc/" target="_blank">GhostDoc</a> (Dokumentation von Sourcecode)  </li>
<li><a href="http://www.jetbrains.com/resharper/index.html" target="_blank">ReSharper</a> (Refactoring, Code Analyse, Produktivität, Qualität)  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b91066b3-d1d6-4990-a45f-34cf8dbdc60c&amp;DisplayLang=en" target="_blank">Guidance Automation Toolkit für Visual Studio 2008</a>&nbsp; </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=df79c099-4753-4a59-91e3-5020d9714e4e&amp;DisplayLang=en" target="_blank">Guidance Automation Extension</a> und ein <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e28205c6-bb07-401b-9a76-804784598bf0&amp;DisplayLang=en" target="_blank">Update dazu</a> </li>
<li>Software-Factories
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f7aa544d-ad73-4b65-88d5-63f751844540&amp;DisplayLang=en" target="_blank">Web Service Software Factory Modeling Edition</a>  </li>
<li><a href="http://www.codeplex.com/smartclient" target="_blank">Smart Client Software Factory</a>  </li>
<li><a href="http://www.codeplex.com/websf" target="_blank">Web Client Software Factory</a>  </li>
<li><a href="http://msdn.microsoft.com/de-de/library/aa480471.aspx" target="_blank">Mobile Client Software Factory</a></li>
</ul>
</li>
<li><a href="http://go.microsoft.com/fwlink/?LinkId=129043" target="_blank">Silverlight Tools for Visual Studio 2008 SP1</a> siehe auch <a href="http://silverlight.net/GetStarted/" target="_blank">Silverlight Seite</a>  </li>
<li><a href="http://www.lazarciuc.ro/ioan/wp-content/uploads/2008/SilverlightSidebarGadget.vsi" target="_blank">Silverlight Sidebargadget Projektvorlage</a> mit <a href="http://www.lazarciuc.ro/ioan/2008/08/02/creating-a-vista-sidebar-gadget-using-microsoft-silverlight/" target="_blank">Erläuterung</a>  </li>
<li>Für <a href="http://www.collab.net/products/subversion/" target="_blank">Subversion</a> &#8211; <a href="http://www.visualsvn.com/visualsvn/" target="_blank">VisualSVN</a>, <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a>, <a href="http://ankhsvn.open.collab.net/" target="_blank">AnkhSVN</a>  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7F45F9A9-56F5-4E1F-9FED-A3E4342FB607&amp;displaylang=en" target="_blank">Visual Studio Team System Management Model Designer Power Tool</a>  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;displaylang=en" target="_blank">Visual Studio® 2008 Web Deployment Projects</a> mit <a href="http://weblogs.asp.net/scottgu/archive/2008/01/28/vs-2008-web-deployment-project-support-released.aspx" target="_blank">Erläuterungen</a>  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;displaylang=de" target="_blank">Visual Studio 2008 Team Explorer</a> und <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46473C2A-BB85-4461-BB27-4792A5DEF222&amp;displaylang=de" target="_blank">Visual Studio 2005 Team Explorer</a>  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;displaylang=en" target="_blank">Visual Studio 2005 Team Foundation Server MSSCCI Provider</a> und <a href="http://www.microsoft.com/downloads/details.aspx?familyid=FAEB7636-644E-451A-90D4-7947217DA0E7&amp;displaylang=en" target="_blank">Visual Studio 2008 Team Foundation Server MSSCCI Provider</a>  </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&amp;displaylang=en" target="_blank">Visual Studio Team System 2008 Team Foundation Server Power Tools &#8211; Oktober 2008 Release</a> und <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7324C3DB-658D-441B-8522-689C557D0A79&amp;displaylang=en" target="_blank">Microsoft Visual Studio 2005 Team Foundation Server Power Tools &#8211; September 2007 release</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=1643758B-2986-47F7-B529-3E41584B6CE5&amp;displaylang=en" target="_blank">Enterprise Library 4.1 &#8211; Oktober 2008</a> (Sammlung wiederverwend-barer Codeblocks) </li>
<li><a href="http://code.msdn.microsoft.com/sourceanalysis" target="_blank">StyleCop</a> (Source Code Style Analyse)</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://peroxide20.wordpress.com/2008/11/10/visual-studio-addons-addins-plugins-links/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">63</post-id>
		<media:content url="https://1.gravatar.com/avatar/aa569a41a251ca4ed6f1193620efe1d21b484248e1ec7ce08cccdccde32e1495?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">peroxide20</media:title>
		</media:content>
	</item>
	</channel>
</rss>
