Tutorial: Creación de una lista externa en SharePoint mediante datos profesionales

El servicio Conectividad a datos profesionales (BDC) permite a SharePoint mostrar datos empresariales desde aplicaciones de servidor de 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. A continuación, creará una lista externa en SharePoint con este modelo.

En este tutorial se muestran las tareas siguientes:

  • Creación de un proyecto.
  • Agregar una entidad al modelo.
  • Agregar un método de buscador.
  • Agregar un método de buscador específico.
  • Probar el proyecto.

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

  • Ediciones compatibles de Windows y SharePoint.

  • Acceso a la base de datos de ejemplo AdventureWorks. Para obtener más información sobre cómo instalar la base de datos AdventureWorks, consulte Bases de datos de ejemplo de SQL Server.

Creación de un proyecto que contiene un modelo BDC

  1. En la barra de menús de Visual Studio, seleccione Archivo>Nuevo>Proyecto.

    Aparece el cuadro de diálogo Nuevo proyecto .

  2. En Visual C# o Visual Basic, expanda el nodo de SharePoint y, a continuación, elija el elemento 2010.

  3. En el panel Plantillas, elija Proyecto de SharePoint 2010, asigne el nombre AdventureWorksTest al proyecto y, a continuación, elija el botón Aceptar.

    Aparece el Asistente para la personalización de SharePoint. En este asistente, puede especificar el sitio que usará para depurar el proyecto y establecer el nivel de confianza de la solución.

  4. Elija el botón de opción Implementar como una solución de granja de servidores para establecer el nivel de confianza.

  5. Elija el botón Finalizar para aceptar el sitio de SharePoint local predeterminado.

  6. En el Explorador de soluciones, elija el nodo de proyecto de SharePoint.

  7. En la barra de menús, elija Proyecto>Agregar nuevo elemento.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  8. En el panel Plantillas, elija Modelo de conectividad a datos profesionales (solo solución de granja de servidores), asigne al proyecto el nombre AdventureWorksContacts y, a continuación, elija el botón Agregar.

Adición de clases de acceso a datos al proyecto

  1. En la barra de menús, elija Herramientas>Conectarse a la base de datos.

    Se abrirá el cuadro de diálogo Agregar conexión.

  2. Agregue una conexión a la base de datos de ejemplo AdventureWorks de SQL Server.

    Para obtener más información, consulte Adición o modificación de la conexión (Microsoft SQL Server).

  3. En el Explorador de soluciones, elija el nodo de proyecto.

  4. En la barra de menús, elija Proyecto>Agregar nuevo elemento.

  5. En el panel Plantillas instaladas, elija el nodo Datos.

  6. En el panel Plantillas, elija Clases LINQ to SQL.

  7. En el cuadro Nombre, especifique AdventureWorks y, a continuación, elija el botón Agregar.

    Se agrega un archivo .dbml al proyecto y se abre Object Relational Designer.

  8. En la barra de menús, elija Ver>Explorador de servidores.

  9. En el Explorador de servidores, expanda el nodo que representa la base de datos de ejemplo AdventureWorks y, a continuación, expanda el nodo Tablas.

  10. Agregue la tabla Contact (Person) a 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 en la tabla Contact (Person).

Eliminación de la entidad predeterminada del modelo BDC

