Compartir a través de


Arquitectura de la extensibilidad del diseñador de datos

Extensibilidad (DDEX) de Diseñador de datos proporciona un mecanismo para los diseñadores de los datos que extienden en Visual Studio para comunicarse con orígenes de datos externos y exponer sus jerarquías de objetos y permitir las vistas de la jerarquía en Explorador de servidores. DDEX permite el acceso a los objetos de origen de datos externo en tiempo de diseño, no sólo proporcionando visibilidad del objeto de datos en Visual Studio, pero también habilitar la funcionalidad de arrastrar y colocar, visibilidad de la cuadrícula de la propiedad del objeto, y la integración en las características de los diseñadores de Visual Studio. En resumen, DDEX permite que los proveedores de orígenes de datos de terceros disfruten de ciudadanía completa en la experiencia en tiempo de diseño de Visual Studio.

NotaNota

Los proveedores de DDEX son diferentes de los proveedores de datos.NET.Para obtener más información, vea proveedores de DDEX.

Extensibilidad de Diseñador de los datos, a continuación, se sobre cómo utilizar el DDEX SDK y las API de arquitectura de características y administrado para integrar objetos de origen de datos externo en el entorno de Visual Studio.

NotaNota

Este SDK se debe utilizar en combinación con Información general de Visual Studio que extiende.

Información general sobre la arquitectura

La ilustración siguiente proporciona una vista de alto nivel, esquemática de la arquitectura de DDEX. En él, verá que hospedan el cliente de DDEX en Visual Studio, y que utiliza el acceso y los servicios principales (parte de la biblioteca de clases administradas de DDEX) para comunicar e interactuar con un proveedor de DDEX. El propio proveedor de DDEX es simplemente una implementación de entidades admiten, que son clases administradas. DDEX continuación se comunica con el nivel de datos mediante un proveedor de datos dedicado.NET. Observe, sin embargo, que el proveedor de datos se puede omitir en caso de que el proveedor de DDEX esté preparado de capacidad necesaria para interactuar con el origen de datos.

Diagrama de arquitectura de DDEX

Arquitectura de DDEX

El nivel de DDEX, dos de los elementos que son esenciales: Entidades de soporte de DDEX y servicios de DDEX.

Entidades admiten, servicios principales, y Access Services

DDEX admiten las entidades son las interfaces que un proveedor de DDEX implementa para habilitar extensibilidad de los datos. De hecho, es la implementación de estas entidades admiten que constituye un proveedor de DDEX.

Los servicios de DDEX, por otro lado, se quebrados en los servicios principales y los servicios de acceso. Servicios principales son servicios bases que exponen a entidades admiten. Son interfaces implementa internamente como clases administradas que las llamadas de Visual Studiopara crear entidades de nivel superior de compatibilidad de proveedor de DDEX, y trabajar con proveedores de datos y los orígenes de datos. Obtener acceso a servicios, que también son interfaces internamente implementadas como clases administradas, proporcionan Visual Studio con la capacidad de crear y ejecutar las conexiones de datos y tener acceso a las representaciones de estructura de datos en memoria de compatibilidad XML del objeto de datos y de la vista de datos XML compatible con. Además, los servicios de acceso utilizan las entidades admiten.

La ilustración siguiente describe la relación entre las entidades admiten y servicios con más detalle.

Entidades admiten y diagrama de Access Services

Imagen de asignación de API

Entidades admiten

Los API administradas que forman una reducción del proveedor de DDEX ampliamente en tres categorías:

  • Compatibilidad con la conexión

  • Compatibilidad con el objeto de datos

  • Compatibilidad con la vista de datos

Compatibilidad con la conexión

Compatibilidad con la conexión proporciona una manera de especificar información de conexión, como origen de datos y la cadena de conexión. Puede hacerlo cualquiera mediante programación, si se conoce la información de conexión, o mediante la interfaz de usuario de la conexión para pedir al usuario la información de conexión necesaria. Opcionalmente, un proveedor de DDEX puede exponer un control de conexión que se hospeda en el cuadro de diálogo de conexión de Visual Studio.

