This is the sixth topic in a series discussing the essential features that make up the Visio application.
Essential Feature: Extensibility
Part of the original vision for Visio was that you could use it to make almost any kind of drawing. Rather than focus on being just a flowcharting application or just a floor plans application, Visio chose to be a general purpose diagramming and drawing application. The features built into the product covered the basics of working with shapes on a page.
However, the Visio architects determined that it would be quite useful for specific types of diagrams to have more specialized behavior. Developers can supplement the generic diagramming experience with functionality that is tailored to the drawing type, making Visio a great Organization Chart application and a great HVAC ductwork application and a great Database Modeling application.
One of the interesting aspects of Visio's extensibility story is that the shipping product itself contains over one hundred add-ons to the core drawing engine that utilize the automation interface. These add-ons range from simple utilities like the Area & Perimeter add-on to the robust behaviors in Organization Charts or UML diagrams. Many of the features people use every day in Visio are not general features of Visio but are actually capabilities provided by add-ons. One of the great benefits of using the Visio API for our own features is that it is well-tested before any Visio product goes out the door.
The real power in Visio extensibility story though is the breadth of automation options available to developers. Here are some of the more common ways to build on the Visio platform:
Extensibility Mechanism |
Description |
Visio Add-on |
Special C++ dynamic link library |
COM Add-in |
Standard extensibility interface across Microsoft Office. These may be developed in any programming language that supports COM Automation as well as any managed language. |
VBA |
Visual Basic for Applications built into the Visio product |
Visio Drawing Control |
ActiveX control for inserting a Visio surface into your application |
XML File Format |
Full fidelity file format for Visio documents in XML structure |
Custom Shapes and Stencils |
User-created content with powerful set of custom behaviors possible |
The Visio drawing platform gets richer with each release, and fortunately there is a great resource to cover it all. The Visio SDK was initially released with Visio 2002 and has been updated for Visio 2003 and the upcoming Visio 2007 as well. It's available free on MSDN for download. There is a lot to learn and take advantage of with Visio extensibility. Look for more posts on this topic in the future.