Compartir a través de


Creación de Ensamblados de conectividad .NET y servicios web

Última modificación: martes, 06 de julio de 2010

Hace referencia a: SharePoint Server 2010

En este artículo
Procedimientos recomendados de diseño
Pasos de implementación
Definición de operaciones estereotipo en el servicio
Procedimientos recomendados para escribir Ensamblados de conectividad .NET y servicios web

Servicios de conectividad empresarial (BCS) de Microsoft permite incluir datos externos de distintos tipos de sistemas externos en las aplicaciones de Microsoft SharePoint 2010 y Microsoft Office 2010. Estos sistemas externos pueden consistir en:

  • Bases de datos

  • Servicios web

En caso de que Servicios de conectividad empresarial no admita el sistema externo directamente, puede exponerlo a través de Servicios de conectividad empresarial escribiendo código. Si las entidades del sistema externo son estáticas, no cambian con frecuencia y tienen un conjunto de tipos conocidos reducido, puede escribir servicios web o Ensamblados de conectividad .NET para exponer los datos del sistema externo en el formato que Servicios de conectividad empresarial comprenda mejor. Por otro lado, si las entidades son dinámicas, tienen tipos personalizados y existen a gran escala, considere la posibilidad de crear un conector personalizado para ese tipo de origen de datos. Sin embargo, debe controlar la conexión, la transferencia de datos, la configuración y las herramientas de un conector personalizado. Para obtener más información, vea Diferencias entre el uso del Conector de ensamblado .NET y la escritura de un conector personalizado.

La siguiente figura es un diagrama de arquitectura de alto nivel de Servicios de conectividad empresarial (BCS) de Microsoft. Muestra los distintos conectores que Servicios de conectividad empresarial proporciona y el modo en que el ensamblado .NET, el servicio web y los conectores personalizados se ajustan a la arquitectura general.

Arquitectura de alto nivel de BCS

En este tema se describen los procedimientos recomendados para escribir Ensamblados de conectividad .NET y servicios web. Una vez que tenga un servicio web o un Ensamblado de conectividad. NET, puede usar Microsoft SharePoint Designer 2010 para conectarse a él y detectar los tipos de contenido externo.

En la siguiente tabla se comparan y contrastan los dos enfoques.

Tabla 1. Enfoques para escribir Ensamblados de conectividad .NET o servicios web

Servicio web

Ensamblado de conectividad .NET

Tecnología de implementación

Puede ser cualquier servicio web compatible con SOAP 1.1 o SOAP 1.2. Ejemplos: servicio web de ASP.NET, extremo de servicio web de WCF

Microsoft .NET Framework 3.5

Hospedaje

Servicios de conectividad empresarial no hospedará el servicio web; deberá hacerlo el usuario.

No es necesario hospedar un Ensamblado de conectividad .NET. Con solo implementarlo en el Repositorio de metadatos de BDC, Servicios de conectividad empresarial se ocupará del resto.

Compatibilidad con herramientas

Puede usar una herramienta de desarrollo como Microsoft Visual Studio para escribir el servicio web. No se proporcionan plantillas de proyecto o herramientas especiales para crear servicios web para Servicios de conectividad empresarial en Visual Studio.

Puede usar una herramienta de desarrollo como Microsoft Visual Studio para escribir el Ensamblado de conectividad .NET. Microsoft Visual Studio 2010 proporciona una nueva plantilla de proyecto llamada modelo de conectividad a datos empresariales que incluye un conjunto de diseñadores visuales y funciones de administración de código para crear, depurar e implementar fácilmente Ensamblados de conectividad .NET y el modelo asociado a Servicios de conectividad empresarial.

Capacidad de autenticación

En relación con los servicios web, Servicios de conectividad empresarial admite los siguientes mecanismos de autenticación: Passthrough, RevertToSelf, WindowsCredentials, Credentials y DigestCredentials. Vea Modos de autenticación disponibles para obtener más información.

En un Ensamblado de conectividad .NET, el usuario debe controlar la seguridad y la autenticación. Si desea usar el Servicio de almacenamiento seguro, puede usar el modelo de objetos de almacenamiento seguro para almacenar y obtener credenciales mediante programación. Como alternativa, también puede usar el filtro de nombre de usuario y contraseña para obtener el nombre de usuario y la contraseña.

Tipos

