Freigeben über


Bezugspunkt-Designer-Erweiterbarkeits-Architektur

Bezugspunkt-Designer-Erweiterbarkeit (DDEX) stellt einen Mechanismus zum Erweitern von designern Daten in Visual Studio die Kommunikation mit externen Datenquellen hergestellt und ihre Objekt hierarchien verfügbar zu machen und Hierarchien Ansichten in Server-Explorerzu ermöglichen. DDEX ermöglicht den Zugriff auf externe Datenquellenobjekten zur Entwurfszeit sichtbarkeit Datenobjekt stellt nicht nur in Visual Studiobereit, jedoch ebenfalls aktiviert Drag & Drop-Funktionalität, Objekteigenschaft Eigenschaftenraster sichtbarkeit und Integration in Funktionen der Visual Studio Designer. Kurz gesagt ermöglicht DDEX Anbietern Datenquellen von Drittanbietern, um vollständige Staatsbürgerschaft in der Entwurfszeitumgebung zu Visual Studio genießen.

Hinweis

DDEX-Anbieter .NET-Datenanbietern sind nicht identisch.Weitere Informationen finden Sie unter DDEX-Anbieter.

Bezugspunkt-Designer-Erweiterbarkeit kann dann über die Verwendung des DDEX SDK und in der Architektur der API und verwaltete Funktion, um externe Datenquellenobjekte in die Visual Studio Umgebung zu integrieren.

Hinweis

Dieses SDK sollte in Verbindung mit Erweitern von Visual Studio Overviewverwendet werden.

Architekturübersicht

Die folgende Abbildung stellt ein hoher Ebene, schematischer DDEX-Architektur der Organisation. In ihr sehen Sie, dass der DDEX-Client in Visual Studiogehostet wird und dass es den Zugriff und die Basisdienste (Teil der verwalteten Klassenbibliothek DDEX) verwendet wird, um mit einem DDEX-Anbieter und die Kommunikation zu interagieren. Der DDEX-Anbieter selbst ist einfach eine Implementierung der Unterstützung entitäten, die verwaltete Klassen sind. DDEX kann dann die Datenschicht mithilfe eines dedizierten .NET-Datenanbieters angehören. Beachten Sie jedoch, dass der Datenanbieter weggelassen werden kann, wenn der DDEX-Anbieter mit der Funktion ausgerüstet wird, die benötigt wird, um auf die Datenquelle zu interagieren.

DDEX-Architektur-Diagramm

DDEX-Architektur

Von der DDEX-Ebene sind zwei seiner Bestandteile von zentraler Bedeutung: DDEX-Stützentitäten und DDEX-Dienstleistungen.

Basisdienste - entitäten unterstützen, und Zugangsservices

DDEX-Stütz entitäten sind Schnittstellen, die ein DDEX-Anbieter implementiert, um Erweiterbarkeit von Daten ermöglichen. Tatsächlich handelt es sich um die Implementierung dieser Unterstützung entitäten, die einen DDEX-Anbieter bildet.

Andererseits sind DDEX-Dienstleistungen oben in Zugangsservices und Basisdienste nicht mehr funktionsfähig. Basisdienste sind Dienste, die von der Basisklasse auf entitäten verfügbar gemacht werden. Sie können die Schnittstellen, die intern als verwaltete Klassen implementiert werden, die Visual Studio Aufrufe zu erstellen DDEX-Anbieter unterstützen entitäten der obersten Ebene, und mit Datenanbietern und Datenquellen zu arbeiten. Zugangsservices, die auch die Schnittstellen sind, die intern als verwaltete Klassen implementiert werden, Visual Studio befähigen mit Datenverbindungen zu erstellen und zu umgehen und den Zugriff auf die Datenstruktur Darstellungen im Speicher der Datenobjekt Datenansichts Unterstützung für XML- und der Unterstützung für XML. Zudem nutzen Zugangsservices entitäten unterstützen.

Die folgende Abbildung stellt die Beziehung zwischen Unterstützen von Diensten und entitäten ausführlicher dar.

Unterstützen von entitäts-und - Zugangsservice-Diagramm

Bild zur API-Zuordnung

Unterstützen von entitäten

Das verwaltete APIs, das einen DDEX-Anbieter fallen breit in drei Kategorien unterteilt: Bewerten

  • Unterstützung von Verbindungen

  • Unterstützung für Datenobjekt

  • Unterstützung Datenansichts

Verbindungs-Unterstützung

Unterstützung für Verbindungen bietet eine Möglichkeit, Verbindungsinformationen, einschließlich Datenquelle und Verbindungszeichenfolge anzugeben. Dies kann entweder programmgesteuert ausgeführt werden, wenn die Verbindungsinformationen unbekannt ist oder mithilfe der Benutzeroberfläche für Verbindungen verwendet, um den Benutzer zur Eingabe der erforderlichen Verbindungsinformationen aufzufordern. Optional kann ein DDEX-Anbieter ein, das Verfügbarmachen für Verbindungen im Dialogfeld Verbindung Visual Studio gehostet wird.

