Compartir a través de


Ejemplo: publicación de servicios de caché y Silverlight

Última modificación: miércoles, 20 de abril de 2011

Hace referencia a: SharePoint Server 2010

En este artículo
PublishingCacheRESTServer
SilverlightNavigationControl
SilverlightContentQuery
Desarrollo y ejecución del ejemplo

El ejemplo del archivo PublishingCacheServicesAndSilverlightControls.zip de la carpeta C:\Archivos de programa\Microsoft SDKs\SharePoint 2010\Samples incluye varios proyectos de ejemplo relacionados entre sí. Cada uno de ellos es un proyecto independiente de la solución de Microsoft Visual Studio 2010 denominada PublishingCacheServiceAndSilverlightControls. Los proyectos se describen en la tabla 1.

Tabla 1. Publicación de proyectos de servicios de caché y controles de Silverlight

Proyecto

Descripción

PublishingCacheRESTService

Servicio de Windows Communication Foundation (WCF) que se implementa como un proyecto de Microsoft SharePoint Server 2010 y que incluye varios métodos REST para consultar datos de la memoria caché de consulta en todas las listas del servidor. La memoria caché de consulta en todas las listas es el mismo almacén de datos guardados en caché que usan el elemento web de consulta de contenido (CQWP), el proveedor de navegación global del servidor, el proveedor de navegación actual del servidor y el proveedor de navegación combinada del servidor (de los cuales, a su vez, hacen uso las características de navegación predeterminadas).

Todos estos almacenes de datos se guardan en la memoria caché de los servidores front-end de SharePoint Server 2010. En aquellos casos en que los usuarios leen siempre o casi todo el tiempo, reciben contenido de sitios y datos de navegación de forma eficaz.

SilverlightNavigationControl

Aplicación de Silverlight que representa los datos de navegación que PublishingCacheRESTService devuelve en un control de navegación.

SilverlightContentQuery

Aplicación de Silverlight que muestra una tabla con una lista de resultados basados en una consulta en todas las listas de SharePoint Server 2010 que PublishingCacheRESTService devuelve en formato de tabla.

PublishingCacheRESTServer

Este proyecto se implementa como un servicio WCF único que incluye varias operaciones.

Métodos GetGlobalNav, GetCurrentNav y GetCombinedNav

Los métodos GetGlobalNav, GetCurrentNav y GetCombinedNav se implementan mediante un único método auxiliar, denominado getNav. getNav toma como entrada el objeto PortalSiteMapProvider adecuado que se incluye de manera predeterminada en SharePoint Server 2010.

El método getNav itera a través de todos los objetos PortalSiteMapNode desde la dirección URL actual hasta todos sus descendientes en el proveedor. A continuación, los serializa en un fragmento XML. Este fragmento XML incluye el título, la descripción y la dirección URL de cada objeto PortalSiteMapNode.

GetDefaultContentQuery y doCustomContentQuery

Los métodos GetDefaultContentQuery y doCustomContentQuery se implementan mediante el mismo método subyacente: doCustomContentQuery. El método doCustomContentQuery toma como entradas todos los parámetros que se usan para invocar una consulta en todas las listas en la memoria caché por medio de la clase CrossListQuery y devuelve un fragmento XML que representa los resultados de la consulta en la memoria caché.

El método getDefaultContentQuery no toma ningún parámetro y simplemente devuelve una consulta en todas las listas con un conjunto de parámetros codificado de forma rígida. Está pensado principalmente para usarse como una plantilla mediante la que crear otros servicios de consulta con codificación rígida.

Implementación y uso del servicio WCF

Este proyecto implementa el servicio WCF por medio de una característica de SharePoint Server 2010 de ámbito del conjunto o granja de servidores, que es una función que se ha hecho realidad gracias a la integración de SharePoint Server 2010 con Visual Studio 2010.

El servicio se implementa en la carpeta ISAPI en SharePoint Server 2010, a la que se tiene acceso por medio de la dirección URL de la carpeta virtual _vti_bin. Por lo tanto, el formato de la dirección URL del servicio es http://<servidor>/<direcciónUrlDeSitioWeb>/_vti_bin/PublishingCache.svc.

Después de implementar el servicio, obtenga acceso a sus métodos con los parámetros y las direcciones URL, como se muestra en la tabla 2.

Tabla 2. Direcciones URL y parámetros del servicio WCF

Servicio

Dirección URL relativa al extremo

Método HTTP

Encabezado

getGlobalNav

/GlobalNav

GET

No se aplica.

getCurrentNav

/CurrentNav

GET

No se aplica.

getCombinedNav

/CombinedNav

GET

No se aplica.

getDefaultContentQuery

/ContentQuery

GET

No se aplica.

El método doCustomContentQuery toma los parámetros enumerados en la tabla 3.

Tabla 3. Valores del parámetro doCustomContentQuery