El proyecto Modelo de conectividad a datos profesionales agrega una entidad predeterminada denominada Entity1 al modelo. Quite esta entidad. Más adelante, agregará una nueva entidad. Partir de un modelo vacío reduce el número de pasos necesarios para completar el tutorial.

  1. En el Explorador de soluciones, expanda el nodo BdcModel1 y, a continuación, abra el archivo BdcModel1.bdcm.

  2. El archivo de modelo de conectividad a datos profesionales se abre en el diseñador de BDC.

  3. En el diseñador, abra el menú contextual de Entity1 y, a continuación, elija Eliminar.

  4. En el Explorador de soluciones, abra el menú contextual de Entity1.vb (en Visual Basic) o Entity1.cs (en C#) y elija Eliminar.

  5. Abra el menú contextual de Entity1Service.vb (en Visual Basic) o Entity1Service.cs (en C#) y elija Eliminar.

Adición de una entidad al modelo

Agregue una entidad al modelo. Puede agregar entidades desde el Cuadro de herramientas de Visual Studio al diseñador de BDC.

  1. En la barra de menús, elija Ver>Cuadro de herramientas.

  2. En la pestaña BusinessDataConnectivity del Cuadro de herramientas, agregue una Entidad al diseñador de BDC.

    La nueva entidad aparece en el diseñador. Visual Studio agrega un archivo denominado EntityService.vb (en Visual Basic) o EntityService.cs (en C#) al proyecto.

  3. En la barra de menús, elija Ver>Propiedades>Ventana.

  4. En la ventana Propiedades, establezca el valor de la propiedad Name en Contact.

  5. En el diseñador, abra el menú contextual de la entidad, elija Agregar y, a continuación, elija Identificador.

    Aparece un nuevo identificador en la entidad.

  6. En la ventana Propiedades, cambie el nombre del identificador a ContactID.

  7. En la lista Nombre de tipo, elija System.Int32.

Adición de un método Finder específico

Para permitir que el servicio BDC muestre un contacto específico, debe agregar un método Finder específico. El servicio BDC llama al método Finder específico cuando un usuario elige un elemento de una lista y, a continuación, elige el botón Ver elemento de la barra de herramientas.

Agregue un método Finder específico a la entidad Contact mediante la ventana Detalles del método BDC. Para devolver una entidad específica, agregue código al método.

  1. En el diseñador de BDC, elija la entidad Contact.

  2. En la barra de menús, elija Ver>otras ventanas>Detalles del método de BDC.

    Se abre la ventana Detalles del método de BDC.

  3. En la lista Agregar un método, elija Crear método Finder específico.

    Visual Studio agrega los elementos siguientes 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.

  4. En la ventana Detalles del método de BDC, abra la lista que aparece en el descriptor de tipo Contact y, a continuación, elija Editar.

    El Explorador de BDC se abre y proporciona una vista jerárquica del modelo.

  5. En la ventana Propiedades, abra la lista junto a la propiedad TypeName, elija la pestaña Proyecto actual y, a continuación, elija la propiedad Contact.

  6. En el Explorador de BDC, abra el menú contextual de Contact y, a continuación, elija Agregar descriptor de tipo.

    Aparece un nuevo descriptor de tipo denominado TypeDescriptor1 en el Explorador de BDC.

  7. En la ventana Propiedades, establezca el valor de la propiedad Name en ContactID.

  8. Abra la lista junto a la propiedad TypeName y elija Int32.

  9. Abra la lista junto a la propiedad Identifier y, a continuación, elija ContactID.

  10. Repita el paso 6 para crear un descriptor de tipo para cada uno de los campos siguientes.

    NOMBRE Nombre del tipo
    FirstName System.String
    LastName System.String
    Teléfono System.String
    EmailAddress System.String
    EmailPromotion System.Int32
    NameStyle System.Boolean
    PasswordHash System.String
    PasswordSalt System.String
  11. En el diseñador BDC, en la entidad Contact, abra el método ReadItem.

    El archivo de código del servicio de Contact se abre en el Editor de código.

  12. En la clase ContactService, reemplace el método ReadItem por el siguiente código. Este código realiza las tareas siguientes:

    • Recupera un registro de la tabla Contact de la base de datos AdventureWorks.

    • Devuelve una entidad Contact al servicio BDC.

    Nota

    Reemplace el valor del campo ServerName por el nombre del servidor.

    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;
    }
    

Adición de un método Finder

Para permitir que el servicio BDC muestre los contactos de una lista, debe agregar un método Finder. Agregue un método Finder a la entidad Contact mediante la ventana Detalles del método BDC. Para devolver una colección de entidades al servicio BDC, agregue código al método.

  1. En el diseñador de BDC, elija la entidad Contact.

  2. En la ventana Detalles del método BDC, contraiga el nodo ReadItem.

  3. En la lista Agregar un método del método ReadList, elija Crear método Finder.

    Visual Studio agrega un método, un parámetro return y un descriptor de tipo.

  4. En el diseñador BDC, en la entidad Contact, abra el método ReadList.

    El archivo de código del servicio de Contact se abre en el Editor de código.

  5. En la clase ContactService, reemplace el método ReadList por el siguiente código. Este código realiza las tareas siguientes:

    • Recupera datos de la tabla Contacts de la base de datos AdventureWorks.

    • Devuelve una lista de entidades de Contact al servicio BDC.

      Nota

      Reemplace el valor del campo ServerName por el nombre del servidor.

      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;
      
      }
      

Prueba del proyecto

Al ejecutar el proyecto, se abre el sitio de SharePoint y Visual Studio agrega el modelo al servicio de 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

Es posible que tenga que modificar la configuración de seguridad en SharePoint para poder depurar la solución. Para obtener más información, vea Diseño de un modelo de conectividad a datos profesionales.

  1. Elija la tecla F5.

    Se abre el sitio de SharePoint.

  2. En el menú Acciones del sitio, elija el comando Más opciones.

  3. En la página Crear, elija la plantilla Lista externa y, a continuación, elija el botón Crear.

  4. Asigne un nombre a la lista Contacts personalizada.

  5. Elija el botón Examinar situado junto al campo Tipo de contenido externo.

  6. En el cuadro de diálogo Selector de tipo de contenido externo, elija el elemento AdventureWorksContacts.BdcModel1.Contact y, a continuación, elija el botón Crear.

    SharePoint crea una lista externa que contiene contactos de la base de datos de ejemplo AdventureWorks.

  7. Para probar el método Finder específico, elija un contacto en la lista.

  8. En la barra de herramientas, elija la pestaña Elementos y, a continuación, elija el comando Ver elemento.

    Los detalles del contacto que ha elegido aparecen en un formulario.