Download - Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Transcript
Page 1: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence

Joe KuemerlePreEmptive Solutions, LLCwww.preemptive.com@jkuemerle @PreEmptive

Page 2: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Background of Joe Kuemerle

Lead Developer at PreEmptive Solutions Over 15 years of development experience with a

broad range of technologies Focused on application and data security, coding best

practices and regulatory compliance Presenter at user groups, code camps, CodeMash,

MSDN Developer Conference 2009 and devLink

Page 3: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

PreEmptive Solutions, LLC Background

3,000 corporate clientsOver 40,000 registered installations in

100+ countries Dotfuscator has been included in

Visual Studio since 2003 Software is on over 6 million desktopsStarting in Visual Studio 2010,

Dotfuscator adds basic Runtime Intelligence

Helping Software Succeed

Page 4: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Agenda

Overview of Runtime Intelligence Visual Studio 2010 Editor Extension Walkthrough Visual Studio 2010 Editor Extension Code Q&A

Page 5: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Runtime Intelligence

Application, feature-usage, & environmental data collected from the field◦ Dotfuscator (Suite and CE in Visual Studio 2010) injects

instrumentation◦ Runtime Intelligence Service aggregates, analyzes and

distributes runtime intelligence data allowing you to make better decisions faster.

Page 6: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Application Analytics? CEIP!

Page 7: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

What can you find out?

What’s running ◦ What applications, versions of applications, components and features

within applications, and methods within those features?

Under what conditions? ◦ What operating system and framework, cpu, memory, and disk capacity?

What about screen resolution or video chip?

How’s it doing?◦ How stable, what are the performance characteristics, what user patterns

and practices are emerging?

How does it compare?◦ Are new features being adopted, is the hosted version performing better

than the installed equivalent?

Is it making a difference?◦ What is the development ROI? Are sales increasing, productivity

improving, and satisfaction trending upwards?

Page 8: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Walkthrough

Arch Explorer Code Editor

Page 9: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Demo - Margin

Custom margin

Viewport tracking

Page 10: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Margin

MEF Export

Page 11: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Document Map And Method Tracking

Glyphs to track methods in the source

file

Page 12: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Data Management

Page 13: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Background Parsing

Page 14: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Adornments

Inline WPF control

adornment

Lightbox adornment for target method(s)

Page 15: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Adornment HandlingMEF Exports

Page 16: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

Helping you build better software

What’s Running?

Application, Versions, Features, and Methods

How’s it Doing?

Stability, Performance, and Patterns / Practices

How’s it Compare

?

Hosted vs non-hosted, across application versions

Is it Making a Differenc

e?

Business Outcome, and R&D ROI

Beta Cycle

Measure stability and quality Measure usage, patterns and coverage Reduce end user burden and improve participation

Production Lifecycle

Automate end-user experience improvement program Measure business impact Measure and improve R&D ROI

Evaluation Process

Connect usage to sales cycle Manage de-activation and/or extension

Page 18: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

References

Visual Studio SDK: http://msdn.com/vsx Visual Studio Blog: http://blogs.msdn.com/visualstudio VSX Samples: http://code.msdn.com/vsx Extensions Gallery:

http://visualstudiogallery.msdn.com/vsx WPF Data Visualization Toolkit: http://wpf.codeplex.com Managed Extensibility Framework:

http://mef.codeplex.com VS 2010 Editor Extension Demo:

http://rieditorextension.codeplex.com/ PreEmptive Solutions Blog:

http://www.preemptive.com/blog Runtime Intelligence Portal:

http://www.runtimeintelligence.com

Page 19: Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence - CNUG

References

Microsoft CEIP: http://www.microsoft.com/products/ceip/EN-US/default.mspx

Usefulness of CEIP for Office 2007: http://blogs.msdn.com/jensenh/archive/2006/04/05/568947.aspx

CEIP for Windows 7: http://arstechnica.com/microsoft/news/2009/10/windows-7-had-8-million-testers-biggest-beta-ever.ars

PreEmptive Runtime Intelligence: http://www.preemptive.com/products/runtime-intelligence/overview

PreEmptive CEIP: http://www.preemptive.com/solutions/ceip/overview