Powershell to help plot graphs of how long TFS upgrades take

When doing TFS upgrades it is useful to know roughly how long they will take. The upgrade programs give a number of steps, but not all steps are equal. Some are quick, some are slow. I have found it useful to graph past updates so I can get a feel of how long an update will take given it got to ‘step x in y minutes’. You can do this by hand, noting down time as specific steps are reached. However for a long upgrade it usually means pulling data out of the TFS TPC upgrade logs. ...

September 17, 2015 · 2 min · Richard Fennell

Session accepted for DDDNorth

Pleased to say my session on SonarQube has been accepted for DDDNorth. And it seems that registration has opened and closed today, there is a wait list up now Good to see the DDD events still popular after 10 long years

September 14, 2015 · 1 min · Richard Fennell

Is the Microsoft Band any good for Triathlon? Training Yes, racing No

The title says it all, I have been using a Microsoft Band for a few months now and have found it a great tool for running and cycling as long as you are going out for less than about 5 hours. I tried to use for the first time Triathlon race at at the Leeds Triathlon over the weekend. As it it not water proof it was not an option for the swim (unlike my old Polar HR monitor), so I put it on in T1 (swim to bike), don’t think it wasted too much time! This is where I hit the first issue (or second if you count that it is not waterproof) that my finger was too wet to operate the touch screen. I have seen this issue on runs on rainy days. So I did not manage to switch it to cycle mode, and did not bother to try again whilst cycling after I had dried out – a had other things on my mind like being a in good aero position and get moving faster. ...

September 14, 2015 · 2 min · Richard Fennell

Running Typemock Isolator based tests in TFS vNext build

Updated 22 Mar 2016 This task is available in the VSTS Marketplace) Typemock Isolator provides a way to ‘mock the un-mockable’, such as sealed private classes in .NET, so can be a invaluable tool in unit testing. To allow this mocking Isolator interception has to be started before any unit tests are run and stopped when completed. For a developer this is done automatically within the Visual Studio IDE, but on build systems you have to run something to do this as part of your build process. Typemock provide documentation and tools for common build systems such as MSBuild, Jenkins, Team City and TFS XAML builds. However, they don’t provide tools or documentation on getting it working with TFS vNext build, so I had to write my own vNext build Task to do the job, wrapping Tmockrunner.exe provided by Typemock which handles the starting and stopping of mocking whilst calling any EXE of your choice. ...

September 8, 2015 · 3 min · Richard Fennell

Voting for DDD North Sessions is now open

Voting for DDD North Sessions is now open - http://bit.ly/DDDNorth15Sessions Vote on what you would like to see at this community conference

September 7, 2015 · 1 min · Richard Fennell

WebDeploy, parameters.xml transforms and nLog settings

I have been trying to parameterise the SQL DB connection string used by nLog when it is defined in a web.config file of a web site being deployed via Release Management and WebDeploy i.e. I wanted to select and edit the bit highlighted of my web.config file <configuration> <nlog xmlns="[http://www.nlog-project.org/schemas/NLog.xsd"](http://www.nlog-project.org/schemas/NLog.xsd") xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance"](http://www.w3.org/2001/XMLSchema-instance")\> <targets async="true"> <target xsi:type="Database" name="SQL" dbProvider="System.Data.SqlClient" connectionString="Data Source=myserver;Database=mydb;Persist Security Info=True;Pooling=False" keepConnection="true" commandText="INSERT INTO \[Logs\](ID, TimeStamp, Message, Level, Logger, Details, Application, MachineName, Username) VALUES(newid(), getdate(), @message, @level, @logger, @exception, @application, @machineName, @username)"> <parameter layout="${message}" name="@message"></parameter> ……. The problem I had was that the xpath query I was using was not returning the nLog node because the nLog node has a namespace defined. This means we can’t just use a query in the form ...

September 1, 2015 · 1 min · Richard Fennell

An alternative to setting a build quality on a TFS vNext build

TFS vNext builds do not have a concept of build quality unlike the old XAML based builds. This is an issue for us as we used the changing of the build quality as signal to test a build, or to mark it as released to a client (this was all managed with my TFS Alerts DSL to make sure suitable emails and build retention were used). So how to get around this problem with vNext? ...

August 28, 2015 · 3 min · Richard Fennell

Cannot create an MSDeploy package for an Azure Web Job project as part of an automated build/

I like web deploy as a means to package up websites for deployment. I like the way I only need to add /p:DeployOnBuild=True;PublishProfile=Release as an MSBuild argument to get the package produced as part of an automated build. This opening up loads of deployment options I recently hit an issue packaging up a solution that contained an Azure WebSite and an Azure Web Job (to be hosted in the web site). It is easy to add the web job so that it is included in the Web Deploy package. Once this was done we could deploy from Visual Studio, or package to the local file system and see the web job EXE in the app_datajobs folder as expected. ...

August 21, 2015 · 2 min · Richard Fennell

Using Release Management vNext templates when you don’t want to use DSC scripts – A better script

A couple of months ago I wrote a post on using PowerShell scripts to deploy web sites in Release Management vNext templates as opposed to DSC. In that post I provided a script to help with the translation of Release Management configuration variables to entries in the [MSDELPOY].setparameters.xml file for web sites. The code I provided in that post required you to hard code the variables to translate. This quickly become a problem for maintenance. However, there is a simple solution. ...

August 21, 2015 · 2 min · Richard Fennell

Guest post at Microsoft - nUnit and Jasmine.JS unit tests in TFS/VSO vNext build

I have just had a guest post published on the Microsoft UK developers site nUnit and Jasmine.JS unit tests in TFS/VSO vNext build

August 19, 2015 · 1 min · Richard Fennell