With the recent launch of Team Foundation Server 2013, I thought it would be a good time to take a step back and look at what Team Foundation Server (TFS) now provides to the non-Windows desktop user. There are plenty of scenarios where some part of the organisation is using different technologies that don’t involve development in Visual Studio. In many cases that might be still be on a Windows desktop, but I though it would be interesting to look at a scenario where you have team members on another platform. In this case I’ve used a Linux desktop.
(In preparing a test environment to take screenshots from I made a note of how to install Linux in Hyper-V and installing the Team Explorer Everywhere plug-in for Eclipse, in case those are of interest).
When using TFS, you don’t need to be using Visual Studio, nor do you need to be on Windows. So, what can you do, using TFS 2013, but accessing it from a non-Windows desktop?
Develop (updated for 2013): Use the Eclipse integration to use TFS source control, integrate to work items and access TFS from within the IDE for non Microsoft technologies.
Build: Define and run automated builds based on Ant or Maven.
Web Test (new for 2013): Create test plans, organise and author test cases, and execute manual tests. This is a new area for cross platform support in 2013.
Why is this important? Even though a proportion of the team or organisation may not be using Visual Studio and/or Windows, they are still able to work on the same projects, using the same process, contribute and access the same information, use the same source control repository, contribute to testing and automatically provide reporting metrics. Different technologies and teams don’t need different tools and can collaborate more easily, with more transferable skills.
Let’s take a look at each of those areas in more detail.
Plan & Track
TFS 2012 introduced the new Agile Planning Tools in the Web Access. TFS 2013 has extended these tools with Agile Portfolio Management, Team Rooms, Work Item Charting and more. All of these capabilities are available in any modern browser, and are not platform dependent. So on this Linux machine, using Firefox, that means full access to:
Product Backlogs, including Agile Portfolio Management
Sprint Backlogs, burn down and capacity planning:
Work Items and charts
In all of these planning and tracking areas, the tools are no different from using a modern browser on Windows.
The cross-platform Team Explorer Everywhere plug-in for TFS will install into Eclipse and provide access to TFS:
In particular, source control integration
And access to work items and work item queries without leaving Eclipse
From within Eclipse, you can view build logs, invoke builds and create new build definitions, using the TFS triggers and workflow, but wrapping an Ant or Maven script:
You can also access build logs and invoke builds from within the web access tools:
One of the new features of TFS 2013 is the web based test tools. For a cross-platform environment that means that you can create test plans, and organise test cases into the full range of suites (static, work item query and requirements):
You can create and edit test cases, complete with parameters and shared steps:
Including the new grid view:
And run manual tests from within the browser, passing or failing steps, editing steps and raising bugs:
There are a number of areas in test that you can’t access, but these are the same restrictions as accessing the web test tools on Windows – you can’t configure test plans (which data adapters to use, manage configurations etc,.), you can’t collect rich actionable data in bugs, and there’s no exploratory testing. For all of these you need to use Microsoft Test Manager, which is a Windows desktop client.
Overall, there is a good range of TFS capabilities accessible from non-Windows platforms, using a combination of TFS web access and the Eclipse plug-in. It’s not on a parity with the support from a Windows machine in several areas, but it does provide broad support across key areas.
But what about if …
I don’t use Linux, I use Mac/Solaris/other Unix OS:
That’s ok, the web access and Team Explorer Everywhere plug-in work across a range of platforms and Eclipse versions so all of the above will hold true.
I don’t use Eclipse:
There are probably two common reasons why not:
1. You’re a real man/woman and don’t use an IDE 🙂
For whatever reason you’re using something else (Vi, Emacs, another IDE). TFS provides cross-platform command line tools so that you can work in another environment and still work with TFS source control. It won’t be integrated into whatever you’re using, but it gives you command line level support across platforms.
2. You’re an iOS developer and are using XCode
You can either take the route above, or more likely, use the existing XCode Git integration, see the next topic…
I use Git:
No problem. TFS 2013 now supports Git, and for each Team project you can decide whether to use the Team Foundation Version Control or Git within TFS. You can then use your existing/favourite Git tools and utilities.
There’s another scenario, perhaps if you’re an iOS developer, using Git within XCode, but the rest of the team are using TFS including Team Foundation Version Control. In that case you can use Git-TF, and synchronise your source code between Git and TFS.
I don’t have Windows servers for TFS to be installed on:
TFS does need to be installed on Windows (server or desktop), so that means if you don’t/can’t have a Windows machine on premise then you might want to take a look at VisualStudio Online, which provides TFS hosted in the cloud (Windows Azure). TFS is then provisioned in the cloud for you, and all of the above if accessed from your desktop. As it happens, that’s what I did for this post – within Linux I pointed my web browser and Eclipse at Visual Studio Online for TFS.
I want to use the new Release Management capabilities in TFS 2013:
You won’t be able to edit/create the workflows, as that requires a Windows client, and there aren’t deployment agents for non-Windows platforms. However, when you check code into TFS (e.g. from Eclipse) that can trigger a build, which is already linked into Release Management, which then does it’s stuff deploying to different dev, test and/or production environments, so it’s possible to be involved in the overall workflow.
If you’ve got here, well done. This post has turned out to be longer than I expected but I hope it’s a useful reminder and update (with the new web test tools) of how TFS can provide a lot of value even if you’re not a member of a Visual Studio or even Windows based team.