Title: Extending Visual Studio
1 Extending Visual Studio
Uitbreidingen voor Visual Studio
- Mark Miller
- Developer Express
- markm_at_devexpress.com
2About Mark Miller
Great UI
Refactoring
Chief Architect, IDE Tools Developer Express
Plug-in Architectures
Design Patterns
Developer Tools
Writing Code
1980
1990
2000
Today
- Design priorities
- Great architecture
- Great user experience
- Simplicity, especially in client code
- Products
- DXCore
- CodeRush
- Refactor!
3Ways to Extend VS
- Macros
- Automation Model
- VSIP
- DXCore
4Macros
- Advantages
- Easy access (if youre a VB programmer)
- Record/Playback
- Great for learning how to access extensibility
model - Disadvantages
- Long load time if VB language service isnt
loaded yet.
5Automation Model
- Advantages
- Wizards to get you started
- Can be written in any .NET language
- More powerful than macros
- Disadvantages
- Must be compiled
- Limited power
- Some classes have poor performance
- Some methods are not thread-safe
6VSIP
- Advantages
- Powerful
- Low-level
- Disadvantages
- Steep learning curve
- C knowledge required to exploit everything
- Managed interop assemblies are tied to VS
versions - Cant do basic things, like get mouse paint
events
http//msdn.microsoft.com/vstudio/extend
7DXCore
- Nearly as powerful as VSIP
- Easier than a VS Add-in
- Fewer lines of code
- Smarter event arguments
- Powerful methods and properties
- Able to extend Visual Studio like no other
- Exclusive Flicker-free painting on the editor
- Exclusive Mouse events
- Exclusive Keyboard events
- Component-centric architecture
- Plug-in binaries work in VS02, VS03 and VS05
http//www.devexpress.com/DXCore
8Accessibility vs. Power
Accessibility
Power
9DXCore Architectural Overview
DXCore
Visual Studio
10DXCore Architectural Overview
DXCore
Visual Studio
11DXCore Architectural Overview
DXCore
Visual Studio
12DXCore Architectural Overview
- Perform a function
- Can be registered with VS
- Can be bound to a shortcut
The DXCore Manages
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
13DXCore Architectural Overview
- Bound to Actions
- Keyboard or mouse
- Associated context
The DXCore Manages
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
14DXCore Architectural Overview
The DXCore Manages
- Resolves feature availability
- Resolves ambiguity
- Finegrained precise
- Extensible
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
15DXCore Architectural Overview
The DXCore Manages
- Provides detailed parse tree
- Decouples feature from language
- C, VB, and C fully supported
- Full trees for XML Doc Comments
- HTML/XML, SQL soon
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
16DXCore Architectural Overview
- Insert, delete, or change text
- Position caret
- Select text
- Sophisticated text manipulation
The DXCore Manages
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
17DXCore Architectural Overview
- VS IDE events are available here
- Adds important new events
- Sophisticated EventArg descendants
The DXCore Manages
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
18DXCore Architectural Overview
The DXCore Manages
- Decoupled options architecture
- Integrated options page
- Storage handled automatically
Actions
Text Expansion
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio
19DXCore Architectural Overview
The DXCore Manages
Actions
Text Expansion
- Integrated User Guide
- Dynamically-generated assistance
- Hinting services
Shortcuts
Events
Options
Context
Discoverability
Source Model
Visual Studio