Tuesday marked the beginning of my second year with Teamprise and today I'm very happy to report that we have just released Teamprise 2.0. To celebrate I thought I'd give you a quick run through of some of my favorite features.
Work Item Editing
A major portion of the work in the release has been on the work item editing functionality. In version 1 we had most of the source control elements available cross-platform, but work item support was pretty basic (just allowing you to link check-ins to work items and view work item information). Version 2.0 brings you full work item editing exactly as you would have found it inside Visual Studio. If you've customized your work items, all the customization should also appear. To demonstrate the work item editing client is a bit hard - you find yourself saying "it works just like it does in Visual Studio" a lot. As you can see, on Windows it looks more or less the same - the joy comes when you look at it from a *nix system or a on Mac.
There are some nice "hidden" features in the work item editor that are not immediately obvious. If you right click on the work item form then you get the following options:-
Add related work item is pretty obvious, it creates a new work item copying over various bits of data from the original and automatically creating a work item link between the two. Very handy for creating tasks based on a Scenario etc. Create Copy of Work Item... is very handy, this allows you to create a copy of that work item in any other Team Project on that Team Foundation Server. The process guidance link takes you directly to the process guidance help pages on the project portal. Perhaps one open that needs some explanation is "Copy Service View URL to Clipboard". The "Service URL" in this case a URL on the Team Foundation Server that gives you a browser based read-only view of the work item. It's the best URL to email around when you want to show somebody else the work item when they might not have a work item client to look it up.
Work Item Query View
All your work item queries can be called and the results displayed in the work item query view. The columns are sortable as you would expect and double clicking on a work item will take you to it. Note that here there is a small difference from the behavior in Visual Studio where the query view actually renders a copy of the work item in a pane below as you select an individual work item. While the Visual Studio approach allows you to do multiple updates easier, we found that in the majority of cases it slowed our users down. In general they didn't have enough screen real estate to be able to display enough of the query view and the work item editor pane to make either useful and tended to just double click on the work item to open it in a full pane anyway. Also, by rendering the work item as it was selected you ended up slowing down the user who wanted to double click on it. Hopefully this small difference will not be noticed by most people - and many of our customers have commented that our client "feels faster" - but we will have to see if that design decision stands the test of time.
We have introduced a new Team Explorer view in 2.0. Again, you find yourself saying "it looks like Microsoft's" a lot. The major difference in 2.0 is that our Team Explorer is more of a read-only affair, for example you can not upload documents to sharepoint through this view - you have to go to the sharepoint web interface to do that. However it works a treat.
There are a few "hidden" treats in Team Explorer. Probably the most useful is the Work Item Search facility
Work Item Search
Rather than creating a work item query for every search you want to do against the work item repository, we have given you a search dialog which makes it easier to do the kind of text based searching that is common. For example, have you got a customer on the phone reporting a "Null Pointer Exception" and what to see if that has come up before - no problem, just go into the search dialog and type your search term and it will automatically search the title, description and history for you.
It's very easy to customize the dialog to include any fields from your customized work item definitions. There are also a couple of hidden gems in this dialog. At the bottom you can view the WIQL (pronounced "wickle" and stands for Work Item Query Language) generated by your search terms. If you want you can press the "Save As..." button and save this as a ".wiq" (pronounced "wick") file. These files are readable inside Visual Studio as well and are a great way of emailing a query between folks on the team - no matter which Team Foundation Server client they are using. If somebody has sent you a "wiq" file, then in Eclipse you can go to File, Open and select it and it will run the query for you, displaying the results.
Team Portal and Reports Integration.
From the Team Explorer, you also now get a read-only view on your sharepoint portal document libraries and your reports. If you double click on a report it will open it up for you. Based on customer feedback from the preview program we have made this respect your Eclipse preferences as to which browser you would like to use and if you would like this internal to Eclipse or in an external browser. The only notable exception is when you double click on a file inside the "Documents" node - this will nearly always fire up an external browser for you to download the file into the appropriate system editor.
I say "nearly always" because there is one notable exception. We noticed that some customers are actually using the sharepoint portal to store ".wiq" files. This is because in TFS V1 there is no hierarchy to the queries under the "Work Items" node - you can put them in "Team Queries" or "My Queries" but not in a subfolder under either one of those. Therefore, some organizations are putting .wiq files into their Sharepoint document library in whatever folder hierarchy they want. In Teamprise, if you double click on a ".wiq" file in the Documents section, it will actually attempt to download that file to a temporary file locally and then run the associated query, displaying the results. Again, this is another example of where feedback from our preview program has led to us adding a small feature that some people will hopefully find useful.
Teamprise Explorer 2.0
We have totally re-worked the standalone Team Explorer for version 2.0 to make room for the work item editing features and the Team Explorer view. While doing this we also made a few small changes based on customer feedback. For a start, we have made the initial connection easier - previously when you connected we would have asked you to create / pick a workspace. This was very confusing for new users who had no idea what a workspace is and even more annoying for users simply using Teamprise Explorer as a standalone Work Item Tracking client. In Version 2.0 a default workspace is created for you if none exist already and you are then taken into it. You can easily change your current workspace by using the drop down in the toolbar at the top of the screen. Changing the workspace changes it for all windows inside Teamprise Explorer - i.e. both the Source Control Explorer and the Pending Changes View. Additionally, there are some new preferences for Team Explorer (Tools, Preferences..., Explorer) so that you can set it to automatically log-in on startup and also suppress it from showing you the Source Control Explorer on start-up (again, handy for those users not wanting to do any source control inside Teamprise Explorer).
Source Control Explorer
The Source Control Explorer windows was re-worked to bring it more inline with Microsoft's. (Things like the prompts around un-mapped, not downloaded, cloaked items etc). It was also made available inside the Eclipse plug-in. The easiest way to get to it inside Eclipse is from the Team Explorer View (Windows, Show View, Other, Teamprise, Team Explorer). I tend to keep a Team Explorer window open in my normal editing perspective to allow me ready access to my work items etc while I am editing code. You can double click on the Source Control node and it will open up a Source Control Explorer in your editor area. The other way of getting to all this is to open up the TFS Explorer perspective (Windows, Open Perspective..., Teamprise, TFS Explorer). That's a bit like running the stand-alone Teamprise Explorer without leaving Eclipse.
The Source Control Explorer also allows access to some of the version control functionality that was missing from V1.0, that is Labels, Branch and Merge.
Yup, you can now Apply labels, find labels etc. While most folks can understand why Branch and Merge where in V2.0 the label feature was always a puzzle. The real reason why it took us until V2.0 is quite technical, but basically the labeling functionality gave us our only incompatibilities between the Java SOAP stack on the .NET web service provider used by TFS. To get around this problem, we ended up completely re-writing our SOAP stack (which also gave us very important performance and memory consumption benefits). Anyway, you can do it now and it works a treat.
Branch and Merge
We now hook into the powerful TFS branch and merge capabilities. This is done from within the Source Control Explorer view rather than inside your Eclipse projects "Team" menu because it typically involves operating at higher level than a single Eclipse project and is more of a repository wide view. The merge wizard has all the functionality of the Visual Studio one, including the ability to cherry pick changeset ranges on which to perform the merge.
Pending Changes View improvements
One of the issues we have found in the Eclipse world is that developers tend to be coming from CVS / Subversion rather than the VSS world that is typical of new users inside Visual Studio. Because of this, be default we show them the pending changes view when they first start using Teamprise in an effort to make this view more discoverable. In our experience, the typical developer workflow is very different when using TFS than when using CVS or Subversion and we feel that using the Pending Changes view to keep track of your current checked out files and to check them in again is the most productive way of working.
The pending change view is now dramatically faster when working with large sets of pending changes (such as those generated when first sharing an existing project or when you do a large branch operation). There are a couple of small tweaks to the UI here that come in real handy. For example if you select a bunch of files and press the check button then the check is applies or removed to all the files in the selection - simple but just ones of those little things you have to code (and make sure it is still fast when with say 4000 selected items)
The pending change window is the best place to access the Shelve and Unshelve functionality of Team Foundation Server. Also, a nice feature that we have (and is not in Visual Studio) is that from the work item tab, as well as picking you chosen query to find an associated work item you can also use the work item search dialog or simply type in the work item id if you know it.
The command line has also significantly improved in V2.0. Not only do you have the usual commands available from "tf" - but you also have a new command "wit" which allows you to perform common work item functions even when the only access you have to a machine is a terminal prompt or you are wanting to script actions.
There is loads more stuff in Teamprise 2.0, and I'm only really focusing on some of the noticeable features - there are loads of really small tweaks (from the new Calendar control, changes to History View, Find Changesets widgets, improvements to the import and share wizards etc etc) and lots of performances improvements.
If you have time, then head on over to the Teamprise web site and download a copy today. You get a fully functional 30-day evaluation and we'd love to hear your feedback. Thanks again to everyone who took part in the Preview Program and gave such valuable feedback - even just the smallest comments from people can make the world of difference in improving the experience for everyone.