-1

Recently,

Here at the company, more than one programmer was appointed in charge for a LightSwitch(C#) software development project and immediately there was a need of some sort of source control/sync.

We have never used Team Foundation Server but we'd gladly use it if it's worth it.

  • Is it the right tool to use for synchronising code between programmers?
  • Does it have the needed features?
  • Do you have any other tool in mind? (I have used TortoiseSVN but it was too simple and 'texty' if you know what I mean, we need a professional tool)
  • What other features does Team Foundation has that we can use?

(if you did not understand any of the above please ask me to clarify further)

benj
  • 497
  • 3
  • 8
l0Ft
  • 195
  • 1
  • 7

4 Answers4

11

"we need a professional tool"

oh dear. Let me tell you about the time we scrapped our perfectly working SVN system and replaced it with an 'enterprise' tool that came highly recommended by a consultant and the management. .. actually, no I can't bring myself to document the horror that we endured for the year it was in place before we scrapped it and reverted to the perfectly good SVN system we had before.

Martin Fowler did a quick survey amongst the technophiles reading his blog. The results are very interesting.

The good ones are the 'unprofessional' ones. These are the ones the techies like and are much more productive with. The crpa ones are the ones that have a lot of 'administration' and 'lockdown control' associated with them, stuff like management-inspired workflows. (oh, ok, we had workflows and rules in this 'tool', to the point where you had to get a team lead to create/authorise a new design part that you could then use to checkin your code against - you could not just checkin your code or it would get lost in the mass of requirement tasks that were also associated with design parts, the idea was that we could properly control releases... never happened, total disaster, and that was when all the TLs were in the office and available to create the damn tasks!)

You can do a lot better than the features in TFS by looking around, and many of the OSS tools out there are very very good. Pick the ones you like, I recommend SVN with Jenkins build server, and redmine for task tracking. You might like Jira or CruiseControl with Mercurial.

gbjbaanb
  • 48,354
  • 6
  • 102
  • 172
6

Team foundation server is complete tool for ALM - application lifecycle management. The source control is only one part of the whole product. Among others it offers:

  • Source control with configurable rules enforcing some code quality. I think it uses SQL server as repository (I'm not sure about that) so there can be some well known techniques for backups etc. It offers basic features like labeling, branching, merging and shelving
  • Build agent to run automatic builds / tests / deployments
  • Project templates to manage project development / requirements / tasks / bugs / project reports / milestones. Templates can be customized so there are for example templates for Agile project management available.
  • Project portal with document libraries / wikis / etc. running on Sharepoint services
  • Depending on your VS licenses it can provide some very advanced testing scenarios
  • Configurable notifications via email
  • Web client for adding requirements and bugs without installed Visual Studio
  • etc.

TFS is commercial product. If you have MSDN subscribtions you will be fine otherwise you have to buy the server product and per user license (CAL). I'm not sure, but this can further require CALs for Windows Server, SQL Server and Sharepoint if you don't use Sharepoint Services.

The truth is that each of these features has better equivalent on the market but TFS simply provides this as one product which is installed without any problems and fully integrated to visual studio out-of-the box (by installing Team explorer).

For example I found Cruise Control or Team City as much more powerful tools for automatic builds.

SVN is good source control (better then the one offered by TFS) but I found it more complicated to manage and use (TFS is really for everyone). TortoiseSVN is only extension to Windows Explorer. You can install AnkSvn and you will have integration with Visual Studio.

Ladislav Mrnka
  • 7,326
  • 1
  • 23
  • 32
  • TFS is a popular choice amongst .NET shops, it won't be a bad choice. – Martijn Verburg May 03 '11 at 08:59
  • thank you Ladislav Mrnka, that answer was very helpful :) – l0Ft May 03 '11 at 09:27
  • AFAIK TFS has a nice tight integration with Visual Studio. If thats what you are developing in then its probably a low-pain-threshold choice. – quickly_now May 03 '11 at 09:40
  • good to know @quickly_now – l0Ft May 03 '11 at 12:27
  • 1
    You will need a Windows Server license, but TFS includes sharepoint services and SQL Server standard, including reports server and analysis server at no extra charge. You cannot use the SQL Server instance you use with TFS for anything else - it must be dedicated to TFS. Otherwise, you'll need a fully licensed SQL Server instance. – rjrapson May 03 '11 at 12:55
  • FYI, VisualSVN Server makes managing a SVN repository incredibly easy - comes with a MMC snapin GUI and integrated windows user auth too. – gbjbaanb Apr 19 '13 at 23:01
4

I aggree with gbjbaanb and Ladislav Mrnka. Both are right.

Team Foundation is a powerfull Application Lifecycle Management Tool. For my projects it fits all the need's I need to care about. But what are your needs?

There would never be one perfect solution for every project. Some like SVN, some like Git some something else. But for that you need to take care about your project needs. Do you only use Source Control? Do you need the Management Tools? How much do you want to pay for it.

I like TFS very much. It has good process templates, like scrum 2.0 (upcomming tfs version), check-in validation, fxcop integration, reports, good security system. The build service is good too, but it needs alot of work to do it the way it should work.

So maybe clarify what you need and search for some products and compare them. Take the product which fits your needs the best.

Smokefoot
  • 763
  • 3
  • 7
1

To add to the points everyone else has been making, don't forget that there are perfectly good Distributed Version Control Systems (DCVS) that work very well. I personally prefer Mercurial as a .NET developer, but there is an equally strong case for Git as well.

There is a really good answer here on the advantages of a DCVS over a traditional CVS system like TFS or SVN.

Zachary Dow
  • 165
  • 7
  • Speaking of Git, it's nearly fully integrated into Visual Studio with the 2015 RC, and 2013 support is pretty good too. If we're just talking source control, and not all of the fancy management tools, it's a very good choice. – RubberDuck Jun 17 '15 at 01:27