Thursday, 26 November 2015

Endpoints in a Team Project: what shall I do with them?

If you roam around a TFS/VSTS Team Project Administration page you will surely come across the Services tab:


What am I supposed to do with these? Why is there “Endpoints” and “XAML Build Services”?


Let’s start with the first question – in VSTS or TFS you can connect external services to interact with various features, like Build or Release Management.

Azure is a great example in that regard, because you can link a subscription to a Team Project for deployment purposes, once you do so all the combobox related to Azure Deployment (ARM, Web App, Cloud Services) will be automatically populated.

But there is not only Azure:


The Generic Service Endpoint enables third party services like Perfecto to integrate with the platform – you need to provide a URL and some authentication.

Subversion? Yes, also SVN is supported on VSTS and TFS 2015.1. It is something new – the Java ALM team delivered this integration to enable Subversion as a repository for build definition. Kudos to them!

Jenkins is for the build engine as well, so you can use it in the OOB build tasks.

Now onto the second question – the separation between XAML Build Services and other Endpoints is because the former handles services in a different way.

But as it is more and more becoming something old and deprecated, only Azure is available for these. Moreover, the XAML Build Service Azure integration doesn’t support Service Principals out of the box so you need to customise it should you use them.

Friday, 20 November 2015

Shopping in the Marketplace with Visual Studio Team Services

With the rename, Visual Studio Online Visual Studio Team Services introduces the Marketplace for its extensions.


It is a very welcome addition to the platform, as it enables scenarios of customisation in a very easy way.

Once you are logged in your VSTS account, you can browse and choose an extension:


Each extension has its own page with all the details, and it is the entrypoint for the installation:


The amazing thing is that it is all on your service – clicking Install brings you to an installation page, where you need to select the VSTS account you want to install the extension in:


That’s it! Once installed, you can go back to your account and start using it!


It is transparent for the users, which will just see the extension working as a feature of VSTS. All the extensions are managed at account (hence Collection) level.


Tuesday, 17 November 2015

Upgrading SonarQube to 5.2, my notes

Today I updated our production instance of SonarQube to the eagerly awaited version 5.2.

It is such an important release because it finally embraces a full client-server paradigm (whereas the runners had to talk straight to the database before of that), it introduces support for Integrated Authentication for its database, and more.

The documentation rightly suggests to not copy across the old file but to carefully cross-check the settings you are modifying – it is a very wise suggestion, as the strings are now different (albeit they look similar at first sight).

The JDBC driver for SQL Server is now different, it doesn’t use jTDS anymore so keep an eye on your connection string. And there is also support for SQL Azure, which is a very nice touch if you host SonarQube on it. If you want to run Integrated Security you have to fiddle a bit, downloading the SQL JDBC driver and manually copying it in the appropriate folder. Everything is documented though.

SonarSource introduced a wizard (a first, I think, in the Java world…) for the upgrade – but beware, the wizard will start only if all the connection and configuration strings are set in the right way.

All the runners scanners must be updated, pointing straight to the SonarQube instance instead of the database, and eventually another very minor issue – if you have a custom image (the top left one) in your SonarQube instance you need to reset it and set a width, as it isn’t preserved.

Friday, 30 October 2015

Small touches I like in the TFS 2015 Update 1 Upgrade Wizard

Microsoft is always working towards improving the user experience of its products, and Team Foundation Server is no exception to this rule.

There are two bits I really liked in the Upgrade Wizard of 2015.1: the new Build Agent configuration and the Upgrade Progress monitoring page.

For the first, now it is totally clear what are the paths a Build Agent (referred to the new Team Build, of course) uses:


For the second, I can now monitor not only the step of my upgrade but also the elapsed time, and if there is any problem going forward.

tfs upgrade

At the bottom there is a very handy link to the logs, and if something happens during the upgrade, the Issues link brings you straight to the relevant log:



Again, they are all small touches, but very relevant regardless of how often you use them Smile

Tuesday, 13 October 2015

Dashboards in Team Foundation Server 2015 Update 1

Another great new feature in TFS 2015.1 is the introduction of a real dashboard instead of a pre-built welcome page.

This is an example:


This is an upgraded Team Project by the way. There are a few out-of-the box widgets, but is there a Definition of Done widget? Of course not Smile

You now have the flexibility of creating your own widgets, including a markdown widget:


Everything is customisable – this is my markdown example:


You can also create multiple dashboards – this is extremely handy if you have different teams with different focus across the same Team Project:


Each dashboard can be totally different, they are independent with each other.

Eventually, there is a new Welcome page experience. This is Markdown as well:


and there is one page for each repository by default, as it is based off the file created into each repo.

This is really a very welcome addition to the platform, as it enables even more collaboration and information’s sharing scenarios as ever.

Saturday, 10 October 2015

TFVC and Git in the same Team Project: a revolution

TFS 2015 Update 1 is literally hot off the press, and I am already on it as the changelog is massive!

The #1 priority to me was to have a look at Git and TFVC in the same Team Project. This is a really important milestone for the future.

It means the Version Control storage become agnostic – you can have Git repositories in existing TFVC-based Team Projects (a legacy evolution if you want), but also the other way round, a TFVC storage into a Git-based Team Project.

The experience is as easy as it, you just need to go to the _admin page and under the Version Control tab you can manage that:



If you already have TFVC configured in your Team Projects, you can’t add another repository of the same type of course:


Why should I add a TFVC repository if I already use Git? Well, migrations, large file storage are two examples.

You need to run Visual Studio 2015 Update 1 (currently in CTP1) to fully access these new repositories - which obviously highlights that you have both the Version Control systems in place.

The next thing I will look at (across the weekend Smile) are the dashboards!

Friday, 2 October 2015

Problem solved! Git-LFS and VSO

One of the problems you might face with Git is the performance hit when you start storing binaries into the Version Control.

It is actually by design – Git takes content snapshots at every commit, and it can’t handle deltas on binary files like on text files.

Fair enough, it has lots of other pros (and cons too), but the inability of storing binaries in an easy and non-disruptive way hampered the need for a shared tool in an heterogeneous development teams. If you have people working on the UI of your applications and you want them to version the .psd files they use, you can’t use Git.

Well, you couldn’t. GitHub developed Git Large File Storage for sorting this issue, but it wasn’t by default and eventually you would need to pay for usage (over 1GB quota of free space and bandwidth). It isn’t a out-of-the-box solution.

But yesterday Microsoft announced Git-LFS support on VSO, and it is a game changer to me.

Firstly, it is enabled by default on all the Visual Studio Online’s Git repositories. What you need to do is to install the Git-LFS extension, and nothing else.

Then, it is free for unlimited storage, so you don’t have to worry about limits, quotas and usage. It’s there, use it (if it makes sense, obviously).

Eventually, it will be included in Team Foundation Server 2015 Update 1, meaning that you will get exactly the same experience on-premise.

That’s marvellous, really. It solves the aforementioned issue in an effortless and easy way, making Git even more approachable.