Joseph Guadagno

Rants, Raves and other stuff about ASP.NET development.

PDC 2008 Experience: Day 4: Session = "Microsoft Visual Studio: Customizing and Extending Your Development Environment"

Agenda

  • Extending Visual Studio
    • Finding Extensions on VS gallery
    • Using the SDK to create packages
    • Created branded, stand alone application
  • Visual Studio 10 Extensibility
    • Customizing the Start Page
    • Building "drop in" component with MEF
    • Extending the VS 10 editor
    • Managing extensions and downloads

Extend your Development Experience

  • Find Tools
  • Customize Visual Studio
    • Templates
    • Code Snippets
    • Macros
    • Start Page
    • Debugger Visualization
  • Build new Tools
    • Add-ins
    • Packages
    • Designers
    • DSL
    • Editor components

Custom Packages: ToolWindow

  • Create custom tool windows
  • Content
    • XAML viewer
    • Developer Tool Extensibility actions
  • Use SDK sample browser to initiate
  • Visual Studio 10 changes
    • WPF shell

Isolated Shell

Can deploy Visual Studio IDE shell itself, Visual Studio 2008 Shell

  • Empty IDE
  • Free redistribution

Steps to Build and Deploy

  1. Visual Studio Extensions
    1. Packages
    2. Content
    3. Help
  2. Custom Shell
    1. Branding
  3. Register the new shell

What's New

Customizing the new Start Page

  • The start page is XAML which you can put whatever you want on it.
  • Stored in Documents/Visual Studio 10/Start Pages

Components

New Managed extensibility mechanism designed from ground up

  • All managed - no COM artifacts
  • Component and contract based
  • Used for emerging Visual Studio architecture
  • Appears first in the editor
  • Characterized by ease of construction and deployment...
    • Self describing payloads, "xcopy" semantics
    • DILU (drop in light up) deployment
    • *not* focused on hot deployment in the first release

MEF In the Visual Studio Editor

  • The new editor is built entirely from MEF components
  • Extending or modifying the editor amounts to providing you own components
  • Many extensibility points designed to capture common edits

Classification: Rich Text Formatting

  • Rich reading experience
  • Multiple font
  • Font styles and effects
  • Opacity
  • Higher Performance
    • Fewer coloring requests to language services
  • Composible
    • 3rd party "mixins" easily supported
    • Per-line transformations
  • You can also create your own colorizer for code, by word, phrase, etc.

Adornments: Powerful graphs

  • Any WPF visual
    • Drawn on one of several planes
  • two tracking modes
    • Associate with text
    • Associate with screen
  • Animation and behavior

Margin and Scrollbar control

  • Replace or customize existing margins and scroll bar
  • Define new margins
    • all four sides
  • Support for spatial mapping
  • Similar to "JetBrains ReSharper Panel"

Intellisense and Smart Tags

Any 3rd party (not just language services) can

  • Contribute to Completion
  • Override the presentation of Parameter Help or Quick Info
  • Add menu items to Smart Tags

Managing your extensions

  • What if you could discover and search for extensions within the IDE?
  • What is you could install, manage, and update extensions there as well?
  • What if we could make publishing IDE extensions (of all flavors) easy, fast, and fun?

Extension Manager

  • New "in situ" experience for extensions...
    • Discover (via VS Gallery)
    • Download/install/manage
    • Update
  • Simplified packaging and deployment
    • Same DILU semantics, but for both existing and new extensibility mechanisms
    • Xcopy deploy; no magic, no hidden state
      • Think unzip and a manifest in XML
    • VS SDK will deliver simplified authoring and "one step" publication story
    • Used by Visual Studio and 3rd parties.

Comments

Jen said:

Helpfull blog...

# November 11, 2008 5:00 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)