Datenobjekt-Unterstützung

Verwenden einer Datenobjekt unterstützen XML File definiert ein DDEX-Anbieter die Datenobjekte, die vom Datenanbieter für eine bestimmte Datenquelle verfügbar gemacht werden. Sie definiert auch die Objekthierarchie oder Objektmodell für diese Objekte.

Das Visual Studio Metadatenmodul verwaltet eine Bibliothek mit stark typisierten Klassen, die ihre ermöglichen, generisches Datenquellenobjekt z. B. Tabellen, Ansichten und gespeicherte Prozeduren zu erkennen, sowie von allgemeinen Objekteigenschaften bei, die in der zugeordneten Typen reduziert. Die Definitionen Datenobjekt in der XML-Datei enthalten sind, können Sie objekt-typen Zuordnungsobjekt vom Datenanbieter in einen dieser generischen Typen unterstützt werden, die durch das Metadatenmodul erkannt werden.

Zusätzlich zum Definieren von Objekttypen und zum Zuordnen zu den generischen Typen, muss das Datenobjekt Schema unterstützen auch Folgendes angeben:

  • Wie Sie Objekte des angegebenen Typs, die durchgeführt wird, indem angibt, ein Handler auflistet, der aufgerufen wird, wenn Objekt aufgelistet werden, ist erforderlich.

  • Erläutert, wie Sie Metadaten Metadatenobjekt, z. B. Objektbezeichner oder Objekteigenschaften abrufen.

  • So erstellen Sie ein Zwischenablage Objekt erstellt, wenn ein Kopiervorgang für ein Objekt des angegebenen Typs ausgeführt wird. Visual Studio den Designer verwenden das Zwischenablageformat des Datenquellen-Bezugs (DSRef). Objekte, die DSRef unterstützen, können auf Visual Studio Designer Daten gezogene-und-abgelegt werden.

Weitere Informationen zur Unterstützung von Datenobjekt finden Sie unter DDEX-Datenobjekt-Unterstützung.

Datenansichts-Unterstützung

Verwenden einer Datenansichts unterstützen XML File definiert ein DDEX-Anbieter die physische Hierarchie von Datenobjekten, die unter einem angegebenen Knoten Verbindungen in Visual Studio Server-Explorerangezeigt werden. Sie können mehrere Ansichten für die gleiche Datenquelle definieren.

Zusätzlich zum Definieren der Hierarchie des physischen Objekts, können Sie zusätzliche Informationen über Hierarchieknoten, einschließlich lokalisierten Anzeigenamen, z. B. B. Befehle im Kontextmenü des Befehls (CLSID) und Handler, Symbole und andere Informationen enthalten, nach Bedarf.

Weitere Informationen zur Unterstützung von Datenansichts finden Sie unter DDEX-Datenansichts-Unterstützung.

Basisdienste

DDEX stellt eine Reihe von Schnittstellen, die intern als verwaltete Klassen implementiert werden, die Visual Studio aufruft, um die Funktionen zuzugreifen, die vom DDEX-Anbieter in Form von Unterstützung entitäten der obersten Ebene implementiert wird. Diese Schnittstellen werden zusammen als die DDEX-Kerndienste.

Die wichtigeren Basisdienste bietet folgende Vorteile:

  • Anbieter-Manager ermöglicht es Ihnen, registrierte DDEX-Anbieter und - Abfrage für Objekte eines bestimmten Typs (IVsDataProviderManager-Schnittstelle) aufzulisten.

  • Datenanbieter-Objekt-Factory bietet eine Möglichkeit, die Datenobjekte zu erstellen, die vom DDEX-Anbieter implementiert werdenIVsDataProviderObjectFactory (Schnittstelle).

DDEX-Kerndienste ermöglichen Visual Studio, um mit Datenquellen in einem Entwurfszeit Elementkontext zu kommunizieren. Dies erfordert, dass Komponenten, die eine Verbindung mit der Datenquelle und Verwenden eines Satzes Fachdienste bedienen, die Zugriff auf objekt-typen Datenquellenobjekt und Ansichten der hierarchischen Lay-outs ermöglichen.

In einer typischen Implementierung Aufrufe eines DDEX-Clienten auf der Datenanbieter Objekt bausteine factory, um den Schlüssel zu instanziieren. Diese Schlüssel bausteine umfassen Erstellungs- und die Verbindung mit den Verbindungen für Objekte (finden Sie unter Support entitäts-und - Zugangsservice-Diagramm). Einige dieser Baustein Objekte generieren dann bei Bedarf die sekundäre Objekte unterstützen entitäts unten in der Hierarchie.

