<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>Jeffrey Palermo (.com)</title>
	<atom:link href="https://jeffreypalermo.com/feed/" rel="self" type="application/rss+xml"/>
	<link>https://jeffreypalermo.com</link>
	<description>Chief Technology Officer, Headspring Systems</description>
	<lastBuildDate>Fri, 03 Jan 2020 00:33:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/jeffreypalermo.com/wp-content/uploads/2018/06/6_button_white_on_blue_big.png?fit=32%2C32&amp;ssl=1</url>
	<title>Programming with Palermo</title>
	<link>https://jeffreypalermo.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">7325293</site>	<item>
		<title>.NET DevOps for Azure</title>
		<link>https://jeffreypalermo.com/2020/01/net-devops-for-azure/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Thu, 09 Jan 2020 22:09:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1495</guid>

					<description><![CDATA[I&#8217;ve been working hard to bring together all that I have learned over the past years into my new book: .NET DevOps for Azure. It is a culmination of a long-time vision, some key leadership, and a confluence of industry events. Almost fifteen years ago, the I gained a passion for helping .Net DevOps engineers [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="alignleft size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="220" height="300" data-attachment-id="1498" data-permalink="https://jeffreypalermo.com/2020/01/net-devops-for-azure/063-paperback-book-small-spine-mockup-covervault-220x300/#main" data-orig-file="https://i0.wp.com/jeffreypalermo.com/wp-content/uploads/2020/01/063-Paperback-Book-Small-Spine-Mockup-COVERVAULT-220x300-1.png?fit=220%2C300&amp;ssl=1" data-orig-size="220,300" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="063-Paperback-Book-Small-Spine-Mockup-COVERVAULT-220&amp;#215;300" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/jeffreypalermo.com/wp-content/uploads/2020/01/063-Paperback-Book-Small-Spine-Mockup-COVERVAULT-220x300-1.png?fit=220%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/jeffreypalermo.com/wp-content/uploads/2020/01/063-Paperback-Book-Small-Spine-Mockup-COVERVAULT-220x300-1.png?fit=220%2C300&amp;ssl=1" src="https://i0.wp.com/jeffreypalermo.com/wp-content/uploads/2020/01/063-Paperback-Book-Small-Spine-Mockup-COVERVAULT-220x300-1.png?resize=220%2C300&#038;ssl=1" alt="" class="wp-image-1498"/></figure></div>



<p class="wp-block-paragraph">I&#8217;ve been working hard to bring together all that I have learned over the past years into my new book:  .NET DevOps for Azure.  </p>



<p class="wp-block-paragraph">It is a culmination of a long-time vision, some key leadership, and a confluence of industry events.</p>



<p class="wp-block-paragraph">Almost fifteen years ago, the I gained a passion for helping .Net DevOps engineers and DevOps services companies succeed, for making the complex simple, and for finding rules of thumb that would work for 80% of situations. With too many options in the software world and too many answers of “it depends”, the industry has been starved for the ability to do something “by the book.”</p>



<p class="wp-block-paragraph">This book presents a scenario where a .NET developer can say “I’m doing Azure and .Net DevOps by the book.” In this manner, one would know what models and patterns were in play and what to expect from said environment.</p>



<p class="wp-block-paragraph">The examples largely use Visual Studio 2019 preview edition. However, the code and the Azure DevOps Services pipeline function with .NET Core 2.2 and can be used to implement applications.</p>



<p class="wp-block-paragraph">The example configuration used throughout this book can be leveraged through a public project and&nbsp;<a rel="noreferrer noopener" href="https://dev.azure.com/clearmeasurelabs/Onion-DevOps-Architecture" target="_blank">source code repository online</a>.</p>



<p class="wp-block-paragraph">Visit Amazon to order. [<a rel="noreferrer noopener" href="https://www.amazon.com/NET-DevOps-Azure-Developers-Architecture/dp/1484253426/ref=sr_1_4?crid=2274W16KUQ09A&amp;keywords=net+devops+for+azure+jeffrey+palermo&amp;qid=1570228301&amp;sprefix=.NET+DevOps+fo%2Caps%2C168&amp;sr=8-4" target="_blank">Click Here</a>]</p>



<p class="wp-block-paragraph">Or email me jeffrey@clear-measure.com to get a<strong> free eCopy of  Chapter 3: The Professional-Grade DevOps Environment!</strong></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1495</post-id>	</item>
		<item>
		<title>.NET DevOps Bootcamp</title>
		<link>https://jeffreypalermo.com/2020/01/net-devops-bootcamp/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Mon, 06 Jan 2020 22:29:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1502</guid>

					<description><![CDATA[Architect + Lead Engineer Hands-On 2-Day Immersion hosted by ME! Jeffrey Palermo! Is simplifying your software development and processes something that you&#8217;d like to see happen in your organization?If so, this class was made with you and your team in mind!&#160;&#160;&#160; Join me!&#160;&#160;.NET DevOps Bootcamp: Architect &#38; Lead Engineer Hands-On Immersion&#160;Hosted by Jeffrey PalermoJanuary 16th-17thAustin, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"> Architect + Lead Engineer Hands-On 2-Day Immersion hosted by ME!  Jeffrey Palermo! </h3>



<p class="wp-block-paragraph"><strong>Is simplifying your software development and processes something that you&#8217;d like to see happen in your organization?<br>If so, this class was made with you and your team in mind!&nbsp;&nbsp;&nbsp;</strong></p>



<p class="wp-block-paragraph">Join me!<br>&nbsp;&nbsp;<a href="https://dotnet-devops-bootcamp.eventbrite.com/?aff=JeffreyPalermoBlog">.NET DevOps Bootcamp: Architect &amp; Lead Engineer Hands-On Immersion&nbsp;</a><br>Hosted by Jeffrey Palermo<br>January 16th-17th<br>Austin, TX</p>



<p class="wp-block-paragraph">I&#8217;m excited to be able to offer this&nbsp;<em><strong>2-Day training.</strong></em>&nbsp;Walking you through the simple 7 key steps to simplify your&nbsp;.NET DevOps world&nbsp;where I simplify the development and deployment process &#8211; making it applicable to your every day.&nbsp; &nbsp;<br><br>Attendees will learn concepts, apply the learning&nbsp;and also&nbsp;implement the latest DevOps tools for Microsoft-based applications, including Azure DevOps Services, Git, Azure Pipelines, Azure PaaS environments, and Octopus Deploy.&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">You&#8217;ll also get: </p>



<ul class="wp-block-list"><li>A free print and digital copy of my book, .<a href="https://clearmeasure.com/books/">NET DevOps for Azure&nbsp;</a></li><li>A free, post-training follow-up consultation with me</li><li>50% discount off the retail price of a&nbsp;<a href="https://clearmeasure.com/request-devops-inspection-keo-abm/">30-Point DevOps Inspection</a>&nbsp;for your application&nbsp;</li></ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1502</post-id>	</item>
		<item>
		<title>My current favorite private build script</title>
		<link>https://jeffreypalermo.com/2018/11/my-current-favorite-private-build-script/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Wed, 14 Nov 2018 16:59:46 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1485</guid>

					<description><![CDATA[I do pull in the Exec function from psake just because it was coded very well.&#160; This build script is just powershell and is geared for .Net Core . .\BuildFunctions.ps1 &#160; $projectName = &#8220;OnionDevOpsArchitecture&#8221; $base_dir = resolve-path .\ $source_dir = &#8220;$base_dir\src&#8221; $unitTestProjectPath = &#8220;$source_dir\UnitTests&#8221; $integrationTestProjectPath = &#8220;$source_dir\IntegrationTests&#8221; $uiProjectPath = &#8220;$source_dir\UI&#8221; $databaseProjectPath = &#8220;$source_dir\Database&#8221; $projectConfig = [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I do pull in the Exec function from psake just because it was coded very well.&nbsp; This build script is just powershell and is geared for .Net Core</p>
<p></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">.</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> </font><span><font style="font-size: 9pt;">.\BuildFunctions.ps1</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$projectName</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">&#8220;OnionDevOpsArchitecture&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$base_dir</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> <span>resolve-path</span><br />
</font><span><font style="font-size: 9pt;">.\</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$source_dir</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$base_dir</span></font><span><font style="font-size: 9pt;">\src&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$unitTestProjectPath</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\UnitTests&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$integrationTestProjectPath</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\IntegrationTests&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$uiProjectPath</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\UI&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$databaseProjectPath</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\Database&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$projectConfig</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">$env:BuildConfiguration</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$version</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">$env:Version</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$verbosity</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">&#8220;q&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$build_dir</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$base_dir</span></font><span><font style="font-size: 9pt;">\build&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$test_dir</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$build_dir</span></font><span><font style="font-size: 9pt;">\test&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$aliaSql</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\Database\scripts\AliaSql.exe&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$databaseAction</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">$env:DatabaseAction</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">if</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"><br />
(<span>[</span><span>string</span><span>]::</span>IsNullOrEmpty(<span>$databaseAction</span>))<br />
{ <span>$databaseAction</span> <span>=</span> <span>&#8220;Rebuild&#8221;</span>}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$databaseName</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">$env:DatabaseName</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">if</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"><br />
(<span>[</span><span>string</span><span>]::</span>IsNullOrEmpty(<span>$databaseName</span>))<br />
{ <span>$databaseName</span> <span>=</span><br />
<span>$projectName</span>}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$databaseServer</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span> </font><span><font style="font-size: 9pt;">$env:DatabaseServer</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">if</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"><br />
(<span>[</span><span>string</span><span>]::</span>IsNullOrEmpty(<span>$databaseServer</span>))<br />
{ <span>$databaseServer</span> <span>=</span><br />
<span>&#8220;localhost\SQL2017&#8221;</span>}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">$databaseScripts</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>=</span><br />
<span>&#8220;</span><span>$source_dir</span></font><span><font style="font-size: 9pt;">\Database\scripts&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">if</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"><br />
(<span>[</span><span>string</span><span>]::</span>IsNullOrEmpty(<span>$version</span>))<br />
{ <span>$version</span> <span>=</span> <span>&#8220;9.9.9&#8221;</span>}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">if</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"><br />
(<span>[</span><span>string</span><span>]::</span>IsNullOrEmpty(<span>$projectConfig</span>))<br />
{<span>$projectConfig</span> <span>=</span> <span>&#8220;Release&#8221;</span>}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>Init</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>rd</span><br />
<span>$build_dir</span> <span>-recurse</span> <span>-force</span><span style="mso-spacerun: yes;">&nbsp; </span><span>-ErrorAction</span> </font><span><font style="font-size: 9pt;">Ignore</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>md</span> <span>$build_dir</span><br />
<span>&gt;</span> </font><span><font style="font-size: 9pt;">$null</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>dotnet</span> <span>clean</span><br />
<span>$source_dir</span><span>\</span><span>$projectName</span><span>.sln</span><br />
<span>-nologo</span> <span>-v</span> </font><span><font style="font-size: 9pt;">$verbosity</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>dotnet</span> <span>restore</span><br />
<span>$source_dir</span><span>\</span><span>$projectName</span><span>.sln</span><br />
<span>-nologo</span> <span>&#8211;interactive</span> <span>-v</span><br />
<span>$verbosity</span></font><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp; </font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">#Write-Host<br />
 $projectConfig</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">#Write-Host<br />
 $version</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>Compile</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>dotnet</span> <span>build</span><br />
<span>$source_dir</span><span>\</span><span>$projectName</span><span>.sln</span><br />
<span>-nologo</span> <span>&#8211;no-restore</span> <span>-v</span><br />
<span>$verbosity</span> <span>-maxcpucount</span> <span>&#8211;configuration</span><br />
<span>$projectConfig</span> <span>&#8211;no-incremental</span><br />
<span>/p:Version=</span><span>$version</span> <span>/p:Authors=&#8221;Clear<br />
Measure&#8221;</span> </font><span><font style="font-size: 9pt;">/p:Product=&#8221;Onion<br />
DevOps Architecture&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>UnitTests</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>Push-Location</span> <span>-Path</span><br />
</font><span><font style="font-size: 9pt;">$unitTestProjectPath</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>try</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 3;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>dotnet</span> <span>test</span> <span>-nologo</span> <span>-v</span><br />
<span>$verbosity</span> <span>&#8211;logger:trx</span><br />
<span>&#8211;results-directory</span> <span>$test_dir</span> <span>&#8211;no-build</span><br />
<span>&#8211;no-restore</span> <span>&#8211;configuration</span> </font><span><font style="font-size: 9pt;">$projectConfig</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>finally</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Pop-Location</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>IntegrationTest</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>Push-Location</span> <span>-Path</span><br />
</font><span><font style="font-size: 9pt;">$integrationTestProjectPath</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>try</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 3;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>dotnet</span> <span>test</span> <span>-nologo</span> <span>-v</span><br />
<span>$verbosity</span> <span>&#8211;logger:trx</span><br />
<span>&#8211;results-directory</span> <span>$test_dir</span> <span>&#8211;no-build</span><br />
<span>&#8211;no-restore</span> <span>&#8211;configuration</span> </font><span><font style="font-size: 9pt;">$projectConfig</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>finally</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Pop-Location</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>MigrateDatabaseLocal</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>$aliaSql</span> <span>$databaseAction</span> <span>$databaseServer</span><br />
<span>$databaseName</span> </font><span><font style="font-size: 9pt;">$databaseScripts</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>MigrateDatabaseRemote</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>$appConfig</span> <span>=</span><br />
<span>&#8220;</span><span>$integrationTestProjectPath</span></font><span><font style="font-size: 9pt;">\app.config&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>$injectedConnectionString</span> <span>=</span><br />
<span>&#8220;Server=tcp:</span><span>$databaseServer</span><span>,1433;Initial<br />
 Catalog=</span><span>$databaseName</span><span>;Persist Security<br />
Info=False;User<br />
ID=</span><span>$env:DatabaseUser</span><span>;Password=</span><span>$env:DatabasePassword</span></font><span><font style="font-size: 9pt;">;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection<br />
 Timeout=30;&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>write-host</span> <span>&#8220;Using connection string:<br />
</span><span>$injectedConnectionString</span></font><span><font style="font-size: 9pt;">&#8220;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>if</span> (<br />
<span>Test-Path</span> <span>&#8220;</span><span>$appConfig</span><span>&#8220;</span> )<br />
{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>poke-xml</span><br />
<span>$appConfig</span> <span>&#8220;//add[@key=&#8217;ConnectionString&#8217;]/@value&#8221;</span><br />
</font><span><font style="font-size: 9pt;">$injectedConnectionString</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span> {</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>$aliaSql</span> <span>$databaseAction</span> <span>$databaseServer</span><br />
<span>$databaseName</span> <span>$databaseScripts</span><br />
<span>$env:DatabaseUser</span> </font><span><font style="font-size: 9pt;">$env:DatabasePassword</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>Pack</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>Write-Output</span> </font><span><font style="font-size: 9pt;">&#8220;Packaging<br />
nuget packages&#8221;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>.\tools\octopack\Octo.exe</span> <span>pack</span> <span>&#8211;id</span><br />
<span>&#8220;</span><span>$projectName</span><span>.UI&#8221;</span> <span>&#8211;version</span><br />
<span>$version</span> <span>&#8211;basePath</span> <span>$uiProjectPath</span><br />
<span>&#8211;outFolder</span> </font><span><font style="font-size: 9pt;">$build_dir</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>.\tools\octopack\Octo.exe</span> <span>pack</span> <span>&#8211;id</span><br />
<span>&#8220;</span><span>$projectName</span><span>.Database&#8221;</span><br />
<span>&#8211;version</span> <span>$version</span> <span>&#8211;basePath</span><br />
<span>$databaseProjectPath</span> <span>&#8211;outFolder</span> </font><span><font style="font-size: 9pt;">$build_dir</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>exec</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 2;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;"><span>&amp;</span><br />
<span>.\tools\octopack\Octo.exe</span> <span>pack</span> <span>&#8211;id</span><br />
<span>&#8220;</span><span>$projectName</span><span>.IntegrationTests&#8221;</span><br />
<span>&#8211;version</span> <span>$version</span> <span>&#8211;basePath</span><br />
<span>$integrationTestProjectPath</span> <span>&#8211;outFolder</span><br />
</font><span><font style="font-size: 9pt;">$build_dir</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>PrivateBuild</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Init</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Compile</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">UnitTests</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">MigrateDatabaseLocal</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">IntegrationTest</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">&nbsp;</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">Function</font></span><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;"> <span>CIBuild</span>{</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Init</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">MigrateDatabaseRemote</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Compile</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">UnitTests</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">IntegrationTest</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-tab-count: 1;"><font style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font style="font-size: 9pt;">Pack</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><font style="font-size: 9pt;">}</font></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="background: white; margin: 0in 0in 0pt; line-height: normal; mso-layout-grid-align: none;"><span style="mso-bidi-font-family: &quot;Lucida Console&quot;;"><span style="mso-spacerun: yes;"><font style="font-size: 9pt;">&nbsp;</font></span></span></p>
<p><font style="font-size: 12pt;"></font></p>
<p class="MsoNormal" style="margin: 0in 0in 8pt; line-height: 12pt;"><font style="font-size: 11pt;">&nbsp;</font></p>
<p><font style="font-size: 12pt;"></font></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1485</post-id>	</item>
		<item>
		<title>Palermo Pamphlet 003 – Unboxing of the Azure Sphere IoT System on a Chip board</title>
		<link>https://jeffreypalermo.com/2018/10/palermo-pamphlet-003-unboxing-of-the-azure-sphere-iot-system-on-a-chip-board/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Fri, 26 Oct 2018 14:42:23 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Palermo Pamphlet]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1466</guid>

					<description><![CDATA[[iframe style=&#8221;border: none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7326800/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/backward/render-playlist/no/custom-color/0072be/&#8221; height=&#8221;300&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen]]]></description>
										<content:encoded><![CDATA[<p>[iframe style=&#8221;border: none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7326800/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/backward/render-playlist/no/custom-color/0072be/&#8221; height=&#8221;300&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen]</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1466</post-id>	</item>
		<item>
		<title>Lori Lamkin, Microsoft’s Director of PM on Shifting to Azure DevOps – Episode 007</title>
		<link>https://jeffreypalermo.com/2018/10/lori-lamkin-microsofts-director-of-pm-on-shifting-to-azure-devops-episode-007/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Mon, 22 Oct 2018 04:33:50 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1464</guid>

					<description><![CDATA[[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7254929/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen] In this episode, Jeffrey speaks with Lori Lamkin, Microsoft&#8217;s Director of Program Management. She has been leading the Visual Studio Team Services program management since the conception of Team Foundation Server in 2002 — that&#8217;s 16 years in the space of better shipping software [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7254929/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen]</p>
<p><span style="font-weight: 400;">In this episode, Jeffrey speaks with Lori Lamkin, Microsoft&#8217;s Director of Program Management. She has been leading the Visual Studio Team Services program management since the conception of Team Foundation Server in 2002</span> <span style="font-weight: 400;">—</span> <span style= "font-weight: 400;">that&#8217;s 16 years in the space of better shipping software using Microsoft technologies! She led the transition of the team to Agile methodologies, to open source reuse, to Cloud services, and Azure.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Lori and Jeffrey discuss what&#8217;s next for Lori in</span> <em><span style= "font-weight: 400;">and</span></em> <span style= "font-weight: 400;">of her role as Director of PM, her strategy behind leading</span> <span style="font-weight: 400;">the big shift from VSTS to Azure DevOps, the current roles and duties within Microsoft Azure DevOps, what she sees as the biggest shift in progressing from Agile and adopting DevOps, and how DevOps has become more and more efficient.</span></p>
<p>&nbsp;</p>
<p><strong>Topics of Discussion:</strong></p>
<p><span style="font-weight: 400;">[:51] About today&#8217;s guest, Lori Lamkin!</span></p>
<p><span style="font-weight: 400;">[1:18] Jeffrey welcomes Lori to the podcast.</span></p>
<p><span style="font-weight: 400;">[3:22] Lori speaks about the strategy behind leading the big shift from VSTS to Azure DevOps.</span></p>
<p><span style="font-weight: 400;">[5:42] What&#8217;s next for Lori in and out of her role as Director of PM? What has she been up to?</span></p>
<p><span style="font-weight: 400;">[8:18] Lori gives some background on Azure DevOps history.</span></p>
<p><span style="font-weight: 400;">[15:37] Lori talks about the current roles and duties within Microsoft Azure DevOps.</span></p>
<p><span style="font-weight: 400;">[18:08] A word from Azure DevOps sponsor: Clear Measure.</span></p>
<p><span style="font-weight: 400;">[18:34] How the organization for Azure DevOps is structured much differently than many other organizations.</span></p>
<p><span style="font-weight: 400;">[20:38] What Lori thinks is the biggest shift in progressing from Agile and adopting DevOps.</span></p>
<p><span style="font-weight: 400;">[23:34] Why everyone in Lori&#8217;s team is a Software Development Engineer.</span></p>
<p><span style="font-weight: 400;">[25:08] Did Lori&#8217;s team used to have Systems Engineers (otherwise known as IT Pros)?</span></p>
<p><span style="font-weight: 400;">[27:18] The broad set of skills that is required of the developers to operate the components of Azure DevOps that the Azure Data Center is running on.</span></p>
<p><span style="font-weight: 400;">[28:55] The change in business with DevOps and how it has become more efficient.</span></p>
<p><span style="font-weight: 400;">[31:21] Lori&#8217;s take on the culture change CEO Satya Nadella is driving as well as his 1ES (one engineering system) plan.</span></p>
<p><span style="font-weight: 400;">[35:26] Is there no software Git can&#8217;t handle?</span></p>
<p><span style="font-weight: 400;">[36:18] Where Lori suggests you further your learning after listening to this episode.</span></p>
<p>&nbsp;</p>
<p><strong>Mentioned in this Episode:</strong></p>
<p><a href= "https://azure.microsoft.com/en-ca/free/search/?&amp;OCID=AID719803_SEM_hGw7oP5x&amp;lnkd=Google_Azure_Brand&amp;dclid=CNGjoY_Yjd4CFQe9Twod-LQOKQ"> <span style="font-weight: 400;">Azure DevOps</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://azure.microsoft.com/en-ca/services/devops/"><span style= "font-weight: 400;">Azure DevOps Services</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://azure.microsoft.com/en-ca/services/cloud-services/?&amp;OCID=AID719803_SEM_JMzfDb4Q&amp;lnkd=Google_Azure_Brand&amp;dclid=CKSJlMTYjd4CFUytTwodUvcNSQ"><span style="font-weight: 400;">Azure Cloud</span></a></p>
<p><a href="https://www.clear-measure.com/"><span style= "font-weight: 400;">Clear Measure</span></a> <span style= "font-weight: 400;">(Sponsor)</span></p>
<p><a href= "https://www.goodreads.com/book/show/1146081.Microsoft_Secrets"><em> <span style="font-weight: 400;">Microsoft Secrets: How the World&#8217;s Most Powerful Software Company Creates Technology, Shapes Markets, and Manages People,</span></em> <span style= "font-weight: 400;">by</span> <span style= "font-weight: 400;">Michael A. Cusumano</span></a></p>
<p><a href= "https://www.intheblack.com/articles/2018/06/01/satya-nadella-transforming-culture-microsoft"> <span style="font-weight: 400;">Satya Nadella on transforming Microsoft&#8217;s culture</span></a></p>
<p><a href= "https://www.businessinsider.com/microsoft-brian-harry-one-engineering-system-windows-2017-5"> <span style="font-weight: 400;">More about Satya&#8217;s One Engineering System initiative</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/overview?view=vsts#team-foundation-version-control"><span style="font-weight: 400;">TFVS</span></a></p>
<p><a href= "https://docs.microsoft.com/en-us/azure/devops/learn/"><span style= "font-weight: 400;">AKA.MS/DevOps</span></a></p>
<p><a href="https://github.com/git"><span style= "font-weight: 400;">GitHub</span></a></p>
<p>&nbsp;</p>
<p><strong>Want to Learn More?</strong></p>
<p><span style="font-weight: 400;">Visit</span> <a href= "http://azuredevops.show/"><span style= "font-weight: 400;">AzureDevOps.Show</span></a> <span style= "font-weight: 400;">for show notes and additional episodes.</span></p>
<p>&nbsp;</p>
<p><strong>Follow Up with Our Guest:</strong></p>
<p><a href="https://www.linkedin.com/in/lorilamkin/"><span style= "font-weight: 400;">Lori Lamkin&#8217;s LinkedIn</span></a></p>
<p><a href="http://azuredevopspodcast.clear-measure.com/lori-lamkin-microsofts-director-of-pm-on-shifting-to-azure-devops-episode-007?tdest_id=800580">Check out this episode!</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1464</post-id>	</item>
		<item>
		<title>Palermo Pamphlet 002 – State machine design</title>
		<link>https://jeffreypalermo.com/2018/10/palermo-pamphlet-002-state-machine-design/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Mon, 15 Oct 2018 19:37:12 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Palermo Pamphlet]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1434</guid>

					<description><![CDATA[[podcast src=&#8221;https://html5-player.libsyn.com/embed/episode/id/7193621/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221; height=&#8221;300&#8243; width=&#8221;100%&#8221; placement=&#8221;top&#8221; theme=&#8221;custom&#8221;] In this episode, I go over how to design a workflow feature for an entity in a software application. It’s important to separate states from state transitions. Here are the show notes Episode 6 the Azure DevOps Podcast published w/ Edward Thomson Register for the Azure DevOps User Group presentation by [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[podcast src=&#8221;<a href="https://html5-player.libsyn.com/embed/episode/id/7193621/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221" rel="nofollow">https://html5-player.libsyn.com/embed/episode/id/7193621/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221</a>; height=&#8221;300&#8243; width=&#8221;100%&#8221; placement=&#8221;top&#8221; theme=&#8221;custom&#8221;]</p>
<p>In this episode, I go over how to design a workflow feature for an entity in a software application. It’s important to separate states from state transitions.</p>
<p>Here are the show notes</p>
<ul>
<li>Episode 6 the <a href="http://azuredevopspodcast.clear-measure.com/edward-thomson-on-all-things-git-libgit2-and-azure-devops-episode-006">Azure DevOps Podcast published w/ Edward Thomson</a></li>
<li>Register for the <a href="https://www.meetup.com/Azure-DevOps-User-Group/events/bjwscpyxnbvb/">Azure DevOps User Group presentation by Eric Hexter</a></li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1434</post-id>	</item>
		<item>
		<title>Edward Thomson on All Things Git, libgit2, and Azure DevOps – Episode 006</title>
		<link>https://jeffreypalermo.com/2018/10/edward-thomson-on-all-things-git-libgit2-and-azure-devops-episode-006/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Mon, 15 Oct 2018 04:38:24 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1422</guid>

					<description><![CDATA[[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7182890/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen] This week, your host, Jeffrey Palermo, brings you a recording, live from the Microsoft Ignite conference. He interviews Edward Thomson, the Principal Program Manager for Azure DevOps, the maintainer of libgit2 (the git library), a host of All Things Git (a podcast about Git), [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7182890/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen]</p>
<p><span style="font-weight: 400;">This week, your host, Jeffrey Palermo, brings you a recording, live from the Microsoft Ignite conference. He interviews Edward Thomson, the Principal Program Manager for Azure DevOps, the maintainer of libgit2 (the git library), a host of</span> <em><span style="font-weight: 400;">All Things Git</span></em> <span style="font-weight: 400;">(a podcast about Git), and the curator of Developer Tools Weekly (a weekly newsletter with developer tool news). After the tight-knit company Edward was a Software Engineer for</span> <span style= "font-weight: 400;">—</span> <span style= "font-weight: 400;">Teamprise</span> <span style= "font-weight: 400;">—</span> <span style="font-weight: 400;">was acquired by Microsoft, Edward transitioned into the role of Software Engineer with Microsoft, then GitHub briefly, 6 years later. After Github, Edward returned to Microsoft in 2017, this time as their Senior Program Manager</span> <span style= "font-weight: 400;">—</span> <span style="font-weight: 400;">and most recently, as their Principal Program Manager (since two months ago).</span></p>
<p><span style="font-weight: 400;"><br /></span><span style= "font-weight: 400;">Edward is a huge mover and shaker in the Git area of Azure DevOps Services. And in this episode, he answers questions that tons of teams continue to ask in the space. He also speaks about his many side projects: libgit2,</span> <em><span style="font-weight: 400;">All Things Git,</span></em> <span style="font-weight: 400;">and Developer Tools Weekly.</span></p>
<p>&nbsp;</p>
<p><strong>Topics of Discussion:</strong></p>
<p><span style="font-weight: 400;">[1:11] About today&#8217;s episode and guest.</span></p>
<p><span style="font-weight: 400;">[1:37] Jeffrey welcomes Edward to the podcast.</span></p>
<p><span style="font-weight: 400;">[2:13] A bit about the Microsoft Ignite conference.</span></p>
<p><span style="font-weight: 400;">[3:31] How Edward landed the role he&#8217;s currently in, with Microsoft.</span></p>
<p><span style="font-weight: 400;">[6:38] Does the work Edward has been doing with Git, precede him joining Microsoft?</span></p>
<p><span style="font-weight: 400;">[9:58] A word from Azure DevOps sponsor: Clear Measure.</span></p>
<p><span style="font-weight: 400;">[10:24] What is libgit2? What does it do?</span></p>
<p><span style="font-weight: 400;">[13:11] Is there any source code that</span> <em><span style="font-weight: 400;">won&#8217;t</span></em> <span style="font-weight: 400;">work with Git?</span></p>
<p><span style="font-weight: 400;">[16:18] Version control of binary files — where does it all break down?</span></p>
<p><span style="font-weight: 400;">[18:11] Is there a file size that&#8217;s too large for Git?</span></p>
<p><span style="font-weight: 400;">[20:14] Does Edward recommend checking in your NuGet packages?</span></p>
<p><span style="font-weight: 400;">[24:12] When did the use of shallow cloning (for repositories) come about?</span></p>
<p><span style="font-weight: 400;">[26:44] What is Edward and the Azure DevOps team thinking about pushing forward with the Git engine (when Microsoft acquires GitHub)?</span></p>
<p><span style="font-weight: 400;">[30:03] Edward talks about his weekly newsletter, Developer Tools Weekly.</span></p>
<p><span style="font-weight: 400;">[31:29] What was in Edward&#8217;s weekly newsletter that he sent off just this morning (of recording this podcast).</span></p>
<p><span style="font-weight: 400;">[34:36] All about Edward&#8217;s podcast,</span> <em><span style="font-weight: 400;">All Things Git.</span></em></p>
<p><span style="font-weight: 400;">[36:27] Edward answers some FAQs in the Git area of Azure DevOps!</span></p>
<p><span style="font-weight: 400;">[47:03] Edward&#8217;s parting words for listeners on today&#8217;s podcast.</span></p>
<p>&nbsp;</p>
<p><strong>Mentioned in this Episode:</strong></p>
<p><a href="https://www.microsoft.com/en-us/ignite"><span style= "font-weight: 400;">Microsoft Ignite</span></a></p>
<p><a href="https://twitter.com/ms_ignite?lang=en"><span style= "font-weight: 400;">Microsoft Ignite&#8217;s Twitter</span><span style= "font-weight: 400;"><br /></span></a><a href= "http://azuredevopspodcast.clear-measure.com/how-to-use-azure-devops-services-with-donovan-brown-episode-002"><em><span style="font-weight: 400;">ADP:</span></em> <span style="font-weight: 400;">Buck Hodges episode</span></a></p>
<p><a href= "http://azuredevopspodcast.clear-measure.com/how-to-use-azure-devops-services-with-donovan-brown-episode-002"> <em><span style="font-weight: 400;">ADP</span></em><span style= "font-weight: 400;">: Donovan Brown episode</span><span style= "font-weight: 400;"><br /></span></a><a href= "http://azuredevopspodcast.clear-measure.com/sam-guckenheimer-on-testing-data-collection-and-the-state-of-devops-report-episode-003"><em><span style="font-weight: 400;">ADP</span></em><span style="font-weight: 400;">: Sam Guckenheimer episode</span></a></p>
<p><a href="https://libgit2.org/"><span style= "font-weight: 400;">libgit2</span></a></p>
<p><a href="https://t.co/qDRRigy8g2"><em><span style= "font-weight: 400;">All Things Git</span></em> <span style= "font-weight: 400;">Podcast</span></a></p>
<p><a href="https://developertoolsweekly.com/"><span style= "font-weight: 400;">Developer Tools Weekly</span></a></p>
<p><a href= "http://www.woodwardweb.com/teamprise/goodbye_teampri.html"><span style="font-weight: 400;"> Teamprise</span></a></p>
<p><a href="https://visualstudio.microsoft.com/"><span style= "font-weight: 400;">Visual Studio</span></a></p>
<p><a href="https://github.com/"><span style= "font-weight: 400;">GitHub</span></a></p>
<p><a href="https://www.clear-measure.com/"><span style= "font-weight: 400;">Clear Measure</span></a> <span style= "font-weight: 400;">(Sponsor)</span></p>
<p><a href="https://github.com/Microsoft/VFSForGit"><span style= "font-weight: 400;">VFSforGit</span></a></p>
<p><a href="https://www.gitkraken.com/"><span style= "font-weight: 400;">GitKraken</span></a></p>
<p><a href="https://www.sourcetreeapp.com/"><span style= "font-weight: 400;">Sourcetree</span></a></p>
<p><a href= "https://azure.microsoft.com/en-ca/services/devops/repos/"><span style="font-weight: 400;"> Azure Repos</span></a></p>
<p><a href="https://www.gdconf.com/"><span style= "font-weight: 400;">Game Developers Conference (GDC)</span></a></p>
<p><a href="https://www.nuget.org/"><span style= "font-weight: 400;">NuGet</span></a></p>
<p><a href= "https://www.perforce.com/blog/git-beyond-basics-using-shallow-clones"> <span style="font-weight: 400;">Shallow Cloning</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://azure.microsoft.com/en-ca/services/devops/pipelines/"><span style="font-weight: 400;">Azure Pipelines</span></a></p>
<p><a href="http://dev.azure.com/libgit2"><span style= "font-weight: 400;">dev.azure.com/libgit2</span></a></p>
<p>&nbsp;</p>
<p><strong>Want to Learn More?</strong></p>
<p><span style="font-weight: 400;">Visit</span> <a href= "http://azuredevops.show/"><span style= "font-weight: 400;">AzureDevOps.Show</span></a> <span style= "font-weight: 400;">for show notes and additional episodes.</span></p>
<p>&nbsp;</p>
<p><strong>Follow Up with Our Guest:</strong></p>
<p><a href= "https://www.linkedin.com/in/ethomson/?originalSubdomain=ca"><span style="font-weight: 400;"> Edward Thomson&#8217;s LinkedIn</span></a></p>
<p><a href="https://twitter.com/ethomson?lang=en"><span style= "font-weight: 400;">Edward Thomson&#8217;s Twitter</span></a></p>
<p><a href="http://azuredevopspodcast.clear-measure.com/edward-thomson-on-all-things-git-libgit2-and-azure-devops-episode-006?tdest_id=800580">Check out this episode!</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1422</post-id>	</item>
		<item>
		<title>Palermo Pamphlet launch – episode 001</title>
		<link>https://jeffreypalermo.com/2018/10/palermo-pamphlet-launch-episode-001/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Thu, 11 Oct 2018 16:08:06 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Palermo Pamphlet]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1404</guid>

					<description><![CDATA[[podcast src=&#8221;https://html5-player.libsyn.com/embed/episode/id/7156317/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221; height=&#8221;300&#8243; width=&#8221;100%&#8221; placement=&#8221;top&#8221; theme=&#8221;custom&#8221;] My goal is to teach, inform, and have a little fun. But I want this to provide value for programmers shipping custom software using Microsoft tools. Here is the first episode of the Palermo Pamphlet, which I hope will be a valuable resource to you. Here are the show [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[podcast src=&#8221;<a href="https://html5-player.libsyn.com/embed/episode/id/7156317/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221" rel="nofollow">https://html5-player.libsyn.com/embed/episode/id/7156317/height/300/theme/custom/autoplay/no/autonext/no/thumbnail/yes/preload/no/no_addthis/no/direction/forward/render-playlist/no/custom-color/4169e1/&#038;#8221</a>; height=&#8221;300&#8243; width=&#8221;100%&#8221; placement=&#8221;top&#8221; theme=&#8221;custom&#8221;]</p>
<p>My goal is to teach, inform, and have a little fun. But I want this to provide value for programmers shipping custom software using Microsoft tools. Here is the first episode of the Palermo Pamphlet, which I hope will be a valuable resource to you.</p>
<p>Here are the show notes</p>
<ul>
<li>Episode 5 of the <a href="http://azuredevopspodcast.clear-measure.com/dave-mckinstry-on-integrating-azure-devops-and-the-culture-of-devops-episode-005">Azure DevOps Podcast published w/ Dave McKinstry</a></li>
<li>Blog on <a href="https://jeffreypalermo.com/2018/10/why-i-started-the-azure-devops-podcast/">why I started the Azure DevOps Podcast</a></li>
<li><a href="https://www.youtube.com/watch?reload=9&amp;v=v13xMlewnYc&amp;list=PLNMUSSKcxKjeMSpGfi_F3aMRrjDrMcdQ4">Martin Woodward’s presentation</a> on Azure DevOps Services at the .Net Conf 2018</li>
<li>Redgate ReadyRoll’s <a href="https://www.red-gate.com/products/sql-development/sql-change-automation/entrypage/readyroll-sql-change-automation?gclid=jeffreypalermo">rebranding to SQL Change Automation </a>– and how everyone needs AUTOMATED sql schema migrations</li>
<li>My upcoming <a href="https://www.meetup.com/azureaustin/events/254663537/">presentation to AzureAustin</a></li>
<li>Mads Kristensen’s <a href="https://twitter.com/mkristensen/status/1042809265860141058">tip on enabling active item tracking</a> in Visual Studio</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1404</post-id>	</item>
		<item>
		<title>Performance tuning an Azure DevOps build configuration</title>
		<link>https://jeffreypalermo.com/2018/10/performance-tuning-an-azure-devops-build-configuration/</link>
					<comments>https://jeffreypalermo.com/2018/10/performance-tuning-an-azure-devops-build-configuration/#comments</comments>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Wed, 10 Oct 2018 21:38:28 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1402</guid>

					<description><![CDATA[We&#8217;ve all seen the culprits that constantly add time to builds.  One might observe that your NPM install or Nuget restore can take several minutes.  I remember back to the times of CC.Net in 2005 when a small application build could happen in 45 seconds, including unit tests.  And 10 minutes as a &#8220;thou shall [&#8230;]]]></description>
										<content:encoded><![CDATA[<div>We&#8217;ve all seen the culprits that constantly add time to builds.  One might observe that your NPM install or Nuget restore can take several minutes.  I remember back to the times of CC.Net in 2005 when a small application build could happen in 45 seconds, including unit tests.  And 10 minutes as a &#8220;thou shall not go over this&#8221; threshold.  So we cannot allow NPM or any other step to take minutes.  We have to ferret that out.</div>
<div></div>
<div>The answer is the same as code performance profiling.  Find out where every build is spending the same time doing work that adds no value or doesn&#8217;t vary often. Then we cache the result.  For so many builds, these are the culprits that take time but typically aren&#8217;t the changes that are being tested from build to build:</div>
<div>
<ol>
<li>Obtaining a build server (when choosing hosted build agents)</li>
<li>Cloning the source</li>
<li><span class="il">Package</span> <span class="il">restores</span></li>
<li>Copying/archiving build artifacts</li>
</ol>
<div>Here are my common solutions for reducing these common culprits (I&#8217;d be interested to know how others have eliminated these time sucks)</div>
<div>
<ol>
<li>Use our own Azure VMs as the build agents (running multiple agents on a single VM) &#8211; always available at a moments notice</li>
<li>Let Azure Pipelines be a little less aggressive with cleaning source and instead have the build script delete the build directories at the beginning &#8211; removes need for a full clone and can just be a pull (works most of the time and requires probably a monthly purge for a clean clone, but saves SOOO much time)</li>
<li>a) retain cloned working tree so that the previous <span class="il">package</span> <span class="il">restore</span> is used for subsequent builds or b) check in <span class="il">packages</span> so that <span class="il">package</span> <span class="il">restores</span> are not necessary for every build</li>
<li>Once builds are working and reliable, only archive the build artifacts that are directly used by the release pipeline (typically the nuget <span class="il">packages</span> that house the application components)</li>
</ol>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://jeffreypalermo.com/2018/10/performance-tuning-an-azure-devops-build-configuration/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1402</post-id>	</item>
		<item>
		<title>Dave McKinstry on Integrating Azure DevOps and the Culture of DevOps – Episode 005</title>
		<link>https://jeffreypalermo.com/2018/10/dave-mckinstry-on-integrating-azure-devops-and-the-culture-of-devops-episode-005/</link>
		
		<dc:creator><![CDATA[Jeffrey Palermo]]></dc:creator>
		<pubDate>Mon, 08 Oct 2018 04:34:13 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://jeffreypalermo.com/?p=1398</guid>

					<description><![CDATA[[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7135111/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen] This week, Jeffrey Palermo is joined by his guest, Dave McKinstry. Dave is a Program Manager with the Azure DevOps Services Community Team — connecting with partners and customers, spreading modern practises, and helping developers succeed with DevOps and Azure. Prior to his position [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[iframe style=&#8221;border:none&#8221; src=&#8221;//html5-player.libsyn.com/embed/episode/id/7135111/height/100/width//thumbnail/yes/render-playlist/no/theme/custom/tdest_id/800580/custom-color/0072be&#8221; height=&#8221;100&#8243; width=&#8221;100%&#8221; scrolling=&#8221;no&#8221; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen]</p>
<p><span style="font-weight: 400;">This week, Jeffrey Palermo is joined by his guest, Dave McKinstry. Dave is a Program Manager with the Azure DevOps Services Community Team — connecting with partners and customers, spreading modern practises, and helping developers succeed with DevOps and Azure.</span> <span style= "font-weight: 400;">Prior to his position at Microsoft, he has been in software services and technical sales for over 18 years. As a consultant, principal consultant, co-owner, and manager, he has always helped people efficiently build better software. He loves what he does as a technologist and enjoys being a part of today&#8217;s rapid technology evolution.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In this episode, Jeffrey and Dave talk about changes for Dave since the launch of Azure DevOps, what his journey has been like in the DevOps industry, his thoughts on companies looking to integrate Azure DevOps and move forward with automated deployment and reaching the continuous integration mark, how he thinks developers can move forward in terms of quality and Agile 101, and the modern skillset of what a developer and/or system engineer should look like in today&#8217;s DevOps environment.</span></p>
<p>&nbsp;</p>
<p><strong>Topics of Discussion:</strong></p>
<p><span style="font-weight: 400;">[:39] About today&#8217;s guest, Dave McKinstry.</span></p>
<p><span style="font-weight: 400;">[1:00] Jeffrey welcomes Dave to the podcast.</span></p>
<p><span style="font-weight: 400;">[1:14] How it has been for Dave since the launch of Azure DevOps.</span></p>
<p><span style="font-weight: 400;">[1:25] Which side does Dave work on? Azure DevOps Services or Azure DevOps Server?</span></p>
<p><span style="font-weight: 400;">[2:58] Is Dave going to be at the Ignite event?</span></p>
<p><span style="font-weight: 400;">[3:10] What has been Dave&#8217;s journey through (what we now talk about as) modern practices and shipping software?</span></p>
<p><span style="font-weight: 400;">[5:25] How is it with Dave&#8217;s customers in regards to getting to continuous delivery and the continuous integration mark.</span></p>
<p><span style="font-weight: 400;">[8:03] The general nature of smaller and larger companies from a business perspective.</span></p>
<p><span style="font-weight: 400;">[10:03] Dave&#8217;s thoughts on the companies integrating Azure DevOps looking into moving forward with automated deployment.</span></p>
<p><span style="font-weight: 400;">[12:20] A word from Azure DevOps sponsor: Clear Measure.</span></p>
<p><span style="font-weight: 400;">[12:48] How developers can move forward with quality and Agile 101.</span></p>
<p><span style="font-weight: 400;">[15:10] How did the culture of DevOps (Dev and Ops) come together?</span></p>
<p><span style="font-weight: 400;">[17:57] Dave&#8217;s take on the relevant tasks of 15 years ago, no longer being relevant in today&#8217;s DevOps environment.</span></p>
<p><span style="font-weight: 400;">[20:28] The modern skillset of DevOps and what developers and system engineers need to be doing in the current DevOps world.</span></p>
<p><span style="font-weight: 400;">[21:29] About the benefits of Dave&#8217;s standing treadmill desk (that he&#8217;s currently using during the recording of the podcast)!</span></p>
<p><span style="font-weight: 400;">[25:40] Dave and Jeffrey&#8217;s early schooling, programming, and typing experiences! And the contrast with modern day schooling and the changing world.</span></p>
<p><span style="font-weight: 400;">[28:59] Dave describes the term &#8216;machine learning&#8217; and the impact it has.</span></p>
<p><span style="font-weight: 400;">[33:15] What Dave recommends listeners should do next.</span></p>
<p>&nbsp;</p>
<p><strong>Mentioned in this Episode:</strong></p>
<p><a href= "https://azure.microsoft.com/en-ca/free/search/?&amp;OCID=AID719803_SEM_hGw7oP5x&amp;lnkd=Google_Azure_Brand&amp;dclid=CIKF7rTc7d0CFQPDwAodBMQCmw"> <span style="font-weight: 400;">Azure DevOps</span></a></p>
<p><a href= "https://azure.microsoft.com/en-ca/services/devops/"><span style= "font-weight: 400;">Azure DevOps Services</span></a></p>
<p><a href= "https://azure.microsoft.com/en-ca/blog/introducing-azure-devops/"><span style="font-weight: 400;"> Azure DevOps Server</span></a></p>
<p><a href="https://www.microsoft.com/en-us/ignite"><span style= "font-weight: 400;">Microsoft Ignite event</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://www.inflectra.com/spirateam/highlights/understanding-alm-tools.aspx"><span style="font-weight: 400;">Application Lifecycle Management (ALM)</span><span style= "font-weight: 400;"><br /></span></a><a href= "https://visualstudio.microsoft.com/team-services/tfs-pricing/"><span style="font-weight: 400;">Team Foundation Server (TFS)</span></a></p>
<p><a href= "https://medium.com/@nirespire/what-is-cicd-concepts-in-continuous-integration-and-deployment-4fe3f6625007"> <span style="font-weight: 400;">CICD</span></a></p>
<p><a href="https://www.bbb.org/en/ca"><span style= "font-weight: 400;">Better Business Bureau</span></a></p>
<p><a href="https://www.clear-measure.com/"><span style= "font-weight: 400;">Clear Measure</span></a> <span style= "font-weight: 400;">(Sponsor)</span></p>
<p><a href= "https://www.agileconnection.com/article/agile-101-short-introduction-agile-development-principles-and-practices"> <span style="font-weight: 400;">Agile 101</span></a></p>
<p><a href= "https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"> <em><span style="font-weight: 400;">Mythical Man-Month: Essays on Software Engineering,</span></em> <span style= "font-weight: 400;">by Fred Brooks</span></a></p>
<p><a href= "https://azure.microsoft.com/en-ca/services/iot-hub/?&amp;OCID=AID719803_SEM_53xLYcCx&amp;lnkd=Google_Azure_Nonbrand&amp;dclid=COWUhO_i7d0CFUQ_TwodMk0BnA"> <span style="font-weight: 400;">IoT</span></a></p>
<p><a href= "https://docs.microsoft.com/en-us/azure/devops/learn/"><span style= "font-weight: 400;">aka.ms/devops</span></a></p>
<p>&nbsp;</p>
<p><strong>Want to Learn More?</strong></p>
<p><span style="font-weight: 400;">Visit</span> <a href= "http://azuredevops.show/"><span style= "font-weight: 400;">AzureDevOps.Show</span></a> <span style= "font-weight: 400;">for show notes and additional episodes.</span></p>
<p>&nbsp;</p>
<p><strong>Follow Up with Our Guest:</strong></p>
<p><a href= "https://www.linkedin.com/in/davemckinstry/"><span style="font-weight: 400;"> Dave McKinstry&#8217;s LinkedIn</span></a></p>
<p><a href="http://azuredevopspodcast.clear-measure.com/dave-mckinstry-on-integrating-azure-devops-and-the-culture-of-devops-episode-005?tdest_id=800580">Check out this episode!</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1398</post-id>	</item>
	</channel>
</rss>