Architecture du concepteur d'extensibilité de données
L'extensibilité du concepteur de données (DDEX) fournit un mécanisme permettant d'étendre les générateurs de données dans Visual Studio de communiquer avec des sources de données externes et pour exposer leurs hiérarchies d'objets et pour autoriser les vues de hiérarchie dans Explorateur de serveurs. DDEX permet l'accès aux objets de source de données externe au moment de le design, en fournissant non seulement la visibilité d'objet de données dans Visual Studio, mais ce qui permet également la fonctionnalité de glisser-déplacer, la visibilité de grille de la propriété de l'objet, et l'intégration en fonctionnalités des générateurs de Visual Studio. En résumé, DDEX permet aux fournisseurs tiers sources de données pour apprécier la citoyenneté complète de l'expérience au moment de le design de Visual Studio.
Notes
Les fournisseurs de DDEX sont différents des fournisseurs de données.NET.Pour plus d'informations, consultez fournisseurs de DDEX.
L'extensibilité du concepteur de données, ensuite, est sur l'utilisation de le DDEX Kit de développement logiciel et les API de l'architecture de la fonctionnalité et managées pour intégrer des objets de source de données externe dans l'environnement de Visual Studio.
Notes
Ce Kit de développement logiciel doit être utilisé conjointement à Étendre la présentation de Visual Studio.
Vue d'ensemble de l'architecture
L'illustration ci-dessous fournit une vue globale et schématique de l'architecture de DDEX. Dans cet objet, vous constatez que le client de DDEX est hébergé dans Visual Studio, et qu'il utilise l'accès et les services principaux (une partie de la bibliothèque de classes managées de DDEX) pour communiquer et interagir avec un fournisseur de DDEX. Le fournisseur de DDEX lui-même est simplement une implémentation des entités de stockage, qui sont des classes managées. DDEX ensuite communique avec la couche données à l'aide d'un fournisseur de données dédié.NET. Notez, cependant, que le fournisseur de données peut être omis dans les cas où le fournisseur de DDEX est fourni de la fonction nécessaires pour interagir avec la source de données.
diagramme d'architecture de DDEX
De la couche de DDEX, deux de ses parties sont centralisés : Entités de prise en charge DDEX et services de DDEX.
Entités, les services principaux, et services d'accès de support
Les entités de prise en charge DDEX sont des interfaces qu'un fournisseur de DDEX implémente pour activer l'extensibilité de données. En fait, c'est l'implémentation de ces entités de prise en charge constituant un fournisseur de DDEX.
Les services de DDEX, en revanche, sont rompus dans des services principaux et des services d'accès. Les services principaux sont les services de base via lesquels les entités de support sont exposées. Ils sont des interfaces implémentées en interne comme des classes managées qui des appels de Visual Studiopour créer des entités de niveau supérieur de support de fournisseur de DDEX, et de l'utilisation des fournisseurs de données et les sources de données. Les services d'accès, également interfaces en interne implémentée comme des classes managées, fournit à Visual Studio la capacité de créer et d'utiliser des connexions de données et avoir accès aux représentations de structure de données en mémoire de la prise en charge XML d'objet de données et de la prise en charge XML de vue de données. En outre, les services d'accès utilisent des entités de stockage.
L'illustration suivante représente la relation entre les entités de support et les services plus en détail.
Diagramme d'entités et des services d'accès de support
entités de support
Les API managées qui constituent une partie de fournisseur de DDEX largement en trois catégories :
prise en charge de connexion
prise en charge d'objet de données
prise en charge de vue de données
prise en charge de connexion
La prise en charge de connexion permet de spécifier les informations de connexion, y compris la source de données et la chaîne de connexion. Cette opération peut être effectuée soit par programme, si les informations de connexion sont connues, ou à l'aide de l'interface utilisateur de connexion pour inviter l'utilisateur à entrer les informations de connexion requises. éventuellement, un fournisseur de DDEX peut exposer un contrôle de connexion qui est hébergé dans la boîte de dialogue de connexion de Visual Studio.
prise en charge d'objet de données
À l'aide d'un fichier XML de prise en charge d'objet de données, un fournisseur de DDEX définit des objets de données exposés par le fournisseur de données pour une source de données particulière. elle définit également la hiérarchie d'objets, ou le modèle objet, pour ces objets.
Le moteur de métadonnées de Visual Studiogère une bibliothèque de classes fortement typées qui lui permettent d'identifier l'objet source de données générique comme des tables, des vues, des procédures stockées, ainsi que les propriétés de l'objet génériques, qu'il réduit à mappé types. Les définitions d'objet de données fournies dans votre fichier XML vous permettent aux types d'objet de mappage pris en charge par votre fournisseur de données à un de ces types génériques qui sont identifiés par le moteur de métadonnées.
En plus de définir des types d'objet et de les associer aux types génériques, votre schéma de prise en charge d'objet de données doit également spécifier :
Énumérez procédure les objets du type spécifié, qui est effectuée en spécifiant un gestionnaire qui est appelé par l'énumération de l'objet est requis.
Comment récupérer les métadonnées d'objet de métadonnées, telles que l'identificateur d'objet ou les propriétés de l'objet.
Construisez procédure un objet du presse-papiers dans les cas où une opération de copie est exécutée sur un objet du type spécifié. les générateurs de données deVisual Studioutilisent le format de presse-papiers de référence (DSRef) de source de données. Les objets qui prennent en charge DSRef peuvent faire glisser-et-être déplacés vers des générateurs de données de Visual Studio .
Pour plus d'informations sur la prise en charge d'objet de données, consultez prise en charge d'objet de données de DDEX.
prise en charge de vue de données
À l'aide d'un fichier XML de support de vue de données, un fournisseur de DDEX définit la hiérarchie physique des objets de données affichés sous un nœud donné de connexion dans Visual Studio Explorateur de serveurs. Vous pouvez définir plusieurs vues pour la même source de données.
Outre la définition de la hiérarchie d'objets physique, vous pouvez également spécifier des informations supplémentaires sur les nœuds de la hiérarchie, notamment des renseignements tels que le nom complet localisé, les commandes de menu contextuel (nom de la commande, le CLSID, et le gestionnaire), les icônes, et d'autres informations, si nécessaire.
Pour plus d'informations sur la prise en charge de vue de données, consultez prise en charge de vue de données de DDEX.
Services principaux
DDEX fournit un jeu d'interfaces qui sont implémentées en interne comme des classes managées qui des appels de Visual Studiopour accéder aux fonctionnalités implémentée par le fournisseur de DDEX sous la forme d'entités de niveau supérieur de stockage. Ces interfaces sont connues collectivement comme principaux services de DDEX.
Les services principaux plus importants sont les suivants :
Le gestionnaire de fournisseur permet d'énumérer les fournisseurs inscrits et la requête de DDEX pour les objets d'un type spécifique (interface d'IVsDataProviderManager ).
La fabrique d'objet fournisseur de données permet de créer des objets de données implémentés par le fournisseur de DDEX (interface d'IVsDataProviderObjectFactory ).
Les principaux services de DDEX permettent à Visual Studio de communiquer avec des sources de données dans un contexte au moment de le design. Cela nécessite avoir des composants qui entretiennent une connexion à la source de données mais aussi avoir un ensemble de services spécialisés qui permettent d'accéder aux types d'objet source de données et des vues de leurs dispositions hiérarchiques.
Dans une implémentation, appelez la méthode d'un client de DDEX à la fabrique d'objet fournisseur de données pour instancier les blocs de construction principaux. Ces blocs de construction principaux incluent des objets de prise en charge connexion-bâtiment et de connexion (consultez les entités et les services d'accès de support schéma). Certains de ces objets modulaires génèrent ensuite les objets secondaires, si nécessaire, sur vers le bas la hiérarchie d'entités de stockage.
services d'accès
DDEX fournit un jeu d'interfaces qui sont implémentées en interne comme des classes managées que Visual Studio appelle pour accéder aux fonctionnalités de la connexion de données et à la représentation en mémoire de la prise en charge XML d'objet de données et de la prise en charge XML de vue de données. Ces interfaces sont connues collectivement comme services d'accès aux DDEX.
Certains services d'accès plus importants sont les suivants :
La fabrique de connexion de données vous permet de créer des objets de Connexion (interface d'IVsDataConnectionFactory ).
La boîte de dialogue de connexion de données vous permet de demander des informations à l'utilisateur des informations de connexion et pour créer des objets de Connexion (interface d'IVsDataConnectionDialog ).
Vous pouvez afficher la connexion à la source de données (et ses parties de clé, telles que la fabrique de gestionnaires de connexion et de connexion) en tant que service intégré offert par l'infrastructure d'extensibilité de données. Dans cette vue, le moteur de métadonnées de Visual Studio agit comme un client de connexion, la consommation des API des services d'accès, qui appelle à son tour dans leurs entités correspondantes de stockage. C'est le mécanisme par lequel Visual Studio assemble une structure de soutènement pour prendre en charge la connexion à la source de données.
Superposition entre des services d'accès et des entités de support
La principale différence entre les entités de support et les services d'accès est que les clients d'extensibilité consomment des services d'accès (principalement l'objet de Connexion), qui communiquent après par le fournisseur de DDEX. Affiche l'ordre inverse, les fournisseurs doivent interagir avec la connexion à l'aide de les API des entités de stockage.
Dans certaines circonstances, les rôles des services d'accès et des entités de support se chevauchent, en particulier où il est nécessaire de garantir la sécurité des threads. l'architecture de DDEX fournit une couche sécurisée de verrouillage entre le fournisseur de données et le client de connexion à cet effet. L'exemple suivant illustre la fonctionnalité.
Lorsque vous obtenez, par exemple, le service d' IVsDataCommand de l'objet de Connexion, plutôt que l'obtention d'un objet de commande de données, l'objet de Connexion obtient à la place une implémentation de proxy de l'interface d' IVsDataCommand . L'implémentation de proxy peut communiquer avec l'entité de support qui l'implémente ; en outre, l'implémentation de proxy est thread-safe. De cette manière, le proxy verrouille d'abord la connexion et l'appelle à son tour vers le bas dans les entités de support ; une fois terminé à la connexion, il déverrouille de nouveau la connexion, libérant un verrou de thread.
Dans cet exemple, l'interface d' IVsDataCommand est implémentée en tant que service d'accès (parce que le client s'appelle directement), mais se comporte également comme une entité de stockage, car le fournisseur de données implémente la même interface, et que les résultats sont la création d'une couche sécurisée de verrouillage entre le fournisseur et le client de connexion.
Référence DDEX
Le DDEX Kit de développement SDK fournit une documentation complète de référence du langage :
Schéma XML de prise en charge d'objet de données
Utilisez le schéma de prise en charge d'objet de données (DataObjectSupport.xsd) de gérer par programmation et énumèrent les instances d'objets sources de données. Pour plus d'informations sur les objets de données, consultez prise en charge d'objet de données de DDEX.
schéma XML de support de vue de données
Utilisez le schéma de support de vue de données (DataViewSupport.xsd) pour gérer un ou plusieurs vues de votre disposition de hiérarchie d'objet de données tel qu'il apparaît dans l'explorateur de serveurs. Pour plus d'informations sur les vues de données, consultez prise en charge de vue de données de DDEX.
Référence de la bibliothèque de classes managées
Le DDEX Kit de développement SDK fournit un jeu d'interfaces managées et les classes de base qui vous permettent d'écrire un fournisseur managé de DDEX.