Compatibilidad con el objeto de datos

Mediante un archivo XML de la compatibilidad del objeto de datos, un proveedor de DDEX define los objetos de datos expuestos por el proveedor de datos para un origen de datos determinado. También define la jerarquía de objetos, o el modelo de objetos, para estos objetos.

El motor de metadatos de Visual Studiomantiene una biblioteca de clases fuertemente tipadas que permiten que reconozca el objeto de origen de datos genérico como tablas, vistas, los procedimientos almacenados, así como de las propiedades genéricas de objeto, que reduce los tipos asignados. Las definiciones de objeto de datos proporcionadas en el archivo XML permiten que asigne los tipos de objeto admitidos por el proveedor de datos en uno de estos tipos genéricos que son reconocidos por el motor de metadatos.

Además de definir tipos de objeto y de asignarlos a los tipos genéricos, el esquema de soporte del objeto de datos debe especificar lo siguiente:

  • Cómo enumerar objetos del tipo especificado, que se consigue especificando requieren un controlador denominado al enumerar el objeto.

  • Cómo recuperar metadatos del objeto de metadatos, como identificador de objeto o propiedades de.

  • Cómo construir un objeto del portapapeles en caso de que una operación de copia se realice en un objeto del tipo especificado. los diseñadores de los datos deVisual Studioutilizan el formato del portapapeles (DSRef) de referencia de origen de datos. Objetos que DSRef admiten se puede arrastrar-y-quitar sobre diseñadores de los datos de Visual Studio .

Para obtener más información sobre la compatibilidad del objeto de datos, vea Compatibilidad con el objeto de datos de DDEX.

Compatibilidad con la vista de datos

Mediante un archivo XML de soporte de la vista de datos, un proveedor de DDEX define la jerarquía física de los objetos de datos mostrados en el nodo de conexión especificado en Visual Studio Explorador de servidores. Puede definir vistas múltiples para el mismo origen de datos.

Además de definir la jerarquía de objetos físico, también puede especificar información adicional a los nodos de la jerarquía, incluida información como el nombre para mostrar adaptado, los comandos de menú contextual (nombre de comando, el CLSID, y controlador), los iconos, y otra información, según convenga.

Para obtener más información sobre la compatibilidad de la vista de datos, vea Compatibilidad con la vista de datos de DDEX.

Servicios básicos

DDEX proporciona un conjunto de interfaces que se implementan internamente como clases administradas que Visual Studio llame a para tener acceso a la funcionalidad implementada por el proveedor de DDEX en forma de entidades admiten de nivel superior. Estas interfaces colectivamente los servicios principales de DDEX.

Servicios principales más importantes son:

  • El administrador de proveedor permite enumerar los proveedores registrados y la consulta de DDEX para los objetos de un tipo específico (interfaz deIVsDataProviderManager ).

  • El generador del objeto de proveedor de datos proporciona una manera de crear los objetos de datos implementadas por el proveedor de DDEX (interfaz deIVsDataProviderObjectFactory ).

Los servicios principales de DDEX permiten que Visual Studio comunicar con orígenes de datos en un contexto de tiempo de diseño. Esto requiere tener los componentes que mantienen una conexión al origen de datos así como tener un conjunto de servicios especializados que proporcionan tipos de objeto de origen del acceso a los datos y las vistas de los diseños jerárquicos.

En una implementación típica, llamadas de un cliente de DDEX en el generador del objeto de proveedor de datos para crear instancias de los bloques de creación clave. Estos bloques de creación clave incluyen los objetos compatible con el conexión-compilar y la conexión (vea las entidades admiten y obtenga acceso al diagrama de Servicios). Algunos de estos objetos de bloques de creación a continuación representan objetos secundarios, según sea necesario, en hacia abajo por la jerarquía de soporte de entidades.

