extending the visual studio 2010 code editor to visualize runtime intelligence - cnug

20
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligence Joe Kuemerle PreEmptive Solutions, LLC www.preemptive.com @jkuemerle @PreEmptive

Upload: joe-kuemerle

Post on 06-May-2015

1.992 views

Category:

Technology


0 download

DESCRIPTION

Come see how PreEmptive Solutions built an editor extension for Visual Studio 2010 that provides in-line visualizations of usage and stability data collected from applications in production via Runtime Intelligence Services. Learn about the new code editor’s extensibility model, how to write editor extensions using the Managed Extensibility Framework, how to interact with the text buffer, how to create custom margins and Windows Presentation Foundation-based adornments, and how to distribute the extension.

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