En un Ensamblado de conectividad .NET, se pueden usar tipos .NET que no están disponibles en los servicios web. Ejemplo: tipos sin serializar.

Procedimientos recomendados de diseño

Independientemente de si va a crear un servicio web o un Ensamblado de conectividad .NET, en el código que va a escribir se conectará al sistema externo, definirá los tipos de contenido externo que se necesitan en el sistema externo e incluirá el código necesario para realizar cada operación estereotipo (instancias de método) que desea admitir para cada uno de los tipos de contenido externo.

Dado que está escribiendo código en el servicio web y el Ensamblado de conectividad .NET, las opciones sobre dónde puede obtener los datos y qué hacer con ellos antes de que lleguen a Servicios de conectividad empresarial y SharePoint son numerosas. En el código, puede realizar acciones tales como agregar datos desde varios orígenes, aplicar transformaciones y lógica de negocios y controlar esquemas de seguridad personalizados.

Nota

La clave a la hora de escribir servicios web y Ensamblados de conectividad .NET consiste en pensar en términos de tipos de contenido externo y hacer que los métodos web del servicio web y los métodos del Ensamblado de conectividad .NET coincidan con las operaciones estereotipo que BDC admite. Esto también sirve para asegurarse de que Microsoft SharePoint Designer 2010 es capaz de conectarse al servicio web y al Ensamblado de conectividad .NET y, por lo tanto, proporcionar un enfoque de detección y uso para crear tipos de contenido externo una vez que haya creado y publicado el servicio.

Por ejemplo, en un servicio web, asegúrese de que hay un método web para cada operación estereotipo que desee admitir para el tipo de contenido externo y, asimismo, que la firma coincide con la firma del método recomendada para las operaciones estereotipo (vea la sección siguiente).

De forma similar, en un Ensamblado de conectividad .NET, asegúrese de que dispone de métodos en el código .NET para cada operación estereotipo necesaria para el tipo de contenido externo. Servicios de conectividad empresarial llamará a estos métodos en tiempo de ejecución cuando un usuario realice una acción en el tipo de contenido externo, como leer o actualizar un elemento.

Pasos de implementación

Por lo general, en un Ensamblado de conectividad .NET, cada tipo de contenido externo se asignará a una clase y cada operación estereotipo será un método dentro de la clase. En un servicio web, cada operación estereotipo será un método web.

Ensamblado de conectividad .NET

  1. En un Ensamblado de conectividad .NET, cree una clase para cada tipo de contenido externo y defina los campos que debe contener. Incluya siempre un identificador para el tipo de contenido externo. Este identificador suele ser la clave principal de una tabla de base de datos. BDC admite un identificador compuesto de hasta 20 campos.

  2. Cree otra clase y agregue métodos para definir las operaciones estereotipo que desee admitir para cada tipo de contenido externo. Por ejemplo, vea Definición de operaciones estereotipo en el servicio más adelante en este tema.

Servicio web

  1. El desarrollo de servicios web suele arrancar con la definición de tipos complejos. Defina la estructura de cada tipo de contenido externo. De nuevo, asegúrese de incluir siempre un identificador para el tipo de contenido externo. Normalmente, se trata de la clave principal de una tabla de base de datos. BDC admite un identificador compuesto de hasta 20 campos.

  2. Defina métodos web para cada operación estereotipo que desee admitir para los tipos de contenido externo. Por ejemplo, vea la sección Definición de operaciones estereotipo en el servicio.

Definición de operaciones estereotipo en el servicio

Las operaciones estereotipo que implemente dependerán de sus necesidades. En la siguiente tabla se enumeran las operaciones estereotipo que se recomienda implementar para los requisitos más comunes.

Requisito

Operaciones estereotipo

Comentarios

Lectura de elementos externos

Instancias de método SpecificFinder y Finder. Son necesarias para todas las características de cliente de Servicios de conectividad empresarial.

Considere BulkSpecificFinder, IDEnumerator, BulkIDEnumerator, ChangedIDEnumerator y DeletedIDEnumerator para la sincronización de datos optimizada con los equipos cliente. Esto puede llegar a ser crucial en escenarios donde se deben desconectar varios usuarios o volúmenes de datos de gran tamaño.

Reescritura de elementos externos

Instancias de método Creator, Updater y Deleter si se desea llevar a cabo operaciones de creación, actualización y eliminación en el tipo de contenido externo.

