TFS 2008 and Visual Studio 2008 SP1 are RTM

Following the release of SQL Server 2008 last week comes the final SP1 release of the following products:

You can read more about what’s in the TFS SP1 release on Brian’s blog or MSDN.

TFS improvements

A number of improvements have been made to Visual Studio Team System 2008 Team Foundation including:

  • Version Control
    • Simplified the user experience through cleaner “Add to Source Control” dialogs, drag and drop support to the Source Control Explorer and a much easier to use “Workspace” dialog for working folder mappings.
    • Version control now automatically supports non-solution controlled files.
    • Various changes to the Source Control Explorer such as a new checkin date/time display column, local path hyperlink support and en editable source location field.
  • Work Item Tracking
    • Microsoft Office 2007 integration is now done using the standard Office “Ribbon” delivering a cleaner and easier to use integration to the different Microsoft Office 2007 products.
    • Email integration for work items and links for Team system Web Access to make it easier to use email as part of the development lifecycle.
  • Visual SourceSafe migration tool
    • The migration tool has been dramatically improved through many performance and reliability improvements. SP1 provides support for the elimination of namespace conflicts, automatic solution rebinding, improves timestamp coherency and increases the amount of migration logging information available.
  • Additional Features
    • Support for using SQL Server 2008 with Team Foundation Server.
    • Team System Web Access provides “live” links to work items and checkin emails. This improves the customer experience for users who do not use Team Explorer.
    • Scripting support for the creation of Team Projects.
  • Performance and scalability
    • With SP1 a large part of the focus was to improve the performance and scalability of Team Foundation Server through changes such as faster synchronization with Active Directory, improved checkin concurrency, a faster way to create source tree branches, online index rebuilding for less maintenance downtime and better support for very large checkin sets.
    • Improvements in the number of projects a server can support that make not only the scalability of the server better but also the client experience when connecting to a server with a large number of projects on it.

