When we introduced Team Foundation Server hosting, it was one of our first ventures into offering specialized software as a product and our first step into the software as a service market. As we listened and worked with our user base, we introduced multiple Team Foundation Server Proxy nodes to improve performance and the user experience and we also introduced Team Foundation Server Build as an add-on service for existing accounts.
I’m happy to announce that we’re taking our next step: Offering Team Foundation Server Build as a standalone service.
At this time, the system is not dynamic, resources aren’t being re-allocated on-the-fly and unfortunately, it will not have dinner ready by the time you get home (but we’re working on that).
So, what do we offer?
We provide a managed, stable working environment that allows for the installation of custom packages and software so that the build server will meet your exact requirements. With the service, you now have the ability to:
- Add a build server without the account-related requirement (Yes, it works with Microsoft’s Team Foundation Service!)
- Scale out an existing configuration by adding additional build servers
- Deployment capabilities
- FTP/WebDAV build retrieval
While the service is still in its beta stage, it is fully functional and we’re continually working to make improvements. If you’re interested in giving Build as a Service a try – for free – please contact our sales team at: firstname.lastname@example.org for more information.
Since we launched Team Foundation Server 2012, I’ve been seeing a lot of questions regarding Eclipse and the Team Foundation Server plug-in that range from general configuration to licensing and I thought I’d take some time to get a post up to for clarification. Let me go over the licensing model and then you can continue through the article for the set-up guide.
We formally contacted Microsoft to get clarification on licensing and here’s what we’ve discovered and understood. In a typical in-house environment, in order to use Team Explorer Everywhere, you would need a client access license but in a hosted environment, you need a subscriber access license which is included for every user license that we offer as a services provider. Simply put: Feel free to use Team Explorer Everywhere against our servers without worrying about the licensing.
Now, just to make sure that everything’s covered, I’ll be going over a step-by-step guide on installing and configuring Eclipse on a Windows 7 workstation and for this example, you’ll need to download or install the following:
I’d also recommend reviewing the requirements list at MSDN for the Team Foundation Server Plug-in for Eclipse before proceeding.
Let’s go over all of the steps.
1. If it’s not already available on your system, install the Java runtime.
2. Next, extract Eclipse Classic.
3. Launch Eclipse and then go to: Help > Install New Software…
* Name: TFS Plug-In
* Location: http://dl.microsoft.com/eclipse/tfs
Agile Software Development
- Track project progress with a Kanban board
- Assign tasks to user stories through drag and drop in the taskboard
- Assign ownership through drag and drop in the people view of the taskboard
Team Web Access
- Improved navigation and usability enhancements for Web Access for example: Web Access now remembers the state of the splitters, contains styling improvements, added several animations and contains next/previous work item navigation
- Updated Team Foundation Server Web Access navigation styling
- Show counts for links and attachments in Team Foundation Web Access
- Drag and drop queries and query folders in Web Access
- Expand and Collapse the left navigation pane in web access
- Usability improvements for Version Control
- Version control supports paths longer than 260 characters
If you’re using Visual Studio 2012, I’d suggest applying Visual Studio 2012 Update 1. For more information on the Visual Studio 2012 update, see the blog post at: http://blogs.msdn.com/b/somasegar/archive/2012/11/26/visual-studio-2012-update-1-now-available.aspx.
Note: We have discovered a bug with update 1. When a new Team Project Collection is created, the collection name is visible to all users on a server through various clients (but of course it is not accessible by any other users due to lack of permissions).
We’re working with Microsoft to resolve this as soon as possible.
One of the key highlights of Team Foundation Server 2012 is an improved experience when you’re working offline and you would have to wonder: If it’s mentioned as a key feature, how bad was working offline previously?
If you’ve avoid opening a solution under source control in offline mode, you’re extremely fortunate. But for those that have to experience it with Team Foundation Server 2010, you might hear that it’s easier to call it a day than continue working.
Before going further, it’s important to discuss and understand what’s allowed the improvement: the local workspace. A workspace is a critical feature of Team Foundation Server since it’s what allows the differentiation between the changes that have been made against the data stored on the server and your working copy of files.
Prior to Team Foundation Server 2012, the only type of workspace that was available was a server-side workspace which has drawn plenty of criticism since an active connection to a TFS server was essentially required so that synchronization could occur. While the ability to make changes to files was available, it was an extremely tedious and cumbersome process.
The local workspace was introduced with Team Foundation Server 2012 as the default workspace type and it follows the Edit-Merge-Commit system – any changes that are made are noted and then synchronized with the TFS server at check-in.
There are some advantages and disadvantages between the workspace types so you may want to determine how a workspace will be used against a particular project.
Server workspaces have the following advantages and disadvantages:
- Ideal for a large number of files. According to a post made by Buck Hodges, you may want to consider using a server workspace if there are more than 50,000 files involved.
- Compatible with previous versions of Visual Studio. While users go forward with the transition to Team Foundation Server 2012, it’s highly probable that some users will need to continue using Visual Studio 2010 and if this is a case that might occur in your environment, you may want to continue using server workspaces if a workspace needs to be shared.
- Exclusive locks are observed (provided that the asynchronous check-out feature is not enabled).
- All local copies of files are set to read-only. If a solution is opened offline, you’ll be prompted to overwrite changes every time.
- In offline mode, core abilities such as adding, deleting, renaming or undoing changes to a file are not available.
Local workspaces have the following advantages and disadvantages:
- Local files are not set to read-only and changes can be made.
- All normal functionality is available. For example, you can create a new file and it would be recorded as a pending change.
- If a change is made to a file outside of Visual Studio, it will be detected.
- Exclusive check-out locks are not enforced.
- A high number of files may result in performance degradation.
The default setting for a workspace is set to local but if you need to alter an existing workspace or create a new workspace, you’ll find the option under the “Add Workspaces” window.
To get an idea of what using a server workspace is like in offline mode, let’s take a quick walkthrough.
1. To make sure that there was no connectivity to a server, I used the most effective method of guaranteeing no connection – I unplugged the network cable. After verifying that no network connectivity was available, I opened an available solution in offline mode.
2. In a sample application that I had available, I updated two files, About.vbhtml and Index.vbhtml and then saved my changes. Here’s what you’ll see every time a file is saved.
3. I decided to add a new file.
4. To simulate a restored connection to the server, I just plugged the network cable back in and attempted to go online.
Note: The file that was added is not detected as a change.
5. The new file will need to be manually added to source control and then checked-in.
1. For working offline with a local workspace, I used the same high tech method that I used for the server workspace and opened the solution in offline mode. Here’s what the Solution Explorer window looks like:
2. I opened and updated the Web.config file and then saved. I was not prompted to overwrite an existing file that was set to read-only and the change was noted immediately:
I continued working and just made a simple change to the Index.vbhtml file.
3. I reconnected the cable and went online. All of the changes that I had made were recorded as pending changes.
4. I recreated the disconnected environment, added a new file and then went back online. Unlike the server workspace, the change was detected:
While not everyone may find themselves in a situation where working offline is required, the introduction of the local workspace is a much appreciated and welcomed enhancement.
Deploying Team Foundation Server 2012 in our hosting environment at our North American and European data centers has been successful. All services have been stable and I’m seeing a decent rate of new customers that are early adopters.
I have performed several free migrations for our existing Team Foundation Server 2010 customers to the new environment. Everything has been working well, but a handful of users have been reporting a problem.
While the Team Project Collection and associated Team Projects and data have moved over, using the Configure Features wizard results in an error: “TF51515: The constant ID for InsertConstantSet is missing.”
Scouring the error code produced no useful information and I enlisted the help of the Microsoft Visual Studio Team Foundation Server 2012 team. It had been several weeks since I had first contacted them but I’m happy to have found a workaround.
The information that I had gathered was: In some cases, if a Team Project contains a custom Team Project Group, the Configure Features wizard (feature enablement) that upgrades a previous Process Template to an updated version shipped with Team Foundation Server 2012 that allows the use of new features, it will fail and throw the TF51515 error.
Having performed a serious evaluation, I have discovered that there are certain requirements that must be met in advance:
- You must be a member of the Project Collection Administrators group.
- You must have the updated tools that are compatible with Team Foundation Server 2012 that are available after you install Visual Studio 2012 or Team Explorer for Visual Studio 2012.
- You should make sure that you can run Command Prompt with elevated privileges.
If the requirements are met, the following steps need to be performed:
- Make sure that no team members are actively making changes.
- Create a backup (If you are a TFS 2012 hosting customer, please contact our technical support team and we can create an in-place backup on your behalf).
- Obtain the unmodified Work Item Templates. Download: TFS2012TypeDefinitions.zip.
- Extract the contents of the TFS2012TypeDefinitions.zip file and note the location.
- For good measure, delete the cache directory at: C:\Users\WindowsUser\AppData\Local\Microsoft\Team Foundation.
- Before going any further, just note that you’ll have to repeat the steps below for each Team Project that is failing to upgrade. Just work with the first Team Project that you’re having problems with.
- Access the witadmin command-line tool:
- Visual Studio 2012: Open Developer Command Prompt for VS2012
- Team Explorer (x86): Open a Command Prompt window with elevated privileges and change directories to: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE>
- Team Explorer (x64): Open a Command Prompt window with elevated privileges and change directories to: C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE>
- Execute the following command to get a full list of Work Item Templates for your Team Project: witadmin listwitd /collection:https://TfsServer.discountasp.net:443/tfs/YourTeamProjectCollection /p:”YourTeamProject”
I would highly recommend saving the list to a separate text document.
- Even though a backup is available, as an extra precaution, create a backup of each existing Work Item Template. To download the Work Item Template, execute the following command for each Work Item Template: witadmin exportwitd /collection:https://TfsServer.discountasp.net:443/tfs/YourTeamProjectCollection /p:”YourTeamProject” /n:”WorkItemTemplate” /f:”C:\path\WorkItemTemplate.xml.bak”
- Execute the following commands:
- Task Work Item Template: witadmin importwitd /collection:https://TfsServer.discountasp.net/tfs/YourTeamProjectCollection /p:”YourTeamProject” /f:”ExtractedZipFilePath\ProcessTemplate\task.xml”
- Code Review Request: witadmin importwitd /collection:https://TfsServer.discountasp.net/tfs/YourTeamProjectCollection /p:”YourTeamProject” /f:”ExtractedZipFilePath\ProcessTemplate\CodeReviewRequest.xml”
- Code Review Response: witadmin importwitd /collection:https://TfsServer.discountasp.net/tfs/YourTeamProjectCollection /p:”YourTeamProject” /f:”ExtractedZipFilePath\ProcessTemplate\CodeReviewResponse.xml”
- Feedback Request: witadmin importwitd /collection:https://TfsServer.discountasp.net/tfs/YourTeamProjectCollection /p:”YourTeamProject” /f:”ExtractedZipFilePath\ProcessTemplate\FeedbackRequest.xml”
- Feedback Response: witadmin importwitd /collection:https://TfsServer.discountasp.net/tfs/YourTeamProjectCollection /p:”YourTeamProject” /f:”ExtractedZipFilePath\ProcessTemplate\FeedbackResponse.xml”
- Use Internet Explorer to access the Team Project Collection Overview page at: https://TfsServer.discountasp.net:443/tfs/YourTeamProjectCollection/_admin, select the Team Project and then click Configure Features.
- Go through the steps in the wizard and your older Process Template should update.
I have been informed that the problem is a bug and Microsoft will issue a formal fix in the first quarter of 2013.
Thanks to Bogdan Spaiuc and Aaron Hallberg over at Microsoft for giving us a hand with this issue.