Data Designer EXtensibility (by Milind)

Visual Studio 2005, as in past releases, provides a strong design time experience for SQL Server. But for the first time, in VS 2005, we have added the ability to extend some of the key data features to any data source or any data provider. This is available as part of VSIP.

VSIP allows our partners to extend various features of Visual Studio. This enables our partners to provide better functionality and user experience for their customers. Customers and partners have asked for the ability to also extend data tools. In VS 2005 we provide this extensibility through Data Designer Extensibility (DDEX).

A few days ago Alan mentioned that I would write some more about this. So here goes...

DDEX is an extensibility mechanism that allows providers of third party data sources to expose access to data sources for a rich design-time experience. Extensibility can be specific to a given provider, or for a given data source. This allows you to extend the user experience in the following ways:

  • Connection and login dialogs – These are often specific to a data source. DDEX allows a provider to expose it’s own control that can be hosted in the VS connection dialog, and be used when connecting to that data source.
  • Database Explorer – Objects from the data source can be enumerated in the VS database explorer. The provider can define what should be enumerated and how it should be presented.
  • Drag and drop – Objects from the database explorer can be dragged and dropped onto a data designer.
  • Custom designers – A provider can provide custom designers, in place of default VS designers, to be used to view/edit objects. For instance, you may use your own table designer to view/edit tables from your data source.

DDEX, at a high level, is composed of the following parts:

  • Support Entities – These are APIs whose implementation constitutes a VS data provider. Support entities talk directly to a data source.
  • Access Services – These provide access to the data source and expose API that are consumed by clients, including the Metadata Engine.
  • XML Layer – Supports the self-describing character of data objects and the hierarchical view.
  • Metadata Engine – Internal to Visual Studio, the metadata engine provides black-box functionality that receives, parses, interprets and processes information passed to it as XML. VS uses this information to drive UI, designer behavior and data object support.

DDEX will be available in VS 2005 Beta 2.