Next Generation VSTS and TFS (AKA VSTS past, present and future) Adam Cogan (AdamCogan@ssw.com.au) Goal: Getting the most out of VSTS TFS Now? Orcas? Rosario? About Adam Cogan Adam Cogan is the Chief Architect at SSW, a Microsoft Certified Partner specializing in Office and .NET Solutions. 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. Agenda • 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) 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 = new ArrayList(); customers.Add(new Customer("Bob", "Dole")); customers.Add(new Customer("Jack", "Black")); customers.Add(new Customer("Michael", "Michael")); customers.Add("Fake customer"); Customer bob = (Customer)customers[0]; Customer fake = (Customer)customers[3]; • The following code will give a compile error List<Customer> customers = new List<Customer>(); customers.Add(new Customer("Bob", "Dole")); customers.Add(new Customer("Jack", "Black")); customers.Add(new Customer("Michael", "Michael")); customers.Add("Fake customer"); Customer b = customers[0]; – 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 Visual Studio Team Edition for Visual Studio Team Edition for Visual Studio Team Edition for SoftwareArchitects Software Developers Software Testers Application Designer Dynamic Code Analyzer Load/Web Testing Logical Datacenter Designer Static Code Analyzer Manual Testing Deployment Designer Code Profiler Test Case Management Unit Testing Code Coverage Class Designer Visio and UML Modeling Team Foundation Client (includes CAL) Visual Studio Professional Edition Visual Studio Team Foundation Version Control Team Reporting Integration Services Team Build Work Item Tracking Project Portal Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 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/enus/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 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 checkin? 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/RulesToBetterProje ctManagementWithTFS.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/HowToUseTheSVNBridge ToGetTortoiseSVNWorkingWithCodePlex.aspx Visual Studio Road Map • 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 VS2008 Major Highlights 1. Targets .NET Framework 3.0 and 3.5 WPF, WCF, WF, Cardspace support 2. Targets .NET Framework 2.0 (aka Multi-targeting) 3. 4. 5. 6. 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 7.Continuous Integration, Build Triggers and Drops * 8.Annotate (Part of TFS Power Tools) Folder Diff 9.Get Latest on Check Out (VSS Behaviour) 10.Cyclomatic Complexity analysis * 11.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 Visual Studio 2005 Visual Studio 2008 Visual Studio Team System Visual Studio Team System 2008 Visual Studio 2005 Team Suite Visual Studio Team System 2008 Team Suite Visual Studio 2005 Team Edition for Software Architects Visual Studio Team System 2008 Architecture Edition Visual Studio 2005 Team Edition for Software Developers Visual Studio Team System 2008 Development Edition Visual Studio 2005 Team Edition for Software Testers Visual Studio Team System 2008 Test Edition Visual Studio 2005 Team Edition for Database Professionals Visual Studio Team System 2008 Database Edition Visual Studio 2005 Team Foundation Server Visual Studio Team System 2008 Team Foundation Server Visual Studio 2005 Team Test Load Agent Visual Studio Team System 2008 Test Load Agent Name Changes (cont) Visual Studio 2005 Visual Studio 2008 Visual C# 2005 Express Edition Visual C# 2008 Express Edition Visual C++ 2005 Express Edition Visual C++ 2008 Express Edition Visual Visual Basic 2005 Express Edition Visual Visual Basic 2008 Express Edition Visual Web Developer 2005 Express Edition Visual Web Developer 2008 Express Edition Visual Studio 2005 Standard Edition Visual Studio 2008 Standard Edition Visual Studio 2005 Professional Edition Visual Studio 2008 Professional Edition Q:\ When should we start using it? A:\ A:\ NOW 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/B etterSoftwareSuggestions/TeamFoundatio nServer.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 Luke More Info • Brian Harry’s Blog • http://www.ssw.com.au/ssw/Standards/R ules/RulesToBetterProjectManagementWit hTFS.aspx 2 things… AdamCogan@ssw.com.au