Installation

  • If you previously installed a Visual Studio 2008 Hotfix, you must run the Hotfix Cleanup Utility before installing Visual Studio 2008 SP1. For more information, see Visual Studio 2008 Hotfix Cleanup Utility for Installing Visual Studio 2008 SP1.
  • If you have multiple Visual Studio products installed, you must upgrade all of them to SP1. If you have Visual Studio 2008 and one or more 2008 Express Editions, you cannot upgrade the Express Editions until you have upgraded Visual Studio.
  • Prior to installation, you should carefully review the included readme file to be aware of any known issues with this release.
  • To understand how the SP1 installer works, have a read of Heath Stewart’s blog on the topic:

    Visual Studio 2008 SP1 includes over 250 new features and improvements to existing features, including SQL Server 2008 support. .NET 3.5 SP1 also includes many new features on which VS 2008 SP1 is dependent. Because of this, VS 2008 SP1 chains .NET 3.5 SP1 and other necessary components.

    This means the complete download for VS 2008 SP1 is large - almost twice as large as VS 2005 SP1. The full beta download is about 831 MB which contains the 231 MB full redistributable for .NET 3.5 SP1. However, because of changes we made for VS 2008 SP1 the patch installs in about half of the average time it took for VS 2005 SP1. In addition, we made some additional changes we're sure you'll like.

    Feedback

    To provide feedback on the Service Pack, please visit https://connect.microsoft.com/VisualStudio

    Posted 11 August 08 09:21 by grantholliday | 3 Comments   
    Filed under
    How do I find the Cache Hit Ratio on my TFS AT server?

    Both a TFS Proxy server and a TFS Application Tier include a Version Control cache on disk. This allows each of the servers to service simple Download() requests without having to go to the Data Tier.

    A “Cache Hit Rate” is represents as a percentage how many requests were able to be served from the cache, instead of going to the Data Tier (or in the case of the Proxy – to the Application Tier). A higher percentage is better.

    If you have a TFS Proxy server, you can use TfsServerManager from the Team Foundation Power Tools to find out the Cache Hit Rate.

    What I didn’t know is that you can also call a web service on the Application Tier server to get the same numbers. This is the same web service and instructions detailed on this MSDN page How to: Examine Cache Performance for Team Foundation Server Proxy – but use it on the AT.

    You should get a response with the following attributes:

    CurrentCacheSize

    NoOfRequests

    OverallCacheHits

    NoOfFilesInCache

    OverallCacheMisses

    CacheHitsPercentage="96.6"

    CacheMissPercentage="3.4"

    ServerId=

    ServerUrl=http://tfsserver:8080/

    You could also write a utility that calls this webservice for you instead of logging on to the server directly.

    How do you test code that uses the TFS Object Model?

    I know a number of people who have considered mocking the TFS OM. They've all given it up and put it in the “too hard” basket. The WIT is particularly tricky due to the amount of processing that goes on in the client.

    They end up using a real TFS Server in a VPC (such as the VSTS 2008 Trial VPC) with snapshots/undo disks to rollback to a sane state.

    Posted 22 July 08 03:35 by grantholliday | 3 Comments   
    Filed under ,
    What product key do I use for TFS Proxy?

    TFS Proxy uses the same product key that you use to install Team Foundation Server.

    If you are a volume licensed customer and you are using the volume license media, then the product key will be filled out automatically and the input boxes will be disabled.

    If you are a volume licensed customer and you're upgrading from trial edition, then you will need to download your volume license media from your volume licensing reseller and obtain your volume license product key.

    • Open the media in explorer
    • Open up the 'AT' directory
    • Use notepad to open the setup.sdb file
    • Search for "Product Key" in that file
    • That product key can be used to turn TFS Proxy into a fully licensed copy

    Don't forget to refer to your Team Foundation Server 2008 EULA and the Team System Licensing Whitepaper for how TFS Proxy server is licensed.

    Team Foundation Server Proxy is licensed on a per-device basis. A full Team Foundation Server license is required for installation; however, additional Team Foundation Server CALs are not required. You may not use a license of Team Foundation Server Workgroup Edition to satisfy this requirement.

    How do I do a full text search of TFS Work Items?

    The easiest way to do this is to use the search functionality built into Team System Web Access (TSWA). This uses the SQL Server Fulltext search engine in the back-end. This will find all matches of the string in not just the title of the work item, but the description as well.

    One of the questions I've seen a few times now about this functionality is "Where is it??". This is because the search box looks disabled, so people tend to overlook it.

    Team System Web Access Search box

    The 2008 SP1 version (CTP here) of TSWA includes improved search support. Read more on Hakan and Buck's blogs.

    Now it's even easier to search for work items with the advanced search syntax. Similar to Outlook search syntax, you can reference any work item field by either using the field name, or by using some shortcuts.

    Here's a simple search example that searches for resolved bugs assigned to me which contain the word "northwind" in the Title or Description.:

    northwind a=@me s=resolved t=bug

    Another way to quickly search work items within Visual Studio is to use Corneliu's TFS Quick Search Addin for Visual Studio. It reflects over the .NET controls and searches for the string that you type in. This means that it will only work for fields that are visible in your query. It's very quick at doing that though.

    TFS Quick Search Visual Studio Addin

    TF30321: The name you typed is already used for another team project

    Recently I helped a customer who was having trouble creating a team project.

    • They tried to create a project by name “Project1”
    • It failed saying that it could not connect to Windows SharePoint Services (WSS)
    • They fixed the permissions to sharepoint
    • They can create a new team project by the name “Project2"

    But, when they try to create a project by name ”Project1”, it failed with the following error:

    TF30321: The name you typed is already used for another team project on the team foundation server. Type a unique name for the new team project.

    In the past, I've seen this error if you don't close the Project Creation Wizard dialog and try to use a name that you've just deleted using tfsdeleteproject.exe. But that wasn't the problem in this case.

    The usual fix to remove a partially created team project is to run:

    tfsdeleteproject /force /server:http://tfs-server:8080 Project1

    There are three ways to manually delete a WSS site:

    Hope this helps!

    How does the TFS Proxy Server work?

    Q. How often does the proxy server synchronize with the server? Is it a continuous synchronization as soon as a change happens, or do the contents get transferred to the proxies when they’re required for synching the first time?

    A. The proxy gets populated with an item the first time someone requests that item at a particular version. It's not a continuous synchronization/replication.

    The first time a proxy user gets a version of an item that doesn't exist in the cache yet, it will obviously take longer than if it is in the cache already (a "cache hit").

    You can monitor how much work your proxy server is doing by using the Performance Monitor Counters included in the product. See Monitoring Performance.

    Counter Name Description
    Current Cache Size(Bytes) The current cache size.
    Total Download Requests The total number of download requests that come to the proxy server.
    Total Cache Hits The total number of download requests served from the file cache.
    Total Files in Cache The total number of files available in the cache.

    You can also use the TfsServerManager.exe tool included in the latest Team Foundation Power Tools. You'll find it at:

    C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools\TfsServerManager.exe

    TFS Proxy Status from TfsServerManager.exe

     

    Q. Does the data to be synced get compressed/uncompressed before/after the transfer?

    A. The answer to this is in Buck's post on Working remotely with TFS Version Control.

    Every file that we upload as part of checking in or shelving is compressed using GZip.  If a file is larger after being compressed, which may be due to it being in a compressed format (e.g., ZIP or JPEG) already or being encrypted, the file will be uploaded without being compressed.  When files are downloaded, they are still compressed as they were when they were uploaded.

    Communication between the client and server in TFS uses HTTP for everything, and it uses SOAP for everything other than file uploads and downloads.  We support IIS 6 compression of the SOAP, so the communication with the remote server is compressed.  Since SOAP is XML, responses compress very well.

    Posted 22 July 08 03:08 by grantholliday | 2 Comments   
    Filed under
    TF84034: Team Foundation was unable to initialize the workbook

    If you insert a column into an Excel workbook that is bound to TFS, you may get the following error:

    TF84034: Team Foundation was unable to initialize the workbook.  This document will no longer be associated with a Team Foundation server.

    When I first heard about this error, the customer had moved the workbook between machines. I assumed that the workbook had lost it's bindings to the TFS server and it just needed to be rebound using the "tfpt changedocurl" command from the latest Team Foundation Power Tools.

    Update the server information. TFS server information is stored as metadata in TFS bound Excel or Project files.  But there might be cases where server is renamed, port number is changed, or the protocol is changed (i.e. https instead of http).  This command updates the server information on existing files.

    Usage: tfpt changedocurl filespec /server:serverurl

    However it wasn't this problem. After searching the knowledge base I came up with this article:

    FIX: You can no longer connect to a Team Foundation server from Excel after you insert a column in a worksheet

    After checking some more with the customer, they realised that they had in fact added a column and this hotfix fixed their issue.

    In the article it tells you to contact Microsoft Customer Service & Support to obtain the hotfix. However in this case you don't need to, since VSTS advertise their hotfixes and make them public. You can download the KB946458 update from MSDN Code Gallery.

    Scripting TFS workspace creation

    I've worked with teams that have a common way of configuring workspace and working folder mappings. Although you could save these mappings to a wiki and let people copy-and-paste them into the workspaces dialog, there is another way.

    A great way to share these mappings would be to script them using the tf.exe command line tools.

    Workspaces are created using the "tf workspace" command.

    tf workspace /new /server:http://tfs-server:8080 MyWorkspace

    Working folder mappings are created using the "tf workfold" command. It's easiest to change to the local directory that you want to work from and run:

    mkdir D:\Code\ProjectX

    cd /d d:\code\ProjectX

    tf workfold /server:http://tfs-server:8080 $/ProjectX

    Enjoy.

    tf.exe: Unable to determine the workspace

    Sometimes when you're working with the tf.exe and tfpt.exe command-line tools you'll come across this error:

    D:\code\ProjectX>tf.exe checkout MyFile.cs

    Unable to determine the workspace.

    This error happens when the command can’t find which local directory maps to which server path.

    Obviously, the first thing to check is your workspace mappings. Is the local folder actually mapped? You can do this two ways:

    • Open Visual Studio | File | Source Control... | Workspaces, or
    • Open a command prompt and type: tf workspaces /server:http://tfs-server:8080 /owner:domain\username

    Each of these will show you all the available workspaces and their mappings.

    ===============================================================================

    Workspace: MyWorkspace_ProjectX

    Owner    : user

    Computer : MYCOMPUTER

    Comment  :

    Server   : tfs-server

      $/ProjectX: D:\code\ProjectX

    If the workspace mapping exists on the server, then your mappings cache file may need to be refreshed. Try running this command to populate/refresh the cache:

    tf workspaces /s:http://tfs-server:8080

    This will force your machine to update its local server-to-folder mappings cache file. This file is located at %LOCALAPPDATA%\Microsoft\Team Foundation\2.0\Cache in Vista.

    TF30076: Confirm that the server name is correct

    If you are using the command line TFS tools, you may have come across this error:

    TF30076: The server name tfs-server provided does not correspond to a server URI that can be found. Confirm that the server name is correct.

    Usually you'll come across this after you've rebuilt your machine or you're working on a build box or something.

    Try specifying the full server url address, instead of just the hostname. For example:

    tf.exe get . /server:http://tfs-server:8080

    When you don’t specify the full URL, the tf command line tools will try and resolve the address using the registry entries in HKCU\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers.

    If they don't find a matching key, they will throw this error.

    You can also add this key by opening Visual Studio Team Explorer and going to Tools | Connect to TFS | Servers.. | Add.

    Upgrading Team Foundation Power Tools

    If you have a previous release of the Visual Studio Team System 2008 Team Foundation Power Tools (TFS Powertools for short) installed and you try and install a later release, you’ll be prompted with this windows installer error:

    Another version of this product is already installed.  Installation of this version cannot continue.  To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.

    image

    Sure, you can go to Add/Remove Programs (or Programs and Features in Vista/Windows 2008) on the Control Panel, search for the power tools and uninstall them. The simple solution is to open a command prompt and run the following command:

    msiexec /x {FA564F28-4D97-411F-80C4-645E619552B8}

    This will uninstall the currently installed version of the power tools, allowing you to install the new version.

    The current version is the March 2008 Power Tools release. Don’t forget to have a look at what’s coming in the July 2008 Power Tools release.

    Update: The July 2008 Power Tools release is now available from MSDN downloads.

    Run VSSConverter without prompting for password

    If you have tried to run VSSConverter as part of an automated script, you’ll know that it’s not obvious how to stop it prompting for the Visual SourceSafe repository’s administrator password.

    Eyal points out that you can set two environment variables to achieve this behaviour:

    set SourceSCMPasswd=VssPassword
    set HATCONTESTING=yes
    VSSConverter.exe Migrate migrate_settings.xml

    Although I haven’t tried it, there’s a suggestion on this thread to try the VS2008 SP1 version of VSSConverter as it’s “vastly improved”.

    Note: These options are undocumented and unsupported. They are intended for internal testing.  They should work with current versions of VSSConverter, but they’re not guaranteed to work for future releases.

    Posted 08 July 08 12:42 by grantholliday | 2 Comments   
    Filed under ,
    TF30330: Team Explorer cannot write to the project list configuration file

    This is a problem that I haven’t come across before, but it looks like others have:

    TF30330: Team Explorer cannot write to the project list configuration file. Free up space on the local hard disk. If the problem persists, contact the administrator for your computer to confirm that your user account has appropriate permissions to write to the file.

    The simple fix is to:

    • Open a Visual Studio Command Prompt
    • Run: devenv /resetuserdata

    If you want to know what the undocumented (and subsequently unsupported) /resetuserdata switch does, have a read of the section on this Visual Studio IDE Tips and Tricks post.

    You’re probably still wondering where to find the actual “project list configuration file” that it complains about?

    %appdata%\Microsoft\VisualStudio\9.0\Team Explorer\TeamExplorer.config

    This file specifies which servers & project are visible in Team Explorer.

    Posted 08 July 08 12:33 by grantholliday | 1 Comments   
    Filed under ,
    Team Foundation Server and Hyper-V Virtualization

    Now that the final Hyper-V virtualization bits for Windows Server 2008 are available people have started asking if Team Foundation Server will be supported as a guest virtual machine.

    Yes, Hyper-V will be officially supported (more on Brian Harry’s blog)

    Note that the system requirements for Team Foundation Server 2008 remain unchanged – the Application Tier requires a 32-bit operating system. If you have a requirement to run 64-bit operating systems in your infrastructure, you could use Windows Server 2008 64-bit edition on the physical host and run TFS within a 32-bit VM.

    Posted 27 June 08 12:28 by grantholliday | 1 Comments   
    Filed under ,
    More Posts Next page »

    Search

    Go

    This Blog

    Syndication

    Page view tracker