Parámetro

Valor

Dirección URL relativa al extremo

/ContentQuery

Método HTTP

POST

Encabezados

Todos los encabezados son opcionales.

  1. ViewFields: lista separada por punto y coma de los campos que se van a mostrar. (Predeterminado: Title;FileRef)

  2. RowLimit: número de filas que se devuelve. (Predeterminado: 50)

  3. Webs: ámbito de la consulta. (Predeterminado: recursivo)

  4. Lists: valor de plantilla de lista de las listas que se van a incluir en la consulta. (Predeterminado: 850)

  5. WebUrl: dirección URL relativa de la colección de sitios para la consulta. (Predeterminado: "/")

Cuerpo de la solicitud

Lenguaje de marcado de la aplicación de colaboración (CAML) de la consulta que se va a ejecutar; es decir, el valor que se usa como valor de consulta en el objeto CrossListQueryInfo.

Tipo de contenido del cuerpo

Texto/sin formato.

SilverlightNavigationControl

Esta aplicación de Silverlight captura los datos del objeto NavigationProvider mediante PublishingCacheRESTService y los representa en una pantalla de navegación de dos niveles. El nivel superior muestra la ubicación actual y sus descendientes directos y recoge el título de cada sitio (la descripción de cada sitio aparece como información sobre herramientas). Cuando el usuario pasa el mouse sobre uno de los nodos del nivel superior, el nivel inferior se rellena con los nodos de sus elementos secundarios.

Al hacer clic en cualquier nodo del nivel superior o inferior, el explorador navega a la dirección URL del nodo seleccionado.

Implementación y uso de SilverlightNavigationControl

Cree el proyecto e implemente el archivo .xap resultante en una ubicación del servidor que ejecuta SharePoint Server 2010. Puede usar la aplicación de dos maneras estándar: mediante el elemento web de Silverlight o manualmente, incluyendo una etiqueta <object> en el marcado HTML de una página de SharePoint Server 2010. Por lo general, SilverlightNavigationControl incluye la aplicación en la página maestra de un sitio SharePoint Server 2010 para que aparezca en una ubicación coherente para todas las páginas que usan la página maestra.

Tabla 4. Valores del parámetro cacheServiceUri

Nombre del parámetro

Requerido

Valor

cacheServiceUri

Dirección URL del PublishingCacheRESTService que devuelve los datos solicitados del objeto NavigationProvider

Para que el proveedor de navegación muestre la jerarquía de sitios referente a la página actual, la dirección URL debe especificarse como una dirección URL relativa (por ejemplo, _vti_bin/PublishingCache.svc).

