<?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/"
	>

<channel>
	<title>Benjamin Devuyst &#187; ALM</title>
	<atom:link href="https://blog.developpez.com/bdevuyst/ptag/alm/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/bdevuyst</link>
	<description>:)</description>
	<lastBuildDate>Mon, 16 Mar 2020 06:57:16 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>TFS 2010 &#8211; Build WF &gt; CheckIn dll</title>
		<link>https://blog.developpez.com/bdevuyst/p11966/alm/tfs-2010-build-wf-checkin-dll</link>
		<comments>https://blog.developpez.com/bdevuyst/p11966/alm/tfs-2010-build-wf-checkin-dll#comments</comments>
		<pubDate>Mon, 13 May 2013 10:25:43 +0000</pubDate>
		<dc:creator><![CDATA[benji_dv]]></dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[foundation]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/bdevuyst/?p=70</guid>
		<description><![CDATA[Dans le cadre de gros développements, nous séparons les projets en plusieurs solutions. Exemple : Solution 1 : Composants extérieurs ne disposant d&#8217;aucune interaction avec les couches de services métiers (drivers, interfaces avec des systèmes extérieurs, etc) Solution 2 : Composants de la couche de services métiers, ou utilisant la couche métier (excepté les applications finales) Solution 3 : Composants affectant les applications finales (exe, applications web, configuration unity, controles graphiques, reporting, etc.) Pour plus [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dans le cadre de gros développements, nous séparons les projets en plusieurs solutions.</p>
<p>Exemple :</p>
<ul>
<li>Solution 1 : Composants extérieurs ne disposant d&rsquo;aucune interaction avec les couches de services métiers (drivers, interfaces avec des systèmes extérieurs, etc)</li>
<li>Solution 2 : Composants de la couche de services métiers, ou utilisant la couche métier (excepté les applications finales)</li>
<li>Solution 3 : Composants affectant les applications finales (exe, applications web, configuration unity, controles graphiques, reporting, etc.)</li>
</ul>
<p>Pour plus d’informations sur le multi sln : <a href="http://tfsguide.codeplex.com/" title="tfsguide.codeplex.com">tfsguide.codeplex.com</a></p>
<p>Les dll&rsquo;s générées par les projets non finaux (Solution 1 et 2 ci dessus) sont alors archivées, afin que les membres de l&rsquo;équipe ne soient pas obligés de re générer les sorties de projets à chaque modification de source effectuée par un collègue.<br />
Les références entre projets de solutions différentes étant par dll dans le repository correspondant.</p>
<p>Lorsque l&rsquo;intégration continue est en place, un build par solution est installé.<br />
Dès lors, lorsqu&rsquo;une source est archivée, le contrôleur de build initie un build de la solution concernée.</p>
<p>Etant donné que le build se produit à chaque archivage, il est de bonne augure de le responsabiliser afin qu&rsquo;il réalise lui même la mise à jour des dll lors des archivages (cela décharge donc les développeurs de cette tache).</p>
<p>Le workflow TFS 2010 situé dans l&rsquo;archive <a href="http://bdevuyst.ftp-developpez.com/blog/TFS/Template-de-build-TFS-2010-CheckIn-dll-multi-sln.zip" title="Template-de-build-TFS-2010-CheckIn-dll-multi-sln" target="_blank">Template-de-build-TFS-2010-CheckIn-dll-multi-sln.zip</a> réalise cela sur base du DefaultTemplate.xaml</p>
<p>Attention</p>
<ul>
<li>
le compte utilisateur exécuté par les services de build doit disposer de droits d&rsquo;extraction / archivage sur le répertoire !
</li>
<li>
Nous vous conseillons de ne pas exécuter deux identiques simultanément (mode continu avec un délai de xx minutes entre deux démarrages;  le délai préconisé correspond à la durée d&rsquo;exécution des builds)
</li>
<p>Edit : J&rsquo;ai modifié le WorkFlow pour permettre d&rsquo;éviter l&rsquo;évènement de CheckIn ( via RepositoryConstants.NoCICheckInComment) afin d&rsquo;éviter les builds en cascade (la solution 2 utilise les dll produites par la solution 1, du coup, si CheckIn dll Sln 1 &gt; Build Sln 2).</p>
<p>Enjoy</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFS et workflow de build</title>
		<link>https://blog.developpez.com/bdevuyst/p11956/dotnet-net/tfs-et-workflow-de-build</link>
		<comments>https://blog.developpez.com/bdevuyst/p11956/dotnet-net/tfs-et-workflow-de-build#comments</comments>
		<pubDate>Tue, 07 May 2013 08:46:50 +0000</pubDate>
		<dc:creator><![CDATA[benji_dv]]></dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[DotNet - .net]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[large]]></category>
		<category><![CDATA[projets]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[workflow]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/bdevuyst/?p=67</guid>
		<description><![CDATA[Cette fois ci, je ne vais pas épiloguer&#8230; car cela ne sert à rien de reprendre un contenu déjà existant et correspondant à mes attentes : clair et complet ! Customize Team Build 2010 Edit 2013-05-16 : Petite précision, dans la partie Part 5 : Increase AssemblyVersion, l&#8217;auteur précise dans le code de l&#8217;activité check out l&#8217;instruction &#160;&#187; workflow.Folders &#160;&#187; pour récupérer les répertoires mappés dans le workspace. Ensuite, &#160;&#187; folder.LocalItem &#160;&#187; pour récupérer le [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cette fois ci, je ne vais pas épiloguer&#8230; car cela ne sert à rien de reprendre un contenu déjà existant et correspondant à mes attentes : clair et complet !</p>
<p><a href="http://www.ewaldhofman.nl/post/2010/04/20/Customize-Team-Build-2010-e28093-Part-1-Introduction.aspx" title="Customize Team Build 2010" target="_blank">Customize Team Build 2010</a></p>
<p><b>Edit 2013-05-16 :</b> Petite précision, dans la partie Part 5 : <a href="http://www.ewaldhofman.nl/post/2010/05/13/Customize-Team-Build-2010-e28093-Part-5-Increase-AssemblyVersion.aspx" title="Increase AssemblyVersion" target="_blank">Increase AssemblyVersion</a>, l&rsquo;auteur précise dans le code de l&rsquo;activité check out l&rsquo;instruction &nbsp;&raquo; workflow.Folders &nbsp;&raquo; pour récupérer les répertoires mappés dans le workspace.<br />
Ensuite, &nbsp;&raquo; folder.LocalItem &nbsp;&raquo; pour récupérer le chemin local (dans la boucle &laquo;&nbsp;pour chaque folder contenu dans le workspace&nbsp;&raquo;).<br />
Le problème est le suivant : si le workspace contient un folder cloaked, il est bien contenu dans la liste retournée par la propriété workspace.Folder, mais la propriété LocalItem est nulle ! (ce qui est logique !)<br />
Donc, lorsqu&rsquo;il est nécessaire de lister les répertoires : il faut ajouter un filtre sur soit <b>folder.IsCloaked</b> soit sur <b>string.IsNullOrEmpty(folder.LocalItem)</b> afin de ne récupérer que les folders mappés dans le workspace courant !</p>
<p>Enjoy !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
