CodePlex TFS Services - version-control

I have been thoroughly confused by CodePlex and the TFS services it offers or doesn't offer. I am going to soon begin working on on open source project with a few friends using Visual Studio 2010 Professional. Because VS is so nicely tied in with TFS, we would prefer to use TFS.
However, we do not have the money to purchase TFS ourselves, so we were looking at CodePlex as an alternative. Does CodePlex offer free TFS hosting? I believed it did, until I came across this which led me to believe it only offers part of the TFS feature set.
(This is my first experience with version/source control, so please be light on the terminology.)

CodePlex offers free TFS hosting with a feature set aimed at hosting open-source projects. Its version control offerings are complete, but Team Foundation Server is a platform with many feature areas, so let's look at those:
Version Control: CodePlex supports the entire feature set of TFS Version Control. In fact, CodePlex pioneered some version control tools for TFS like their SVNBridge.
Work Item Tracking: Team Foundation Server allows for a customizable work item tracking template and ships several out-of-the box to suit development processes ranging from CMMI to Agile. CodePlex, however, provides a single work item tracking template that is suitable for open source projects and does not allow customization.
Continuous Integration: CodePlex does not support automated builds at this time. You can set up your own continuous integration builds against a CodePlex endpoint for source code, though.
Document Repository: There is no SharePoint document repository available in CodePlex.
Reports: SQL Reporting Services are not available in CodePlex.
I would argue that for a small open-source project, none of these are deal-breakers. For a very large project, however, some or all of these features may be desirable, though.
If you want to use TFS and you are looking for a cost-effective solution for a small project, you may also want to look into Team Foundation Service, which is currently free while it is in its preview state. (Future pricing has not yet been announced.)

Related

Transfer TFS Work Item Queries from locally installed TFS to visualstudio.com

Is there any way to move custom queries I've setup in my company's locally hosted TFS server to my instance of TFS on visualstudio.com? I've Googled/Binged/Yahoo'd and even DuckDuckGo'ed around and asked other devs using the service but none of them had any saved queries they wanted to move, so no one had done any researching yet. After a few fruitless searches I've turned to the experts here on SO. Anyone find anything about this they can share?
The usual suspects when it comes to TFS Migration (namely the TFS Integration Platform) does not support moving project or personal queries. Depending on the quantity of queries, a manual recreation is obviously possible. However, if there are a significant number, then another option is to use the TFS SDK (Microsoft.TeamFoundation.Client and Microsoft.TeamFoundation.WorkItemTracking.Client). Within there, you can access the "My Queries" and project queries, including their folder hierarchy.
One example of this is available on Mike Poulson's blog where he shows going from a TFS 2010 -> TFS 2012 server. While this example is targeting on-prem, the same holds true for a move from TFS on-prem to Visual Studio Online.
Some of the queries may need "translation" in the migration process (naming differences, etc), using the SDK can also help in that process. So at the end of the day, it's a tradeoff between a manual recreation vs effort to code/debug/test a solution with the SDK.

Version control architecture for a large project with many dev groups