servicios de Access

DDEX proporciona un conjunto de interfaces que se implementan internamente como clases administradas que Visual Studio llame a para tener acceso a la funcionalidad de la conexión de datos y la representación en memoria de compatibilidad XML del objeto de datos y de la vista de datos XML compatible con. Estas interfaces se conocen colectivamente como servicios de acceso de DDEX.

Algunos de los servicios más importantes de acceso incluyen:

  • El generador de la conexión de datos permite crear los objetos de conexión (interfaz deIVsDataConnectionFactory ).

  • El diálogo de conexión de datos permite que pida al usuario la información de conexión y que cree objetos de conexión (interfaz deIVsDataConnectionDialog ).

Puede ver la conexión a un origen de datos (y sus partes principales, como el generador de administrador de conexiones y la conexión) como servicio integrado ofrecido por el marco de extensibilidad de los datos. En esta vista, el motor de metadatos de Visual Studio actúa como un cliente de la conexión, consumiendo Access Services API, que a su vez llama en sus entidades admiten correspondientes. Éste es el mecanismo mediante el que Visual Studio ensambla una estructura de soporte para mantener la conexión al origen de datos.

Superposición Entre las entidades de los servicios y atención de Access

La diferencia principal entre entidades admiten y los servicios de acceso es que los clientes de extensibilidad consumen los servicios de acceso (sobre todo el objeto de conexión), que a su vez se comunican con el proveedor de DDEX. Vista de dirección contraria, los proveedores interactúan con la conexión mediante las API de soporte de entidades.

En algunas circunstancias, los roles de los servicios de acceso y entidades admiten se superponen, especialmente donde es necesario garantizar la seguridad del subproceso. La arquitectura de DDEX proporciona un nivel seguro de bloqueo entre el proveedor de datos y el cliente de conexión con este fin. El ejemplo siguiente se muestra la característica.

Al recopilar, por ejemplo, el servicio de IVsDataCommand del objeto de conexión, en lugar de obtener un objeto de comando de datos, el objeto de conexión en su lugar obtiene una implementación de proxy de la interfaz de IVsDataCommand . La implementación del proxy se comunica con la entidad auxiliares que la implementa; además, la implementación de proxy es seguro para subprocesos. De esta manera, el proxy primero bloquea la conexión y después llama a continuación en las entidades admiten; cuando termine con la conexión, desbloquea otra vez la conexión, liberando un bloqueo de subprocesos.

En este ejemplo, la interfaz de IVsDataCommand se implementa como un servicio de acceso (en que el cliente lo llama directamente), pero también se comporta como una entidad de, en que el proveedor de datos implementa la misma interfaz, y que el resultado es la creación de un nivel seguro de bloqueo entre el proveedor y el cliente de la conexión.

Referencia de DDEX

El DDEX SDK proporciona toda la documentación de referencia del lenguaje:

Esquema XML admiten el objeto de datos

Utilice el esquema de compatibilidad del objeto de datos (DataObjectSupport.xsd) mediante programación para administrar y enumerar instancias de los objetos de origen de datos. Para obtener más información sobre los objetos de datos, vea Compatibilidad con el objeto de datos de DDEX.

Esquema XML admiten la vista de datos

Utilice el esquema de compatibilidad de la vista de datos (DataViewSupport.xsd) para administrar una o más vistas de diseño de la jerarquía de objetos de datos tal como aparece en el Explorador de servidores. Para obtener más información sobre las vistas de datos, vea Compatibilidad con la vista de datos de DDEX.

Referencia de la biblioteca de clases administradas

El DDEX SDK proporciona un conjunto de interfaces administradas y clases base que permiten escribir un proveedor administrado de DDEX.

Vea también

Conceptos

Información general de compatibilidad de la vista de datos

proveedores de DDEX

Compatibilidad con el objeto de datos de DDEX