One of the great features in TFS 2010 is the ability to track changesets across branches. A prime user scenario for this feature is determining whether a fix has made it to a particular branch. Here’s an example of how to do that.
How to track a changeset number:
How to track a work item:
If you have a work item that has a changeset link, it’s even simpler. Bring up the work item form, right click on the form, and choose Track Work Item.
Enjoy!
Technorati Tags: branch,tfs,tfs 2010
Dan Moseley, dev lead for msbuild, wrote a debugger for msbuild while on leave(!) back during the 2010 cycle. While it ultimately couldn’t be fully completed and tested to be an official feature, it is in the product with a switch to enable it (it’s off by default). This was a conscious decision made by the VS team, and I think it was a great compromise. It wasn’t something feasible as a power tool, and it’s too useful to have to wait for the next release.
Dan has written a series of blog posts on how to use it.
Grant has posted a set of reports that help you understand what’s going on in the TFS warehouse and cube in Team Foundation Server 2010 so that you can deal with issues such as field collisions, which can be very tedious to handle since out of the box we don’t provide easy ways to figure it out. His post includes an attached zip file that you can download and deploy to your TFS 2010 installation.
Administrative Report Pack for Team Foundation Server 2010 One of the key components of TFS is the Data Warehouse, which is made up of a relational database and an Analysis Services cube. In general, people don’t have a problem with the performance or operation of our Data Warehouse. However there were two classes of problems that you’re likely to run into as your servers grow larger: Processing Time – As the number of reportable fields increases, the number of dimensions that Analysis Services has to process also increases. This increases the time it takes to process the cube and therefore the latency of the data is higher. Schema Conflicts – In the simple case, when there are two fields in different collections (e.g. Priority) with the same name but a different type (e.g. String vs. Integer) this results in a schema conflict. That project collection is then blocked from processing warehouse updates and the data in the warehouse & cube becomes stale. These reports are useful to TFS administrators, operations/support teams, project administrators & end-users. The reports in this pack display the following kinds of information: Recent processing times Current status (whether the cube is processing now and, if not, when it is scheduled to process next) Schema conflicts Most recent time that each adapter successfully ran more...
Administrative Report Pack for Team Foundation Server 2010
One of the key components of TFS is the Data Warehouse, which is made up of a relational database and an Analysis Services cube. In general, people don’t have a problem with the performance or operation of our Data Warehouse. However there were two classes of problems that you’re likely to run into as your servers grow larger:
These reports are useful to TFS administrators, operations/support teams, project administrators & end-users. The reports in this pack display the following kinds of information:
more...
Allen Clark has announced the publication of the first release of the TFS 2010 SDK. This represents a significant improvement in the documentation for the TFS API, and he will be releasing updates to it on a recurring basis. The first release is small (relative to the size of the TFS API), but it will grow. Be sure to leave feedback for Allen on what you find most valuable.
Sunder Raman, a program manager for TFS, has written a series of posts on the changes to the warehouse and the cube for 2010.
Reporting
Cube
John Socha-Leialoha, a developer on TFS, wrote a series on upgrading your reports.
If you are interested in writing your own warehouse adapter, you’ll find the sample adapter in the SDK to be very helpful.
If you have any questions about these topics, please contact Sunder and John.
Taylor Lafrinere, a developer on Team Foundation Server who wrote a significant part of the new core server infrastructure APIs, has written a series of posts explaining some of the different parts. If you have other parts of the API that you are interested in, be sure to leave a comment on one of his posts.
Here are a few of his posts to get you started.
Years ago, I posted an msbuild task to run tests without test lists for VSTS 2005. That functionality made it into VSTS 2008. Then Pierre Greborio added support for test categories. That test category capability is now available in VS 2010. Using test categories is now the preferred way of running groups of tests, and you no longer need to deal with tests lists (.vsmdi files), which are tedious to maintain and very difficult to merge.
Here’s the documentation on MSDN to show you how to make use of test categories in the 2010 release.
Defining Test Categories to Group Your Tests If you have created automated tests using Microsoft Visual Studio 2010, you can manage these tests by categorizing them with test categories. When you run these automated tests using Visual Studio, Team Foundation Build, or mstest.exe, you can use these test categories to easily select which tests you run. You add test categories as attributes to your test methods. Test categories provide more flexibility than the test lists functionality from earlier versions of Microsoft Visual Studio. You can use logical operators with test categories to run tests from multiple categories together or to limit the tests that you run to tests that belong to multiple categories. Also test categories are easy to add as you create your test methods and you do not have to maintain test lists after you have created your test methods. By using test categories, you do not have to check in and check out the <solution name>.vsmdi file that maintains the test lists. more…
Defining Test Categories to Group Your Tests
If you have created automated tests using Microsoft Visual Studio 2010, you can manage these tests by categorizing them with test categories. When you run these automated tests using Visual Studio, Team Foundation Build, or mstest.exe, you can use these test categories to easily select which tests you run. You add test categories as attributes to your test methods.
Test categories provide more flexibility than the test lists functionality from earlier versions of Microsoft Visual Studio. You can use logical operators with test categories to run tests from multiple categories together or to limit the tests that you run to tests that belong to multiple categories. Also test categories are easy to add as you create your test methods and you do not have to maintain test lists after you have created your test methods. By using test categories, you do not have to check in and check out the <solution name>.vsmdi file that maintains the test lists.
more…
UPDATE [6/12/2010] The patch is now available on MSDN Code Gallery here. You must install it after you complete the MSI setup portion (the files need to be on the machine and registered in Windows first) and before the upgrade wizard (it’s the upgrade process, not setup that needs to be patched).
--
We discovered a couple of bugs in version control when upgrading to TFS 2010. They affect labels and future merges, and whether or not you are affected depends on what renames you have done on files in labels and branches. We are currently testing a fix that we expect to release shortly. The fix, when released, must be installed before upgrading to TFS 2010.
The issues are described in a KB article, which Matt published today. Here are the symptoms that manifest after an upgrade without the fix.
If you’ve already upgraded to 2010 from a previous release, you’ll need to decide whether there are labels that are critical for you. If there are, fixing the label problem after an upgrade without the fix will likely require access to the original version control database prior to the upgrade. You’ll need to contact customer support to get help with fixing the affected labels (customer support will not charge for incidents related to this upgrade bug).
The merge issue is simpler to recover from, and it’s largely an annoyance. You can read the KB article to understand what must happen. The fix for the issue of merge targets not showing up in the merge wizard is to do a non-recursive baseless merge of the source to the target via the command line (e.g., tf merge /baseless dirA dirB). Then the target will show. The children will end up being baselessly merged, which will be annoying and tedious, but you will be able to recover and move forward.
The underlying cause of both problems is the handling of renames during the upgrade, as described by the KB article. In TFS 2010, we changed the schema of version control to change something called an item ID to effectively become a path ID. In both 2005 and 2008, every item added or branched in version control got a unique item ID forever. So no matter what name or path changed to, the item ID never changed. This allowed for completely tracking renames forever, no matter how complex. However, it came at the price of introducing the confusing concept of a deletion ID, since a path could have more than one item at a time if there were at least one deleted item, and the concept of a namespace conflict, which occurs when two different non-deleted items (each has a different item ID in 2005/2008) tried to occupy the same path at the same time. If you’ve ever had to resolve namespace conflicts in 2005 or 2008, particularly as a result of a merge, you know the pain I’m talking about. It also resulted in significant complication of the SQL, resulting in lower performance and scalability than otherwise would have been possible.
So, we changed the schema such that a path uniquely identifies an item, turning the item ID into a path ID. Matt talks about some of the implications of that in his post, Changing to Slot Mode in TFS 2010 Version Control. Having used the server with the schema change for more than a year now internally, the change produced a faster, more scalable version control server, and the elimination of things like namespace conflicts has made merging less painful.
Phil Hodgson, a developers on TFS, published a new whitepaper that explains how to customize and get the most out of your dashboards in TFS 2010. Check it out!
Customizing Team Foundation Server Project Portals Phil Hodgson, Microsoft Corporation May 2010 This article describes important concepts about project portals for Microsoft® Visual Studio® Team Foundation Server 2010 and provides guidance for process authors who customize process templates used to create project portals for team projects. Team Foundation Server supports project portals that are matched to the out-of-the-box process templates. Process templates are designed to be customized to a team’s or organization’s specific needs. Similarly Team Foundation Server project portals can be customized to provision custom content or features to the portal site. Examples of customizations that may be considered are: Changing the dashboards provisioned including adding new dashboards Adding new Excel workbooks Changing the Web Parts (or Web Part properties) on standard dashboards Changing the visual appearance of the portal site Activating custom SharePoint Features
Customizing Team Foundation Server Project Portals
Phil Hodgson, Microsoft Corporation
May 2010
This article describes important concepts about project portals for Microsoft® Visual Studio® Team Foundation Server 2010 and provides guidance for process authors who customize process templates used to create project portals for team projects.
Team Foundation Server supports project portals that are matched to the out-of-the-box process templates. Process templates are designed to be customized to a team’s or organization’s specific needs. Similarly Team Foundation Server project portals can be customized to provision custom content or features to the portal site. Examples of customizations that may be considered are:
Changing the dashboards provisioned including adding new dashboards
Adding new Excel workbooks
Changing the Web Parts (or Web Part properties) on standard dashboards
Changing the visual appearance of the portal site
Activating custom SharePoint Features
Here is the first full release of Power Tools for TFS 2010! Previously we had released versions for beta 2 and RC. With this release the focus was to have parity with the 2008 power tools and fix bugs. We’ll be adding new power tools in the next release (no date yet).
TFS Build Extension Power Tool is an exciting new addition to our power tools line up. The Build Extensions provide the ability to execute Ant or Maven 2 builds from Team Foundation Server and publish the results of the build along with any associated JUnit test results back to Team Foundation Server. This release is compatible with Team Foundation Server 2005, Team Foundation Server 2008 and Team Foundation Server 2010.
Back in 2006 I wrote a post about a performance dialog that lets you see all of the calls made by the client. It works with Visual Studio (devenv.exe), TFS command line (tf.exe), TCM command line (tcm.exe), Test Manager (mtm.exe), etc.
It’s still in the product in 2010, and it’s as useful as ever if you are writing code that talks to TFS, and you want to optimize for performance. It’s easy for extra calls to creep in, and this is a really easy way to keep track of it. Also, if you find that something seems slow in VS when working with TFS, it provides a way for you to see whether it is calling the server and long it took.
Turning it on is easy. All you need to do is to add the following lines to the bottom of your application’s .exe.config file, just inside the closing </configuration> element. Note that the version number below is for an app using the 2010 TFS client object model. 2008 requires 9.0.0.0, and 2005 requires 8.0.0.0.
<system.diagnostics> <switches> <add name="TeamFoundationSoapProxy" value="4" /> </switches> <trace autoflush="true" indentsize="3"> <listeners> <add name="perfListener" type="Microsoft.TeamFoundation.Client.PerfTraceListener,Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </listeners> </trace> </system.diagnostics>
When I edited my devenv.exe.config file to add this, I had to run Notepad (or VS) as an Administrator in order to change the file (I’m using Windows 2008 Server R2, and I expect Windows 7 requires the same).
Here’s an updated screen shot showing calls made by Visual Studio 2010 in connecting to a team project on a 2010 server.
If you hover over one of the lines in the bottom panel, you’ll get the stack trace for the call.
If you select rows from the grid, you can paste them into another document, such as a spreadsheet. Here I selected all of the rows in the top panel and pasted the results.
Monday was the official launch for the TFS and VS 2010 releases! I highly recommend upgrading from TFS 2005 or TFS 2008 to TFS 2010. The number of new features in TFS 2010 is very long, and there are lots of posts on them. One of the most exciting is that you can install TFS on a client OS (e.g., Windows 7) using SQL Express 2008. Brian Harry runs TFS and VS 2010 on his Win7 netbook that has 2GB of RAM.
For those of you using VS 2005 and VS 2008 to connect to TFS 2010 servers, you’ll need to install the appropriate patch for compatibility. We had to make some changes to the behavior of the server for the new features that affects the older clients, and we didn’t want to leave the old clients in a bad state. These are the final versions of the patches.
2008: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=cf13ea45-d17b-4edc-8e6c-6c5b208ec54d 2005: http://blogs.msdn.com/team_foundation/pages/the-visual-studio-2005-forward-compatibility-update-is-available.aspx
2008: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=cf13ea45-d17b-4edc-8e6c-6c5b208ec54d
2005: http://blogs.msdn.com/team_foundation/pages/the-visual-studio-2005-forward-compatibility-update-is-available.aspx
I’ve posted before about TFS licensing, and the official whitepaper was finally released last week. The document covers Team Foundation Server as well as all of Visual Studio.
Visual Studio 2010 Licensing Whitepaper
If you are using Outlook 2010 Beta, you probably need this fix because all of your emails are huge. It was killing me (and a bunch of other folks internally). It is fixed in the recent RC, but most people don’t have access (it’s not a public RC). The Office team has just posted a fix for this issue for folks using the Beta.
Fix for Message Size Issue in Outlook 2010 Beta
Recently, we posted information on the Outlook blog about a bug in the Microsoft Office 2010 Beta that increases the message size of some e-mails messages sent from the Microsoft Outlook 2010 Beta. The Office team has been hard at work building a fix for this issue, which is available immediately.
Download Outlook 2010 Beta fix for 32-bit Office 2010 Download Outlook 2010 Beta fix for 64-bit Office 2010
Download Outlook 2010 Beta fix for 32-bit Office 2010
Download Outlook 2010 Beta fix for 64-bit Office 2010
This fix prevents future messages from consuming unnecessary space, but doesn’t resize existing messages. If you reply or forward an existing message that is affected by this bug, it remains enlarged. To help reduce the impact of large messages on your Inbox and mailbox storage quota, you can also run Conversation Cleanup (new feature in Outlook 2010) on large folders. On the Home tab, in the Delete group, click Clean Up. Also, consider starting new message conversations or threads when possible.
I thought I’d pass it along.
While I don’t have a comprehensive list, I do want to point out these four changes in particular because these classes are fundamental to the API. If you have written code with the Beta 2 client API, here are the changes you will need to be aware of to use the RC client API.
[UPDATE 2/12/10] Jim Lamb has posted updated TFS SDK docs: http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=TfsSdk&DownloadId=9107.
Several folks have run into a problem after uninstalling VS 2010 Beta 2 and installing VS 2010 RC. When VS 2010 runs, you get an error message like the following.
Team Foundation Error Could not load type ‘Microsoft.TeamFoundation.Client.TeamFoundationServerBase’ from assembly ‘Microsoft.TeamFoundationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’.
Team Foundation Error
Could not load type
‘Microsoft.TeamFoundation.Client.TeamFoundationServerBase’ from assembly ‘Microsoft.TeamFoundationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’.
The problem is that the TFS Power Tools for 2010 Beta 2 are installed. Between Beta 2 and RC we made changes to the 2010 client API, so the Beta 2 power tools release will not work. We do not currently have a release of the power tools for the RC (we are working on a power tools release for 2010 RTM).
The fix here is to uinstall the TFS Power Tools for 2010 Beta 2. If after uninstalling it you still get the message, some folks have reported that in order to get rid of it they had to install the power tools again and then uninstall it.
Patrick Carnahan is a developer on TFS Build, and he’s written a series of detailed posts on how to write custom activities in Windows Workflow 4.0 (WF), which is now used to orchestrate the build process for TFS Build in 2010. It’s a deep dive on WF activities. Jim Lamb’s post on how to integrate custom workflow activities into TFS Build is a great companion to this series.
Introduction to Windows Workflow 4.0 In order to help everyone get up to speed with build customization, I wanted to take a few posts to share our collective knowledge on the Workflow framework in .NET 4.0. In this first post I plan to tackle the different base classes that may be used when designing your own custom activities, along with typical usage scenarios. Other topics, such as extensions, tracking, and more advanced customization will be covered later. I will also be keeping an eye on comments to help point me in the right direction. So without further adieu, on with the code! Windows Workflow 4.0 - CopyFile It has recently come to my attention that there is unrest regarding our inclusion of a CopyDirectory activity without a CopyFile activity. Therefore, I decided to take this opportunity to introduce everyone to the sub-class AsyncCodeActivity and how you can utilize it with a real world example – a cancelable file copy operation. As you may recall from my previous workflow posts, CodeActivity does provide a mechanism for cancelation while the AsyncCodeActivity does facilitate this need. If you are not familiar with asynchronous programming in .NET then you should probably read the following article to brush up before continuing. Windows Workflow 4.0 – CopyDirectory (Part 1 of 3) In my last couple of posts I have lead you through some basic introduction to workflow as well as a real world example of how to implement a cancelable CopyFile activity. The next thing I would like to do is dive into a much more involved example utilizing the previous activity. The purpose of this post is to introduce the class NativeActivity, since we will need to implement a custom activity for driving the consumers. We will also be working toward using our producer-consumer activity to eventually develop a parallelizable CopyDirectory activity, which I plan to cover in a subsequent posts. Windows Workflow 4.0 – CopyDirectory (Part 2 of 3) In my previous post I introduced you to NativeActivity and walked through the design and implementation of a class named ParallelItemScheduler<T>. In part 2 of this series we will be utilizing the aforementioned activity to build a new composed activity named ProducerConsumer<T>. Once we have completed this task we will have a framework for building our final activity, CopyDirectory. Windows Workflow 4.0 – CopyDirectory (Part 3 of 3) So far we have written ParallelItemScheduler<T>, which is a generic activity that goes dormant and schedules actions based on input via bookmark resumption. We then used this activity to design ProducerConsumer<T>, which takes this idea a little further and provides a generic mechanism for running a producer thread that can pump data into a consumer thread. In the last part of this series we finally have all required building blocks to design our highly efficient and parallel copy directory activity! Windows Workflow 4.0 – Workflow Instance Extensions In the previous posts we covered one way you could implement a producer-consumer pattern in workflow. This approach used composition and attempted to hide the complexities of the underlying operations inside of the respective activities through composition. However, one scenario in particular this model does not allow you to implement involves modeling of existing .NET events in a workflow. For instance, if we want to implement a FileSystemWatcher activity we need to provide some way for consumers to hook into the events exposed by the .NET object. The only way to accomplish our goal is to hook up to the .NET events and schedule workflow actions from our event handler – but how would this be implemented? Let’s take a look at some more pieces of the workflow framework that will allow us to accomplish this goal.
In order to help everyone get up to speed with build customization, I wanted to take a few posts to share our collective knowledge on the Workflow framework in .NET 4.0. In this first post I plan to tackle the different base classes that may be used when designing your own custom activities, along with typical usage scenarios. Other topics, such as extensions, tracking, and more advanced customization will be covered later. I will also be keeping an eye on comments to help point me in the right direction. So without further adieu, on with the code!
It has recently come to my attention that there is unrest regarding our inclusion of a CopyDirectory activity without a CopyFile activity. Therefore, I decided to take this opportunity to introduce everyone to the sub-class AsyncCodeActivity and how you can utilize it with a real world example – a cancelable file copy operation. As you may recall from my previous workflow posts, CodeActivity does provide a mechanism for cancelation while the AsyncCodeActivity does facilitate this need. If you are not familiar with asynchronous programming in .NET then you should probably read the following article to brush up before continuing.
In my last couple of posts I have lead you through some basic introduction to workflow as well as a real world example of how to implement a cancelable CopyFile activity. The next thing I would like to do is dive into a much more involved example utilizing the previous activity. The purpose of this post is to introduce the class NativeActivity, since we will need to implement a custom activity for driving the consumers. We will also be working toward using our producer-consumer activity to eventually develop a parallelizable CopyDirectory activity, which I plan to cover in a subsequent posts.
In my previous post I introduced you to NativeActivity and walked through the design and implementation of a class named ParallelItemScheduler<T>. In part 2 of this series we will be utilizing the aforementioned activity to build a new composed activity named ProducerConsumer<T>. Once we have completed this task we will have a framework for building our final activity, CopyDirectory.
So far we have written ParallelItemScheduler<T>, which is a generic activity that goes dormant and schedules actions based on input via bookmark resumption. We then used this activity to design ProducerConsumer<T>, which takes this idea a little further and provides a generic mechanism for running a producer thread that can pump data into a consumer thread. In the last part of this series we finally have all required building blocks to design our highly efficient and parallel copy directory activity!
In the previous posts we covered one way you could implement a producer-consumer pattern in workflow. This approach used composition and attempted to hide the complexities of the underlying operations inside of the respective activities through composition. However, one scenario in particular this model does not allow you to implement involves modeling of existing .NET events in a workflow. For instance, if we want to implement a FileSystemWatcher activity we need to provide some way for consumers to hook into the events exposed by the .NET object. The only way to accomplish our goal is to hook up to the .NET events and schedule workflow actions from our event handler – but how would this be implemented? Let’s take a look at some more pieces of the workflow framework that will allow us to accomplish this goal.
Be sure to post comments on Patrick’s blog on what else you’d like him to cover.
On my shiny new Windows Server 2008 R2 installation, my monitors won’t go into low power mode even though they should turn off after 10 minutes of inactivity based on my display settings in Windows. Chris Rathjen suggested to me that it could be the wireless mouse (Microsoft Natural Wireless Laser Mouse 6000 in my case – what a mouthful) keeping it awake. I unplugged it from the USB port, and sure enough, my monitors went into low power mode.
So, I thought I’d try installing the current IntelliPoint drivers for Windows 7 64-bit to see if that fixed the problem. It did indeed do the trick. You can download it from http://www.microsoft.com/hardware/downloads/default.mspx if you are having a similar issue with a Microsoft wireless mouse.
I took a couple of weeks off over the holidays (a ton of people did – there weren’t many folks around last week), and I finally took the time to migrate our two desktops at home from XP to Win7. I’ve been running Win7 for many months on my work laptop, my personal laptop, and most recently a Dell Mini 9 (okay, I consider four months ago recently – heck, my blogging frequency is terrible now).
My regular laptop at home is an old Thinkpad T40 that’s about five years old at this point. It has 1.5 GB of RAM (not that you need that much for 7 – 1 GB works fine for surfing, email, and that sort of thing), but it’s clearly a weak machine by current standards. Win7 runs just fine on it.
Similarly, my old desktop was over five years old. Since it has 1 GB of RAM, it runs Win7 very nicely, and that one’s now my wife’s machine. Meanwhile, I finally bought myself a new desktop (Core i7 HP Pavillion Elite) back in November, and vacation afforded me the time to get all my stuff migrated over to it (after wiping the machine, of course – too much crud comes on new machines).
To finish moving to Win7, I needed to upgrade my development desktop at work from Windows Server 2008 to Windows Server 2008 R2 (aka Win7 server). I hadn't found the time to do it, but the video driver crashed again on Tuesday. I was tired of that happening periodically. So I made use of the Windows Deployment Service we have here in the local office, and kicked off a Win2k8 R2 installation as I left.
I spend so much of my day in Outlook these days that the first app I installed was Office (2010 Beta, of course, which works very well!). I’ve been so busy that I haven’t even installed Visual Studio yet. I had been running VS 2010 Beta 2, and that’s what I’m also running on my laptop. I’m hoping to pick up a new signed build tomorrow, and put the latest and greatest on my dev box.
After redoing my dev box, XP and Vista (in the form of Windows Server 2008) are out of my life. It’s hard to believe XP has dominated for basically a decade. All of my installations of Win7 have been great, and I’ve only hit the one snag with a Bluetooth mouse I described in my post on the Dell Mini 9 (a reader commented not having the issue with the same combination, so maybe I did something dumb). I really love how it finds all of the drivers for video cards, network adapters, smart card readers, and printers. Win7 is awesome!
Happy New Year!
William Bartholomew, former VSTS MVP and author of the book Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build, recently joined Microsoft. He's written a great post on the handful of steps you need to follow if you want to build .NET 4.0 applications with TFS 2008: Building .NET 4.0 Applications Using Team Build 2008. Check it out!
Earlier, I wrote a post explaining where to find TFS Basic. Someone asked a set of questions about TFS Basic, and I thought I’d post the answers here.
What features are in TFS Basic 2010?
Brian’s post describes a bit of the feature differences and also shows the installation process. It’s really much easier to talk about features not in Basic, as Basic is just TFS configured using a set of defaults to make the installation experience very simple. Basic does not configure SharePoint or SQL Reporting Services (RS), and because of the lack of RS there’s no warehouse. That’s it. Otherwise, it’s the same feature set as standard TFS. If you decide at some point later that you want to use those features, you can choose to configure them via the Team Foundation Administration Console (note that to use SQL Reporting Services, you must use full SQL Server and not Express).
You get additional features in TFS Basic of being able to use SQL Server Express 2008 rather than regular SQL Server 2008, though you are free to point Basic at an existing SQL server (default is to install SQL Server Express or reuse it if it is already installed), and you get the feature of being able to install on a client OS (Win7 or Vista).
Is TFS Basic limited to 5 users? How can I add more?
No, TFS Basic is not limited to 5 users. You can have as many users as you like, so long as users 6 through N have TFS CALs, which are either purchased or ones included due to the user having an MSDN subscription. See my post with licensing comments from Doug Seven for more info. If you want to have more than 5 users, you may want to put TFS Basic on a Windows Server OS because the client OSes are limited to about 10 simultaneous connections, after which point connections are either queued (some buffer) or refused.
Is the new Excel reporting feature available (right click on a work item query and choose to create a report in Excel)?
You will not be able to use the Excel reports feature built into the product for TFS Basic since there is no warehouse.
Is web access available in TFS Basic?
TFS Basic does indeed include web access. There’s unfortunately no shortcut to get to web access via the right click menu in Team Explorer, which has been suggested. You can always find web access at http://yourserver:8080/tfs/web.
[UPDATE 2/10/2010] You can now get the official Visual Studio 2010 Licensing whitepaper, which also covers TFS, Lab, and IntelliTrace. That is the best resource for understanding the licensing.
Another big piece of news with the release of VS and TFS 2010 betas yesterday is the changes to TFS licensing for 2010 that make it even more affordable. Here are the comments from Doug Seven, our licensing guru in marketing, on Soma's beta 2 announcement post.
Team Foundation Server 2010 will be included in the MSDN subscription that comes with Visual Studio 2010 Professional, Premium, Ultimate, and Test Elements. This copy of Team Foundation Server in licensed for unlimited development and test use (as is all MSDN software) and licensed for one production deployment. These MSDN subscriptions also include one CAL. Team Foundation Server has three installation choices - Basic, Advanced and Custom. You will be able to install this either on your client machine (very similar to client side SCM such as VSS) or on a server machine just like TFS 2008. Team Foundation Server will also be available in retail for around $500 USD and will include a license term allowing up to five (5) named users without CALs to use Team Foundation Server. To grow to more than five users, simply buy CALs for the new users. This enables small teams of five or fewer to get up and running on Team Foundation Server for as little as $500 USD. Of course having Visual Studio 2010 with MSDN means you can get Team Foundation Server up and running at no additional cost.
Team Foundation Server 2010 will be included in the MSDN subscription that comes with Visual Studio 2010 Professional, Premium, Ultimate, and Test Elements. This copy of Team Foundation Server in licensed for unlimited development and test use (as is all MSDN software) and licensed for one production deployment. These MSDN subscriptions also include one CAL.
Team Foundation Server has three installation choices - Basic, Advanced and Custom. You will be able to install this either on your client machine (very similar to client side SCM such as VSS) or on a server machine just like TFS 2008.
Team Foundation Server will also be available in retail for around $500 USD and will include a license term allowing up to five (5) named users without CALs to use Team Foundation Server. To grow to more than five users, simply buy CALs for the new users. This enables small teams of five or fewer to get up and running on Team Foundation Server for as little as $500 USD.
Of course having Visual Studio 2010 with MSDN means you can get Team Foundation Server up and running at no additional cost.
You can also hear more in an interview with Doug Seven conducted by three MVPS: The Ultimate Announcement Show.
I'm not a licensing expert, so I can't answer detailed questions about licensing. I did want to make sure everyone sees this. It's a really exciting change.
[UPDATE 10/20/09] I wanted to add a clarification from Doug around the CALs and SQL. There is a licensing whitepaper in the works that should be out soon.
Retail TFS does not come with 5-CALs. It has a EULA exception allowing up to 5 users without CALs. The primary difference is that CALs can be used to access multiple TFS instances. A EULA exception cannot. In other words, buying two TFS retail licenses does NOT give me rights for 10-users on one instance of TFS. It gives me rights to two instances with 5-users each. I need to buy more CALs to add users. TFS also still includes a SQL Server license for use with TFS. In other words, you can't use the SQL license included with TFS to do anything other than to support TFS.
Retail TFS does not come with 5-CALs. It has a EULA exception allowing up to 5 users without CALs. The primary difference is that CALs can be used to access multiple TFS instances. A EULA exception cannot. In other words, buying two TFS retail licenses does NOT give me rights for 10-users on one instance of TFS. It gives me rights to two instances with 5-users each. I need to buy more CALs to add users.
TFS also still includes a SQL Server license for use with TFS. In other words, you can't use the SQL license included with TFS to do anything other than to support TFS.
TFS Basic is not a separate download. It’s just a choice in the TFS configuration wizard. So to get TFS Basic, you download the regular Team Foundation Server installation, either 32-bit or 64-bit (yes, TFS now supports 64-bit Windows natively), and then run setup.exe. After the MSI (installation phase that more or less just copies files to your disk) is done, you’ll see the following dialog. Choose Basic, and finish your TFS setup in record time!
With Soma's announcement today, Visual Studio and TFS 2010 Beta 2 are now available for download for MSDN subscribers. The most exciting part of the TFS 2010 Beta 2 release is the debut of TFS Basic. Brian Harry describes TFS Basic in detail in a post called TFS 2010 for SourceSafe Users. Don't think about it as just for SourceSafe customers though. Beta 2 is a "go-live" release, and I recommend checking out Brian Keller's post to Get read to "go live' with Team Foundation Server Beta 2.
TFS Basic will install on Windows 7 and Windows Vista. Prior to Basic, you were required to have a Windows Server OS to install TFS. So if you want TFS on your laptop, you can do it now. Basic will automatically install the pre-requisites of IIS, ASP.NET, and SQL Server Express for you. Just pop in the disk (virtually speaking) and go. It's that easy.
Also, TFS 2010 (not just Basic) will now install on a domain controller. This was a request we heard fairly often from users, and we were able to add support in 2010.
TFS Basic is the same product as regular TFS except that you can use SQL Express, and you don't configure SharePoint or SQL Reporting Services. It has all of the same version control, build, and bug tracking features.
Another great change we made in 2010 is in the configuration and administration of the server. The vast majority of administrative tasks can now be done through the TFS Admin Console GUI. Brian wrote quite a bit about this in the post, TFS 2010 Admin, Operations, & Setup Improvements.
Team System Web Access is now part of the product. On a server with TFS installed, it is available at http://yourserver:8080/tfs.
You can upgrade from either TFS 2005 or TFS 2008 to TFS 2010. The TFS 2005 users do not need to upgrade to TFS 2008 first. Do follow the upgrade guide, though, because TFS 2005 users will need to upgrade from SQL 2005 to SQL 2008 and upgrade to SharePoint 3.0.
A 2010 version of the TFS 2008 Power Tools is not yet available. We are planning to release an update to them, but we aren't yet able to share the timeframe. Stay tuned.
Visit the MSDN forum Microsoft Visual Studio Team Foundation Server 2010 Beta 2 to post questions and get answers from the product team, MVPs, and the community.
Update [10/19/2006] We have released a patch (download) for Team Explorer 2008 to handle some compatibility issues when using it with a 2010 server. You can read about those issues in a blog post covering the full compatibility story for 2005 and 2008 clients with a 2010 server. We plan to release a similar patch for Team Explorer 2005 around the time of TFS 2010 RTM.
For anyone just getting started with TFS 2010, I highly recommend reading Brian's post that covers the key concepts for TFS 2010.
If you are not doing a simple installation, you'll want to follow the TFS Installation Guide. Be sure to follow the instructions on the download page to "unblock" the CHM file.
Finally, be sure to take a look through the TFS 2010 Beta 2 Readme, as there are known issues you'll need to know about (after all, it's a beta for a reason).
If you had Visual Studio 2010 Beta 1 installed, you'll want to read this before installing VS 2010 Beta 2.
Win7 is awesome, so today I put Windows 7 Professional on my Dell Mini 9. This is the third laptop on which I’ve installed Win7, and every time it puts a smile on my face. The installation works well and generally most devices work after installation, minimizing time spent fiddling with drivers. The few devices that don’t work after installation often work after getting the drivers from Windows update.
The only device not working this time was my Microsoft Bluetooth Notebook Mouse 5000. The computer would find it and list it in the Bluetooth devices in Win7, yet it wouldn’t work (i.e., move the mouse pointer). I started searching for solutions online. One suggestion was to run the device driver installer from Broadcom’s Bluetooth Software Download page. I tried that, but it fails with an error.
I ran across a thread on a forum where someone stated they’d installed the driver from Dell’s support page. I was skeptical about this since this download is for XP. Since I couldn’t find a better answer and didn’t have much invested in this installation, I decided to give it a try. I went to the Dell support page, entered my service tag, and downloaded the Broadcom Bluetooth driver 5.5.0.4100, A01.
The downloaded file is R197396.exe, and the installation takes a longer than I would expect to run from start to finish. Along the way it pops up several windows showing progress for different kinds of devices. Once it finished, I pushed the Bluetooth button on the bottom of my mouse to put it into discovery mode, right clicked on the Bluetooth icon in the Win7 notification area, chose to Add a Bluetooth Device, picked the mouse (the full name didn’t show up until I clicked on it), and the mouse started working properly.
The only problem I’ve found is that the My Bluetooth Places choice in the right click menu for the Bluetooth icon’s popup menu crashes. Since I don’t need that, it’s not a problem for me.
The other change that I made was to have the Windows Bluetooth service start automatically. To do that, go to Windows Start and type services.msc. Right click on Bluetooth Service, choose Properties, and change the Startup Type to Automatic.
By the way, installing Windows from bootable USB thumb drives works really well.
If you know of a better solution, I’d be interested to know.