We are working on a very large portal project. We need a scalable source version control architecture such that, it should be scalable to many teams and possible incoming teams.
There will be common libraries and each group will work on different part of the system. At demo times, we need to integrate these parts and have the product testable, demoable and so on.
Do you recommend some guidelines or architectures?
How would you approach this problem?
In terms of version control system, we are using TFS, if it helps.
Sounds to me you would be better off with a DVCS (Distributed Version Control System) like Git, rather than TFS which has a centralised version control system.
TFS now integrated with Git, here is a good blog post which provides you with most of the details you would need - http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/getting-started-with-git-in-visual-studio-and-team-foundation-service.aspx
Add an enterprise level Git Repository Management tool like Atlassian Stash and life will be sweet - http://www.atlassian.com/software/stash/overview
From a TFS server side...setup only 1 team project. This will be key. The other key is to have the server running SQL Server 2012 with SP1 (there's tons of perf improvements in SQL that will help you scale TFS).

Upgrading to Team Foundation Service from TFS2010

I work for a company that has a small development team (~30) distributed across multiple continents and multiple development platforms (Windows & OSX). As is such, Team Foundation Service seems like a great way to have a high-availability source control that works well with different development platforms. We're currently using TFS2010 and have about 20,000 checkins in our checkin history. If we were to move to TFService, we'd like to be able to bring the Source Control history with us.
Is this possible?
If possible, are there any guides available covering how to do this upgrade?
Team Foundation Service seems like a great way to have a
high-availability source control that works well with different
development platforms.
I can't vouch for multiple platforms (yet), but for all things Windows-related I have been extremely pleased with TFS "in the cloud".
This article looks promising: Migrating from an On-Premises Team Foundation Server to Team Foundation Service Preview Using the TFS Integration Tools
In this article, I demonstrate a migration from an on-premises
Microsoft Team Foundation Server (TFS) 2010 to Team Foundation Service
Preview, which uses the latest TFS Integration Tools.
...
The TFS Integration Tools help you move yet keep the integrity of
version control (VC) data, work item tracking (WIT) data and the links
in both.
The crux of the article seems to be the usage of the TFS Integration platform, found here on Codeplex
Note that TFS Preview recently (October 2012, I believe) went live so it is no longer a "preview".
A good search phrase for this process seems to be "migrating on-premise TFS to cloud".

Team Development offline

I want a version control system tool, but offline.Like I develop a project on my computer,and someone is working on a different part of this project on a different computer.Is there a tool that allows to me bring the project from different computer to mine and sync all the changes.
I would like to have all functionalities of a version control system like diff,rollback,commit
Please suggest a suitable tool.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
http://git-scm.com
It can be used online or offline easily.
Almost all the version control tools on the market support these features: diff, rollback, commit, offline, etc. I list some tools here for your reference:
Open Source
Git
SVN
Commercial
SourceAnywhere (developed by the company I'm working for)
Microsoft Team Foundation Server

Source control for MS Dynamics CRM

I'm undecided about CRM at the moment. It's a great tool for the business users but so far for development it's been a bit against the grain. The next problem I need to tackle is how to easily source control javascript used within forms. We use TFS for our source control.
Anyone had an experience or have any ideas on how to do this?
Obvious choice would be to copy and paste the JS in to your source control, but it's also an obvious pain in the rear.
A couple of things that we do in our projects:
We use the Web Resource Utility included with the CRM SDK (actually a modified version of it) to deploy JavaScript web resources to a particular solution. Makes it very easy to keep script files checked in to source control as normal and avoid copying and pasting.
We wrote a custom HTTP Module that we use on local deployments. It intercepts requests for JavaScript libraries and redirects them to a location on local disk. That way, we don't have to actually redeploy the web resources as we test, just the JavaScript files to disk. (Note that this would be unsupported in a production environment. We just do it in our development environments to ease the pain of JavaScript deployment).
I answered a very similar question here - Version Control for Visual Studio projects and MS Dynamics CRM (javascript)
My choice for source control is TFS holding each of the 2011 JScript libraries.
We try to mirror the file structure that Dynamics uses for Web resources in a basic Library project. So version control works as normal, we just don't use the output from the project.
You can also try using the new "CRM Solution" project template (installed from the SDK) and have the ability to deploy from the context menu of the project.
I've had some issues with the template but something to check out.
Hope this helps.
You can take a look on my answer on my own question here.
MS Dynamics CRM 2011 SDK has solutionpackager.exe utility what could split all CRM resources into file tree and you can store them either in git or in tfs.
Any web resource in CRM 2011 is a pain to manage. We just end up doing a lot of copy pasting in and out of TFS 2010 (which has actually caused some problems with poor pastes).
Currently out of the box there isn't an easy way to do it.
Only worry about this if you really need the ability to go back to old versions of web resources. I've found that I don't often have to do this. Remember that the web resources are stored in SQL Server just like they would be if you put them in TFS, so as long as your CRM database is being backed up, you won't lose the web resources. In traditional development, it is important to keep the source in TFS because you can't easily get back to it once you compile and release. With CRM development, your web resources are mostly HTML or JavaScript, so you can always get at the source.
If you really need version control, why not build a quick little console app that downloads all customizations every night and stores that zip file in TFS? True, it wouldn't be as easy to get at older versions, but you should gain a lot of productivity by not having to manually keep TFS in sync. This also has the benefit of storing all customizations in TFS, not just web resources.
Silverlight is the obvious exception here - I would definitely store Silverlight web resource source code in TFS, because it is a "compiled" web resource. You are already in Visual Studio, so TFS is a natural fit anyway.
Hope that helps!