<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>blog.ehn.nu</title><link>https://blog.ehn.nu/</link><description>Recent content on blog.ehn.nu</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 22 Apr 2020 14:46:16 +0000</lastBuildDate><atom:link href="https://blog.ehn.nu/index.xml" rel="self" type="application/rss+xml"/><item><title>Implementing Azure Container Registry Retention with Brigade</title><link>https://blog.ehn.nu/2020/04/implementing-azure-container-registry-retention-with-brigade/</link><pubDate>Wed, 22 Apr 2020 14:46:16 +0000</pubDate><guid>https://blog.ehn.nu/2020/04/implementing-azure-container-registry-retention-with-brigade/</guid><description>&lt;p&gt;If you are doing any work related to containers and Azure, you are most likely using &lt;a href="https://azure.microsoft.com/en-us/services/container-registry/"&gt;Azure Container Registry&lt;/a&gt; for storing images. The amoun of storage available for these images depends on the pricing tier you are using.&lt;br&gt;
If you exceed this amount of storage, you will pay an additional fee for every GB of image data that exceeds the limit. See the table below for the current pricing details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Azure Container Registry pricing details&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Debugging Dapr applications with Visual Studio Code</title><link>https://blog.ehn.nu/2020/03/debugging-dapr-applications-with-visual-studio-code/</link><pubDate>Mon, 23 Mar 2020 19:27:11 +0000</pubDate><guid>https://blog.ehn.nu/2020/03/debugging-dapr-applications-with-visual-studio-code/</guid><description>&lt;p&gt;I’ve been playing around with the &lt;a href="https://dapr.io/"&gt;Dapr&lt;/a&gt; project recently, which is an interesting approach to building distributed, “microservices” applications. Tha main idea with Dapr is to make it easier for developers to implement distributed application running either in the cloud or on “the edge” (e.g. anywhere else), by implementing a lot of the cross-cutting concerns that is a part of every distributed app. Dapr consists of a number of building blocks, such as Service Invocation, State Service, Pub/Sub messaging and distributed tracing.&lt;/p&gt;</description></item><item><title>How Visual Studio 2019 supports containerized applications</title><link>https://blog.ehn.nu/2020/02/how-visual-studio-2019-supports-containerized-applications/</link><pubDate>Wed, 05 Feb 2020 15:37:34 +0000</pubDate><guid>https://blog.ehn.nu/2020/02/how-visual-studio-2019-supports-containerized-applications/</guid><description>&lt;p&gt;Visual Studio has for quite some time been adding features to make it easier to create, build, run and debug Dockerized applications.  This is great, because Docker can be quite daunting when you intially approach it and anything that makes that journey easier should be encouraged.&lt;/p&gt;
&lt;p&gt;However, with this tooling support comes some magic that is performed behind the scene when you hit F5 in Visual Studio. I have on numerous different occasions explained to developers what actually happens when you build and debug a Dockerized application in Visual Studio. With this post, I can send them here instead the next time 🙂&lt;/p&gt;</description></item><item><title>Event-driven scripting in Kubernetes with Brigade</title><link>https://blog.ehn.nu/2020/01/event-driven-scripting-in-kubernetes-with-brigade/</link><pubDate>Sun, 19 Jan 2020 10:59:22 +0000</pubDate><guid>https://blog.ehn.nu/2020/01/event-driven-scripting-in-kubernetes-with-brigade/</guid><description>&lt;p&gt;In most projects that I’ve been part of, sooner or later the need for various types of automation jobs arises. For example cleaning up old files, moving database backups, running health checks or system tests and so on.&lt;/p&gt;
&lt;p&gt;Historically we’ve implemented these tasks using for example the Windows task scheduler, or through some custom Windows Service app. More recently, we’ve been using Azure Automation jobs for this. Sometimes it can also make sense to use CI/CD automation tools like Azure DevOps for these jobs.&lt;/p&gt;</description></item><item><title>My Speaking Year 2019</title><link>https://blog.ehn.nu/2020/01/my-speaking-year-2019/</link><pubDate>Tue, 14 Jan 2020 11:00:42 +0000</pubDate><guid>https://blog.ehn.nu/2020/01/my-speaking-year-2019/</guid><description>&lt;p&gt;When I set out my goals for 2019, one of them was to speak at new conferences. Up until 2018, I had only spoken at conferences in Sweden (like DevSum, TechDays and SweTugg). While these conferences are great, I felt that I wanted to raise the bar a bit and try to visit other conferences, including conferences abroad. And as it turned out, I reached my goal!&lt;/p&gt;
&lt;p&gt;I thought that it would be nice to sum up my speaking year in a blog post, with some comments about each comference and a picture or two.&lt;/p&gt;</description></item><item><title>Getting started with Windows Containers in Azure Kubernetes Service</title><link>https://blog.ehn.nu/2019/06/getting-started-with-windows-containers-in-azure-kubernetes-service/</link><pubDate>Fri, 28 Jun 2019 14:12:04 +0000</pubDate><guid>https://blog.ehn.nu/2019/06/getting-started-with-windows-containers-in-azure-kubernetes-service/</guid><description>&lt;p&gt;Many of us have eagerly been waiting for the announcement that Microsoft made at the Build 2019 conference, Windows Containers is now in public preview in Azure Kubernetes Service! Yes, it’s in preview so we still have to wait before putting applications into production but it is definitely time to start planning and testing migrations of your Windows applications to AKS, such as full .NET Framework apps.&lt;/p&gt;
&lt;p&gt;Containers on Windows are still not as mature as on Linux of course, but they are fully supported on Windows and it is now GA on Kubernetes since version 1.14.&lt;/p&gt;</description></item><item><title>Running Windows Container Build Agents for Azure Pipelines</title><link>https://blog.ehn.nu/2019/06/running-windows-container-build-agents-for-azure-pipelines/</link><pubDate>Thu, 20 Jun 2019 10:29:39 +0000</pubDate><guid>https://blog.ehn.nu/2019/06/running-windows-container-build-agents-for-azure-pipelines/</guid><description>&lt;p&gt;In &lt;a href="https://blog.ehn.nu/2019/01/creating-a-windows-container-build-agent-for-azure-pipelines/"&gt;a previous post&lt;/a&gt; I talked about how to create a build environment, including an Azure DevOps build agent, using Docker and Windows Containers. Using Dockerfiles, we can specify everything that we need in order to build and test our projects. Docker gives us Infrastructure as Code (no more snowflake build servers) and isolation which makes it easy to spin up multiple agents quickly on one or more machines without interfering with each other.&lt;/p&gt;</description></item><item><title>Accessing Azure Artifacts feed in a Docker build</title><link>https://blog.ehn.nu/2019/05/accessing-azure-artifacts-feed-in-a-docker-build/</link><pubDate>Mon, 27 May 2019 20:48:39 +0000</pubDate><guid>https://blog.ehn.nu/2019/05/accessing-azure-artifacts-feed-in-a-docker-build/</guid><description>&lt;p&gt;I’ve recently given talks at conferences and user groups on the topic of using Docker as a build engine, describing the builds using a Dockerfile. This has several advantages, such as fully consistent build no matter where you run it, no dependencies necessary except Docker.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Image result for docker" loading="lazy" src="https://www.docker.com/sites/default/files/social/docker_facebook_share.png"&gt;&lt;/p&gt;
&lt;p&gt;Some things become a bit tricker though, &lt;a href="https://blog.ehn.nu/2019/01/running-net-core-unit-tests-with-docker-and-azure-pipelines/"&gt;I’ve blogged previously&lt;/a&gt; about how to run unit tests in a Docker build, including getting the test results out of the build container afterwards.&lt;/p&gt;</description></item><item><title>Creating a Windows Container Build Agent for Azure Pipelines</title><link>https://blog.ehn.nu/2019/01/creating-a-windows-container-build-agent-for-azure-pipelines/</link><pubDate>Fri, 18 Jan 2019 12:57:46 +0000</pubDate><guid>https://blog.ehn.nu/2019/01/creating-a-windows-container-build-agent-for-azure-pipelines/</guid><description>&lt;p&gt;Having automated builds that are stable and predictable is so important in order to succeed with CI/CD. One important practice to enable this is to have a fully scriptable build environment that lets you deploy multiple, identical, build envionment hosts. This can be done by using image tooling such as Packer from HahsiCorp. Another option is to use Docker which is what I am using in this post.&lt;/p&gt;
&lt;p&gt;Using Docker will will crete a Dockerfile that specifies the content of the image in which builds will run. This image should contain the SDK’s and tooling necessary to build and test your projects. It will also contain the build agent for your favourite CI server that will let you spin up a new agent in seconds using the docker image.&lt;/p&gt;</description></item><item><title>Deploy Azure Web App for Containers with ARM and Azure DevOps</title><link>https://blog.ehn.nu/2019/01/deploy-azure-web-app-for-containers-with-arm-and-azure-devops/</link><pubDate>Sun, 13 Jan 2019 22:25:17 +0000</pubDate><guid>https://blog.ehn.nu/2019/01/deploy-azure-web-app-for-containers-with-arm-and-azure-devops/</guid><description>&lt;p&gt;Using Docker containers  for building and running your applications has many advantages such as consistent builds, build-once run anywhere and easy standardized packaging and deployment format, just to name a few.&lt;/p&gt;
&lt;p&gt;When it comes to running the containers you might look into container orchestrators such as Kubernetes or Docker Swarm. Sometimes though, these orchestrators can be overkill for your applications. If you are developing web applications that have only a few dependent runtime components, another options is to use &lt;strong&gt;Azure Web App for Containers&lt;/strong&gt;, which is a mouthful for saying that you can use your beloved Azure Web Apps with all the functionality that comes with it (easy scaling, SSL support etc), but deploy your code in a container. Best of both worlds, perhaps?&lt;/p&gt;</description></item><item><title>Running .NET Core Unit Tests with Docker and Azure Pipelines</title><link>https://blog.ehn.nu/2019/01/running-net-core-unit-tests-with-docker-and-azure-pipelines/</link><pubDate>Fri, 11 Jan 2019 15:47:23 +0000</pubDate><guid>https://blog.ehn.nu/2019/01/running-net-core-unit-tests-with-docker-and-azure-pipelines/</guid><description>&lt;p&gt;Using Docker for compiling your code is great since that guarantees a consistent behaviour regardless of where you are building your code. No matter if it’s on the local dev machine or on a build server somewhere. It also reduces the need of installing any dependencies just to make the code compile. The only thing that you need to install is Docker!&lt;/p&gt;
&lt;p&gt;When you create a ASP.NET Core project in Visual Studio and add Docker support for it you will get a Docker file that looks something like this:\&lt;/p&gt;</description></item><item><title>Speaking</title><link>https://blog.ehn.nu/speaking/</link><pubDate>Wed, 26 Sep 2018 21:39:35 +0000</pubDate><guid>https://blog.ehn.nu/speaking/</guid><description>&lt;p&gt;&lt;a href="conference.jpg"&gt;&lt;img loading="lazy" src="https://blog.ehn.nu/speaking/conference-1024x614.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On this page I&amp;rsquo;m listing my coming and past speaking engagements.&lt;/p&gt;
&lt;p&gt;If you are interested in talks around DevOps on the Microsoft stack, Azure DevOps, container technologies (Docker, Kubernetes, Azure Kubernetes Services..), cloud architecture or something else interesting, contact me on Twitter (@jakobehn) or through this blog.&lt;/p&gt;
&lt;h2 id="coming-up"&gt;Coming Up&lt;/h2&gt;
&lt;h5 id="20200423-ndc-porto"&gt;2020/04/23  NDC Porto&lt;/h5&gt;
&lt;p&gt;Building resilient microservice applications with Dapr&lt;br&gt;
&lt;a href="https://ndcporto.com/talk/building-resilient-microservice-applications-with-dapr/"&gt;https://ndcporto.com/talk/building-resilient-microservice-applications-with-dapr/&lt;/a&gt;&lt;/p&gt;
&lt;h5 id="2020055-6-ignite-the-tour-stockholm"&gt;2020/05/5-6  Ignite the Tour Stockholm&lt;/h5&gt;
&lt;p&gt;DevOps with Azure Kubernetes Service&lt;br&gt;
Container Design Patterns&lt;br&gt;
&lt;a href="https://www.microsoft.com/sv-se/ignite-the-tour/stockholm"&gt;https://www.microsoft.com/sv-se/ignite-the-tour/stockholm&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Meet Azure DevOps - formerly known as VSTS</title><link>https://blog.ehn.nu/2018/09/meet-azure-devops-formerly-known-as-vsts/</link><pubDate>Mon, 10 Sep 2018 17:39:27 +0000</pubDate><guid>https://blog.ehn.nu/2018/09/meet-azure-devops-formerly-known-as-vsts/</guid><description>&lt;p&gt;Today Microsoft announced &lt;a href="https://azure.microsoft.com/en-us/blog/introducing-azure-devops/"&gt;Azure DevOps&lt;/a&gt;, which is partly a rebranding of the existing Visual Studio Team Services but also has some exciting news.&lt;/p&gt;
&lt;p&gt;The gist of the rebranding is that Azure DevOps is now a suite of service, where each service cna be acquired and used separately from the other ones. If you only want to use source control (and use some other CI/CD system) that’s fine.&lt;/p&gt;
&lt;p&gt;Do you have your code over at GitHub and want to use the CI/CD services in Azure DevOps? Works perfectly! By breaking the whole suite down into smaller services, it will make it easier for customers to find the best fit for their needs, without having to invest in the whole suite. Of course, you will still be able to easily get the whole suite when creating new accounts.&lt;/p&gt;</description></item><item><title>A Deep Dive into continuous delivery and Microservices on Azure</title><link>https://blog.ehn.nu/2018/02/a-deep-dive-into-continuous-delivery-and-microservices-on-azure/</link><pubDate>Fri, 09 Feb 2018 09:33:54 +0000</pubDate><guid>https://blog.ehn.nu/2018/02/a-deep-dive-into-continuous-delivery-and-microservices-on-azure/</guid><description>&lt;p&gt;In March, &lt;a href="https://blogs.msmvps.com/molausson/"&gt;Mathias Olausson&lt;/a&gt; and I will run two fullday deep dive in continuous delivery and microservices on Azure.&lt;/p&gt;
&lt;p&gt;During the day you will learn about microservice architecture and how to build and deploy these using container technology and cloud services in Microsoft Azure.&lt;/p&gt;
&lt;p&gt;The agenda looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Microservices architecture&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Design principles- Breaking up the monolith&lt;br&gt;
- Implementing trunk based development practices with Visual Studio Team Services
&lt;ul&gt;
&lt;li&gt;Feature flags- Pull requests- Branch/Build policies&lt;br&gt;
- Using container techonologies for packaging and delivering applications with zero downtime
&lt;ul&gt;
&lt;li&gt;Docker for Windows- Kubernetes
&lt;ul&gt;
&lt;li&gt;Azure Container registry&lt;/li&gt;
&lt;li&gt;Azure Container Services (AKS)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deployment pipelines with Visual Studio Team Services&lt;/p&gt;</description></item><item><title>Deploying ARM Templates using Visual Studio Team Services</title><link>https://blog.ehn.nu/2017/02/deploying-arm-templates-using-visual-studio-team-services/</link><pubDate>Fri, 17 Feb 2017 11:22:34 +0000</pubDate><guid>https://blog.ehn.nu/2017/02/deploying-arm-templates-using-visual-studio-team-services/</guid><description>&lt;p&gt;If you are running your applications in Azure, and in particular on PaaS, you need to take a look ARM templates as a way to manage your environments. ARM templates let’s you define and deploy your entire environment using JSON files that you store together with the rest of your source code. The deployment of ARM templates are idempotent, meaning that you can run them many times and it will always produce the same result.&lt;/p&gt;</description></item><item><title>New Swedish Meetup Group for Microsoft ALM and DevOps</title><link>https://blog.ehn.nu/2016/10/new-swedish-meetup-group-for-microsoft-alm-and-devops/</link><pubDate>Fri, 14 Oct 2016 09:59:53 +0000</pubDate><guid>https://blog.ehn.nu/2016/10/new-swedish-meetup-group-for-microsoft-alm-and-devops/</guid><description>&lt;p&gt;We have decided that it is time to create a meetup group for people that are interested in the Microsoft ALM and DevOps story!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.meetup.com/swedish-ms-alm-devops/" title="Sweden Microsoft ALM and DevOps Meetup"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2016/10/new-swedish-meetup-group-for-microsoft-alm-and-devops/image-1.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Together with &lt;a href="http://blogs.msmvps.com/molausson"&gt;Mathias Olausson&lt;/a&gt; and a few other people we have created a new Meetup group and announced the first meeting.&lt;/p&gt;
&lt;p&gt;Our plan is to continue meeting every month or so to learn about and dicuss new concept and ideas in the area of ALRM and DevOps on the Microsoft stack. This is a wide area, which spans all roles in the development process, &lt;br&gt;
so there will be something for everyone.&lt;/p&gt;</description></item><item><title>Using Web Deploy in Visual Studio Team Services Release Management</title><link>https://blog.ehn.nu/2016/03/using-web-deploy-in-visual-studio-team-services-release-management/</link><pubDate>Mon, 21 Mar 2016 21:40:45 +0000</pubDate><guid>https://blog.ehn.nu/2016/03/using-web-deploy-in-visual-studio-team-services-release-management/</guid><description>&lt;p&gt;This post does not really cover something new, but since I find myself explain this to people now and then, I thought that I’d write a quick post on the subject.&lt;/p&gt;
&lt;p&gt;So, we want to create a web deploy package as part of our automated build, and then take this package and deploy it to multiple environments, where each environment can have different configuration settings, using VSTS Release Management. Since we only want to build our package once, we have to apply the environment specific settings at deployment time, which means we will use &lt;a href="https://msdn.microsoft.com/en-us/library/ff398068(v=vs.110).aspx"&gt;&lt;em&gt;&lt;strong&gt;Web Deploy parameters&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Talking Visual Studio ALM Extensibility at DevSum16</title><link>https://blog.ehn.nu/2016/03/talking-visual-studio-alm-extensibility-at-devsum16/</link><pubDate>Wed, 09 Mar 2016 20:54:08 +0000</pubDate><guid>https://blog.ehn.nu/2016/03/talking-visual-studio-alm-extensibility-at-devsum16/</guid><description>&lt;p&gt;Last year I had a great time speaking at the DevSum conference, the biggest .NET developer conference in Sweden. Back then, I talked about moving your development to the cloud using Visual Studio Team Services. &lt;a href="http://www.activesolution.se"&gt;Active Solution&lt;/a&gt;, where I work, was a gold partner for this event and in addition to me my colleagues &lt;a href="http://geekswithblogs.net/asmith/Default.aspx"&gt;Alan Smith&lt;/a&gt; and &lt;a href="http://peter.orneholm.com/"&gt;Peter Örneholm&lt;/a&gt; also spoke at the conference. We had a lot of fun in our booth showing the Lego robots running on Raspberry PIs, connected to Azure for movement control and result collection.&lt;/p&gt;</description></item><item><title>Publish a GitHub Release from Visual Studio Team Services</title><link>https://blog.ehn.nu/2016/03/publish-a-github-release-from-visual-studio-team-services/</link><pubDate>Tue, 08 Mar 2016 22:13:43 +0000</pubDate><guid>https://blog.ehn.nu/2016/03/publish-a-github-release-from-visual-studio-team-services/</guid><description>&lt;p&gt;The new build system in Team Foundation Server 2015 and Visual Studio Team Services has from the start made it very easy to integrate with GitHub. This integration allows you to create a build in TFS/VSTS that fetches the source code from a GitHub repository. I have blogged about this integration before, at &lt;a href="https://blog.ehn.nu/2015/06/building-github-repositories-in-tfs-build-vnext/" title="http://blog.ehn.nu/2015/06/building-github-repositories-in-tfs-build-vnext/"&gt;http://blog.ehn.nu/2015/06/building-github-repositories-in-tfs-build-vnext/&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="publisinh-a-githubrelease-from-vsts"&gt;Publisinh a GitHubRelease from VSTS&lt;/h4&gt;
&lt;p&gt;This integration allows you to use GitHub for source code, but use the powerful build system in TFS/VSTS to run your automated builds. But, when maintaining the project at GitHub you often want to publish your releases there as well, with the output from your build.&lt;/p&gt;</description></item><item><title>TFS 2015 Update 2 RC1 Available – With VS Release Management vNext</title><link>https://blog.ehn.nu/2016/02/tfs-2015-update-2-rc1-available-with-vs-release-management-vnext/</link><pubDate>Thu, 11 Feb 2016 08:34:33 +0000</pubDate><guid>https://blog.ehn.nu/2016/02/tfs-2015-update-2-rc1-available-with-vs-release-management-vnext/</guid><description>&lt;p&gt;Today &lt;a href="https://blogs.msdn.microsoft.com/bharry/2016/02/10/team-foundation-server-2015-update-2-rc-1-is-available/"&gt;Brian Harry announced that the first release of TFS 2015 Update 2&lt;/a&gt; is available. It is an RC with a go-live license, which means that Microsoft will support you if you install it in production, and it will be a direct supported upgrade to RTM once it is released.&lt;/p&gt;
&lt;p&gt;Read the full release notes for Update 2 RC1 here: &lt;a href="https://www.visualstudio.com/en-us/news/tfs2015-update2-vs" title="https://www.visualstudio.com/en-us/news/tfs2015-update2-vs"&gt;https://www.visualstudio.com/en-us/news/tfs2015-update2-vs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One huge thing with the release is that Update 2 includes the &lt;a href="https://blog.ehn.nu/2015/12/microsoft-announces-next-generation-of-visual-studio-release-management/"&gt;new Release Management vNext&lt;/a&gt; feature that has up until now only been available in the service (although &lt;a href="https://blog.ehn.nu/2016/01/deploy-on-premise-builds-with-visual-studio-release-management-vnext/"&gt;you can use that for on premise TFS and deployments&lt;/a&gt;). But now you don’t have to rely on VSTS for hosting the service, it is now part of TFS 2015 Update 2!&lt;/p&gt;</description></item><item><title>Deploy On Premise Builds with Visual Studio Release Management vNext</title><link>https://blog.ehn.nu/2016/01/deploy-on-premise-builds-with-visual-studio-release-management-vnext/</link><pubDate>Thu, 28 Jan 2016 21:23:00 +0000</pubDate><guid>https://blog.ehn.nu/2016/01/deploy-on-premise-builds-with-visual-studio-release-management-vnext/</guid><description>&lt;p&gt;Microsoft&amp;rsquo;s &lt;a href="https://blog.ehn.nu/2015/12/microsoft-announces-next-generation-of-visual-studio-release-management/"&gt;new version of Visual Studio Release Management&lt;/a&gt; is currently in public preview in VSTS. It is currently targeted for the TFS 2015 Update 2 version that should be shipped later this spring.&lt;/p&gt;
&lt;p&gt;However, even if you are not all in on Visual Studio Team Services, you can still use this service! Since the build/release agents that are used can run on premise without any necessary firewall ports being opened inbound, you have full access to any internal TFS servers and application servers that you want to deploy to.&lt;/p&gt;</description></item><item><title>Deploy Azure Web Apps with Parameterization</title><link>https://blog.ehn.nu/2016/01/deploy-azure-web-apps-with-parameterization/</link><pubDate>Sun, 24 Jan 2016 20:12:05 +0000</pubDate><guid>https://blog.ehn.nu/2016/01/deploy-azure-web-apps-with-parameterization/</guid><description>&lt;p&gt;I have &lt;a href="http://geekswithblogs.net/jakob/archive/2015/04/29/deploying-an-azure-web-site-using-tfs-build-vnext.aspx"&gt;blogged before about how to deploy an Azure Web App using the new build system&lt;/a&gt; in TFS 2015/Visual Studio Team Services. In addition to configure an Azure service endpoint, it is really only a matter of using the built-in &lt;a href="https://github.com/Microsoft/vso-agent-tasks/blob/master/Tasks/AzureWebPowerShellDeployment/task.json"&gt;Azure Web App Deployment&lt;/a&gt; task.&lt;/p&gt;
&lt;p&gt;However, in many cases I have decided not to use this task myself since it has been lacking a key feature: Applying deployment parameters using the SetParameter.xml file.&lt;/p&gt;</description></item><item><title>Downloading Build Artifacts in TFS Build vNext</title><link>https://blog.ehn.nu/2016/01/downloading-build-artifacts-in-tfs-build-vnext/</link><pubDate>Mon, 18 Jan 2016 19:14:31 +0000</pubDate><guid>https://blog.ehn.nu/2016/01/downloading-build-artifacts-in-tfs-build-vnext/</guid><description>&lt;p&gt;Since a couple of months back, Microsoft new &lt;a href="https://blog.ehn.nu/2015/12/microsoft-announces-next-generation-of-visual-studio-release-management/"&gt;Release Management servic&lt;/a&gt;e is available in public preview in Visual Studio Team Services. According to the current time plan, it will be released for on-premise TFS in the next update (Update 2).&lt;/p&gt;
&lt;p&gt;Using a tool like release management allows you to implement a deployment pipeline by grabbing the binaries and any other artifacts from your release build, and then deploy them across different environments with the proper configuration and approval workflow. Building your binaries once and only once is a fundamental principal of implementing continuous delivery, too much can go wrong if you build your application every time you deploy it into a new environment.&lt;/p&gt;</description></item><item><title>Books</title><link>https://blog.ehn.nu/books/</link><pubDate>Tue, 08 Dec 2015 21:18:55 +0000</pubDate><guid>https://blog.ehn.nu/books/</guid><description>&lt;p&gt;Jakob has published three books in the area of Visual Studio ALM:&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.amazon.com/Continuous-Delivery-Visual-Studio-2015/dp/1484212738"&gt;Continuous Delivery with Visual Studio 2015&lt;/a&gt; (&lt;em&gt;Apress - 2015&lt;/em&gt;)&lt;/strong&gt;&lt;br&gt;
(With &lt;a href="http://blogs.msmvps.com/molausson/"&gt;Mathias Olausson&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This book is the authoritative source on implementing Continuous Delivery practices using Microsoft’s Visual Studio and TFS 2015. Microsoft MVP authors Mathias Olausson and Jakob Ehn translate the theory behind this methodology and show step by step how to implement Continuous Delivery in a real world environment.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>About Me</title><link>https://blog.ehn.nu/about-me/</link><pubDate>Tue, 08 Dec 2015 20:37:43 +0000</pubDate><guid>https://blog.ehn.nu/about-me/</guid><description>&lt;p&gt;Jakob is a current  &lt;a href="https://mvp.microsoft.com/en-us/PublicProfile/4039620?fullName=Jakob%20Ehn"&gt;Microsoft Azure MVP&lt;/a&gt; (former Visual Studio/ALM MVP) and also a &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/11/10/introducing-the-visual-studio-alm-rangers-jakob-ehn.aspx"&gt;Visual Studio ALM Ranger&lt;/a&gt;. Jakob has over 15 years of experience in the IT industry, and currently works as a senior developer and cloud solution architect at &lt;a href="http://activesolution.se"&gt;Active Solution&lt;/a&gt; in Stockholm, Sweden, specializing in Cloud Archicture and DevOps.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Jakob&amp;rsquo;s Profile" loading="lazy" src="https://blog.ehn.nu/about-me/profile_small-300x243.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Jakob has published several books on the topic of DevOps on the Microsoft stack, read more about them &lt;a href="http://blog.ehn.nu/books/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He has also spoken on several different conferences and user groups, including DevSum, TechDays, WinOps and NDC. Read about upcoming and past speaking engagement &lt;a href="http://blog.ehn.nu/speaking/"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Microsoft Developer Roadshow Sweden with Active Solution</title><link>https://blog.ehn.nu/2015/12/microsoft-developer-roadshow-sweden-with-active-solution/</link><pubDate>Mon, 07 Dec 2015 21:13:09 +0000</pubDate><guid>https://blog.ehn.nu/2015/12/microsoft-developer-roadshow-sweden-with-active-solution/</guid><description>&lt;p&gt;&lt;a href="image7.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2015/12/microsoft-developer-roadshow-sweden-with-active-solution/image_thumb7.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This december we at &lt;a href="http://activesolution.se"&gt;Active Solution&lt;/a&gt; team up with Microsoft Sweden to deliver a full day of Azure and Internet of Things (IoT) goodness in 4 different cities around Sweden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Malmö&lt;/strong&gt; – Dec 1- &lt;strong&gt;Göteborg&lt;/strong&gt; – Dec 2- &lt;strong&gt;Umeå&lt;/strong&gt; – Dec 8- &lt;strong&gt;Stockholm&lt;/strong&gt; – Dec 9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a unique opportunity for devlopers, startups and students that want to learn more about what Microsoft Azure has to offer and how you can implement IoT solutions together with Azure.&lt;/p&gt;</description></item><item><title>Microsoft Announces Next Generation of Visual Studio Release Management</title><link>https://blog.ehn.nu/2015/12/microsoft-announces-next-generation-of-visual-studio-release-management/</link><pubDate>Mon, 07 Dec 2015 21:11:48 +0000</pubDate><guid>https://blog.ehn.nu/2015/12/microsoft-announces-next-generation-of-visual-studio-release-management/</guid><description>&lt;p&gt;Today at the Microsoft Connect() event, Microsoft announced the public preview of the brand new version of Visual Studio Release Management. The public preview is available on &lt;em&gt;&lt;strong&gt;Visual Studio Team Services&lt;/strong&gt;&lt;/em&gt; (a.k.a. &lt;em&gt;Visual Studio Online&lt;/em&gt;, in case you missed that announcement! :-)), and will debut on premise later in 2016.&lt;/p&gt;
&lt;p&gt;So, what’s this new version about? Let’s summarize some of the major features about it:&lt;/p&gt;
&lt;h2 id="web-based"&gt;Web Based&lt;/h2&gt;
&lt;p&gt;The existing version of Visual Studio Release Management, that was originally acquired from InCycle back in 2013, uses a standalone WPF client for authoring, triggering and tracking releases. It always felt a bit awkward and wasn’t really integrated with the rest of TFS. The new version is completely rewritten to be a web based experience and is part of the web access, as a new “Release” tab.&lt;/p&gt;</description></item><item><title>New Book – Continuous Delivery with Visual Studio ALM 2015</title><link>https://blog.ehn.nu/2015/12/new-book-continuous-delivery-with-visual-studio-alm-2015/</link><pubDate>Mon, 07 Dec 2015 20:12:35 +0000</pubDate><guid>https://blog.ehn.nu/2015/12/new-book-continuous-delivery-with-visual-studio-alm-2015/</guid><description>&lt;p&gt;With today’s announcement at Microsoft Connect() about the public preview of the next generation of Visual Studio Release Management, it is also time to announce the (imminent) release of a new book that covers among other things this new version of RM.&lt;/p&gt;
&lt;p&gt;Me and my fellow ALM MVP &lt;a href="http://blogs.msmvps.com/molausson/"&gt;Mathias Olausson&lt;/a&gt; have been working hard during the last 6 months on this book, using early alpha and beta versions of this brand new version of Visual Studio Release Management. Writing about a changing platform can be rather challenging, and our publisher (&lt;a href="https://www.apress.com/"&gt;Apress&lt;/a&gt;) have been very patient with us regarding delays and late changes!&lt;/p&gt;</description></item><item><title>Performance Tests for Azure Web Apps</title><link>https://blog.ehn.nu/2015/11/performance-tests-for-azure-web-apps/</link><pubDate>Mon, 02 Nov 2015 14:19:52 +0000</pubDate><guid>https://blog.ehn.nu/2015/11/performance-tests-for-azure-web-apps/</guid><description>&lt;p&gt;Anyone that has been involved with setting up the infrastructure that is needed to perform on premise load testing of a realistic number of users knows how much work that is to both setup and to maintain. With Visual Studio Ultimate/Enterprise you needed to create a test rig by creating multiple machines and then installing a test controller and test agents on all the machines and configure them to talk to each other.&lt;/p&gt;</description></item><item><title>10 Features in Team Foundation Server that you maybe didn’t know about</title><link>https://blog.ehn.nu/2015/10/10-features-in-team-foundation-server-that-you-maybe-didnt-know-about/</link><pubDate>Sun, 25 Oct 2015 17:37:23 +0000</pubDate><guid>https://blog.ehn.nu/2015/10/10-features-in-team-foundation-server-that-you-maybe-didnt-know-about/</guid><description>&lt;p&gt;I often talk to different teams about how they work with Team Foundation Server or Visual Studio Online. I get a lot of questions about different features, and some of them tend to come up more often than other. So here is a list of 10 features in TFS that I get questions about regularly or that I have noticed a lot of teams don’t know about. It is by no means exhaustive, and it is a mixture of smaller and larger features, but hopefully you will find something here that you didn’t know about before.&lt;/p&gt;</description></item><item><title>Generate custom build numbers in TFS Build vNext</title><link>https://blog.ehn.nu/2015/10/generate-custom-build-numbers-in-tfs-build-vnext/</link><pubDate>Thu, 15 Oct 2015 23:15:12 +0000</pubDate><guid>https://blog.ehn.nu/2015/10/generate-custom-build-numbers-in-tfs-build-vnext/</guid><description>&lt;p&gt;By now, many of you should have had the chance to at least play with the new build system that was released in TFS 2015 and Visual Studio Online. &lt;a href="http://geekswithblogs.net/jakob/archive/2015/01/15/tfs-build-vnext-ndash-a-preview.aspx"&gt;Here is an introductory post I wrote about it&lt;/a&gt; when it entered public preview back in January.&lt;/p&gt;
&lt;p&gt;Doing the basic stuff is very easy using the new build system, especially if you compare it with the old one, which is now referred to as XAML builds. Creating and customizing build definitions is just a matter of adding the tasks that you want to use and configure them properly, everything is done using the web interface that is part of the TFS Web Access.&lt;/p&gt;</description></item><item><title>AssociateRecentWorkItems Extension available for Visual Studio 2015</title><link>https://blog.ehn.nu/2015/08/associaterecentworkitems-extension-available-for-visual-studio-2015/</link><pubDate>Tue, 18 Aug 2015 21:15:52 +0000</pubDate><guid>https://blog.ehn.nu/2015/08/associaterecentworkitems-extension-available-for-visual-studio-2015/</guid><description>&lt;p&gt;I finally got around to upgrading the &lt;a href="https://visualstudiogallery.msdn.microsoft.com/038cef01-98c1-46bd-844b-8080b711791c"&gt;Inmeta AssociateRecentWorkItems&lt;/a&gt; extension to support Visual Studio 2015. Several people have contacted me about this, sorry that it took so long!&lt;/p&gt;
&lt;h3 id="about-the-extension"&gt;About the extension&lt;/h3&gt;
&lt;p&gt;This extension makes it easy to associate multiple checkins with the same work items, as it shows a list of the recently associated work items from which you can easily associate one with the current pending changes.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Osiris AssociateRecentWorkItems VS2015" loading="lazy" src="https://visualstudiogallery.msdn.microsoft.com/3fa82205-e0f0-4874-a38b-023435fa2802/image/file/176045/1/screenshot.png?Id=176045"&gt;&lt;/p&gt;</description></item><item><title>Building GitHub repositories in TFS Build vNext</title><link>https://blog.ehn.nu/2015/06/building-github-repositories-in-tfs-build-vnext/</link><pubDate>Fri, 12 Jun 2015 12:53:08 +0000</pubDate><guid>https://blog.ehn.nu/2015/06/building-github-repositories-in-tfs-build-vnext/</guid><description>&lt;p&gt;In the brave new world of Microsoft where a lot of the frameworks and languages that they build now are open sourced over at GitHub, it comes as no surprise that GitHub is nicely integrated into both &lt;br&gt;
Visual Studio and TFS Build vNext. This makes it very easy to setup builds that gets the source code from your GitHub repo but uses TFS Build vNext to build it. It also allows you to setup CI builds, that is  &lt;br&gt;
builds that trigger automatically when someone does a commit in the corresponding Git repo.&lt;/p&gt;</description></item><item><title>Deploying an Azure Web Site using TFS Build vNext</title><link>https://blog.ehn.nu/2015/04/deploying-an-azure-web-site-using-tfs-build-vnext/</link><pubDate>Wed, 29 Apr 2015 21:58:32 +0000</pubDate><guid>https://blog.ehn.nu/2015/04/deploying-an-azure-web-site-using-tfs-build-vnext/</guid><description>&lt;p&gt;TFS 2015 is around the corner, and with it comes a &lt;a href="http://geekswithblogs.net/jakob/archive/2015/01/15/tfs-build-vnext-ndash-a-preview.aspx"&gt;whole new build system&lt;/a&gt;. All the biggest pain points from the existing build system (now called “XAML builds”) are gone and instead we get a light weight build system with a web UI that makes it very easy to customize our build processes and that doesn’t perform a lot of magic such as redirecting your build output for example.&lt;/p&gt;
&lt;p&gt;In this post, I will show you just how easy it is to setup a build that builds a standard ASP.NET web application, generates a web deploy package as part of the build and then pick up this package and deploys it to a Azure web site. &lt;br&gt;
As part of this, you will also see how smooth the integration with Azure is when it comes to connecting your subscription.&lt;/p&gt;</description></item><item><title>Speaking at DevSum 2015</title><link>https://blog.ehn.nu/2015/02/speaking-at-devsum-2015/</link><pubDate>Fri, 13 Feb 2015 09:18:44 +0000</pubDate><guid>https://blog.ehn.nu/2015/02/speaking-at-devsum-2015/</guid><description>&lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/jakob/WindowsLiveWriter/SpeakingatDevSum2015_82ED/VSO_2.png"&gt;&lt;img alt="VSO" loading="lazy" src="https://blog.ehn.nu/2015/02/speaking-at-devsum-2015/VSO_thumb.png" title="VSO"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This year I’ll be presenting at &lt;a href="http://www.devsum.se/"&gt;DevSum&lt;/a&gt;, which is the largest .NET conference in Sweden. I’ll be talking about &lt;a href="http://www.visualstudio.com/"&gt;Visual Studio Online&lt;/a&gt;, Microsoft cloud offering for your development projects. I will go through all the major features of VSO, such as source code hosting, agile planning tooling , automated builds, test management and integration with other 3rd party service such as Trello and AppVeyor. I will also talk about how you can migrate your existing projects to VSO&lt;/p&gt;</description></item><item><title>Introducing GitFlow for Visual Studio</title><link>https://blog.ehn.nu/2015/02/introducing-gitflow-for-visual-studio/</link><pubDate>Thu, 12 Feb 2015 18:12:08 +0000</pubDate><guid>https://blog.ehn.nu/2015/02/introducing-gitflow-for-visual-studio/</guid><description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: The exension is now also available for Visual Studio 2015 Preview: &lt;a href="https://visualstudiogallery.msdn.microsoft.com/f5ae0a1d-005f-4a09-a19c-3f46ff30400a" title="https://visualstudiogallery.msdn.microsoft.com/f5ae0a1d-005f-4a09-a19c-3f46ff30400a"&gt;https://visualstudiogallery.msdn.microsoft.com/f5ae0a1d-005f-4a09-a19c-3f46ff30400a&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GitFlow is a popular workflow that provides a consistent naming convention to your branches as well as clear guidance on how your code should flow through these branches. &lt;br&gt;
GitFlow was introduced by &lt;a href="http://nvie.com/about/"&gt;Vincent Driessen&lt;/a&gt; in &lt;a href="http://nvie.com/posts/a-successful-git-branching-model/"&gt;this post&lt;/a&gt; back in 2010, and quickly caught a lot of attention in the community. Since GitFlow by nature is very prescriptive it made a lot of &lt;br&gt;
sense to implement tooling support for the workflow, which Vincent added shortly after. His repo is available at &lt;a href="https://github.com/nvie/gitflow" title="https://github.com/nvie/gitflow"&gt;https://github.com/nvie/gitflow&lt;/a&gt;, although it hasn’t been updated since 2012. &lt;br&gt;
However, several forks has been made, one of the most active is being developed by Peter van der Does at &lt;a href="https://github.com/petervanderdoes/gitflow" title="https://github.com/petervanderdoes/gitflow"&gt;https://github.com/petervanderdoes/gitflow&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Trigger Releases in Visual Studio Release Management</title><link>https://blog.ehn.nu/2015/02/trigger-releases-in-visual-studio-release-management/</link><pubDate>Thu, 05 Feb 2015 15:22:04 +0000</pubDate><guid>https://blog.ehn.nu/2015/02/trigger-releases-in-visual-studio-release-management/</guid><description>&lt;p&gt;In my previous &lt;a href="http://geekswithblogs.net/jakob/archive/2015/01/14/trigger-visual-studio-release-management-vnext-from-teamcity.aspx"&gt;post&lt;/a&gt;, I showed how you can trigger a release in Visual Studio Release Management from a TeamCity build step.&lt;/p&gt;
&lt;p&gt;When Visual Studio Release Management 2013 RTM’ed, it came with customized TFS build templates that made it easy to trigger a release from a TFVC or Git build in TFS. These build templates relied on the ReleaseManagementBuild command line client, so it required the VSRM client being installed on the build server.&lt;/p&gt;</description></item><item><title>TFS Build vNext – A Preview</title><link>https://blog.ehn.nu/2015/01/tfs-build-vnext-a-preview/</link><pubDate>Thu, 15 Jan 2015 11:00:35 +0000</pubDate><guid>https://blog.ehn.nu/2015/01/tfs-build-vnext-a-preview/</guid><description>&lt;p&gt;Currently, Microsoft is working hard on a complete rewrite of the TFS Build system. They announced this, among other things, at the Connect event back in November and did a short demo of it. It is not yet available, but as part of the MVP program, a few of us has now been fortunate enough to get access to an early preview of the new build system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: This version is in pre-alpha state, meaning that a lot of things can and will change until the final version!&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Trigger Visual Studio Release Management vNext from TeamCity</title><link>https://blog.ehn.nu/2015/01/trigger-visual-studio-release-management-vnext-from-teamcity/</link><pubDate>Wed, 14 Jan 2015 22:56:58 +0000</pubDate><guid>https://blog.ehn.nu/2015/01/trigger-visual-studio-release-management-vnext-from-teamcity/</guid><description>&lt;p&gt;The last couple of updates to Visual Studio has included a lot of new functionality for Visual Studio Release Management. The biggest one is the introduction of so called vNext releases, that leverages Powershell DSC for carrying out the provisioning and deployments of environments and applications.&lt;/p&gt;
&lt;p&gt;Also included in Visual Studio 2013 Update 3 was the introduction of a REST API that allows us to both trigger new releases and read back information about them. This API is only available for vNext release templates, and will probably not be implemented for the “old” agentbased deployments.&lt;/p&gt;</description></item><item><title>Using Log4Net for Application Insights</title><link>https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/</link><pubDate>Sun, 09 Nov 2014 21:08:14 +0000</pubDate><guid>https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/</guid><description>&lt;p&gt;Getting started with Application Insights (AI) in a new or existing application is very easy. From Visual Studio 2013 Update 3 it is even integrated right into the New Web Project dialog:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/jakob/WindowsLiveWriter/UsingLog4NetforApplicationInsights_3E6B/image_6.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/6_image_thumb_2.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you select this option, Visual Studio will automatically create a new instrumentation key for you that identifies the web application, and insert the necessary Javascript into your master layout page that takes care of sending usage information to Application Insights. Try running your application, click around a few times, and you will see information showing up in the Azure portal within, literally, a few seconds.&lt;/p&gt;</description></item><item><title>Copy TFS Build Definitions between Projects and Collections</title><link>https://blog.ehn.nu/2014/06/copy-tfs-build-definitions-between-projects-and-collections/</link><pubDate>Thu, 05 Jun 2014 14:50:54 +0000</pubDate><guid>https://blog.ehn.nu/2014/06/copy-tfs-build-definitions-between-projects-and-collections/</guid><description>&lt;p&gt;The last couple of years it has become apparent that using multiple team projects in TFS is generally a bad idea. There are of course exceptions to this, but there are a lot ot things that becomes much easier to do when you put all of your projects and team in the same team project.&lt;/p&gt;
&lt;p&gt;Fellow ALM MVP Martin Hinshelwood has blogged about &lt;a href="http://nakedalm.com/one-team-project/"&gt;this several times&lt;/a&gt;, as well as other &lt;a href="http://geekswithblogs.net/Optikal/archive/2013/09/05/153944.aspx"&gt;people&lt;/a&gt; in the community. In particular, using the backlog and portfolio management tools makes much more sense when everything is located in the same team project.&lt;/p&gt;</description></item><item><title>TFS Build: NuGet.exe was not found in the expected location</title><link>https://blog.ehn.nu/2014/05/tfs-build-nuget-exe-was-not-found-in-the-expected-location/</link><pubDate>Wed, 07 May 2014 20:43:39 +0000</pubDate><guid>https://blog.ehn.nu/2014/05/tfs-build-nuget-exe-was-not-found-in-the-expected-location/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;One of our customers recently had a problem with NuGet restore when they created a new build template, based on the standard TfvcTemplate.12.xaml template. In TFS 2013, package restore is done automatically by the default build templates.&lt;/p&gt;
&lt;p&gt;It is configured as part of the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.activities.runmsbuild.aspx"&gt;RunMSBuild&lt;/a&gt; activity, where you can enable and disable this by setting the EnableNuGetPackageRestore property:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/jakob/Windows-Live-Writer/b214d0212153_11F87/image_2.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2014/05/tfs-build-nuget-exe-was-not-found-in-the-expected-location/13_image_thumb.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, when we were executing the builds we got the following warning in the build log:&lt;/p&gt;</description></item><item><title>Creating a Build Definition using the TFS 2013 API</title><link>https://blog.ehn.nu/2014/01/creating-a-build-definition-using-the-tfs-2013-api/</link><pubDate>Wed, 15 Jan 2014 21:55:13 +0000</pubDate><guid>https://blog.ehn.nu/2014/01/creating-a-build-definition-using-the-tfs-2013-api/</guid><description>&lt;p&gt;Almost four years ago I &lt;a href="http://geekswithblogs.net/jakob/archive/2010/04/26/creating-a-build-definition-using-the-tfs-2010-api.aspx"&gt;wrote a post&lt;/a&gt; on how to create a build definition programmatically using the TFS 2010 API. The code is partyl still valid, but since a lot of the information in a build definition is dependent on the build process template, the code in the blog &lt;br&gt;
does not work properly for the TFS 2013 default build templates. In addition, since the introduction of Git in TFS 2013, there are some other differences in how you create a build definition for a Git team project compared to a TFVC team project.&lt;/p&gt;</description></item><item><title>Inmeta Visual Studio Extension Gallery – version 2.0</title><link>https://blog.ehn.nu/2013/12/inmeta-visual-studio-extension-gallery-version-2-0/</link><pubDate>Thu, 26 Dec 2013 22:37:28 +0000</pubDate><guid>https://blog.ehn.nu/2013/12/inmeta-visual-studio-extension-gallery-version-2-0/</guid><description>&lt;p&gt;This year at the second MVP summit I presented a new solution for hosting a private extension gallery. Since then I have finished up the code and put it up on the CodePlex site so you can use it as you want to. &lt;br&gt;
In this blog post I will walk through the background and how you deploy and use the solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br&gt;
Note: The sourcecode is available at &lt;a href="http://inmetavsgallery.codeplex.com/" title="http://inmetavsgallery.codeplex.com/"&gt;http://inmetavsgallery.codeplex.com/&lt;/a&gt; as a new 2.0 release. I have branched the original source code so that it is still available.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Inmeta Visual Studio 2013 Community Day</title><link>https://blog.ehn.nu/2013/09/inmeta-visual-studio-2013-community-day/</link><pubDate>Fri, 13 Sep 2013 16:57:46 +0000</pubDate><guid>https://blog.ehn.nu/2013/09/inmeta-visual-studio-2013-community-day/</guid><description>&lt;p&gt;Yesterday, on September 12th, we arranged a Visual Studio Community Day 2013 at &lt;a href="http://meshnorway.com"&gt;Mesh&lt;/a&gt; in central Oslo. The agenda was in two parts, first we talked about how you can improve your delivery cadence by using Visual Studio ALM. &lt;br&gt;
We went through all stages including planning, developing, testing and deployment. In the second part, we showed some of the new goodies in Visual Studio 2013, where we focused mostly on Git and InRelease which are the two major additions in Visual Studio 2013 ALM. Unfortunately we didn’t have the time to go through everything that we wanted, but we have put up links and some more information on our public  GitHub site, at &lt;a href="https://github.com/Inmeta/public/wiki/VS2013-Community-Day"&gt;https://github.com/Inmeta/public/wiki/VS2013-Community-Day&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Getting started with InRelease and TFS 2013 Preview</title><link>https://blog.ehn.nu/2013/08/getting-started-with-inrelease-and-tfs-2013-preview/</link><pubDate>Fri, 23 Aug 2013 15:35:16 +0000</pubDate><guid>https://blog.ehn.nu/2013/08/getting-started-with-inrelease-and-tfs-2013-preview/</guid><description>&lt;p&gt;As you probably already know, Microsoft &lt;a href="http://blogs.msdn.com/b/bharry/archive/2013/07/10/inrelease-acquisition-is-complete.aspx"&gt;recently acquired InRelease&lt;/a&gt;, a release management product build by InCycle software that integrates tightly with Team Foundation Server. This acquisition fills a huge gap in the Visual Studio ALM suite, letting customers handle the release management and automatic deployment of their solution. This is a crucial feature for enabling Continuous Deployment.&lt;/p&gt;
&lt;p&gt;In this post I will show you how to get started with using InRelease, by installing it and setting up your first release including automatic deployment to a staging server. I expect to blog some more about InRelease in the near future, looking at the nitty gritty details of release automation and deployment using InRelease.&lt;/p&gt;</description></item><item><title>New Book: Pro Team Foundation Service</title><link>https://blog.ehn.nu/2013/05/new-book-pro-team-foundation-service/</link><pubDate>Mon, 20 May 2013 23:27:33 +0000</pubDate><guid>https://blog.ehn.nu/2013/05/new-book-pro-team-foundation-service/</guid><description>&lt;p&gt;The last couple of months I have been working together with &lt;a href="http://msmvps.com/blogs/molausson/"&gt;Mathias Olausson&lt;/a&gt;, &lt;a href="http://mskold.blogspot.se/"&gt;Mattias Sköld&lt;/a&gt; and &lt;a href="https://www.apress.com/index.php/author/author/view/id/2328"&gt;Joachim Rossberg&lt;/a&gt; on a new book project for &lt;a href="http://www.apress.com/"&gt;Apress&lt;/a&gt; that has just been published. The book is called &lt;strong&gt;&lt;a href="http://www.apress.com/microsoft/workflow/9781430259954"&gt;Pro Team Foundation Service&lt;/a&gt;&lt;/strong&gt; and covers all aspects of working with Team Foundation Service, Microsoft&amp;rsquo;s hosted version of Team Foundation Server in the cloud. I have mainly worked on the chapter related to automated build and continuous deployment, but also with some of the other chapters.&lt;/p&gt;</description></item><item><title>Extending Team Explorer 2012 – Associating Recent Work Items</title><link>https://blog.ehn.nu/2013/05/extending-team-explorer-2012-associating-recent-work-items/</link><pubDate>Thu, 16 May 2013 18:29:44 +0000</pubDate><guid>https://blog.ehn.nu/2013/05/extending-team-explorer-2012-associating-recent-work-items/</guid><description>&lt;p&gt;&lt;strong&gt;Extension available at:&lt;/strong&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/9ed2d30c-a692-42b0-a21d-cdc8d2bf322c" title="http://visualstudiogallery.msdn.microsoft.com/9ed2d30c-a692-42b0-a21d-cdc8d2bf322c"&gt;http://visualstudiogallery.msdn.microsoft.com/9ed2d30c-a692-42b0-a21d-cdc8d2bf322c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have been playing around a bit lately with extending Team Explorer 2012, mostly because it is fun but also to fix a little nagging feature that should have been there from the beginning. Often I (and a lot of other people) find myself wanting to associate several consecutive changesets to the same work item. The problem is that Team Explorer does not remember this, instead I have to either remember the ID or use a query that hopefully will match the work item.&lt;/p&gt;</description></item><item><title>TFS Build: Running Static Code Analysis for Specific Configuration</title><link>https://blog.ehn.nu/2013/01/tfs-build-running-static-code-analysis-for-specific-configuration/</link><pubDate>Sun, 20 Jan 2013 21:54:47 +0000</pubDate><guid>https://blog.ehn.nu/2013/01/tfs-build-running-static-code-analysis-for-specific-configuration/</guid><description>&lt;p&gt;&lt;br&gt;
Running Static Code Analysis (SCA) is something that you should be doing regularly to verify your code base against a large set of rules that will check your code for potential problems and how it comply with standard patterns such as naming conventions for example. Microsoft include several different rule sets that you can use for starters, but you can build your own rule sets as well, that contain the rule that you want to use, In addition, you can write your own custom rules and add these to your rule sets.&lt;/p&gt;</description></item><item><title>Book “Team Foundation Server 2012 Starter” published!</title><link>https://blog.ehn.nu/2012/11/book-team-foundation-server-2012-starter-published/</link><pubDate>Thu, 29 Nov 2012 09:33:42 +0000</pubDate><guid>https://blog.ehn.nu/2012/11/book-team-foundation-server-2012-starter-published/</guid><description>&lt;p&gt;&lt;br&gt;
During the summer and fall this year, me and my colleague &lt;a href="http://geekswithblogs.net/terje/Default.aspx"&gt;Terje Sandstrøm&lt;/a&gt; has worked together on a book project that has now finally hit the stores! &lt;br&gt;
The title of the book is &lt;strong&gt;Team Foundation Server 2012 Starter&lt;/strong&gt; and is published by &lt;a href="http://www.packtpub.com/"&gt;Packt Publishing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find it at &lt;a href="http://www.packtpub.com/team-foundation-server-2012-starter/book" title="http://www.packtpub.com/team-foundation-server-2012-starter/book"&gt;http://www.packtpub.com/team-foundation-server-2012-starter/book&lt;/a&gt; or from Amazon &lt;a href="http://www.amazon.com/dp/1849688389" title="http://www.amazon.com/dp/1849688389"&gt;http://www.amazon.com/dp/1849688389&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/WindowsLiveWriter/BookTeamFoundationServer2012StarterPubli_11A91/image_2.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2012/11/book-team-foundation-server-2012-starter-published/17_image_thumb.png" title="image"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The book is part of a concept that Packt have with starter-books, intended for people new to Team Foundation Server 2012 and who want a quick guideline to get it up and working. It covers the fundamentals, from installing and configuring it, and how to use it with source control, work items and builds. It is done as a step-by-step guide, but also includes best practices advice in the different areas. It covers the use of both the on-premises and the TFS Services version. It also has a list of links and references in the end to the most relevant Visual Studio 2012 ALM sites.&lt;/p&gt;</description></item><item><title>Using Private Extension Galleries in Visual Studio 2012</title><link>https://blog.ehn.nu/2012/11/using-private-extension-galleries-in-visual-studio-2012/</link><pubDate>Wed, 07 Nov 2012 20:47:34 +0000</pubDate><guid>https://blog.ehn.nu/2012/11/using-private-extension-galleries-in-visual-studio-2012/</guid><description>&lt;p&gt;&lt;strong&gt;Updated January 13th 2013&lt;/strong&gt;:  Added note about ASP.NET MVC 4.0 prerequirement&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The installer and the complete source code is available over at CodePlex at the following location: &lt;a href="http://inmetavsgallery.codeplex.com"&gt;http://inmetavsgallery.codeplex.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Extensions and addins are everywhere in the Visual Studio ALM ecosystem! Microsoft releases new cool features in the form of extensions and the list of 3rd party extensions that plug into Visual Studio just keeps growing. One of the nice things about the VSIX extensions is how they are deployed. Microsoft hosts a public Visual Studio Gallery where you can upload extensions and make them available to the rest of the community. Visual Studio checks for updates to the installed extensions when you start Visual Studio, and installing/updating the extensions is fast since it is only a matter of extracting the files within the VSIX package to the local extension folder.&lt;/p&gt;</description></item><item><title>Get Started using Build-Deploy-Test Workflow with TFS 2012</title><link>https://blog.ehn.nu/2012/09/get-started-using-build-deploy-test-workflow-with-tfs-2012/</link><pubDate>Wed, 05 Sep 2012 21:39:47 +0000</pubDate><guid>https://blog.ehn.nu/2012/09/get-started-using-build-deploy-test-workflow-with-tfs-2012/</guid><description>&lt;p&gt;TFS 2012 introduces a new type of Lab environment called Standard Environment. This allows you to setup a full Build Deploy Test (BDT) workflow that will build your application, deploy it to your target machine(s) and then run a set of tests on that server to verify the deployment. In TFS 2010, you had to use System Center Virtual Machine Manager and involve half of your IT department to get going. Now all you need is a server (virtual or physical) where you want to deploy and test your application. You don’t even have to install a test agent on the machine, TFS 2012 will do this for you!&lt;/p&gt;</description></item><item><title>New functionality in TFS Build Manager – Managing Triggers and Build Resources</title><link>https://blog.ehn.nu/2012/08/new-functionality-in-tfs-build-manager-managing-triggers-and-build-resources/</link><pubDate>Fri, 24 Aug 2012 14:28:36 +0000</pubDate><guid>https://blog.ehn.nu/2012/08/new-functionality-in-tfs-build-manager-managing-triggers-and-build-resources/</guid><description>&lt;p&gt;Yesterday we pushed out a new release (August 2012) of the &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;Community TFS Build Extension&lt;/a&gt;, including a new version of the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/cfdb84b4-285e-4eeb-9fa9-dad9bfe2cd10"&gt;Community TFS Build Manager&lt;/a&gt; (1.0.4.6)&lt;/p&gt;
&lt;p&gt;The two big new features in the Build Manager in this release are: &lt;br&gt;
&lt;strong&gt;Set Triggers&lt;/strong&gt; &lt;br&gt;
It is now possible to select one or more build definitions and update the triggers for them in one simple operation: \&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/Windows-Live-Writer/TFS-Build-Manager_A019/image_2.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2012/08/new-functionality-in-tfs-build-manager-managing-triggers-and-build-resources/19_image_thumb.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You’ll note that we have started collapsing the context menu a bit, the list of commands are getting long! 🙂&lt;/p&gt;</description></item><item><title>New VS2012 Book: Pro Application Lifecycle Management with Visual Studio 2012</title><link>https://blog.ehn.nu/2012/08/new-vs2012-book-pro-application-lifecycle-management-with-visual-studio-2012/</link><pubDate>Thu, 23 Aug 2012 21:57:13 +0000</pubDate><guid>https://blog.ehn.nu/2012/08/new-vs2012-book-pro-application-lifecycle-management-with-visual-studio-2012/</guid><description>&lt;p&gt;During the spring/summer I have been involved with reviewing a new book about Visual Studio 2012 ALM from Apress called “Pro Application Lifecycle Management with Visual Studio 2012”&lt;/p&gt;
&lt;p&gt;The book is written by a fellow Visual Studio ALM MVP &lt;a href="http://msmvps.com/blogs/molausson/default.aspx"&gt;Mathias Olausson&lt;/a&gt; and his colleague Joachim Rossberg. It is a very comprehensive book that covers both all aspects of ALM in general and also how to implement these practices with Visual Studio 2012. The book also has several chapters dedicated to measuring your improvements by using ALM assessments and metrics.&lt;/p&gt;</description></item><item><title>ALM Rangers Readiness GIG has shipped!</title><link>https://blog.ehn.nu/2012/08/alm-rangers-readiness-gig-has-shipped/</link><pubDate>Thu, 16 Aug 2012 09:38:39 +0000</pubDate><guid>https://blog.ehn.nu/2012/08/alm-rangers-readiness-gig-has-shipped/</guid><description>&lt;p&gt;Together with todays announcement that Visual Studio 2012 as been officially released, the ALM Rangers have also simultaneously shipped (“sim-shipped”) a massive set of solutions for feature gaps and value-add guidance for the ALM community.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/15/welcome-to-visual-studio-2012-alm-rangers-readiness-wave.aspx" title="http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/15/welcome-to-visual-studio-2012-alm-rangers-readiness-wave.aspx"&gt;http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/15/welcome-to-visual-studio-2012-alm-rangers-readiness-wave.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find a complete list of ALM Ranger solutions here: &lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/vstudio/ee358787" title="http://msdn.microsoft.com/en-us/vstudio/ee358787"&gt;http://msdn.microsoft.com/en-us/vstudio/ee358787&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have been a part of the &lt;a href="http://vsarbuildguide.codeplex.com/"&gt;Team Foundation Build Customization Guide&lt;/a&gt;, which have been updated with new features in Visual Studio 2012, as well as the top requested features from the first version of the guidance. As part of this guidance, we have also developed the Community TFS Build Manager, a Visual Studio extension that simplifies a lot of tasks when working with TFS Build. It now exist both for &lt;a href="http://visualstudiogallery.msdn.microsoft.com/cfdb84b4-285e-4eeb-9fa9-dad9bfe2cd10"&gt;Visual Studio 2012&lt;/a&gt; as well as for &lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c"&gt;Visual Studio 2010&lt;/a&gt;. I’d like to thank the rest of the team for doing such a great job, especially &lt;a href="http://www.freetodev.com/"&gt;Mike Fourie&lt;/a&gt; who has been driving the entire project in style!&lt;/p&gt;</description></item><item><title>TFS Build: Dependency Replication using Community TFS Build Extensions</title><link>https://blog.ehn.nu/2012/07/tfs-build-dependency-replication-using-community-tfs-build-extensions/</link><pubDate>Sun, 15 Jul 2012 23:51:33 +0000</pubDate><guid>https://blog.ehn.nu/2012/07/tfs-build-dependency-replication-using-community-tfs-build-extensions/</guid><description>&lt;p&gt;&lt;br&gt;
I have posted before on how to implement dependency replication using TFS Build, &lt;a href="http://geekswithblogs.net/jakob/archive/2009/03/05/implementing-dependency-replication-with-tfs-team-build.aspx"&gt;once for TFS 2008 using MSBuild&lt;/a&gt; and then for &lt;a href="http://geekswithblogs.net/jakob/archive/2010/12/08/dependency-replication-with-tfs-2010-build.aspx"&gt;TFS 2010 using Windows Workflow&lt;/a&gt;. The last post was not complete (I could not post all implementation details back then for various reasons), so I decided that I should post a new solution for this, but this time using the &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;Community TFS Build Extensions&lt;/a&gt; library.&lt;/p&gt;
&lt;p&gt;If it is a good idea to store your dependencies in source control or not is a question that is well debated. I’m not going to argue pros and cons here, but for those of you that want to go this way here is a build process template that will get you started.&lt;/p&gt;</description></item><item><title>Community TFS Build Manager available for Visual Studio 2012 RC</title><link>https://blog.ehn.nu/2012/07/community-tfs-build-manager-available-for-visual-studio-2012-rc/</link><pubDate>Mon, 02 Jul 2012 22:44:07 +0000</pubDate><guid>https://blog.ehn.nu/2012/07/community-tfs-build-manager-available-for-visual-studio-2012-rc/</guid><description>&lt;p&gt;I finally got around to push out a version of the Community TFS Build Manager that is compatible with Visual Studio 2012 RC. Unfortunately I had to do this as a separate extension, &lt;br&gt;
it references different versions of the TFS assemblies and also some properties and methods that the 2010 version uses are now obsolete in the TFS 2012 API.&lt;/p&gt;
&lt;p&gt;To download it, just open the Extension Manager, select Online and search for TFS Build:&lt;/p&gt;</description></item><item><title>Deploying SSDT Projects with TFS Build</title><link>https://blog.ehn.nu/2012/04/deploying-ssdt-projects-with-tfs-build/</link><pubDate>Wed, 25 Apr 2012 21:29:05 +0000</pubDate><guid>https://blog.ehn.nu/2012/04/deploying-ssdt-projects-with-tfs-build/</guid><description>&lt;p&gt;As many of you probably have noticed by now, &lt;a href="http://msdn.microsoft.com/en-us/library/xee70aty.aspx"&gt;Visual Studio Database Projects&lt;/a&gt; are not supported in the next version of Visual Studio (currently named &lt;br&gt;
Visual Studio 11 Beta). When you open a solution containing a VSDB project, VS11 wants to convert it to a &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh394146.aspx"&gt;SQL Server Developer Tools&lt;/a&gt; project instead.&lt;/p&gt;
&lt;p&gt;This project type ships with SQL Server and has a feature set that covers most of the functionality of the VSDB project, plus some new features, such &lt;br&gt;
a support for SQL 2012 and SQL Azure. A feature comparison list between the two project types can be found here: &lt;br&gt;
&lt;a href="http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs-vs2010-database-projects.aspx" title="http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs-vs2010-database-projects.aspx"&gt;http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs-vs2010-database-projects.aspx&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Awarded Visual Studio ALM MVP for 2012!</title><link>https://blog.ehn.nu/2012/04/awarded-visual-studio-alm-mvp-for-2012/</link><pubDate>Sun, 01 Apr 2012 22:42:08 +0000</pubDate><guid>https://blog.ehn.nu/2012/04/awarded-visual-studio-alm-mvp-for-2012/</guid><description>&lt;p&gt;Today I received an email from Microsoft stating that:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dear Jakob Ehn, &lt;br&gt;
Congratulations! We are pleased to present you with the 2012 Microsoft® MVP Award! &lt;br&gt;
This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. &lt;br&gt;
We appreciate your outstanding contributions in Visual Studio ALM technical communities during the past year.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is incredibles news and I really want to thank both the people at Microsoft who nominated me and some of the (now) fellow MVP’s that I have worked with over the last year, both as part of the Visual Studio ALM Rangers program and as part of the TFS Build Extensions community project, in particular &lt;a href="http://mikefourie.wordpress.com/"&gt;Mike Fourie&lt;/a&gt; and of course my colleague and main source of inspiration &lt;a href="http://geekswithblogs.net/terje/Default.aspx"&gt;Terje Sandström&lt;/a&gt; 🙂&lt;/p&gt;</description></item><item><title>Adding Fake Build Information in TFS 2010</title><link>https://blog.ehn.nu/2012/03/adding-fake-build-information-in-tfs-2010/</link><pubDate>Fri, 30 Mar 2012 21:41:48 +0000</pubDate><guid>https://blog.ehn.nu/2012/03/adding-fake-build-information-in-tfs-2010/</guid><description>&lt;p&gt;We have been using TFS 2010 build for distributing a build in parallel on several agents, but where the actual compilation is done by a bunch of external tools and compilers, e.g. no MSBuild involved. We are using the &lt;a href="http://blogs.msdn.com/b/jimlamb/archive/2010/09/14/parallelized-builds-with-tfs2010.aspx"&gt;ParallelTemplate.xaml template&lt;/a&gt; that Jim Lamb blogged about previously, which distributes each configuration to a different agent. We developed custom activities for running these external compilers and collecting the information and errors by reading standard out/error and pushing it back to the build log.&lt;/p&gt;</description></item><item><title>Managing Build Templates with Community TFS Build Manager</title><link>https://blog.ehn.nu/2012/02/managing-build-templates-with-community-tfs-build-manager/</link><pubDate>Tue, 21 Feb 2012 14:02:04 +0000</pubDate><guid>https://blog.ehn.nu/2012/02/managing-build-templates-with-community-tfs-build-manager/</guid><description>&lt;p&gt;A year ago I blogged about how to &lt;a href="http://geekswithblogs.net/jakob/archive/2010/11/03/managing-build-process-templates-in-tfs-2010-build.aspx"&gt;manage your build process templates using the TFS API&lt;/a&gt;. The main reason for doing this is that you can (and should!) store your “golden” build process templates in a common location in your TFS project collection, and then add them to each team project that requires those templates. This way, you can fix a bug or add a new feature in one place and have the change affect all build definitions.&lt;/p&gt;</description></item><item><title>Handling Warnings and Errors with InvokeProcess in TFS 2010 Build</title><link>https://blog.ehn.nu/2012/02/handling-warnings-and-errors-with-invokeprocess-in-tfs-2010-build/</link><pubDate>Wed, 01 Feb 2012 20:55:18 +0000</pubDate><guid>https://blog.ehn.nu/2012/02/handling-warnings-and-errors-with-invokeprocess-in-tfs-2010-build/</guid><description>&lt;p&gt;&lt;br&gt;
The &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.workflow.activities.invokeprocess.aspx"&gt;InvokeProcess activity&lt;/a&gt; is very useful when it comes to running shell commands and external command line tools during a build process. When it comes to integrating with TFS source control during a build, the TF.exe command line tool can be your friend, as it lets you do most of the usual stuff such as check-in, checkout, add, modify workspaces etc.&lt;/p&gt;
&lt;p&gt;However, it can be a bit tricky to handle the output from tf.exe, since it often produces warnings that is not necessarily a problem for your build. This is not a problem related only to tf.exe, but to all applications that produces errors and warnings on the canonical error format.&lt;/p&gt;</description></item><item><title>TFS 2010 Deep Dive classes in Stockholm</title><link>https://blog.ehn.nu/2012/01/tfs-2010-deep-dive-classes-in-stockholm/</link><pubDate>Sun, 22 Jan 2012 13:44:20 +0000</pubDate><guid>https://blog.ehn.nu/2012/01/tfs-2010-deep-dive-classes-in-stockholm/</guid><description>&lt;p&gt;I’ll be running a Team Foundation Server 2010 Deep Dive class twice this spring in Stockholm at our friends at &lt;a href="http://www.cornerstone.se/sv/"&gt;Cornerstone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The class is 4 days and we will be “diving deep” into all aspects of TFS 2010, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Deployment&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Administration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Source Control&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check-in Policies&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Branching strategies&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Work Items&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office integration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reporting&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Customization&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Team Build&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Working with build definitions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Developing Custom Activities&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Automatic deployment&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test Management&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft Test Manager&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creating and running manual tests&lt;/p&gt;</description></item><item><title>Avoiding TF237124 when Creating Work Items in New Areas</title><link>https://blog.ehn.nu/2012/01/avoiding-tf237124-when-creating-work-items-in-new-areas/</link><pubDate>Fri, 20 Jan 2012 09:42:41 +0000</pubDate><guid>https://blog.ehn.nu/2012/01/avoiding-tf237124-when-creating-work-items-in-new-areas/</guid><description>&lt;p&gt;At my &lt;a href="http://www.inmetacrayon.no/English/about_inmeta/Pages/default.aspx"&gt;company&lt;/a&gt; we write a lot of tools and extensions that uses the TFS API to automate various things for us. A very common thing to automate is the creation of work items and the areas and iterations structure.&lt;/p&gt;
&lt;p&gt;Creating a work item using the TFS API is simple, just connect to TFS, get the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.workitemtracking.client.workitemstore(v=vs.100).aspx"&gt;WorkItemStore&lt;/a&gt; service object and create a new work item and set any fields that you want to: &lt;br&gt;
&lt;strong&gt;&lt;br&gt;
Creating a work item&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Introducing: Community TFS Build Manager</title><link>https://blog.ehn.nu/2011/12/introducing-community-tfs-build-manager/</link><pubDate>Fri, 30 Dec 2011 12:36:06 +0000</pubDate><guid>https://blog.ehn.nu/2011/12/introducing-community-tfs-build-manager/</guid><description>&lt;p&gt;The latest release of the &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;Community TFS Build Extensions&lt;/a&gt; include a brand new tool called &lt;em&gt;Community TFS Build Manager&lt;/em&gt; and has been created for two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An implementation of the Team Foundation Build API which is referenced by the Rangers Build Customization Guidance V2 (available H1 2012) \&lt;/li&gt;
&lt;li&gt;Provide a solution to a real problem. The Community TFS Build Manager is intended to ease the management of builds in medium to large Team Foundation Server environments, though it does provide a few features which all users may find useful.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first version of the tool has been implemented by myself and &lt;a href="http://www.freetodev.com/"&gt;Mike Fourie&lt;/a&gt;. You can download the extension from the Visual Studio Gallery here: &lt;br&gt;
&lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c" title="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c"&gt;http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c&lt;/a&gt;&lt;/p&gt;</description></item><item><title>December 2011 TFS Power Tools Release</title><link>https://blog.ehn.nu/2011/12/december-2011-tfs-power-tools-release/</link><pubDate>Fri, 16 Dec 2011 17:07:56 +0000</pubDate><guid>https://blog.ehn.nu/2011/12/december-2011-tfs-power-tools-release/</guid><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/bharry/"&gt;Brian Harry&lt;/a&gt; just posted an update on the latest version of the TFS 2010 Power Tools. This will most likely by the last version of the Power Tools for the TFS 2010 version, next version will target Dev11!&lt;/p&gt;
&lt;p&gt;The main improvements in this release are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Team Foundation Server Power Tools for Eclipse&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MSSCCI Provider for 64-bit IDE’s&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;VS 2010 Power Tools update&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved Work item Search&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Best Practice Analyzer now also analyzes the integration with Project Server, if you are using it&lt;/p&gt;</description></item><item><title>TF237165: Team Foundation could not update the work item because of a validation error on the server.</title><link>https://blog.ehn.nu/2011/12/tf237165-team-foundation-could-not-update-the-work-item-because-of-a-validation-error-on-the-server/</link><pubDate>Mon, 12 Dec 2011 17:21:15 +0000</pubDate><guid>https://blog.ehn.nu/2011/12/tf237165-team-foundation-could-not-update-the-work-item-because-of-a-validation-error-on-the-server/</guid><description>&lt;p&gt;I often use the VS 2010/TFS 2010 evaluation virtual machines that Microsoft publishes every 6 months with the latest bits. It’s a great timesaver to use an image where everything is already setup and also contains a bit of sample data that is useful when you want to demo something for customers.&lt;/p&gt;
&lt;p&gt;There is one thing that has always been a, albeit small, but still very annoying problem and that is that the builds always partially fail when you start using the image. When you want to demo the powerful feature of associated work items in a build, you’ll find yourself with your pants down since the build fails when trying to update the associated work item! Even when looking at the historical builds for the Tailspin Toys project, you will notice that they also partially failed:&lt;/p&gt;</description></item><item><title>Compatibility Problem with Microsoft Test Manager 2010 and Visual Studio 2011</title><link>https://blog.ehn.nu/2011/12/compatibility-problem-with-microsoft-test-manager-2010-and-visual-studio-2011/</link><pubDate>Fri, 09 Dec 2011 11:38:00 +0000</pubDate><guid>https://blog.ehn.nu/2011/12/compatibility-problem-with-microsoft-test-manager-2010-and-visual-studio-2011/</guid><description>&lt;p&gt;*&lt;em&gt;UPDATE 10.01.2012: *&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The issue has been resolved by Microsoft and will be addressed in patch soon. Here is the full description from the Connect site: \&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“We&amp;rsquo;ve identified the rootcause. This bug was introduced in the compatibility GDR patch released for VS 2010 to work against 2011 TFS Server. We shall be releasing a patch soon. Till then, please follow the workaround mentioned to unblock yourselves. “&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When setting up a physical environment for a new test controller on our TFS 2010 server, I ran into a problem that seems to be related to having installed the &lt;a href="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=39070"&gt;Visual Studio 2010 SP1 TFS Compatibility GDR&lt;/a&gt; and/or &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27543"&gt;Visual Studio 2011 Developer Preview&lt;/a&gt;&lt;/p&gt;</description></item><item><title>TFS 2010 Build - Troubleshooting the TF215097 error</title><link>https://blog.ehn.nu/2011/12/tfs-2010-build-troubleshooting-the-tf215097-error/</link><pubDate>Thu, 08 Dec 2011 20:51:48 +0000</pubDate><guid>https://blog.ehn.nu/2011/12/tfs-2010-build-troubleshooting-the-tf215097-error/</guid><description>&lt;p&gt;Anyone working with developing custom activities in TFS 2010 Build has run into the following dreadful error message when running the build:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TF215097: An error occurred while initializing a build for build definition TeamProjectMyBuildDefinition: Cannot create unknown type &amp;lsquo;{clr-namespace:[namespace];assembly=[assembly]}Activity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What the error means is that when the TFS build service loads the build process template XAML for the build definition, it can’t create an instance of the customer workflow activity that is referenced from it.&lt;/p&gt;</description></item><item><title>First stable release of the Community TFS 2010 Build Extensions</title><link>https://blog.ehn.nu/2011/07/first-stable-release-of-the-community-tfs-2010-build-extensions/</link><pubDate>Mon, 04 Jul 2011 22:50:15 +0000</pubDate><guid>https://blog.ehn.nu/2011/07/first-stable-release-of-the-community-tfs-2010-build-extensions/</guid><description>&lt;p&gt;Today the first stable release of the &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;Community TFS 2010 Build Extensions&lt;/a&gt; shipped on the CodePlex site. Visual Studio ALM MVP &lt;a href="http://freetodev.com/"&gt;Mike Fourie&lt;/a&gt; (aka Mr &lt;a href="http://msbuildextensionpack.codeplex.com/"&gt;MSBuild Extension Pack&lt;/a&gt;) has been the leader of this project and has done a tremendous job, both in contributing functionality as well as coordinating the work for the first release. Great work Mike! I (as well as several others) have contributed a small part of the activities, I plan to be working on the upcoming releases as well.&lt;/p&gt;</description></item><item><title>Automatically Merging Work Items in TFS 2013</title><link>https://blog.ehn.nu/2011/05/automatically-merging-work-items-in-tfs-2013/</link><pubDate>Tue, 17 May 2011 20:43:31 +0000</pubDate><guid>https://blog.ehn.nu/2011/05/automatically-merging-work-items-in-tfs-2013/</guid><description>&lt;p&gt;** Source available at &lt;a href="http://mergeworkitems.codeplex.com/" title="http://mergeworkitems.codeplex.com/"&gt;http://mergeworkitems.codeplex.com/&lt;/a&gt; **&lt;/p&gt;
&lt;p&gt;Half a year ago I wrote about about &lt;a href="http://geekswithblogs.net/jakob/archive/2010/10/27/merging-work-items-in-tfs-2010.aspx"&gt;Merging Work Items&lt;/a&gt; with a custom check-in policy. The policy evaluated the pending changes and for all pending merges, it traversed the merge history to find the associated work items and let the user add them to the current changeset.&lt;/p&gt;
&lt;p&gt;I promised to post the source to the check-in policy (and I’ve got a lot of requests for it), but I never did. This was primary for two reasons:&lt;/p&gt;</description></item><item><title>TFS 2010 Inmeta Build Explorer</title><link>https://blog.ehn.nu/2011/04/tfs-2010-inmeta-build-explorer/</link><pubDate>Mon, 04 Apr 2011 09:38:07 +0000</pubDate><guid>https://blog.ehn.nu/2011/04/tfs-2010-inmeta-build-explorer/</guid><description>&lt;p&gt;This weekend we at Inmeta release a free Visual Studio 2010 Team Explorer extensions that solves the problem with the Builds node in the Team Explorer not being hierarchic. For some reason, this part of the Team Explorer didn’t get the nice hierarchical folder structure that the Work items node got in 2010. The result is that, for a company that has several hundreds of builds in the same team project, it becomes very hard to navigate.&lt;/p&gt;</description></item><item><title>Integrating Code Metrics in TFS 2010 Build</title><link>https://blog.ehn.nu/2011/01/integrating-code-metrics-in-tfs-2010-build/</link><pubDate>Sun, 30 Jan 2011 20:39:50 +0000</pubDate><guid>https://blog.ehn.nu/2011/01/integrating-code-metrics-in-tfs-2010-build/</guid><description>&lt;p&gt;The build process template and custom activity described in this post is available here: &lt;br&gt;
&lt;a href="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/Inmeta%20TFS%20Build%20Sample.zip" title="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/Inmeta%20TFS%20Build%20Sample.zip"&gt;http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/Inmeta%20TFS%20Build%20Sample.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Running code metrics has been available since VS 2008, but only from inside the IDE. Yesterday Microsoft finally released &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=edd1dfb0-b9fe-4e90-b6a6-5ed6f6f6e615"&gt;Visual Studio Code Metrics Power Tool 10.0&lt;/a&gt;, a command line tool that lets you run code metrics on your applications.  This means that it is now possible to perform code metrics analysis on the build server as part of your nightly/QA builds. In this post I will show how you can run the metrics command line tool from a build, and also a custom activity that reads the output and appends the results to the build log, and fails the build if the metric values exceeds certain (configurable) treshold values.&lt;/p&gt;</description></item><item><title>TFS 2010 Build Custom Activity for Merging Assemblies</title><link>https://blog.ehn.nu/2010/12/tfs-2010-build-custom-activity-for-merging-assemblies/</link><pubDate>Wed, 15 Dec 2010 01:59:29 +0000</pubDate><guid>https://blog.ehn.nu/2010/12/tfs-2010-build-custom-activity-for-merging-assemblies/</guid><description>&lt;p&gt;*** The sample build process template discussed in this post is available for download from here: &lt;a href="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/ILMerge.xaml" title="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/ILMerge.xaml"&gt;http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/ILMerge.xaml&lt;/a&gt; ***&lt;/p&gt;
&lt;p&gt;In my &lt;a href="http://geekswithblogs.net/jakob/archive/2010/12/08/dependency-replication-with-tfs-2010-build.aspx"&gt;previous post&lt;/a&gt; I talked about &lt;em&gt;library builds&lt;/em&gt; that we use to build and replicate dependencies between applications in TFS. This is typically used for common libraries and tools that several other application need to reference.&lt;/p&gt;
&lt;p&gt;When the libraries grow in size over time, so does the number of assemblies. So all solutions that uses the common library must reference all the necessary assemblies that they need, and if we for example do a refactoring and extract some &lt;br&gt;
code into a new assembly, all the clients must update their references to reflect these changes, otherwise it won’t compile.&lt;/p&gt;</description></item><item><title>Dependency Replication with TFS 2010 Build</title><link>https://blog.ehn.nu/2010/12/dependency-replication-with-tfs-2010-build/</link><pubDate>Wed, 08 Dec 2010 08:02:09 +0000</pubDate><guid>https://blog.ehn.nu/2010/12/dependency-replication-with-tfs-2010-build/</guid><description>&lt;p&gt;Some time ago, I wrote a &lt;a href="http://geekswithblogs.net/jakob/archive/2009/03/05/implementing-dependency-replication-with-tfs-team-build.aspx"&gt;post&lt;/a&gt; about how to implement dependency replication using TFS 2008 Build. We use this for &lt;em&gt;Library builds&lt;/em&gt;, where we set up a build definition for a common library, and have the build check the resulting assemblies back into source control. The folder &lt;strong&gt;is&lt;/strong&gt; then branched to the applications that need to reference the common library. See the above post for more details.&lt;/p&gt;
&lt;p&gt;Of course, we have reimplemented this feature in TFS 2010 Build, which results in a much nicer experience for the developer who wants to setup a new library build. Here is how it looks: &lt;br&gt;
There is a separate build process template for library builds registered in all team projects \&lt;/p&gt;</description></item><item><title>Performing Checkins in TFS 2010 Build</title><link>https://blog.ehn.nu/2010/11/performing-checkins-in-tfs-2010-build/</link><pubDate>Wed, 03 Nov 2010 10:20:53 +0000</pubDate><guid>https://blog.ehn.nu/2010/11/performing-checkins-in-tfs-2010-build/</guid><description>&lt;p&gt;Update 15.03.2014 - Fixed broken link to download&lt;/p&gt;
&lt;p&gt;*** The custom activity is availabe for download here: &lt;a href="http://cid-ee034c9f620cd58d.office.live.com/browse.aspx/BlogSamples?uc=1" title="http://cid-ee034c9f620cd58d.office.live.com/browse.aspx/BlogSamples?uc=1"&gt;https://onedrive.live.com/redir?resid=EE034C9F620CD58D%21168&lt;/a&gt; ***&lt;/p&gt;
&lt;p&gt;Often when creating different types of release builds (e.g. where you build something that should be installed or consumed by other applications) there is a need to check in the results of the build back &lt;br&gt;
to source control. A common build type for us at Inmeta is &lt;em&gt;Library Builds&lt;/em&gt;, which we use for common libraries that are shared among several applications. We have created a special build process template &lt;br&gt;
for this scenario that handles versioning, copying of the resulting binaries to a pre-defined folder, optionally merges the assemblies using ILMerge, and finally checking that binaries back to TFS as part of the build.&lt;/p&gt;</description></item><item><title>Managing Build Process Templates in TFS 2010 Build</title><link>https://blog.ehn.nu/2010/11/managing-build-process-templates-in-tfs-2010-build/</link><pubDate>Wed, 03 Nov 2010 02:23:40 +0000</pubDate><guid>https://blog.ehn.nu/2010/11/managing-build-process-templates-in-tfs-2010-build/</guid><description>&lt;p&gt;One of the great new features in TFS 2010 Build was the ability to define Build Process Templates that can be reused across build definitions. The Build Process Template file itself is a Windows Workflow 4.0 xaml file &lt;br&gt;
and can be stored anywhere in source control. When a developer creates a new build definition in Team Explorer, he can choose from a list of Build Process Templates:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/Windows-Live-Writer/Managing-Build-Process-Templates-in-TFS-_CF49/image_2.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2010/11/managing-build-process-templates-in-tfs-2010-build/23_image_thumb.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This list is populated with the following build process templates:&lt;/p&gt;</description></item><item><title>Developing and debugging Server Side Event Handlers in TFS 2010</title><link>https://blog.ehn.nu/2010/10/developing-and-debugging-server-side-event-handlers-in-tfs-2010/</link><pubDate>Wed, 27 Oct 2010 22:48:11 +0000</pubDate><guid>https://blog.ehn.nu/2010/10/developing-and-debugging-server-side-event-handlers-in-tfs-2010/</guid><description>&lt;p&gt;&lt;br&gt;
&lt;strong&gt;Update 2012-01-23: Added note about .NET framework&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/hinshelm/Default.aspx"&gt;Martin Hinshelwood&lt;/a&gt; wrote an excellent post recently  &lt;a href="http://nakedalm.com/team-foundation-server-2010-event-handling-with-subscribers/"&gt;http://nakedalm.com/team-foundation-server-2010-event-handling-with-subscribers/&lt;/a&gt; ) about a new type of integration &lt;br&gt;
available in TFS 2010, namely server side event handlers, that is executed within the TFS context. I wasn’t aware of this new feature and as Martin notes, there doesn’t seem to be any material/documentation of it at all. &lt;br&gt;
Previously, when you wanted some custom action to be executed when some event occurs in TFS (check-in, build completed…) you wrote a web/WCF service with a predefined signature and subscribed to the event using bissubscribe.exe. &lt;br&gt;
Usually you want to get more information from TFS than what is available in the event itself so you would have to use the TFS client object model to make new requests back to TFS to get that information. &lt;br&gt;
The deployment of these web services is always a bit of a hassle, especially around security. Also there is no way to affect the event itself, e.g. to stop the event from finishing depending on some condition. This can be done using &lt;br&gt;
server side events.&lt;/p&gt;</description></item><item><title>Merging Work Items in TFS 2010</title><link>https://blog.ehn.nu/2010/10/merging-work-items-in-tfs-2010/</link><pubDate>Wed, 27 Oct 2010 08:10:13 +0000</pubDate><guid>https://blog.ehn.nu/2010/10/merging-work-items-in-tfs-2010/</guid><description>&lt;p&gt;In TFS 2010, branching and merging have been greatly improved with support for branch visualization and tracking of changesets and work items across branches. A simple example of this looks like this: \&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/Windows-Live-Writer/Merging-Work-Items-in-TFS-2010_12A4F/image_6.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2010/10/merging-work-items-in-tfs-2010/22_image_thumb_2.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/Windows-Live-Writer/Merging-Work-Items-in-TFS-2010_12A4F/image_19.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2010/10/merging-work-items-in-tfs-2010/7_image_thumb_7.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here we track Work Item nr 3 which was originally resovled in the Test branch (with changeset 35). We can also see that the work item has been merged into the Production branch (as changeset 37), back to Main (62) and finally to FeatureC (140). &lt;br&gt;
If we switch to the Timeline view, we get a nice view of the order of these merges, together with the dates.&lt;/p&gt;</description></item><item><title>Why can’t I see test results in the TFS 2010 Build Report?</title><link>https://blog.ehn.nu/2010/10/why-cant-i-see-test-results-in-the-tfs-2010-build-report/</link><pubDate>Wed, 06 Oct 2010 08:11:47 +0000</pubDate><guid>https://blog.ehn.nu/2010/10/why-cant-i-see-test-results-in-the-tfs-2010-build-report/</guid><description>&lt;p&gt;In TFS 2010, I have been asked this question several times: I have a build setup with tests and (possibly) code coverage, but in the build summary report it only shows &lt;strong&gt;No Test Results&lt;/strong&gt; and &lt;strong&gt;No Code Coverage Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What’s more interesting is that when I log in and view the build, I can see the test results!&lt;/p&gt;
&lt;p&gt;This does of course imply that it is a one of those annoying security issues, and of course it is. &lt;br&gt;
To be able to see test results you must have the &lt;strong&gt;View Test Runs&lt;/strong&gt; permission, which can be assigned/revoked at the security group level per team project:&lt;/p&gt;</description></item><item><title>TFS 2010 DeepDive i Stockholm i oktober</title><link>https://blog.ehn.nu/2010/09/tfs-2010-deepdive-i-stockholm-i-oktober/</link><pubDate>Fri, 03 Sep 2010 02:08:55 +0000</pubDate><guid>https://blog.ehn.nu/2010/09/tfs-2010-deepdive-i-stockholm-i-oktober/</guid><description>&lt;p&gt;&lt;strong&gt;Note: Swedish post&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Efter att ha kört många seminarier, workshops och deep dive kurser på Visual Studio och TFS 2010 i Norge är det nu äntligen dags för oss att köra kurs i Sverige!&lt;/p&gt;
&lt;p&gt;Första tillfället blir nu i oktober på Cornerstone 18-21 Oktober. Saxat från kursbeskrivningen:&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3 id="t359---effektiv-systemutveckling-med-visual-studio-och-team-foundation-server-2010"&gt;T359 - Effektiv systemutveckling med Visual Studio och Team Foundation Server 2010&lt;/h3&gt;
&lt;p&gt;I denna utbildning lär vi dig hur du och din organisation kan effektivisera systemutvecklingsprocessen med hjälp av Visual Studio och Team Foundation Server. Målgruppen för denna kurs är främst utvecklare och arkitekter men den är lämplig även för testare och den som ansvarar för metoder och processer.&lt;/p&gt;</description></item><item><title>TFS Team Build 2010: How to place the build output to a fixed location</title><link>https://blog.ehn.nu/2010/09/tfs-team-build-2010-how-to-place-the-build-output-to-a-fixed-location/</link><pubDate>Wed, 01 Sep 2010 08:47:11 +0000</pubDate><guid>https://blog.ehn.nu/2010/09/tfs-team-build-2010-how-to-place-the-build-output-to-a-fixed-location/</guid><description>&lt;p&gt;By default, TFS Team Build creates a new folder in the drop location for every build. I have seen request from people that wonder how to always have team build put the output in the same folder every time, effectively overwriting the results from the last build. This is easy to accomplish by adding an activity that copies the drop folder to a fixed location.&lt;/p&gt;
&lt;p&gt;To copy the result of the build to a fixed location, you need to modify the build process template:&lt;/p&gt;</description></item><item><title>TFS 2010 Build: Dealing with the API restriction error</title><link>https://blog.ehn.nu/2010/06/tfs-2010-build-dealing-with-the-api-restriction-error/</link><pubDate>Tue, 08 Jun 2010 06:08:40 +0000</pubDate><guid>https://blog.ehn.nu/2010/06/tfs-2010-build-dealing-with-the-api-restriction-error/</guid><description>&lt;p&gt;Recently I’ve come across this error a couple of times when running builds that exeucte unit tests using Test containers:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;API restriction: The assembly &amp;lsquo;file:///C:Builds&lt;path&gt;myassembly.dll&amp;rsquo; has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Every time I’ve got this error, the project has been a web application, and the path to the assembly points down to the _PublishedWebsites directory that is created beneath the Binaries folder during a team build.&lt;/p&gt;</description></item><item><title>Building Visual Studio Setup Projects with TFS 2010 Team Build</title><link>https://blog.ehn.nu/2010/05/building-visual-studio-setup-projects-with-tfs-2010-team-build/</link><pubDate>Fri, 14 May 2010 08:38:28 +0000</pubDate><guid>https://blog.ehn.nu/2010/05/building-visual-studio-setup-projects-with-tfs-2010-team-build/</guid><description>&lt;p&gt;UPDATE: 2010-09-15 – Added details about the use of the ExitCode variable&lt;/p&gt;
&lt;p&gt;One of the most common complaints from people starting to use Team Build is that is doesn’t support building Microsoft’s own Setup and Deployment project (*.vdproj). When creating a default build definition that compiles a solution containing a setup project, you’ll get the following warning:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The project file &amp;ldquo;MyProject.vdproj&amp;rdquo; is not supported by MSBuild and cannot be built.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Speed up loading of test results from builds in Visual Studio</title><link>https://blog.ehn.nu/2010/05/speed-up-loading-of-test-results-from-builds-in-visual-studio/</link><pubDate>Sun, 09 May 2010 23:04:09 +0000</pubDate><guid>https://blog.ehn.nu/2010/05/speed-up-loading-of-test-results-from-builds-in-visual-studio/</guid><description>&lt;p&gt;I still see people complaining about the long time it takes to load test results from a TFS build in Visual Studio. And they make a valid point, it &lt;strong&gt;does&lt;/strong&gt; take a very long time to load the test results, even for a small number of tests. The reason for this is that the test results is not just the result of the test run but also all the binaries that were part of the test run. This often also means that the debug symbols (*.pdb) will be downloaded to your local machine. This reason for this behaviour is that it letsyou re-run the tests locally.&lt;/p&gt;</description></item><item><title>Executing legacy MSBuild scripts in TFS 2010 Build</title><link>https://blog.ehn.nu/2010/05/executing-legacy-msbuild-scripts-in-tfs-2010-build/</link><pubDate>Wed, 05 May 2010 00:04:13 +0000</pubDate><guid>https://blog.ehn.nu/2010/05/executing-legacy-msbuild-scripts-in-tfs-2010-build/</guid><description>&lt;p&gt;When upgrading from TFS 2008 to TFS 2010, all builds are “upgraded” in the sense that a build definition with the same name is created, and it uses the &lt;em&gt;UpgradeTemplate&lt;/em&gt;  build process template to execute the build. This template basically just runs MSBuild on the existing TFSBuild.proj file. The build definition contains a property called &lt;em&gt;ConfigurationFolderPath&lt;/em&gt; that points to the TFSBuild.proj file.&lt;/p&gt;
&lt;p&gt;So, existing builds will run just fine after upgrade. But what if you want to use the new workflow functionality in TFS 2010 Build, but still have a lot of MSBuild scripts that maybe call custom MSBuild tasks that you don’t have the time to rewrite? Then one option is to keep these MSBuild scrips and call them from a TFS 2010 Build workflow. This can be done using the MSBuild workflow activity that is avaiable in the toolbox in the &lt;em&gt;Team Foundation Build Activities&lt;/em&gt; section:&lt;/p&gt;</description></item><item><title>Modify Build Failure Work Item in TFS 2010 Build</title><link>https://blog.ehn.nu/2010/04/modify-build-failure-work-item-in-tfs-2010-build/</link><pubDate>Wed, 28 Apr 2010 08:15:25 +0000</pubDate><guid>https://blog.ehn.nu/2010/04/modify-build-failure-work-item-in-tfs-2010-build/</guid><description>&lt;p&gt;The default behaviour in TFS Team Build (all versions) is to create a bug work item when a build fails. This main benefit of this is that you get a work item for something that needs to be done, namely to fix the build!. When the developer responsible for the build failure has fixed the problem, he/she can associated that check-in with the work item that was created from the previous build failure.&lt;/p&gt;</description></item><item><title>Creating a Build Definition using the TFS 2010 API</title><link>https://blog.ehn.nu/2010/04/creating-a-build-definition-using-the-tfs-2010-api/</link><pubDate>Mon, 26 Apr 2010 20:09:00 +0000</pubDate><guid>https://blog.ehn.nu/2010/04/creating-a-build-definition-using-the-tfs-2010-api/</guid><description>&lt;p&gt;*** UPDATE 2010-08-17 ** Several people have asked me for a complete sample application, so I have put this together and it is available here: &lt;br&gt;
&lt;a href="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/CreateTFSBuildDefinition.zip" title="http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/CreateTFSBuildDefinition.zip"&gt;http://cid-ee034c9f620cd58d.office.live.com/self.aspx/BlogSamples/CreateTFSBuildDefinition.zip&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;In this post I will show how to create a new build definition in TFS 2010 using the TFS API. When creating a build definition manually, using Team Explorer, the necessary steps are lined &lt;br&gt;
out in the New Build Definition Wizard:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/jakob/WindowsLiveWriter/CreatingaBuildDefinitionusingtheTFS2010A_12F55/image_4.png"&gt;&lt;img alt="image" loading="lazy" src="https://blog.ehn.nu/2010/04/creating-a-build-definition-using-the-tfs-2010-api/28_image_thumb_1.png" title="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, lets see how the code looks like, using the same order. To start off, we need to connect to TFS and get a reference to the IBuildServer object:&lt;/p&gt;</description></item><item><title>Getting TF215097 error after modifying a build process template in TFS Team Build 2010</title><link>https://blog.ehn.nu/2010/04/getting-tf215097-error-after-modifying-a-build-process-template-in-tfs-team-build-2010/</link><pubDate>Wed, 21 Apr 2010 23:52:47 +0000</pubDate><guid>https://blog.ehn.nu/2010/04/getting-tf215097-error-after-modifying-a-build-process-template-in-tfs-team-build-2010/</guid><description>&lt;p&gt;When embracing Team Build 2010, you typically want to define several different build process templates for different scenarios. Common examples here are CI builds, QA builds and release builds. For example, in a contiuous build you often have no interest in publishing to the symbol store, you might or might not want to associate changesets and work items etc. The build server is often heavily occupied as it is, so you don’t want to have it doing more that necessary. Try to define a set of build process templates that are used across your company. In previous versions of TFS Team Build, there was no easy way to do this. But in TFS 2010 it is very easy so there is no excuse to not do it! :-)&lt;/p&gt;</description></item><item><title>Implementing Release Notes in TFS Team Build 2010</title><link>https://blog.ehn.nu/2010/04/implementing-release-notes-in-tfs-team-build-2010/</link><pubDate>Thu, 15 Apr 2010 23:50:49 +0000</pubDate><guid>https://blog.ehn.nu/2010/04/implementing-release-notes-in-tfs-team-build-2010/</guid><description>&lt;p&gt;In TFS Team Build (all versions), each build is associated with changesets and work items. To determine which changesets that should be associated with the current build, Team Build finds the label of the “Last Good Build” an then aggregates all changesets up unitl the label for the current build. Basically this means that if your build is failing, every changeset that is checked in will be accumulated in this list until the build is successful.&lt;/p&gt;</description></item><item><title>Reember to uninstall all Beta 2 stuff before upgrading to VS 2010 RC</title><link>https://blog.ehn.nu/2010/02/reember-to-uninstall-all-beta-2-stuff-before-upgrading-to-vs-2010-rc/</link><pubDate>Tue, 09 Feb 2010 20:52:05 +0000</pubDate><guid>https://blog.ehn.nu/2010/02/reember-to-uninstall-all-beta-2-stuff-before-upgrading-to-vs-2010-rc/</guid><description>&lt;p&gt;Yesterday I upgraded my dev laptop to VS 2010 RC. To upgrade to VS 2010 RC you need to first uninstall VS 2010 Beta 2 (which doesn’t really make it an upgrade does it? :-)&lt;/p&gt;
&lt;p&gt;I also hade an instance of TFS 2010 Beta 2 om my machine so I uninstalled that as well. The installation of VS 2010 went fine, and then I installed Team Explorer 2010 RC. However, when starting VS and switching to the team explorer, I got the following error:&lt;/p&gt;</description></item><item><title>TFS 2010 – Managing Build Agents using the API</title><link>https://blog.ehn.nu/2009/12/tfs-2010-managing-build-agents-using-the-api/</link><pubDate>Tue, 08 Dec 2009 20:47:52 +0000</pubDate><guid>https://blog.ehn.nu/2009/12/tfs-2010-managing-build-agents-using-the-api/</guid><description>&lt;p&gt;In previous versions of TFS, you installed TFS Team Build on the build server and you got one build service agent. It was/is possible to start several build agents on the same server, but it is a bit of a mess. &lt;br&gt;
In addition, for each team project TFS 2008 build service can only execute one at a time (Note that builds from different team project can execute in parallell, a lot of people still don’t know this)&lt;/p&gt;</description></item><item><title>TFS 2010 Beta 2 – Upgrading Builds from TFS 2008</title><link>https://blog.ehn.nu/2009/11/tfs-2010-beta-2-upgrading-builds-from-tfs-2008/</link><pubDate>Tue, 24 Nov 2009 20:23:13 +0000</pubDate><guid>https://blog.ehn.nu/2009/11/tfs-2010-beta-2-upgrading-builds-from-tfs-2008/</guid><description>&lt;p&gt;We are in the process of upgrading the entire company to TFS 2010 Beta 2, and in preparing for that we have done some test upgrades to make sure that all things work as expected after the upgrade. As expected, most issues that turned up had to do with builds. This is one of the areas that has changed the most compared to TFS 2008. I thought that I would use this post to run through some of the issues that we found.&lt;/p&gt;</description></item><item><title>TFS Team Build 2010: Working with Custom Code Activities</title><link>https://blog.ehn.nu/2009/08/tfs-team-build-2010-working-with-custom-code-activities/</link><pubDate>Thu, 13 Aug 2009 09:38:24 +0000</pubDate><guid>https://blog.ehn.nu/2009/08/tfs-team-build-2010-working-with-custom-code-activities/</guid><description>&lt;p&gt;&lt;em&gt;Disclaimer: This blog post discusses features in the TFS 2010 Beta 1 release. Some of these  features might be changed in the RTM release.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In TFS 2010, Microsoft has changed the build orchestration language in Team Build from MSBuild to Windows Workflow 4.0. &lt;a href="http://blogs.msdn.com/aaronhallberg/default.aspx"&gt;Aaron Hallberg&lt;/a&gt; has written a &lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2009/06/01/writing-custom-activities-for-tfs-build-2010-beta-1.aspx"&gt;post&lt;/a&gt; on how to implement a custom workflow activity using either the workflow designer or using a code activity that composes an activity. In this post, I will show how to implement a “pure” code activity, i.e. no workflow elements,and how to add this activity to a build process definition. Note, this is still Beta 1, and some things will definitely change when Beta2 and RTM arrives but this will get you started with customizing your builds in TFS 2010.&lt;/p&gt;</description></item><item><title>VSTS 2010: Enabling Test Impact Analysis</title><link>https://blog.ehn.nu/2009/06/vsts-2010-enabling-test-impact-analysis/</link><pubDate>Thu, 04 Jun 2009 18:08:20 +0000</pubDate><guid>https://blog.ehn.nu/2009/06/vsts-2010-enabling-test-impact-analysis/</guid><description>&lt;p&gt;A really cool new feature in VSTS 2010 is &lt;em&gt;Test Impact Analysis&lt;/em&gt; which let developers view what tests that are affected by the current code changes. Pieter Gheysens wrote a &lt;a href="http://intovsts.net/2009/02/05/test-impact-analysis/"&gt;blog post&lt;/a&gt; on how to set this up in the CTP, but things have changed a bit in Beta 1 so I thought that I would show how it is done. Since it still is a bit unintuitive to enable it, it might change once again in the RTM. The reason that it is a bit unintuitive to set it up, is because you need to have the following things:&lt;/p&gt;</description></item><item><title>TFS Team Build 2010: Executing Unit Tests</title><link>https://blog.ehn.nu/2009/06/tfs-team-build-2010-executing-unit-tests/</link><pubDate>Wed, 03 Jun 2009 22:27:43 +0000</pubDate><guid>https://blog.ehn.nu/2009/06/tfs-team-build-2010-executing-unit-tests/</guid><description>&lt;p&gt;There are some changes and improvements in the area of executing unit tests in Team Build 2010. Mostly the changes make it easier to define &lt;strong&gt;which&lt;/strong&gt; unit tests you want to execute as part of the build. In this post I will go through the different options that you have when it comes to running unit tests and enabling code coverage.&lt;/p&gt;
&lt;p&gt;To configure test settings for a Team Build, you select Edit Build Definition in Team Explorer, and then go to the Build Process tab. In the Build process parameters box there is a section for the testing parameters. To change the parameters, just edit them and hit the save button. There is no need to check anything in or out to change the parameters. Only changes to the build process require you to check in the build process file (.xaml)&lt;/p&gt;</description></item><item><title>Working with Build Definitions in TFS Team Build 2010</title><link>https://blog.ehn.nu/2009/05/working-with-build-definitions-in-tfs-team-build-2010/</link><pubDate>Wed, 27 May 2009 22:17:35 +0000</pubDate><guid>https://blog.ehn.nu/2009/05/working-with-build-definitions-in-tfs-team-build-2010/</guid><description>&lt;p&gt;*Disclaimer: This blog post discusses features in the TFS 2010 Beta 1 release. Some of these  features might be changed in the RTM release. *&lt;br&gt;
In my &lt;a href="http://geekswithblogs.net/jakob/archive/2009/05/23/tfs-team-build-2010-whatrsquos-new.aspx"&gt;last post&lt;/a&gt; I talked about the new major features of Team Build in TFS 2010. This time, I will go into more detail on how you work with build definitions. In TFS 2010, the whole build process is now implemented on top of Windows Workflow Foundation 4.0 (WF4). This means that everything that has to do with creating and customizing builds in TFS 2010 is now done using a workflow designer UI. This means that you no longer have to remember all the different MSBuild targets when you want to insert some custom logic in your build. On the other hand, you obviously need to understand how a default team build process is implemented, which activities does what, what WF properties and variables that exist. And eventually you might also have to learn how to implement custom workflow activites when you need more functionality than what is included in the standard team build activities.&lt;/p&gt;</description></item><item><title>TFS Team Build 2010: What’s New?</title><link>https://blog.ehn.nu/2009/05/tfs-team-build-2010-whats-new/</link><pubDate>Sat, 23 May 2009 23:10:22 +0000</pubDate><guid>https://blog.ehn.nu/2009/05/tfs-team-build-2010-whats-new/</guid><description>&lt;p&gt;VSTS 2010 Beta 1 is finally available. Beta 1 is a huge release a contains tons of new functionality in almost all areas of Team System. We at &lt;a href="http://www.osiris.no"&gt;Osiris Data&lt;/a&gt; have been using Team System since the first beta, and we also help our customers how to adopt TFS in their organization. So for us VSTS 2010 is a very exciting release.&lt;/p&gt;
&lt;p&gt;I am planning to post several blog entries about the new functionality of VSTS 2010, in particular I will focus on Team Foundation Server (TFS) and Team Build. I have been working a lot with Team Build 2005 and 2008 and have been looking forward to the 2010 release. VSTS 2008 was a minor release for TFS, so a lot of missing features and change requests haven’t been implemented until now.&lt;/p&gt;</description></item><item><title>Free Seminar on Visual Studio Team System 2010 in Oslo, Norway</title><link>https://blog.ehn.nu/2009/04/free-seminar-on-visual-studio-team-system-2010-in-oslo-norway/</link><pubDate>Wed, 22 Apr 2009 21:14:12 +0000</pubDate><guid>https://blog.ehn.nu/2009/04/free-seminar-on-visual-studio-team-system-2010-in-oslo-norway/</guid><description>&lt;p&gt;On May 20th &lt;a href="http://geekswithblogs.net/terje"&gt;Terje&lt;/a&gt; and &lt;a href="http://twitter.com/Nitell"&gt;Mikael&lt;/a&gt; from my company (&lt;a href="http://www.osiris.no"&gt;Osiris Data&lt;/a&gt;) will hold a seminar in Oslo, Norway where they will run through all (?) the new cool features in VSTS 2010. Expect to see demos on the new functionality for manual and UI testing, branch visualization, hierarchical work items, gated check-ins and lots of other stuff.&lt;/p&gt;
&lt;p&gt;VSTS 2010 is a really huge release and if the rumours are true, the Beta 1 will be released in May, hopefully before the seminar :-)&lt;/p&gt;</description></item><item><title>How To: Automatically Enable Checkin Policies for new TFS Team Projects</title><link>https://blog.ehn.nu/2009/03/how-to-automatically-enable-checkin-policies-for-new-tfs-team-projects/</link><pubDate>Fri, 20 Mar 2009 14:12:46 +0000</pubDate><guid>https://blog.ehn.nu/2009/03/how-to-automatically-enable-checkin-policies-for-new-tfs-team-projects/</guid><description>&lt;p&gt;When creating new team projects in TFS, the project is created from a project template, that basically is a set of XML files. Here you can define all your work item types, queries, reports, portal site and some other things. One of the things that you &lt;strong&gt;can’t&lt;/strong&gt; specify here, is what checkin policies that you want to enable for that team project. At our company, we usually create a new team project for every customer so for every new customer we need to manually modify the checkin policies for that project to match our company policy.&lt;/p&gt;</description></item><item><title>Implementing Dependency Replication with TFS Team Build</title><link>https://blog.ehn.nu/2009/03/implementing-dependency-replication-with-tfs-team-build/</link><pubDate>Thu, 05 Mar 2009 14:36:36 +0000</pubDate><guid>https://blog.ehn.nu/2009/03/implementing-dependency-replication-with-tfs-team-build/</guid><description>&lt;p&gt;A very common question from people is how to handle dependencies between projects/applications/team projects in TFS source control. A typical scenario is that you a common library/framework tucked away nicely somewhere in TFS source control, and now you have some applications that, in some way, needs to reference this project.&lt;/p&gt;
&lt;p&gt;My colleague &lt;a href="http://geekswithblogs.net/terje"&gt;Terje&lt;/a&gt; has written an article on what he calls “Subsystem branching”, in which he talks about different ways to organize your source code in order to solve the above problem. Ther article can be found here: &lt;br&gt;
&lt;a href="http://geekswithblogs.net/terje/archive/2008/11/02/article-on-subsystem-branching.aspx" title="http://geekswithblogs.net/terje/archive/2008/11/02/article-on-subsystem-branching.aspx"&gt;http://geekswithblogs.net/terje/archive/2008/11/02/article-on-subsystem-branching.aspx&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Writing a Code Coverage Checkin Policy</title><link>https://blog.ehn.nu/2009/02/writing-a-code-coverage-checkin-policy/</link><pubDate>Mon, 23 Feb 2009 13:58:40 +0000</pubDate><guid>https://blog.ehn.nu/2009/02/writing-a-code-coverage-checkin-policy/</guid><description>&lt;p&gt;&lt;strong&gt;The source code for this policy is available here :&lt;/strong&gt; &lt;a href="http://www.codeplex.com/TFSCCCheckinPolicy" title="http://www.codeplex.com/TFSCCCheckinPolicy"&gt;&lt;strong&gt;http://www.codeplex.com/TFSCCCheckinPolicy&lt;/strong&gt;&lt;/a&gt; &lt;br&gt;
Checkin policies is a great tool in TFS for keeping your code base clean and adhering to your companhy standards and policies.  The checkin policies that are included are very useful, but don’t stop there! Implementing your own custom checkin policy is pretty straight-forward and can soon pay off by stopping people from doing silly things (on purpose or not…).&lt;/p&gt;</description></item></channel></rss>