Next Generation VSTS and TFS (AKA VSTS past, present and future)
Adam Cogan (AdamCogan@ssw.com.au) Goal: Getting the most out of VSTSTFS Now? Orcas? Rosario?
About Adam Cogan At SSW, Adam has been developing custom solutions for businesses across a range of industries such as Government, banking, insurance and manufacturing since 1990 for clients such as Microsoft, Quicken, and the Fisheries Research and Development Corporation. Adam Cogan is the Chief Architect at SSW, a Microsoft Certified Partner specializing in Office and .NET Solutions.
History of Visual Studio What’s Hot Today Team Foundation Power Tools v1.2 Microsoft Visual Studio Team System Web Access (aka Team Plain) MSSCCIs Xml Compare Tools (Diff Dog, Xml Difference) SSW Code Auditor MS Build GUI (WPF) SVN Bridge And more… What’s Coming Up Road Map Visual Studio 2008 (aka “Orcas”) includes TFS 2008 (Better Build Support & CI) Visual Studio Team System (aka “Rosario”) (Lots of goodness) Agenda
A Trip Down Memory Lane Visual Studio 97 First attempt to create a standard IDE for many different languages VB 5.0, C++ 5.0, J++ 1.1, Visual FoxPro 5.0 for Windows programming Visual InterDev for ASP Source Safe 5.0
Visual Studio 6.0 Released in 1998 Version 6 of all the languages Even Visual J++ which was 1.1 Last version of Visual Basic (classic)
Visual Studio .NET (2002) Managed code development environment using the .NET Framework (i.e. runs in a CLI-compliant virtual machine) Code was compiled into MSIL or CIL C# hit the scene as a new programming language VB became VB.NET ASP.NET and web services Windows forms Managed C++ All languages unified into one IDE except for FoxPro (now sold separately)
Visual Studio .NET 2003 Updated .NET Framework to 1.1 Split into four editions: Academic Professional Enterprise Developer Enterprise Architect (Included a Visio like modelling engine)
Now: Visual Studio 2005 .NET Framework 2.0 ADO.NET 2.0 (MARS) ASP.NET 2.0 (Web Site model minus IIS) Support for Generics (Strongly typed arrays) The following code compiles fine when there is an obvious error ArrayList customers = newArrayList(); customers.Add(newCustomer("Bob", "Dole")); customers.Add(newCustomer("Jack", "Black")); customers.Add(newCustomer("Michael", "Michael")); customers.Add("Fake customer"); Customer bob = (Customer)customers; Customer fake = (Customer)customers; The following code will give a compile error List<Customer> customers = newList<Customer>(); customers.Add(newCustomer("Bob", "Dole")); customers.Add(newCustomer("Jack", "Black")); customers.Add(newCustomer("Michael", "Michael")); customers.Add("Fake customer"); Customer b = customers; Built in Class Designer
Now: Visual Studio 2005 Split into 3 main editions: Software Architects, Software Developers, Software Testers Or one umbrella system called Team Suite Express Editions Team Foundation Server New source control with a SQL backend Task Management Build server Project Portal Reporting
Code Coverage Code Profiler Version Control Work Item Tracking Team Reporting Project Portal Integration Services Project Management Static Code Analyzer Class Designer Unit Testing Dynamic Code Analyzer Visio and UML Modeling Deployment Designer Team Build Application Designer Test Case Management Logical Datacenter Designer Load/Web Testing Visual Studio Professional Edition Team Foundation Client (includes CAL) Manual Testing Process and Architecture Guidance Visual Studio Industry Partners Visual Studio Team System Visual Studio Team Edition for SoftwareArchitects Visual Studio Team Edition forSoftware Developers Visual Studio Team Edition forSoftware Testers Visual StudioTeam Foundation
What do most people love about Team System Source Control Work Items Source Control + Work Items
What do most people love about Team System More…. Web Test Check in Policies Reporting Unit Testing --
What’s Hot Q:\ When is Beta not a Beta? A:\ ?
What’s Hot Team Foundation Server Power Tools v1.2 Not a Toy http://msdn2.microsoft.com/en-us/vstudio/aa718351.aspx Annotate Check-In Policy Pack Process Template Editor TFS Power Tool Commands (tfpt.exe) MS Build Task for testing How do you tell which version you have installed?
Annotate Command Scenario. I’m seeing this on my development server
Annotate Command What I want to see is this:
Annotate Command Q:\ Who turned CustomsErrors “Mode” to be “RemoteOnly” on our dev server? Since we’re in development we would like to see the errors and stack trace instead of seeing a generic error screen. A:\ ?
History Command Right click and view the History of the file Tells us who were the last people to modify it but not who changed this line. In this case Evan was the last to modify this file so we’ll go an blame him first Not very useful in pinpointing who modified which particular line
Annotate Command There is a better way: Annotate Like ‘Track Changes’ in Word Only shows the last user who edited a line against each line Similar Subversions Blame Q:\ Blame or Annotate?
Annotate Command The real culprit was Peter Ahn!
Process Template Editor Edit Work Items Edit whole Template Reduce Work Item Types Change Iterations
Real World Warning: The tool doesn’t do everything For most real world customizations you will need to get dirty with XML
Power Tool Commands Unshelve Command Rollback Command C:\Program Files\Microsoft Team Foundation Server Power Tools\tfpt.exe rollback [/changeset:changesetnum] Do you know how to Rollback changes in TFS? Online Command * Included in VS.NET 2008 GetCS Command (Get Changeset) UU Command (Undo Unchanged) Review Command History Command Workitem Command Query Command TreeDiff Command (GUI) * Like Compare? Treeclean Command * Only for ?? tfpt treeclean /delete Annotate Command (GUI)
Tree Diff Q:\ What files have changed since last check-in? A:\ pending changes windows Q:\ What’s the difference between the files in this branch and another branch? Q:\ What files don’t I have in Source Control? A:\ Use Tree Diff
cd "C:\Program Files\Microsoft Team Foundation Server Power Tools\TFPT.exe" tfpt treediff "C:\Program Files\SSW Code Auditor\Samples\NorthwindWindowsCS2005" $/Northwind/NorthwindWindowsCS2005
Summary Recap on the names TreeDiff Command (GUI) * Like Compare? Treeclean Command* Only for Hairy Chested tfpt treeclean /delete Instead (recommended): Compare (is the UI) Folder Difference (is the UI Results)
Check-In Policy Pack Changeset Comments Policy Forbidden Patterns Policy No JPEGs in folders that aren’t \Images Custom Path Policy Once you start using them a lot Plus performance Work Item Query Policy Only shows in VS2005
Changeset Comments Policy Enforce comments with check-ins (always a good thing) http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterProjectManagementWithTFS.aspx
Forbidden Patterns Policy Specify a file extension or a regular expression that you can use to keep certain file types from being checked in to source control. Eg useful for DLL-files (\bin) - 2 choices! Eg. build droppings (aka artefacts) Eg. VS.NET automatically-generated files Eg. code generated files? Regexs rock Q:\ .jpg in \images
Custom Path Policy Works with other TFS Policies. Lets you define policies for a specific path in the source control tree. Eg. SSW Code Auditor Policy for $/Northwind/Business but not on $/Northwind/Database (Performance)
Work Item Query Policy 2 choices! Specify a team query to which the work item associated with a check-in must belong. E.g. Must be working on items in Iteration 1 --What’s Hot
Q:\ What do you do with your SQL Dev?
What’s Hot: MSSCCI Providers Access TFS from the following applications: Visual Studio 2003 Visual Basic 6.0, SP6 Visual C++ 6.0, SP6 Visual FoxPro 9, SP1 Visual Studio .NET 2002 Microsoft Access 2003, SP2 *SQL Server Management Studio 2005 Sparx Enterprise Architect 6.1 Sybase PowerBuilder 10.5 TOAD for SQL Server 2.0
SQL Server 2005 Management Studio
Q:\ How do you get your screen shots in?
What’s Hot: SnagIt TFS Output Allow your testers to easily generate tasks/bugs with screenshots in TFS
SnagIt Work Item
Q:\ How do you compare XML files?
Diff Dog Powerful Diff Tool with added support for XML files from the team at Altova
Q:\ Who likes the built in merge tool? (read only?)
Araxis Win Merge Tool With Araxis Merge 2007 you can make changes! Configure Visual Studio to use Araxis as the merge tool Tools > Options > Source Control > Visual Studio Team Foundation Server > Configure User Tools
What’s Hot: VSTS Web Access Originally developed by devBiz Bought out by Microsoft in March 2007 TeamPlain will now be re-branded as “Microsoft Visual Studio Team System Web Access” Free Excellent replacement for the SharePoint Team Project Portal Source Control Integration Create/Modify work items View and Initiate builds Will be available as a Power Tool Will be available as part of Visual Studio Team System 2008
Team Plain Portal
Source Control Team Project Portal lacked the ability to interact with source control. Quickly grab a file via the web without Visual Studio
View and Modify Work Items
Build Server View Builds Start a build
Subscribe to TFS Alerts Subscribe to TFS Alerts via the web Add a custom alert subscription No need to use BiSubscribe.exe!
Q:\ Want more code rules?
SSW Code Auditor – Check In Policy http://www.ssw.com.au/ssw/CodeAuditor/ A Code Analyser 200 Built in Rules Write your own in simple, regex, VB.NET, C# Check-In policy for TFS Checks that code being checked in is of high quality and following the many standards located at http://www.ssw.com.au/ssw/Standards
Windows Explorer Why do I have to use Visual Studio to access source control? You can now use TortoiseSVN with SVNBridge Alpha, no stable releases as yet But you can get it working by following Scott Hanselman’s blog http://www.hanselman.com/blog/HowToUseTheSVNBridgeToGetTortoiseSVNWorkingWithCodePlex.aspx
Visual Studio 2008 (Orcas) Beta 2 is out RTM to be released Feb 2008 Visual Studio Team System 2008 (Rosario) August CTP is out RTM TBA Visual Studio Road Map
VS2008 Major Highlights Targets .NET Framework 3.0 and 3.5 WPF, WCF, WF, Cardspace support Targets .NET Framework 2.0 (aka Multi-targeting) Handles data more smoothly with LINQ Better offline experience (with TFS) AJAX for ASP.NET (built in) Unit Tests in Professional Edition
VS2008 Other Highlights Other Highlights Continuous Integration, Build Triggers and Drops * Annotate (Part of TFS Power Tools) Folder Diff Get Latest on Check Out (VSS Behaviour) Cyclomatic Complexity analysis * Large Group Sync (Bugfix for adding large groups of users to TFS)
Lets talk about my favorite future features
My least favorite feature first
Name Changes (cont)
Q:\ When should we start using it? A:\
VS 2008 Multi-targeting support
Builds Retention Policies Build Triggers Build Explorer Note: Access builds by right clicking the Build Folder in Team Explorer
Get Latest on Check out Same behavior as VSS
Cyclomatic Complexity Analyze the complexity and maintainability of your code
Rosario (VS 2010?) What is coming up Not in the next release…. But the one after
Visual Studio Team System 2008 “Rosario” * Hierarchical work items Better integration with Microsoft Project Server Full traceability to track project deliverables against business requirements Back up and restore Team Projects Better Testing Tools Improvements to multi-server administration, Improvements to build and source control Note: TFS 2008 may/may not take advantage of any new features of Katmai
Hierarchical Work Items Q:\ What problems does it solve? A1:\ Show work item dependencies i.e. ‘Setup database’ needs to be completed before ‘Set up backup schedule’ A2:\ Easily show how one high level task is broken down into smaller subtasks
Hierarchical Work Items Allows many levels of nesting You can use Excel or Team Explorer
Hierarchical Work Items When you insert a row, it creates parent child relationship Collapse All/Expand All, hidden Shift+Left Arrow and Shift+Right Arrow mmmmm.... where is the context menu ggrrr… View/Edit Work Item Links and Attachments "Open" opens read only in IE.... WTF --
What I’d like to see http://www.ssw.com.au/ssw/Standards/BetterSoftwareSuggestions/TeamFoundationServer.aspx
Pricing Big guys Medium guys Little guys Tiny teams (5 user license) TFS Server * CAL* - VS PRO without MSDN + TFS CAL VS PRO with MSDN + 1yr SA Team Edition without MSDN + TFS CAL * Team Edition with MSDN + TFS CAL + 1yr SA Or Team Suite * Bottom Line…. It is good value in most dev environments
More Info Brian Harry’s Blog http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterProjectManagementWithTFS.aspx