With the interest in getting sophisticated projects built by students, I have been trying to figure out how do we get beyond the basic fart app in Windows Phone Applications. (Ok, maybe “sound” app would be a better way to put the infamous fart app.)
It is difficult to build complex and useful applications without versions control that allows for testing, bug tracking and so forth. Team Foundation Server is a difficult product to host and has a number of requirements. When used with Sharepoint, Office and MS Project, it is a joy, when it used in a limited manner like Codeplex, well not so much.
With introduction products like BizSpark (and for Students MSDNAA) you can get started with TFS. Of course if you use MSDNAA, then you are not suppose to use the TFS for commercial purposes.
So what is the difference between TFS and GIT? GIT is “free”, although I would recommend a donation if you use it, or contribute to the code base. With TFS it starts at $499 if you don’t use Bizspark/MSDNAA and then you can add on, items that are included with Bizspark/MSDNAA, MS Project, Sharepoint, and so forth. With GIT you could use Linux, etc. and have a no cost tool for source control. But what about integration with test, lab management, and so forth.
What does that last sentence mean? Integrated test, lab management and so forth. This is where TFS is quite different, unlike GIT which is version control, TFS integrates the overall software development in a manner that allows you to use one design/test/architectural philosophy.
If you only feel a need for version control, then GIT is fine, but if you are looking to use an integrated test/lab management/version control/project management/architecture then TFS is the way to go. Using Bizspark/MSDNAA is a way to learn how to put together the environment and practice project design is the way to go.
According corporate rules, i must use tfs.
But have break my mind with tfs - it's very slowly, buggy and complicated.
One way - is create git repository over tfs repository.
A mind is a bad thing to break. You say that TFS is buggy, it would helpful if you could describe the bugs, I use TFS in a lightweight manner lately so I am not aware of bugs, are you getting errors thrown? (I ask this respectfullY).
If TFS is slow, is it for network reasons? Is the server configured correctly.
Finally keep in mind, GIT is a version control/source control, and you can extend it with other tools to do what TFS does for developers, but the natively GIT does not the software engineering tools, architectural tools, etc that are available in Team Foundation Server.
I agree that if all you are doing is version control/source control and the other important things GIT does, it is still a subset of what TFS accomplishes when used by a team.
If you want to be an architect or move up in an organization, it is important that you understand the what Team Foundation Server is attempting to accomplish (but you don't have to become an expert on TFS, although I would like that).
Finally, thank you for your excellent comment, always feel free to reach out to me. If you wish, you can send an email to me and I will be happy to discuss your concerns about TFS, maybe there is something that could easily be fixed to improve your experience.
Have a great day!
I've been using TFS for 2 years now, and git for 6 months.
My experience is that git demolishes TFS as a source control system. I've been so irritated by TFS in the past. It makes merging horrible and complicated. The only way you can successfully use TFS without headache is by leaving exclusive checkout on and staying away from what TFS calls branching (glorified folder copying).
Something that really struck me as odd in your article is that you put "free" in quotes when describing the price of git, as if there's some secret price you pay that you're not mentioning. No, git is in fact free. Unfortunately TFS is not, and you need a Windows Server to run it on (which is not free either) and it's a beast of an install too (although admittedly improved since 2005). Did you know git can work on a local machine with no server install at all and still provide full source control features?
So if that's not deterrent enough consider this: once you purchase TFS and a windows server, get it installed and working, now you need things that will interact with it. The only thing that works well with TFS is Visual Studio. So if you're not using that, there's no reason to ever think about TFS, so unless you're going to be a Microsoft ONLY Developer then there's no point to knowing TFS because it's just going to be this "thing" that you have to use some of the time when you're working in one stack instead of having one tool for everything. Oh and for features like lab management that you're talking about, if you're no longer a student, and want to get going with what you know in a small business start up, you'll be shelling out $12,000 for Visual Studio Ultimate to get the featureset that you're talking about.
Hi Aaron, thank you for your comment.
Yes, you will shell out $12,000 or so for Visual Studio Ultimate as a small business unless you subscribe to BizSpark, then I believe that is it quite a bit cheaper.
You are also correct that it only works well with Visual Studio and requires a Windows Server. The benefit isn't for you, it is for the reports required by other people from MS Project, etc.
If you only are going to use TFS for source control and nothing else, then maybe GIT is for you. If you are using GIT, I hope you are active in the community and contributing on a regular basis to the GIT community, in this case GIT is not free, but rather requires that you actively participate in the community. That is always a good idea, but time is money, so if you do participate as all Open Source Communities would like for you to, then that to me means that it isn't free. It is no-charge, but it's not "Free".
GIT does integrate with Visual Studio.
If you are looking for a tool that will work with all stacks in a smooth integration please let me know the URL.
Your comments were well written, made your case, and respectfully appreciated.
There is no comparison. TFS is not fit for purpose. It contains hundreds of bugs that will waste you thousands of hours. Avoid at ALL costs. I think I'm going to have to leave my job because of it.
Well, I've been using both systems for years now. Both installing complete environments for SCM/Architecture/Project Management etc. I have to say that everyone knows that git is FREE. You can donate or contribute but its in no way obligatory. Can I contribute to the TFS development and get a free copy? If so, could you post a URL? In the other hand, Git is for geeks, TFS is for... Not so geeks. The learning curve are both steep yet Git is not tied to any development environment, which is a plus because not every company is a Microsoft Only company. Learning TFS is a good idea. Only using TFS is not, beliveing that one tool is better than the other, even worst. The best tools is the right one on your dev environment. If you are in a Microsoft only company then TFS is the best, yet I have not been in a single company that there isn't at least one Linux/Unix/AIX/Sun/ZOS/AS400 Computer. Another point of view I have (of course this is about points of views.. right? You can't compare chilly and coke) is that most of the time more is less. As stated by the Phycologist Barry Schwartz in his book "The Paradox of Choise: Why more is less" have too many options is just not an option. TFS is a great tool with many options. But thinking that SCM is just a small part of the package makes SCM sound unimportant and insignificant when we all should agree that SCM is the foundation of all systems like TFS. By the way... is that TFS 2012 now having local copies? Any simili with git architecture is just a coincidence, right?
Thanks for the comment, quite well written and thoughtful, excellent!
TFServices is an online form of TFServer. You can try it free at:
http://tfspreview.com/ , will it be free forever? I don't know.
Are there similarities in the form of TFS to Git, likely. As to only using TFServices for Windows, I don't think so, people with Apple Computers can use it. I don't know about Linux.
As to options, your discussion is spot on, if you have too many options is lowers your experience. Do we have too many options in TFS, maybe.
"GIT is not free, but rather requires that you actively participate in the community". <= That is completely wrong. git is and will stay free. No-one requires anyone to participate anywhere. Millions of people are using git without giving back or even knowing about any community and it's not a problem at all. The main idea of Open Source is that you can do whatever you want with it. (Not quite, but you get the idea.)
It is also not true that you should "do participate as all Open Source Communities would like for you to". I have never heard anyone telling users to stop using an Open Source product and start participating. If that was true, Chrome and Firefox (and so many other projects) would not be as popular as they are.