Zugangsservices

DDEX stellt eine Reihe von Schnittstellen, die intern als verwaltete Klassen implementiert werden, die Visual Studio aufruft, um Funktionen für Datenverbindung und die Darstellung im Arbeitsspeicher Datenobjekt Datenansichts der XML und Unterstützung für die Unterstützung von XML zuzugreifen. Diese Schnittstellen werden zusammen als die DDEX-Zugangsservices.

Einige der wichtigeren Zugangsservices gehören folgende:

  • Datenverbindungs-Factory können Sie Verbindungsobjekte (IVsDataConnectionFactory-Schnittstelle) zu erstellen.

  • Datenverbindungs-Dialogfeld ermöglicht es Ihnen, den Benutzer zu Verbindungsinformationen aufzufordern und Verbindungsobjekte (IVsDataConnectionDialog-Schnittstelle) zu erstellen.

Sie können die Datenquellenverbindung (und ihre wesentlichen Teilen, wie die Verbindungs-Manager-) factory Verbindungen und als integrierter Dienst an, der vom Framework erweiterbarkeits Daten vorgebracht wird. In dieser Ansicht Visual Studio funktioniert das Metadatenmodul z. B. ein client Verbindungen und nutzt Zugangsservices APIs, die wiederum in ihre entsprechenden Unterstützung entitäten aufrufen. Dies ist der Mechanismus, mit dem eine Visual Studio unterstützen Struktur zusammenbaut, um die Verbindung zur Datenquelle zu verarbeiten.

Überlappung zwischen den Zugangsservices und Support entitäten

Der Hauptunterschied zwischen Unterstützung entitäten und Zugangsservices ist, dass die clienten Referenz (Zugangsservices in erster Linie das Verbindungsobjekt) in Anspruch nehmen, die sich wiederum mit dem DDEX-Anbieter kommunizieren. aus der entgegengesetzten Richtung angezeigt, interagieren Anbieter der Verbindung, indem sie die API der Unterstützung entitäten verwenden.

Unter bestimmten Umständen die Rollen der Zugangsservices und die Unterstützung entitäten Überlappung, insbesondere wenn es notwendig ist, Threadsicherheit zu gewährleisten. Die DDEX-Architektur stellt eine sichere Sperren Ebene zwischen dem Datenanbieter und dem clienten Verbindungen zu diesem Zweck. Im folgenden Beispiel wird die benutzerdefinierte Funktion.

Wenn Sie zum Beispiel den IVsDataCommand Dienst aus dem Verbindungsobjekt abrufen, statt ein erhaltend Datenbefehls Objekt, ruft das Verbindungsobjekt IVsDataCommand Proxy stattdessen eine Implementierung der Schnittstelle ab. Die Unterstützung ist die Implementierung des Proxys entität, die sie implementiert. darüber hinaus ist die Implementierung der threadsichere Proxy. Auf diese Weise Sperren der Proxy zuerst die Verbindung, und ruft anschließend unten in die Unterstützung entitäten an. wenn der Verbindung beendet wurde, wird er wieder die Verbindung frei und gibt eine sperre Thread freigegeben.

In diesem Beispiel wird die IVsDataCommand als Schnittstelle implementiert (Zugangsservice darin, dass der Client sie direkt aufruft), verhält aber auch als Unterstützung entität, insofern, dass der Datenanbieter die gleiche Schnittstelle implementiert und dass das Ergebnis die Erstellung einer sicheren Sperren Ebene zwischen dem Anbieter und dem clienten Verbindungen.

DDEX-Referenz

Das DDEX SDK stellt vollständige Dokumentation zur Sprachreferenz:

Datenobjekt-Stützxml-schema

Verwenden Sie das Datenobjekt für DataObjectSupport.xsd Schema (), um Instanzen von Datenquellenobjekten programmgesteuert zu verwalten und aufzulisten. Weitere Informationen über Datenobjekte finden Sie unter DDEX-Datenobjekt-Unterstützung.

Datenansichts-Stützxml-schema

Verwenden Sie das Datenansichts Schema unterstützen (DataViewSupport.xsd), um eine oder mehrere Ansichten des Datenobjekts hierarchien layouts zu verwalten, wie er im Server-Explorer angezeigt wird. Weitere Informationen zu Datenansichten finden Sie unter DDEX-Datenansichts-Unterstützung.

Verwalteter Klassenbibliotheks-Verweis

Das DDEX SDK enthält einen Satz verwalteter Schnittstellen und Basisklassen, mit denen Sie einen verwalteten DDEX-Anbieter zu schreiben.

Siehe auch

Konzepte

Übersicht über Datenansichts-Stütz

DDEX-Anbieter

DDEX-Datenobjekt-Unterstützung