Archive for the ‘ALM’ Category

Why do TFVC users hate Git

When I start a new development engagement or TFS implementation with a client, I prefer to use and promote Git for the codebase. I have been faced with a lot of resistance from developers to use Git instead of Team Foundation Version Control (TFVC) or another centralized version control. In this post, I will have a list of the common complaints I hear when I propose using Git.

Concept of a local repository

The first thing a developer must do after creating the remote repository is cloning the remote repo. By cloning a remote repo, we are creating a local copy of the repository. For new Git users, this is a new concept. I don’t like to say that it is like “Get latest” for the first time because it is fundamentally different. Cloning a remote repo means you are getting a copy of the remote repo, which includes files, branches and history, on your computer. With that copy on your disk, you can modify files, commit changes, create a new branch, merge a branch, view history and compare files with their previous versions, all that while being offline. With TFVC, you can only modify files while you are offline.


Some centralized version control users often hate branching. It is their nightmare. They often only branch the code for releases or bug fixes in a release. In Git, branching is a first class citizen. It is the norm and not the exception. Centralized VC users get intimidated by that fact. Technically speaking, your local code is considered a branch of the remote code.


The terminology to work with Git VC is different than TFVC. In TFVC, 90% of the time developers use two commands which are Get latest and Checkin. In Git, developers often deal with more commands on daily bases such has Fetch, Pull, Commit, Push, branch, merge, and Checkout. There are other commands in Git but they are used less often than the commands listed in the previous sentence. Some TFVC developers who are new Git find that overwhelming.

Command line

TFVC version control users interact with VC using GUI. Git is integrated with Visual Studio, Eclipse and other IDEs. But sometimes you must roll up your sleeves and use command line.

I can’t Pull the content of one folder

In TFVC, it is easy to get the latest code of a folder. In Git, you can only pull the changes for current branch from the remote repo. You can’t pull the changes of one folder.

Too many repositories

In TFVC, you can have one code repository per Team Project. We usually separate projects by adding them into separate folders. In Git, we create a repo per project. Keep in mind a project doesn’t necessary map to one .NET project or solution. I often hear complains that developers have to switch from one repo to another because they work on multiple projects. This forces them to either open multiple instances of the IDE and each instance is pointing to a repo or keep switching from one repo another.

Those are the top complaint I hear from client when switching to Git. Do you have other complaint? I would love to hear them.

About Lajak Technologies

A consulting firm in Ottawa, Ontario that provides services related to Microsoft technologies, Team Foundation Server, DevOps practices, security and more. Contact us today to help you in solving your complex software problems.

Categories: ALM, TFS Tags: ,

Fix TFS 2015 Build’s Queue is Empty

Today I wasn’t able to select a queue while creating a build definition or queuing a build using the new build engine that comes with TFS 2015. The drop down was blank.

This problem may occur if you don’t have build queues for your Collection or if you don’t have permission to use the queues in your build definition.

Go to the administration site for your collection

Check if you have queues for Collection

If you do, select your queueà Role à Agent Queue Users à Double click on Agent Queue Users à add users or groups

Otherwise click the “New queue” link to create a new queue


About Lajak Technologies

A consulting firm in Ottawa, Ontario that provides services related to Microsoft technologies, Team Foundation Server, DevOps practices, security and more. Contact us today to help you solving your complex software problems. Visit us at

Azure Cloud Load Testing – Part 2

In the previous blog post, I showed how easy it is to initiate a load test from Azure by just providing a URL of the web page you want to load test, specify the number of users and the duration. This is great for websites where requests are GET requests or you are not trying to test a user scenario that consists of multiple steps. In this post, I will show how to use Azure Cloud Load Testing in a more advanced scenario that consists of multiple steps.


In order to record a performance test which will be used for load testing, you need to have Visual Studio Enterprise or Ultimate Edition. You can download a 30 day trial version

Recording a Scenario

  • Open Visual Studio
  • Create a new Web Performance and Load Test project

  • Click the record button on your web test

  • Go through the scenario you want to record. I uploaded the scenario I recorded at
  • I recorded a test to go from the home page to the search page and then perform a search

You can test your script by clicking the run test button

Create a Load Test

A load test can consist of one or more test scenario. You can also define the duration of your test and the number of users to simulate running the test. Let’s create and configure a load test which will run in Azure.

  • Right click on your project
  • Add a load test by right clicking on the project and add a new itm

  • On the wizard, I am selecting a Cloud-based Load Test and click next

  • Select the location where the load will be generated from and click next

  • On the Run Settings page, you select the duration of the run and then click next

  • On the scenario page, name the scenario and select the Think time profile, think time is the duration between your test steps

  • On the Load pattern page, you can select a constant load of users or if you want to start with a smaller number of users and ramp up the user users while your test is running. I am using a constant load but you may want to use the second option if that what you want to simulate.

  • On the test mix page, you can select one or more tests. in my case I am only selecting one web test. You can also selected MSTest unit tests as well.

  • Add the browsers you want your users to use during the test

  • Click the Run load test button

  • Click on the Performance or Throughput buttons to see the graphs. The application button with capture the Application Insights telemetry


In this post, I showed how to create a performance and load test using Visual Studio 2015 Enterprise Edition and leverage Azure Cloud Load Testing to execute the recorded test. I didn’t have to create any Virtual Machines or install test agents to run my load test. I had to push a button and monitor the test run. Cloud load testing would save you a lot of money in infrastructure purchases and labour costs when you want to run load tests to similar millions of users and you want to only run the test scenarios for few weeks a year. The first 20,000 Virtual User Minutes (VUMs) a month are free. Give it a try today.

Offline Installation of TFS Eclipse Plugin

I was working with one client with a locked down dev environment (i.e. no internet access on dev machines). They use TFS as their ALM tool. Long story short, I wanted to install the TFS Eclipse Plugin. The following are the steps that I went through to install the plugin offline.

Download TFS Eclipse Plugin (version 14.02 is available at

  • Open Eclipse
  • Click on Help à Install New Software

  • Click the Add button then the Archive button
  • Select the zip file for the TFS Eclipse plugin
  • Click the Open button

  • Check The Team Explorer Everywhere plugin and click the next button. Eclipse will calculate the dependency. This may take few minutes

  • Click the next button on Install Details window

  • Accept the license agreement and click the Finish button
  • Click Yes to restart Eclipse

  • Click the Open Perspective button, Select Team Foundation Sever Exploring and click OK

Connect Eclipse to TFS Server

  • Click on Connect to Team Foundation Server then click the Servers button
  • Click the Add button to add a new TFS server
  • Type in the TFS url

  • Click OK and close the Add/Remove TFS window
  • Select your team project and click the Finish button

Categories: ALM, Uncategorized Tags: , , ,

TFS Build: Unable to load task handler PowerShell for task …

While I was trying run a TFS build for the first time on a Windows 2008 R2 SP1 machine, I got the following error

Unable to load task handler PowerShell for task Maven with version 1.0.13

To determine the Powershell version that is installed on your system:

Open Windows Powershell

Type $PSVersionTable.PSVersion

If you have a version that is lower than 3.0, you will need to update to a recent version of Powershell

In my case, I had PS 2.0 installed. I upgraded to PS 4.0 which I downloaded from

and that fixed my issue

PS: read the installation instructions to determine proper file name to download


Categories: ALM, TFS2015 Tags: , , , , ,