Tutorial: Crear una lista externa en SharePoint con datos profesionales
El servicio Conectividad a datos profesionales (BDC) permite a SharePoint mostrar los datos empresariales de las aplicaciones de servidor back-end, servicios Web y bases de datos.
En este tutorial se muestra cómo crear un modelo para el servicio BDC que devuelve información sobre los contactos de una base de datos de ejemplo. Después, creará una lista externa en SharePoint utilizando este modelo.
En este tutorial se muestran las tareas siguientes:
Crear un proyecto.
Agregar una entidad al modelo.
Agregar un método Finder.
Agregar un método Finder específico.
Probar el proyecto.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
Ediciones compatibles de Microsoft Windows y SharePoint. Para obtener más información, vea Requisitos para desarrollar soluciones de SharePoint.
Visual Studio 2010 Professional o una edición de Visual Studio Application Lifecycle Management (ALM).
Acceso a la base de datos de ejemplo AdventureWorks. Para obtener más información sobre cómo instalar la base de datos AdventureWorks, vea SQL Server Sample Databases.
Crear un proyecto
Primero, cree un proyecto que contenga un modelo BDC.
Para crear un proyecto
Inicie Visual Studio 2010.
Abra el cuadro de diálogo Nuevo proyecto, expanda el nodo SharePoint bajo el lenguaje que desea usar y seleccione 2010.
En el recuadro Plantillas, seleccione Modelo de conectividad a datos profesionales. Como nombre de proyecto, escriba AdventureWorksContacts y haga clic en Aceptar.
Aparece el Asistente para la personalización de SharePoint. Este asistente permite seleccionar el sitio que se va a usar para depurar el proyecto, así como el nivel de confianza de la solución.
Haga clic en Finalizar para aceptar el sitio local predeterminado de SharePoint y el nivel de confianza predeterminado de la solución.
Agregar clases de acceso de datos al proyecto
Para agregar clases de acceso de datos al proyecto
En el menú Herramientas, haga clic en Conectar con base de datos.
Se abrirá el cuadro de diálogo Agregar conexión.
Agregue una conexión a la base de datos de ejemplo AdventureWorks de SQL Server. Para obtener más información, vea Agregar o modificar conexión (Microsoft SQL Server).
En el Explorador de soluciones, haga clic en el nodo del proyecto.
En el menú Proyecto, haga clic en Agregar nuevo elemento.
En el recuadro Plantillas instaladas, seleccione el nodo Datos.
En el recuadro Plantillas, seleccione Clases de LINQ to SQL.
En el cuadro Nombre, escriba AdventureWorks y haga clic en Agregar.
Se agrega un archivo .dbml al proyecto y se abre el Diseñador relacional de objetos (Object Relational Designer).
En el menú Ver, haga clic en el Explorador de servidores.
En el Explorador de servidores, expanda el nodo que representa la base de datos de ejemplo AdventureWorks y, a continuación, expanda el nodo Tables.
Arrastre la tabla Contact (Person) al Object Relational Designer.
Se crea una clase de entidad, que aparece en la superficie de diseño. La clase de entidad tiene propiedades que se asignan a las columnas de la tabla Contact (Person).
Quitar la entidad predeterminada del modelo BDC
El proyecto Modelo de conectividad a datos profesionales agrega una entidad predeterminado denominada Entity1 al modelo. Quite esta entidad. Después, agregará una nueva entidad. Comenzar con un modelo vacío reduce el número de pasos necesarios para completar el tutorial.
Para quitar la entidad predeterminado del modelo
En el Explorador de soluciones, expanda el nodo BdcModel1 y, a continuación, haga doble clic en el archivo BdcModel1.bdcm.
El archivo del modelo de Conectividad a datos profesionales se abre en el diseñador de BDC.
En el diseñador, haga clic con el botón secundario en Entity1 y, a continuación, haga clic en Eliminar.
En el Explorador de soluciones, haga clic con el botón secundario en Entity1.vb (en Visual Basic) o Entity1.cs (en C#) y, a continuación, haga clic en Eliminar.
Haga clic con el botón secundario en Entity1Service.vb (en Visual Basic) o Entity1Service.cs (en C#) y, a continuación, haga clic en Eliminar.
Agregar una entidad al modelo
Agregue una entidad al modelo. Puede arrastrar las entidades del Cuadro de herramientas de Visual Studio al diseñador de BDC.
Para agregar una entidad al modelo
En el menú Ver, haga clic en Cuadro de herramientas.
En la pestaña BusinessDataConnectivity del Cuadro de herramientas, arrastre una Entidad al diseñador de BDC.
La nueva entidad aparece en el diseñador. Visual Studio agrega un archivo al proyecto denominado EntityService.vb (en Visual Basic) o EntityService.cs (en C#).
En el menú Ver, haga clic en Ventana Propiedades.
En la ventana Propiedades, establezca Nombre en Contact.
En el diseñador, haga clic con el botón secundario en la entidad, haga clic en Agregar y, a continuación, en Identificador.
Un nuevo identificador aparece en la entidad.
En la ventana Propiedades, cambie el nombre del identificador por ContactID.
En la lista desplegable Nombre de tipo, seleccione System.Int32.
Agregar un método Finder concreto
Para permitir al servicio BDC mostrar un contacto concreto, debe agregar un método Finder específico. El servicio BDC llama al método Finder específico cuando un usuario selecciona un elemento de una lista y, a continuación, hace clic en el botón Ver elemento de la Cinta de opciones.
Agregue un método Finder específico a la entidad Contact utilizando la ventana Detalles del método de BDC. Para devolver una entidad concreta, agregue código al método.
Para agregar un método Finder específico
En el diseñador del BDC, seleccione la entidad Contact.
En el menú Ver, haga clic en Otras ventanas y, a continuación, en Detalles del método de BDC.
En la ventana Detalles del método de BDC, en la lista desplegable Agregar un método, seleccione Crear método Finder específico.
Visual Studio agrega los siguientes elementos al modelo. Estos elementos aparecen en la ventana Detalles del método de BDC.
Un método denominado Readitem.
Un parámetro de entrada para el método.
Un parámetro devuelto para el método.
Un descriptor de tipo para cada parámetro.
Una instancia de método para el método.
En la ventana Detalles del método de BDC, haga clic en la lista desplegable que aparece para el descriptor de tipos de Contact y, a continuación, haga clic en Editar.
Se abre el Explorador de BDC. El Explorador de BDC proporciona una vista jerárquica del modelo.
En la ventana Propiedades, haga clic en la lista desplegable que aparece junto a la propiedad TypeName, haga clic en la pestaña Proyecto actual y, a continuación, seleccione Contact.
En el Explorador de BDC, haga clic con el botón secundario en Contact y, a continuación, haga clic en Agregar descriptor de tipo.
Un nuevo descriptor de tipos denominado TypeDescriptor1 aparece en el Explorador de BDC.
En la ventana Propiedades, establezca la propiedad Nombre en ContactID.
Haga clic en la lista desplegable junto a la propiedad TypeName y, a continuación, seleccione Int32.
Haga clic en la lista desplegable junto a la propiedad Identifier y, a continuación, seleccione ContactID.
Repita los pasos desde el 6 para crear un descriptor de tipos para cada uno de los siguientes campos.
Name
Nombre de tipo
Nombre
System.String
Apellido
System.String
Teléfono
System.String
EmailAddress
System.String
EmailPromotion
System.Int32
NameStyle
System.Boolean
PasswordHash
System.String
PasswordSalt
System.String
En el diseñador de BDC, en la entidad Contact, haga doble clic en el método ReadItem.
El archivo de código del servicio Contact se abre en el editor de código.
En la clase ContactService, reemplace el método ReadItem por el código siguiente. Este código realiza las tareas siguientes:
Recupera un registro de la tabla Contact de la base de datos de AdventureWorks.
Devuelve una entidad Contact al servicio BDC.
Nota
Reemplace el valor del campo ServerName con el nombre del servidor.
Public Shared Function ReadItem(ByVal contactID As Integer) As Contact Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim Contact As Contact = _ (From TempContacts In dataContext.Contacts.AsEnumerable().Take(20) _ Where TempContacts.ContactID = contactID _ Select TempContacts).[Single]() Return Contact End Function
public static Contact ReadItem(int contactID) { const string ServerName = "MySQLServerName"; AdventureWorksDataContext dataContext = new AdventureWorksDataContext ("Data Source=" + ServerName + ";" + "Initial Catalog=AdventureWorks;Integrated Security=True"); Contact Contact = (from contacts in dataContext.Contacts.AsEnumerable().Take(20) where contacts.ContactID == contactID select contacts).Single(); return Contact; }
Agregar un método Finder
Para permitir que el servicio BDC muestre los contactos en una lista, debe agregar un método Finder. Agregue un método Finder a la entidad Contact utilizando la ventana Detalles del método de BDC. Para devolver una colección de entidades al servicio BDC, agregue código al método.
Para agregar un método Finder
En el diseñador del BDC, seleccione la entidad Contact.
En la ventana Detalles del método de BDC, contraiga el nodo ReadList.
En la lista desplegable Agregar un método que aparece debajo del método ReadList, seleccione Crear método Finder.
Visual Studio agrega un método, un parámetro devuelto y un descriptor de tipos.
En el diseñador de BDC, en la entidad Contact, haga doble clic en el método ReadList.
El archivo de código del servicio Contact se abre en el editor de código.
En la clase ContactService, reemplace el método ReadList por el código siguiente. Este código realiza las tareas siguientes:
Recupera los datos de la tabla Contacts de la base de datos AdventureWorks.
Devuelve una lista de entidades Contact al servicio BDC.
Nota
Reemplace el valor del campo ServerName con el nombre del servidor.
Public Shared Function ReadList() As IEnumerable(Of Contact) Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim Contacts As IEnumerable(Of Contact) = _ From TempContacts In dataContext.Contacts.Take(20) _ Select TempContacts Return Contacts End Function
public static IEnumerable<Contact> ReadList() { const string ServerName = "MySQLServerName"; AdventureWorksDataContext dataContext = new AdventureWorksDataContext ("Data Source=" + ServerName + ";" + "Initial Catalog=AdventureWorks;Integrated Security=True"); IEnumerable<Contact> Contacts = from contacts in dataContext.Contacts.Take(20) select contacts; return Contacts; }
Probar el proyecto
Al ejecutar el proyecto, se abre el sitio de SharePoint y Visual Studio agrega el modelo al servicio Conectividad a datos profesionales. Cree una lista externa en SharePoint que haga referencia a la entidad Contact. Los datos de los contactos de la base de datos AdventureWorks aparecen en la lista.
Nota
Quizás necesite modificar la configuración de seguridad de SharePoint para poder depurar la solución. Para obtener más información, vea Diseñar un modelo de conectividad a datos profesionales.
Para probar el proyecto
Presione F5.
Se abre el sitio de SharePoint.
En el menú Acciones del sitio, haga clic en Más opciones.
En la página Crear, haga clic en Lista externa y, a continuación, haga clic en Crear.
Asigne a la lista personalizada el nombre Contacts.
Haga clic en el botón Examinar situado junto al campo Tipo de contenido externo.
En el cuadro de diálogo Selector de tipo de contenido externo, seleccione AdventureWorksContacts.BdcModel1.Contact y, a continuación, haga clic en Crear.
Haga clic en Crear para crear la lista de contactos.
SharePoint crea una lista externa. En esa lista aparecen los contactos de la base de datos de ejemplo AdventureWorks.
Para probar el método Finder específico, haga clic en un contacto de la lista.
En la cinta de opciones, haga clic en la pestaña Elementos.
En la pestaña Elementos, haga clic en Ver elemento.
Los detalles del contacto seleccionado aparecen en un formulario.
Pasos siguientes
En estos temas, puede obtener más información sobre cómo diseñar modelos para el servicio BDC en SharePoint:
Vea también
Conceptos
Introducción general a las herramientas de diseño del modelo BDC
Otros recursos
Diseñar un modelo de conectividad a datos profesionales