What's New in Visual Studio Team System
Microsoft Visual Studio Team System 2008 includes many new and enhanced features, which are summarized in this topic. For more information about which features are available in each edition, see Visual Studio Team System 2008 Team Edition Comparison.
To read more about how you can use Visual Studio Team System 2008 for real-world software development, see the following article series: Global Bank: A Scenario for Visual Studio Team System 2008.
In addition to the features and improvements that are listed later in this section, Service Pack 1 also adds the following administrative enhancements:
Support for Microsoft SQL Server 2008
Links to Team System Web Access
Improvements in performance and scalability
Team Foundation Build
You can find the TFSBuild.proj file more easily.
You can right-click a build definition name in Team Explorer and then click View Configuration Folder to locate the TFSBuild.proj file in version control.
You can determine how a build trigger was set.
A new property indicates how a build was triggered, and you can write scripts in TFSBuild.proj file that run differently based each possible value for this field. These values include Manual, IndividualCI, BatchedCI, Schedule and ScheduleForced. The property also appears in the build log file. For more information, see Reason Property and Overview of Build Reports.
You can detect test results.
Instead of failing a build, you can detect test results and set build conditions based on those results.
Team Foundation Version Control
You can add items to version control more easily.
When you add items to version control, you follow a wizard format to specify the files that you want to add and filter out files that you do not. You can also add files and folders by dragging and dropping them from Windows Explorer into Source Control Explorer. For more information, see How to: Add Non-Project or Non-Solution Files and Folders to Version Control.
You manage all files in version control the same way, regardless of whether they are bound to solutions or projects.
All version controlled files are now treated equally, whether they are a part of an open project or solution or not. Context menus provide all the standard functionality for version control at a single-file level.
You can map working folders more easily.
You can map working folders, cloak mapped folders, or remove working folders by right-clicking them in Source Control Explorer. As an alternative, you can verify whether a folder has been mapped by reviewing a link path in Source Control Explorer. If the folder is not mapped, you can click a link to open the Map dialog box. For more information, see How to: Create a Mapped Workspace, How to: Modify a Workspace, How to: Remove a Workspace, and How to: Cloak and Uncloak Folders in a Workspace.
You can determine when a file was checked in most recently.
Source Control Explorer includes a column that shows the date and time of the most recent check-in.
You can specify the source location for a file.
In Source Control Explorer, you can type a path in the Source Location box.
You can download files directly in memory.
Instead of downloading files to temporary files and then reading them, you can download the files directly in memory and process their contents.
You can create a branch up to 10 times faster.
By using the /checkin option for the tf branch command, you create the branch without first pending the changes and checking them in later. For more information, see Branch Command.
You can optimize downloading the files to your workspace after you switch your workspace from one branch to another in the same code base.
The /remap option of the tf get command optimizes for identical files by downloading only the items that differ between the two branches. For more information, see Get Command.
Team Foundation Work Item Tracking
You can track work items by using the Team tab on the ribbon in Office 2007.
For more information, see Managing Work Items in Microsoft Excel and Microsoft Project.
You can attach queries and links to work items in an e-mail message.
In Team Explorer, you can right-click a query to send a work item or a list of work items in e-mail. If you have Team System Web Access, the message contains links to the item or query so that recipients can more easily explore related work items. For more information, see How to: Send Query Results in E-Mail.
Migration Tool for Visual SourceSafe
VSSConverter converts files that have the same name as a previously deleted file, thus eliminating namespace conflicts.
For more information, see Migrating from Visual SourceSafe.
When you convert a source tree, solutions are automatically rebound to Team Foundation instead of Visual SourceSafe.
VSSConverter automatically corrects timestamp issues.
Many Visual SourceSafe databases contain timestamp inconsistencies because Visual SourceSafe uses a client timestamp instead of a server one. VSSConverter automatically adjusts for this problem.
You can more easily diagnose conversion problems.
The messages that are written into the log file during conversion are clearer and provide more information.
Several components of Team Foundation have new features and improvements for Visual Studio Team System 2008 Team Foundation Server.
Team Foundation Build
Build definitions replace the build types of Microsoft Visual Studio 2005 Team System. Unlike build types, you can use the Team Explorer user interface to modify build definitions. Build definitions also have workspace support in version control. You can now specify local paths and store the build files in any location you specify in version control. For more information, see How to: Create a Build Definition and Understanding Team Foundation Build Configuration Files.
Continuous Integration of Builds
You can specify a trigger for a build when you create a new build definition or modify an existing one. You can use on-demand builds, rolling builds, and continuous integration where each check-in starts a build. You can also define how long to wait between builds when defining rolling builds. For more information, see How to: Create a Build Definition.
You can now run builds on a schedule, even if there are no changes. For more information, see How to: Create a Build Definition.
Build agents can be named independently of the build computer name. For more information, see How to: Create and Manage Build Agents. Each build agent can connect to a build computer via two ports: an interactive port and the default port used to run builds. For more information, see How to: Configure an Interactive Port for Team Foundation Build.
HTTPS and Secure Sockets Layer (SSL) for Build
You can now set up Team Foundation Build to require HTTPS and SSL. For more information, see How to: Set up a Build Agent to Require HTTPS and Secure Sockets Layer (SSL).
New Properties for Customizing Team Foundation Build
Team System 2008 Team Foundation Server includes new properties for customizing builds. These properties include customizing the behavior of C++ builds, SkipInvalidConfigurations, CustomizableOutDir, and CustomizablePublishDir. For more information, see Customizable Team Foundation Build Properties.
New Tasks and Targets for Customizing Team Foundation Build
Team Foundation Source Control
You can now destroy or permanently delete source-controlled files from Team Foundation version control. For more information, see Destroy Command.
Get Latest on Check-Out
You can now enable Team Foundation version control to retrieve the latest version of a file automatically when you check it out. For more information, see Team Foundation Check-Out Settings.
You can now annotate source code files. You can view line-by-line information in source code about what changes were made, who made the changes, and when the changes were made. For more information, see How to: View File Changes Using Annotate.
You can now compare two server folders, two local folders, or a server folder and a local folder using source control. You can see differences such as missing items, and items that have additions, deletions, or conflicting changes. For more information, see How to: Compare Two Folders.
Team Foundation Work Item Tracking
The performance of most work item tracking operations under a heavy load has improved significantly. When compared to Visual Studio 2005 Team Foundation Server, throughput has doubled. It now takes less time to complete individual operations. CPU usage on the Team Foundation data-tier server has been reduced. Large organizations can support more work item tracking users on their existing servers than they could with Visual Studio 2005 Team Foundation Server.
Visual Studio Team System 2008 Team Foundation Server is more scalable. Scalability has improved response times significantly of most work item tracking operations when the server is under load. This is especially true for teams of more than 500 people. Large organizations should be able to support more work item tracking users on their existing servers than they could with Visual Studio 2005 Team Foundation Server.
Team Foundation Server Management
Adding large numbers of users to Visual Studio Team System 2008 Team Foundation Server is much more reliable and less likely to cause long delays or other problems. While the total number of supported users has not changed, synchronization of users between Active Directory and Visual Studio Team System 2008 Team Foundation Server completes much more quickly.
Visual Studio Team System Architecture Edition contains new features and improvements for the following areas in Visual Studio Team System 2008:
Design Application Systems by Using a Top-Down Approach
You can now use a top-down approach to design application systems by starting with System Designer. You can start with a new system design solution or you can continue with an existing solution. You can add systems, applications, and endpoints directly to your system definition as members. You can add endpoints directly to the boundary of your system definition and delegate their behavior to members at a later time. You rename members and their underlying definitions at the same time. You can repair members of application systems that become orphaned from their definitions.
Conform .NET Web Service Endpoints to WSDL Files
You can now conform the operations in an existing .NET Web Service provider endpoint to a WSDL file.
Generate ASP.NET Web Application Projects for ASP.NET Applications
You can now select the ASP.NET Web Application template to implement an ASP.NET application. This action generates the corresponding project type for the application.
Save, Import, and Export Custom Prototypes
You can now save or install custom prototypes either for your use only or for all users on your computer. You can now install custom prototypes by importing them instead of editing the registry.
You still need to edit the registry to install .sdmdocument files for application prototypes created from the System Definition Model (SDM) Software Development Kit (SDK).
You can now export custom prototypes that you want to share with others.
Select From Multiple .NET Framework Versions
You can now select .NET Framework 2.0, 3.0, or 3.5 for ASP.NET, Windows, and Office applications.
Select From Multiple Office Versions
You can now select Office 2003 or Office 2007 project templates for Office applications.
For more information, see What's New in Architecture Edition.
Visual Studio Team System Database Edition is now integrated in the Visual Studio Team System installation. You no longer have to install it separately when you install the full suite.
Specify Table and Index Options
You can now specify options in your table and index definitions, such as the vardecimal storage format that is new in Microsoft SQL Server 2005.
For more information, see How to: Specify Table and Index Options.
Code analysis tools perform extensive checks for code defects, which are presented as warnings in the error window.
Code Analysis has been enhanced with the following features:
Rules Extension and Enhancement
Code analysis has more than 20 new rules. Several rules have been enhanced by providing greater accuracy, particularly around naming rules.
For more information, see Code Analysis for Managed Code Warnings, Code Analysis for C/C++ Warnings and How to: Enable and Disable Code Analysis for Managed Code.
Spelling Checker with Custom Dictionary Support
You can use the spelling checker for resource strings as well as class, method, and property names. You can use a custom dictionary to check non-standard words.
Better Control over Suppression from the Error List
You can suppress code analysis issues from the error window at either the project level or in-source.
Auto-Suppress Generated Code Option
You can automatically suppress error messages from generated code. This is particularly useful for designer-generated code.
Code Analysis Policy Improvements
When you copy the settings from the server to your project, you now have the option to replace your local selection, or merge the policy rules with your local project rules. Also, you now have more complete information about policy violations. This enables you to determine the source of the violation.
Code metrics are a set of software measures that give developers better insight into the code they are developing. By taking advantage of code metrics, developers understand which types and/or methods should be reworked or more thoroughly tested. In addition, development teams identify potential risks, understand the current state of a project, and track progress during software development.
For more information about Code Metrics, see Measuring Complexity and Maintainability of Managed Code.
Profiling tools in Visual Studio Developer Edition enable developers to measure, evaluate, and target performance-related issues in their code.
For more information about profiling tools, see Analyzing Application Performance using Profiling Tools.
The following features have been added to the Profiling Tools:
The Profiler now includes support for both the 64-bit applications that run on 64-bit operating System and hardware and the 32-bit applications executed on 64-bit operating system and hardware.
Full Allocation Stacks
The Profiler has full call stacks for allocation. This is useful for allocation that occurs in non-user code, but is indirectly caused by user actions. By using the full stack, you can see exactly which parts of your code are indirectly causing the allocation.
You can collect allocation data by configuring settings in the performance session property page. Use the allocation view in the performance report to see your results.
For more information, see How to: Collect .NET Memory Allocation and Lifetime Data and Profiler .NET Memory Allocations View.
Line-level Sampling Data
Profiling tools now includes an instruction pointer and line views in performance reports. Also, the modules view now includes line information.
Report Noise Reduction
You can configure performance reports for noise reduction. This limits the amount of data in the Call Tree view and the Allocation view. By using noise reduction, performance problems are more prominent. This is helpful when you analyze performance reports
For more information, see How to: Configure Noise Reduction in Performance Reports, Call Tree View and Profiler .NET Memory Allocations View.
Profiling tools includes a runtime control. The runtime control starts automatically with the profiler. It can be paused and resumed for performance data logging. In addition, you can use the runtime control to start the application with logging paused. This enables you to skip data collection on application startup. When you use the runtime control, you can manually insert annotations in the performance data when events of interest occur in the application lifetime. You can filter the data on your annotations later.
You can now filter performance reports on timestamp, process, thread, and marks. You can use the show query button to get the filtered analysis. Also, you can use the /summaryfile option from the VSPerfReport command.
For more information, see VSPerfReport.
The Profiler now supports the comparison of reports. You can compare a report either by using the Performance Explorer or the /diff on options from the VSPerfReport command.
Improved Chip Counter Support
Profiling tools provide new friendlier chip-counter names (For example: "L2 Misses", "ITLB Misses", "Mispredicted Branches"). You can modify xml files to further configure counters for a specific architecture.
Windows Counter Support
The Profiler now collects Windows counters (for example, "% Processor Time", "% Disk Time", "Disk Bytes/sec", "Page Faults/sec"). You can use either the windows counters node in the performance sessions properties page or the /wincounter option from the VSPerfCmd command. The marks view displays the counters. You can use counters as filtering endpoints.
Compressed Report Files
Profiling tools enable you to generate small compressed report files that open up quickly. This is because these files, which are created from full reports, are analyzed already. You can either right-click the report in the Performance Explorer and choose Save Analyzed or use the /summaryfile option from the VSPerfReport command.
For more information, see How to: Save Analyzed Profiling Tools Report Files and VSPerfReport.
Profiler now has the ability to automatically expand the most expensive code path in the call tree and allocation view of the performance report.
Copy Report View Data to HTML
The Profiler includes support for rich reports in the clipboard. You can copy and paste rich data (tables with headers and values) from the performance reports.
Windows Communications Foundation Support
Profiling tools now support Windows Communications Foundation (WCF).
Load and Web Test Integration in Visual Studio Team Suite
You can create performance sessions for Web and Load tests from Test View and Test Results.
This feature applies only to Visual Studio Team System.
Visual Studio Team System Test Edition contains new features and improvements for the following areas in Visual Studio Team System 2008 Test Edition:
Testing Methods of Your Code
You can now create and run unit tests more easily and quickly, and for more kinds of production code.
Use Unit Tests in Visual Studio Professional Edition
Developers using Visual Studio Professional Edition can now create and run two types of tests: unit and ordered. You can use a unit test to validate that a specific method of production code works correctly, to test for regressions, or to perform buddy testing or smoke testing. Ordered tests run other tests in a specified order. For more information, see Using Testing Tools in Visual Studio Professional Edition.
Run Unit Tests More Easily
New menus and key combinations enable developers of unit tests to start test runs and select the tests to run more quickly. Also, you can now generate tests from a binary file, without access to product source code. You can generate tests for generic data types as return values and method parameters. For more information, see How to: Run Selected Tests, How to: Create and Run a Unit Test, and Unit Tests and Generics.
Use Inheritance Between Test Classes
Test classes can now inherit members from other test classes. This enables developers to create initializations or tests in a base test class, from which all other derived tests classes will inherit. This feature eliminates duplicated test code. This gives developers more options to customize their unit tests correctly. For more information, see Unit Tests Overview.
Run Unit Tests on Devices
Visual Studio provides a suite of tools for testing C# and Visual Basic smart device applications. These tools provide a subset of the functionality found in Test Edition. For more information, see Testing Tools for Smart Device Projects.
Create Host Adapters
Typically, you run tests in the default environment provided by the Team System testing tools. To run tests in a different environment, use a host adapter. You can use the Visual Studio SDK to create new host adapters. Download the Visual Studio SDK from the affilliate site.
Improved Unit Test Data Binding
You can now use a wizard to easily bind a unit test to a data source, including CSV files and XML files. For more information, see How to: Configure a Data-Driven Unit Test.
Web Testing Web Sites
Visual Studio Team System 2008 Test Edition offers more control for authoring Web tests.
Call a Web Test From Another Web Test
You can insert a call to one Web test from a second Web test. For more information, see How to: Insert a Call to Another Web Test.
Improved Web Test Data Binding
Test Edition now includes built-in support for csv and xml files. A new wizard facilitates the data binding process. You can also preview the data before you complete the process. For more information, see Data Binding in Web Tests.
Improved Web Test Features
Test Edition now includes support for test level validation rules. You can create validation rules at the test level. These new rules can apply to all individual requests in the test. You can stop a Web test if an error occurs in the test. Also, you can validate the return of an expected HTTP status code. For more information, see Using Validation and Extraction Rules.
In Test Edition you can now extract requests from Web tests to create new Web tests. You can also insert calls to other Web tests. This means you can create Web test components and reuse your Web tests and Web requests. For more information, see How to: Extract a Web Test and How to: Insert a Call to Another Web Test.
You can now use more realistic load modeling options for running load tests. Also, you can organize the returned data in ways that are richer and more flexible.
Control Load Modeling
Load tests now offer additional load-modeling options. These options enable you to create load tests that more accurately model the expected real-world usage of an application or Web site. You can now model usage based on the number of tests run, the amount of time spent on each test, or the pace at which the users run the tests. For more information, see About Test Mix.
Improved Load Test Analyzer Views
Test Edition Load Test Analyzer includes a new summary view that displays the key indicators and results in a single page that you can print and export. Also, four new built-in graphs display key information. You can view up to four graphs at the same time. These enhancements enable you to view up to four tables at the same time. For more information, see the following:
Improved Load Test Results Repository Management
Test Edition includes a new Repository Management dialog box that enables you to access directly the load test results repository. Now it is easy for you to open, import, export, and delete load test results. For more information, see Managing Results in a Repository.
Published Schema for XML Files
As you work with Test Edition, it creates and stores data in XML files. These files include the following:
Test metadata file. This type of file has the extension .vsmdi. Test metadata files store information about the tests in your solution. For more information, see Reusing Tests.
Test results file. This type of file has the extension .trx. When you run tests, Visual Studio automatically saves test results to a .trx file. For more information, see How to: Export Test Results.
Manual tests in text format. This type of file has the extension .mtx. When you create a manual test in text format, it is saved into your test project as a file of this type. For more information, see How to: Create a Manual Test.
In Team System 2008 Test Edition, all the XML files used by Test Edition are defined by a new XSD named TestTypes.xsd. Any edits that you make to any of these files, manually or programmatically, must result in XML that conforms to the schema defined in this XSD. Similarly, any files that you create with these extensions must also conform to the schema defined in this XSD. Otherwise, Test Edition cannot use them.
Test projects created in Visual Studio 2005 contain XML files. When you open a Visual Studio 2005 test project, the Visual Studio 2008 project upgrade wizard prompts you for permission to convert the files into the new format. To use the files in Team System 2008 Test Edition, you must let Visual Studio convert the files. If you decide not to convert or upgrade one or more files, Visual Studio cannot open your test project. Similarly, if you add an existing file of the previous format to a test project, you will be prompted to let Visual Studio upgrade the file format. If you answer yes, Visual Studio converts the file and makes it available as part of the test project. If you answer no, your request to add the files is canceled.
This release provides the following benefits:
Improved Web test validation rules.
You now have more flexibility to apply validation rules and use their results to control Web test program flow.
Better control of load modeling.
You now have more flexible ways to control the load modeling in load tests that you run.
Improved load test analyzer views.
New built-in graphs and viewing capabilities make it easier for you to quickly understand load test results.
Improved load test results repository management.
You now have easier access to the repository for load test results.
Schematized XML file for test results.
You can now work programmatically with the test results that are automatically stored in XML format in a .trx (test results) file.
For more information, see What's New in Test Edition.