Para que el proveedor de navegación muestre la jerarquía absoluta (para que el proveedor de navegación muestre siempre la jerarquía referente a una determinada ubicación), la dirección URL debe especificarse como una dirección URL absoluta (por ejemplo, https://server/_vti_bin/PublishingCache.svc) o una dirección URL relativa del servidor (por ejemplo, /_vti_bin/PublishingCache.svc).

SilverlightContentQuery

Esta aplicación muestra los datos de consultas en todas las listas y traduce los resultados de consulta a datos específicos de usuario con los servicios HTTP de Microsoft Translator.

Implementación y uso de SilverlightContentQuery

Según los parámetros de inicio reflejados en la tabla 5, esta aplicación usa el método doCustomContentQuery de PublishingCacheRESTService para ejecutar una consulta en todas las listas en la memoria caché. A continuación, muestra los resultados en formato de tabla. La primera columna de cada fila de resultado es un hipervínculo en el que se puede hacer clic; la dirección URL de cada fila es un valor de columna para cada elemento, como se especifica en los parámetros de inicio.

Mediante el uso de los servicios de Microsoft Translator, la aplicación traduce los datos mostrados a cualquiera de los idiomas disponibles en la lista desplegable Traducir a. La lista se rellena dinámicamente en función de la lista de idiomas que Microsoft Translator admite.

Puede usar la aplicación de dos maneras estándar: mediante el elemento web de Silverlight o manualmente, incluyendo una etiqueta <object> en el marcado HTML de una página de SharePoint Server 2010.

Tabla 5. Parámetros de inicio de SilverlightContentQuery

Nombre del parámetro

Requerido

Uso

Valores predeterminados (solo parámetros no requeridos)

TranslatorAppId

AppId del servicio de Microsoft Translator. Para obtener un AppId, vea el artículo de MSDN Getting Started with Microsoft Translator [https://msdn.microsoft.com/es-es/library/dd575235.aspx].

No se aplica.

cacheServiceUri

Dirección URL del método doCustomContentQuery de PublishingCacheRESTService (por ejemplo, https://server/PublishingCache.svc/ContentQuery)

Indique si la dirección URL es relativa, relativa al servidor o absoluta.

No se aplica.

Query

Lenguaje de marcado de la aplicación de colaboración (CAML) para que se ejecute la consulta. Vea la descripción del parámetro Request Body de doCustomContentQuery en la tabla 3.

No es aplicable

ViewFields

Lista separada por punto y coma de los campos que se van a mostrar. Vea las descripciones de parámetros del método doCustomContentQuery en la tabla 3.

No se aplica.

UrlField

No

Campo que contiene la dirección URL a la que se navega cuando el usuario hace clic en la fila de la tabla de resultados mostrados.

Dirección URL

RowLimit

No

Número de filas que se debe devolver. Vea la descripción de los parámetros doCustomContentQuery en la tabla 3.

No se aplica. El servicio proporciona un valor predeterminado, si el valor no está especificado.

Webs

No

Ámbito de la consulta.

No se aplica. El servicio proporciona un valor predeterminado, si el valor no está especificado.

Lists

No

Valor de plantilla de lista de las listas que desea incluir en la consulta.

No se aplica. El servicio proporciona un valor predeterminado, si el valor no está especificado.

WebUrl

No

Dirección URL relativa de la colección de sitios del elemento Web que se usa para la consulta.

No se aplica. El servicio proporciona un valor predeterminado, si el valor no está especificado.

ShowHeaderRow

No

Si se establece en TRUE, muestra los nombres de columna de ViewFields como una fila de encabezado de la tabla de resultados; en caso contrario, false.

TRUE

Nota

Vea las descripciones de muchos de los parámetros en la sección del método doCustomContentQuery.

Desarrollo y ejecución del ejemplo

Puede probar este proyecto en el sitio de desarrollo o prueba mediante los siguientes pasos.

Desarrollo del ejemplo

La información de esta sección se puede usar con cualquier proyecto que use un servicio REST de WCF. Para ejecutar el ejemplo, primero debe hacer que el host del servicio REST de WCF se pueda implementar en SharePoint Server 2010, para lo cual deberá usar la integración de SharePoint Server 2010 con WCF y Visual Studio 2010.

Para configurar el servicio REST de WCF para que se pueda implementar como host en SharePoint Server

  1. Cree un servicio WCF en un proyecto de SharePoint vacío. Este proyecto permite que el servicio se empaquete e implemente automáticamente en SharePoint Server 2010 como una solución.

    En el proyecto, agregue una referencia al archivo Microsoft.SharePoint.Client.ServerRunTime.dll.

  2. Agregue manualmente la referencia de archivo buscando el archivo. En Visual Studio 2010, abra el cuadro de diálogo Agregar referencia, haga clic en la pestaña Examinar y, a continuación, busque la carpeta C:\Windows\assembly\GAC_MSIL\Microsoft.SharePoint.Client.ServerRuntime\.

  3. Edite el archivo .svc. Cambie el atributo Factory del servicio al nuevo factor de SharePoint para hospedar servicios WCF: Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressWebServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c".

  4. En Visual Studio 2010, abra el archivo *.sln. En el panel Propiedades de Visual Studio 2010, cambie el valor de dirección URL de sitio para que sea la dirección absoluta del sitio de prueba de desarrollo. Por ejemplo, http://MiServidorDeDesarrollo/. Asegúrese de incluir la barra diagonal de cierre.

    En lugar de crear una referencia de ensamblado independiente, cambie el atributo Service para que incluya una referencia al ensamblado del proyecto. En SharePoint Server 2010, la referencia se rellenará cuando se implemente la solución. En concreto, incluya la referencia $SharePoint.Project.AssemblyFullName$.

    Quite el elemento Assembly si el archivo .svc ya contiene un elemento Assembly.

  5. Agregue la carpeta asignada de ISAPI al proyecto y coloque los archivos en ella. En Visual Studio 2010, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Agregar. Haga clic en Carpeta asignada de SharePoint y, a continuación, seleccione la carpeta ISAPI.

    Mueva el archivo .svc y el archivo de código subyacente .cs a la carpeta asignada de ISAPI en el proyecto de .

  6. Actualice el archivo .csproj. Haga clic en el archivo .csproj y, cuando se le pida, seleccione el Bloc de notas para abrirlo.

    Agregue <TokenReplacementFileExtensions>svc</TokenReplacementFileExtensions> al elemento PropertyGroup.

Ejecución del ejemplo

Una vez creada e implementada la solución, el servicio REST de WCF consulta los datos de la memoria caché de consulta en todas las listas del servidor que ejecuta SharePoint Server 2010. Tras ello, representa los resultados en un control de navegación de Silverlight y puede mostrar los resultados en una tabla en función de los resultados de una consulta en todas las listas que devuelve PublishingCacheRESTService.

Vea también

Conceptos

Ejemplos de administración de contenido empresarial

Almacenamiento en caché de objetos

Procedimiento para personalizar la navegación

Personalización de los controles y proveedores de navegación