Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual...

24
Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316

Transcript of Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual...

Page 1: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Application Lifecycle Management Tools for C++ in Visual Studio 2012

Rong LuProgram ManagerVisual C++Microsoft Corporation

DEV316

Page 2: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Agenda

Recap: ALM features for C++ in Visual Studio 2010

ALM features for C++ in Visual Studio 2012

Demos

Q&A

Resources

Page 3: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

ALM features for C++ in Visual Studio 2010 VS Premium

Team Foundation Server

VS Ultimate

Code CoverageCode AnalysisProfilingConcurrency Profiling

Load testingLab management

Source Code ControlTeam Build

Page 4: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Profiling

Measure performance aspects of the application to identify bottlenecks.

Page 5: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Load Testing

Load tests consist of a series of Web tests or unit tests to simulate multiple users over a period of time.

Page 6: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Number of cores

Your Process Idle time

Other processes

Concurrency VisualizerCPU Utilization

Page 7: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Concurrency VisualizerThreads

Detailed thread analysis(one channel per thread)

Call Stacks

Page 8: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

One color per thread

Cross-core migration details

Concurrency VisualizerCores

Page 9: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Visual Studio 2012 ALM and C++

ALM features in VS 2012

Additional ALM features for C++ in VS 2012

User Story/Product Backlog mgmtLightweight RequirementsSprint planning, Taskboards planningContext SwitchingStakeholder FeedbackCode ReviewExploratory Testing

2010 features UpdatedCode AnalysisCode Coverage

Architectural DiscoveryUnit Testing

Page 10: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

demo

Architectural Discovery

Page 11: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Summary: Architectural Discovery

Use dependency graphs to better understand your code

Generate graphs for whole solutionGenerate graphs for include file (C++)It is your diagram, edit it!

Use Architecture Explorer to browse assets and generate customized graphs

Page 12: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Code analysis

“The most important thing I have done as a programmer in recent years is to aggressively pursue static code analysis.  Even more valuable than the hundreds of serious bugs I have prevented with it is the change in mindset about the way I view software reliability and code quality.”“Eventually, I had all the code used to build the 360 executable compiling without warnings with /analyze enabled…This did slow down compiles somewhat, but /analyze is by far the fastest analysis tool I have worked with, and it is oh so worth it.”

--John Carmack Founder and technical director of Id Software

http://www.altdevblogaday.com/2011/12/24/static-code-analysis/

Page 13: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

demo

Code analysis

Page 14: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Summary: Code Analysis

Improved user experience and analysis capabilities64 bit supportAvailable in all editionsConcurrency rules (Pro+)Customize ruleset (Pro+)

Page 15: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

demo

Unit testing

Page 16: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Summary: Unit TestingNew native C++ unit test framework in VS11Author tests, manage tests and view results in VSAvailable in all editionsContinuous run after build (Premium+)Extensible: plug in 3rd party native framework to VS (Pro+)

Page 17: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

demo

Code Coverage

Page 18: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Summary: Code Coverage

Simplified experience and integrated with unit test frameworkAnalyze code coverage by one single click in VS

For all testsFor selected tests

Allow integration with 3rd party unit test frameworks

Page 19: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Summary

Use ALM features in VS2012 to build safer, more reliable and high quality C++ apps:

Architectural DiscoveryCode Analysis (available in Express)Unit Testing (available in Express)Code CoverageProfiler (available in Express)…plus general ALM features in VS2012

Page 20: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Q&A

Find me at TLC Visual Studio Platforms after session and on Friday

[email protected]

Page 21: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Related Content

Find me at TLC: Visual Studio Platforms

Download Visual Studio 2012 RC and try it out!

Breakout sessions

(Tue) FDN02: Application Lifecycle Management(ALM): It’s a Team Sport (Wed) DEV214: Introducing the New Visual Studio 2012 Unit Testing Experience (Wed) DEV368: Visual C++ and the Native Renaissance (Thu): DEV367: Building Windows 8 Metro Style Apps With C++ (Fri): DEV334: C++ Accelerated Massive Parallelism in Visual C++ 2012

Page 22: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Resources

Connect. Share. Discuss.

http://europe.msteched.com

Learning

Microsoft Certification & Training Resources

www.microsoft.com/learning

TechNet

Resources for IT Professionals

http://microsoft.com/technet

Resources for Developers

http://microsoft.com/msdn

Page 23: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

Evaluations

http://europe.msteched.com/sessions

Submit your evals online

Page 24: Application Lifecycle Management Tools for C++ in Visual Studio 2012 Rong Lu Program Manager Visual C++ Microsoft Corporation DEV316.

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to

be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS

PRESENTATION.