Si el sistema externo no admite la reescritura, marque todos los campos del tipo de contenido externo como de solo lectura. Si va a crear soluciones declarativas o avanzadas basadas en código en Outlook según el tipo de contenido externo, marque también la carpeta de Outlook como de solo lectura.

Elementos externos relacionados

AssociationNavigator

Associator

Disassociator

BulkAssociationNavigator, BulkAssocatedIDEnumerator

Associator y Disassociator se usan solo para las asociaciones sin clave externa. Vea la clase Microsoft.BusinessData.MetadataModel.IAssoication para obtener más información.

Búsqueda

IDEnumerator y BulkIDEnumerator

AccessChecker

BinarySecurityDescriptorAccessor

Desconexión en el cliente

Los métodos Finder y SpecificFinder deben devolver el mismo conjunto de campos para que el rendimiento no se vea afectado. Si los métodos Finder y SpecificFinder devuelven conjuntos de campos diferentes, los usuarios no podrán desconectar el tipo de contenido externo en clientes de Microsoft Office 2010.

Sin conexión, si se ha usado una lógica de filtrado compleja, es posible que no se obtengan los conjuntos de resultados que se obtendrían si se estuviera conectado.

Datos BLOB

StreamAccessor

Procedimientos recomendados para escribir Ensamblados de conectividad .NET y servicios web

Al escribir Ensamblados de conectividad .NET y servicios web, tenga en cuenta los siguientes procedimientos recomendados:

  • Inclusión de identificadores. Asegúrese de incluir siempre un identificador para cada tipo de contenido externo. Normalmente, se trata de la clave principal de una tabla de base de datos. BDC admite un identificador compuesto de hasta 20 campos.

  • Control de los valores nulos. La operación Read suele realizar consultas al sistema externo y, a continuación, rellena el tipo que se debe devolver. Asegúrese de controlar adecuadamente los valores null del método SpecificFinder. Lo más probable es que algunos campos sean null en el sistema externo (por ejemplo, aficiones o dirección), de modo que ejercer un correcto control de las excepciones y los errores es esencial. Por lo tanto, compruebe si hay valores null y cadenas vacías en el código y corríjalas. Además, considere el uso de interpretación de NormalizeString en los descriptores de tipo.

  • Coincidencia con los nombres de parámetro. Los nombres de los parámetros deben coincidir con lo que hay en el sistema externo. Si los nombres de los parámetros no tienen exactamente las mismas mayúsculas en todos los métodos, SharePoint Designer 2010 los interpreta como campos distintos.

  • Control de las excepciones. Asegúrese de controlar las excepciones correctamente. Anticípese a los errores de operación y genere excepciones.

    Si un método debe devolver un solo elemento (por ejemplo, un buscador específico) y no se encuentra el elemento solicitado, el código debe hacer lo siguiente:

    1. Devolver null. Esta es la forma más sencilla y será la más compatible.

    2. Generar ObjectNotFoundException. Esta excepción solo es útil si desea registrar un mensaje específico. Evite que se genere esta excepción para los servicios web.

    3. Generar ObjectDeletedException. Esta excepción solo debe usarse cuando se sabe que se va a eliminar el objeto. Evite generar esta excepción para los servicios web.

    4. No generar otras excepciones.

    5. No devolver datos incompletos o falsos.

    Si se supone que un método debe devolver varios elementos (por ejemplo, un buscador) y no se encuentran elementos, el código debe hacer lo siguiente:

    1. Devolver una colección o enumeración de elementos vacía. Ésta es la acción preferida.

    2. Devolver null.

    3. No generar ninguna excepción.

    Si un método no tiene un valor de devolución (por ejemplo, una actualización) y hay un problema con la actualización, el código debe hacer lo siguiente:

    1. Generar una excepción.

    2. No basarse en valores de devolución o códigos de error. BDC no tiene actualmente una forma de interpretar estos valores.

Para obtener más información, vea Implementación de operaciones de estereotipo en los métodos.

Vea también

Tareas

Procedimiento para publicar un Ensamblado de conectividad .NET en el Repositorio de metadatos de BDC

Conceptos

Procedimiento para crear un ensamblado de conectividad .NET

Procedimiento para usar el Servicio de almacenamiento seguro desde un ensamblado de conectividad .NET

Otros recursos

Implementación de operaciones de estereotipo en los métodos