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
Isolated Shell
Can deploy Visual Studio IDE shell itself, Visual Studio 2008 Shell
- Empty IDE
- Free redistribution
Steps to Build and Deploy
- Visual Studio Extensions
- Packages
- Content
- Help
- Custom Shell
- Branding
- 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
- 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.