taking control of visual studio through extensions and extensibility anthony cangialosi senior...

24
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Upload: marilyn-black

Post on 04-Jan-2016

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Taking Control of Visual Studio through Extensions and ExtensibilityAnthony CangialosiSenior Program Manager LeadMicrosoft Corporation

DEV311

Page 2: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Evolution of Tools

Page 3: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Extensible Tools

Page 4: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Working with Extensions

Page 5: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

The Extension and Updates Dialog

Central View for all VS ExtensionsCentral VSIX managementSupport for VSIXs and MSIsUpdate notificationsServices for “in situ” experiencesPrivate Gallery support

Atom feedsSharePoint Lists

Page 6: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

DEMO

Working with Extensions

Page 7: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Building an Extension

Page 8: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Avoid repetitive work

Why Build Extensions?

Customize VS to your environment

Apply policies across teams

Faster and higher quality development Fame and fortune

Page 9: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Visual Studio Extensibility Map

SandCastle Extension

Team Extensibility

Data Designer Extensibility providers

Help Integration

Help documentation

F1 Integration

Dynamic helpIntegration

Team Foundation Server

TFSReporting

Source control Tracking

Process Templates

TeamBuild

Work Item Tracking

Debugger

Debug Engines

ExpressionEvaluator

DebuggerVisualizers

Source controlClient Provider

Shell customization

Team Test

Custom Host Adapters

Custom Test type

GraphicalModellingDesigner

Coherence

Validation

Text document

Multi ViewEditor

DocumentEditors

Code Model

CodeEditor

Language Services

Code snippets

AdornersIntelliSenseTags& Classifiers

Integration to Object browser And Class View

Project model

Project Type

Project Properties pages

ItemTemplate

Project Template

SolutionTemplate

Custom Wizards

External Tools

User Interface

Componentmodel

PropertiesWindows

CodeGenerator

T4 Technology

Single fileGenerator

Menus/CommandsVSCT

VS Commands

Error List

Toolbox

Task List

Options PagesStatus

Output Window

Help About Box

Tool Windows

IDE Extensibility

Project Location

Splash Screen

Application Id

Feature Customizations

Page 10: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Ingredients of an Extension

Pre-written source templateProject and Item template

Menu Shortcuts for custom tools

Menu command

WPF DataGrid Custom control

Server explorerTool window

XSD DesignerMultiView editor

Code productivity toolEditor margins, adornments and tags, and classifiers

Programming languageProject system, Language service, project templates, build tasks and targets

DebuggerDebug Visualizers, expression evaluator, debug engine

Platform SDKAll of the above

Page 11: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Core Concepts: VSIX

A simple way to deploy Visual Studio extensionsOPC based packageLocalizable, extensible, and supports code signingSimple end user management through extension ManagerVSIXManifest also supports MSISupports most extension points in Visual StudioExtension dependency resolution

Xcopy deploy; no magic, no hidden stateSimplified authoring through VS SDK

Page 12: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Anatomy of a VSIX

VSIX

[Content_Types].xmlextension.vsixmanifestAsset payloadOther supporting file

extension.vsixmanifest

Description MetadataPrerequisitesDependenciesAssets

Page 13: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Core Concepts: VS Packages

Primary extensibility model in Visual StudioMost shell IDE features are VS PackagesCOM architecture with friendly managed wrappers (MPF)

Page 14: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Core Concepts: MEF

Library for creating extensible applicationsComponent discovery via compositionSimple Inter-component communicationComponents Reusable across multiple applications

Key ConceptsCatalogsImportsExports

Page 15: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Demo

Building an Extension

Page 16: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Where can you Deploy Extensions

Express Editions

Content: Templates Controls NuGetsExtension SDKs

Pro, Premium, Ultimate & Shell

Capabilities: Shell ExtensionsEditor ExtensionsProject SystemsAnd more

Page 17: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Visual Studio Industry Partners (VSIP)Deliver better tools for Visual Studio Faster

VSIP History Program founded in 1998 to work with partners to build extensions for the Visual Studio IDE.

VSIP Today 184 partners that extend the value of the Visual Studio family of products to create, test, enhance and deploy applications across all platforms.

Value to Partners Development and business planning support for quicker, closer integration with Visual Studio releases

Value to Development TeamsDevelopment solutions that empower them to deliver better applications faster.

Visual Studio 2012 RC Sim-Ship Partners

Page 18: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Track Resources

Visual Studio SDK: www.microsoft.com/en-us/download/details.aspx?id=29930

VSX Learning Resources: www.msdn.com/vsx/

Visual Studio Library Resources: msdn.microsoft.com/en-us/library/ae3cxw0w

VSIP: http://www.msdn.com/vsip ([email protected])

Introducing the New Visual Studio 2012 Unit Testing Experience: 6/11 @ 1:15PM

Visual Studio Tips & Tricks: 6/12 @ 1:30PM

Page 19: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

DEV Track Resources

Visual Studio Home Page :: http://www.microsoft.com/visualstudio/en-us

Jason Zander’s Blog :: http://blogs.msdn.com/b/jasonz/

Facebook :: http://www.facebook.com/visualstudio

Twitter :: http://twitter.com/#!/visualstudio

Somasegar’s Blog :: http://blogs.msdn.com/b/somasegar/

Page 20: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Resources

Connect. Share. Discuss.

http://northamerica.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 21: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

Complete an evaluation on CommNet and enter to win!

Page 22: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

MS Tag

Scan the Tagto evaluate thissession now onmyTechEd Mobile

Page 23: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311

© 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.

Page 24: Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311