John Allwright Product Manager – Visual Studio
The Visual Studio Vision Foster a vibrant partner ecosystem Build the right product for customers Improve software team communication Reduce development complexity
The Software Lifecycle What We’ve Heard “Building software today is very difficult” “Building software today is very difficult” “My team is spread out and specialized” “My team is spread out and specialized” “Tools today don’t work well together” “Tools today don’t work well together” “I need to be able to predict the success of my projects” “I need to be able to predict the success of my projects” “My organization needs customizable process guidance” “My organization needs customizable process guidance”
Infrastructure Architect Project Manager Developer Tester Solution Architect Business Stakeholder Silos in the IT Lifecycle
Development Teams Infrastructure Architect Solution Architect Project Manager Developer Tester End User
Roles – show of hands Developer Developer Tester Tester Application Architect Application Architect Infrastructure Architect Infrastructure Architect Project Manager Project Manager Business Stakeholder Business Stakeholder
Communication Barriers Pockets of information within disciplines Pockets of information within disciplines Unclear delineation of responsibilities Unclear delineation of responsibilities Conflicting best practices and architectures Conflicting best practices and architectures Conflicting strategic goals and objectives Conflicting strategic goals and objectives SolutionArchitect InfrastructureArchitect IT Operations doesn’t understand application structure Developers don’t understand operations policy Reduce complexity through operations knowledge Increase communication and collaboration via product integration
Core Tenets to Success Tools need to… Tools need to… …reduce the complexity of delivering modern service-oriented solutions …be tightly integrated and facilitate better team collaboration …enable customization and extensibility by organizations and ISVs
Expanding Visual Studio Increased Reliability Quality Early & Often Predictability & Visibility Design for Operations Project Manager Solution Architect Developer Tester Infrastructure Architect
Facilitates Communication Reduces Complexity Enables Partners Tools Tools
Visual Studio V6 to 2005 (Enterprise: VSEE, VBEE, VCEE) (Professional: VB, VS, VC, VJ, VID) (Standard: VB, VC, VJ) Visual Studio Team Foundation Visual Studio Team Architect Visual Studio Team Test Visual Studio Team Developer Visual Studio Team Suite Visual Studio Standard Visual Studio Professional WebMatrixWebMatrix Visual Basic Visual C++ Visual C# Visual J# Visual WebDev “Express” Products
Visual Studio Team System Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass DesignerLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Visual Studio Industry Partners Big Build
Broad Industry Support
Team Foundation Server & Team Architect Paul Appleby
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Change ManagementWork Item TrackingReportingProject SiteIntegration ServicesProject ManagementDynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Project Site Work Item Tracking ReportingProject Management Visual Studio Team Foundation Big BuildClass Designer Change Management
Team Foundation Capabilities Work item tracking Work item tracking Easy, Integrated into development process Design your own process – Fields, Forms, States, Rules Extensive linking – bugs, reports, artifacts Notifications Source Code Control Source Code Control Easy, integrated into development environment Integrated check in experience Scalable and robust Parallel development Notifications Metrics warehouse Metrics warehouse Automatic data collection OLAP reporting Trending, aggregation & drilldown Project portal Project portal Single place to go for high-level project information Web access work items WSS based
Project Management Gaps in translating work Gaps in translating work Team is disconnected Team is disconnected Tracking, not managing Tracking, not managing Difficult to implement process changes Difficult to implement process changes
Methodology Template Delivered via Team Foundation Server Delivered via Team Foundation Server Contains: Contains: Work Item Types, workflow Check In Policy Specification Templates Reports Groups & Permissions Integrated Help Phase Exit Criteria Exposed within Help Exposed within Help
Demo Projects, Work Items, Source Code Control
Work Items Everywhere Author work items in Microsoft Excel Work items show up in Visual Studio Assign work items to resources using Microsoft Project View project status in Microsoft Excel or Microsoft Project
Change Management Check In “Shelve” work in progress Build rules enforced during check-in process
Reporting Reporting
Project Portal SharePoint-based Project Portal
Project Creation Project Creation Wizard
Project Creation Project Creation Wizard
Project Management Author work items in Microsoft Excel Work items show up in Visual Studio Assign work items to resources using Microsoft Project View project status in Microsoft Excel or Microsoft Project
Change Management Check In “Shelve” work in progress Build rules enforced during check-in process
Project Portal SharePoint-based Project Portal
Team Foundation V2 Roadmap Work flow Work flow Automated Check in acceptance testing, approval and review Inter-work item flow Advanced Distributed development Advanced Distributed development Replication, Offline Better traceability Better traceability
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass ModelingLoad TestingManual TestingTest Case ManagementApplication ModelingLogical Infra. ModelingDeployment Modeling Visual Studio Team Developer Visual Studio Team Test Application DesignerLogical Infra. Designer Deployment Designer Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig Build
Team Architect Distributed Application Designer Distributed Application Designer Whiteboard mode for application design Web Services Enhancements (WSE) support Validation against logical infrastructure Logical Infrastructure Designer Logical Infrastructure Designer Settings and constraints editor SDM generation and compiler Click-once support
Team Architect Key scenarios Key scenarios Design connected systems “Design for Operations” Code visualization Documentation and conceptual drawings
Team Architect Problem Space Customers have communication problems between Customers have communication problems between Architects and Developers Developers do not work within architectural guidelines Development and Operations Deployment problems caught too late Customers recognize value of modeling tools Customers recognize value of modeling tools Visualization of designs Higher level abstractions simply design and development Generation `of code and other artifacts can improve productivity Modeling tools have poor history of success Modeling tools have poor history of success Positive: good for documentation Negative: CASE baggage, round-tripping complexities, not used for software development
Demo Architect Tools
Application Designer Service-Oriented Architecture model Port Details editor
Logical Infrastructure Designer Services assigned to logical infrastructure Architecture validated against operational settings and constraints
Team Architect V2 Roadmap Support for Indigo service framework Support for Indigo service framework Contract Designer Contract Designer Business Process Designer Business Process Designer Pattern engine Pattern engine
Visual Studio Team System Team Developer Mike Pelton
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass DesignerLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Dynamic Code AnalyzerStatic Code Analyzer Code Profiler Unit TestingCode Coverage Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig Build
Class Designer Class Designer and two-way code synch
Team Developer The Tools the Microsoft Uses The Tools the Microsoft Uses Features Features Static code analysis Support for managed and native code PREfast used in Trustworthy Computing Code Reviews FxCop used to develop.NET framework Code profiling Based on two internal profilers: Instrumented – IceCAP, used by Windows Base and SQL Server Sampling – LOP, used throughout MX, including Xbox Includes ETW events Sequence view examines running threads GC view of object allocation and lifetime Caller-callee, callstack, and function views Code coverage Basic Block Coverage Based on the BBCover technology that Windows & Visual Studio use Application Verifier
Static Code Analysis Static Code Analyzer
Code Coverage
Team Developer V2 Roadmap Runtime Analysis: Runtime Analysis: System level profiling and application monitoring Integration of runtime analysis with operations Static Analysis: Static Analysis: Editor integration (Squigglies) More rules & targets
Team Test Mike Ormond
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Load TestingManual Testing Test Case Management Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig BuildClass Designer
Team Test Testing becomes 1 st class in Visual Studio Testing becomes 1 st class in Visual Studio Tests are Source Code Tests are Source Code Visual Studio Test Environment Visual Studio Test Environment Authoring Execution Results
Test Authoring Enable authoring features specific to testing without impeding standard development experience Enable authoring features specific to testing without impeding standard development experience Primary UI Elements Primary UI Elements Solution Explorer Test View Properties Window Results Window Largest real estate reserved for code Largest real estate reserved for code
Test Execution Provide rich environment for the management and control of test cases Provide rich environment for the management and control of test cases Primary UI elements Primary UI elements Test Explorer Command Line Parser Results Window Primary user is not test author, rather to manage and execute tests Primary user is not test author, rather to manage and execute tests
Test Results Provide test execution information and outcome information Provide test execution information and outcome information Primary UI Elements Primary UI Elements Results Window Provides run information, test results, error messages Provides run information, test results, error messages Raise a bug directly from a test result Raise a bug directly from a test result
Test Types Test Types are an attempt to simplify test development and extensibility Test Types are an attempt to simplify test development and extensibility Code can still do anything Types don’t enforce code behaviour What types? What types? AutomatedOrderedGeneric3rd Party WebManualLoadUnit
Demo Unit Testing Manual Tests Web Tests Load Testing
Unit Test Example Data Driven Unit Test Example Data Driven Solution Explorer showing Test Project Solution Explorer showing Test Project
Manual Test Completed (passed) Manual Test Completed (passed) Test Results Window Test View Window
Test Explorer Tests grouped by category Test Explorer Tests grouped by category Test Results Tests in progress Test Results Tests in progress
Test Case Management
Load Testing Creation Load Testing Web recorder Load Testing Web recorder
Web Test in progress
Load Test Perf Counter integration and monitoring
Team Test V2 Roadmap Functional UI testing Functional UI testing For Avalon, Windows.Forms, Win32, IE Test Lab management Test Lab management Setup, tear down, distribution, and baselining Historical code coverage trends on a per-method basis Historical code coverage trends on a per-method basis Test case prioritization Test case prioritization
Expanding Visual Studio Increased Reliability Quality Early & Often Predictability & Visibility Design for Operations Project Manager Solution Architect Developer Tester Infrastructure Architect
Visual Studio Team System Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass DesignerLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Visual Studio Industry Partners Big Build
MSDN Connection Get personalised info and a customised RSS feed Get personalised info and a customised RSS feed The programming language(s) you’re interested in The technology area(s) you’re interested in The information you want View news, technical resources, events, webcasts and community information View news, technical resources, events, webcasts and community information Sign up for MSDN Connection at: Sign up for MSDN Connection at:
Additional Information Visual Studio Team System Dev Center Visual Studio Team System Dev Center All the latest info on Team System The UK MSDN Site & Flash The UK MSDN Site & Flash Local news, events, webcasts Register to received the bi-weekly MSDN Flash by Try Visual Studio Try Visual Studio Take a look at the Express products Take a look at the Express products GotDotNet and ASP.NET GotDotNet and ASP.NET – Team System Walkthroughs
Questions