Partager via


Exemple : publication des services de cache et de Silverlight

Dernière modification : mercredi 20 avril 2011

S’applique à : SharePoint Server 2010

Dans cet article
PublishingCacheRESTServer
SilverlightNavigationControl
SilverlightContentQuery
Génération et exécution de l’exemple

L’exemple du fichier PublishingCacheServicesAndSilverlightControls.zip, situé dans le dossier C:\Program Files\Microsoft SDKs\SharePoint 2010\Samples, comprend plusieurs exemples de projets liés entre eux. Chacun d’eux est un projet distinct de la solution Microsoft Visual Studio 2010 nommée PublishingCacheServiceAndSilverlightControls. Les projets sont décrits dans le tableau 1.

Tableau 1. Projets relatifs au service de cache de publication et aux contrôles Silverlight

Projet

Description

PublishingCacheRESTService

Service WCF (Windows Communication Foundation) implémenté en tant que projet Microsoft SharePoint Server 2010 qui comprend plusieurs méthodes REST pour l’interrogation de données en provenance du cache des requêtes de liste croisée du serveur. Le cache des requêtes de liste croisée est le même magasin de données mises en cache que celui utilisé par le composant WebPart de requête de contenu, le fournisseur de navigation globale du serveur, le fournisseur de navigation actuelle du serveur et le fournisseur de navigation combinée du serveur (qui sont tous utilisés par les fonctionnalités de navigation par défaut).

Tous ces magasins de données sont mis en cache en mémoire sur les serveurs frontaux SharePoint Server 2010. Dans les situations où les utilisateurs effectuent majoritairement ou systématiquement des activités de lecture, ils récupèrent efficacement les données de navigation et le contenu du site.

SilverlightNavigationControl

Application Silverlight qui effectue le rendu des données de navigation renvoyées par PublishingCacheRESTService dans un contrôle de navigation.

SilverlightContentQuery

Application Silverlight qui affiche un tableau répertoriant des résultats basés sur une requête de liste croisée SharePoint Server 2010 renvoyée par PublishingCacheRESTService dans un format tabulaire.

PublishingCacheRESTServer

Ce projet est implémenté en tant que service WCF unique qui comprend plusieurs opérations.

Méthodes GetGlobalNav, GetCurrentNav et GetCombinedNav

Les méthodes GetGlobalNav, GetCurrentNav et GetCombinedNav sont implémentées par une méthode d’assistance unique, appelée getNav. getNav accepte en tant qu’entrée l’objet PortalSiteMapProvider approprié remis par défaut dans SharePoint Server 2010.

La méthode getNav effectue une itération au sein de l’ensemble des objets PortalSiteMapNode, en partant de l’URL actuelle vers tous ses descendants dans le fournisseur, puis les sérialise en un fragment XML. Ce fragment XML comprend le titre, la description et l’URL de chaque objet PortalSiteMapNode.

GetDefaultContentQuery et doCustomContentQuery

La méthode GetDefaultContentQuery et la méthode doCustomContentQuery sont implémentées par la même méthode sous-jacente : doCustomContentQuery. La méthode doCustomContentQuery accepte en tant qu’entrées tous les paramètres utilisés pour l’appel d’une requête de liste croisée mise en cache via la classe CrossListQuery, puis renvoie un fragment XML représentant les résultats de la requête mise en cache.

La méthode getDefaultContentQuery n’accepte aucun paramètre ; elle effectue et renvoie simplement une requête de liste croisée avec un jeu de paramètres codés en dur. Elle est principalement destinée à être utilisée en tant que modèle pour la création d’autres services de requête codés en dur.

Déploiement et utilisation du service WCF

Ce projet déploie le service WCF via une fonctionnalité SharePoint Server 2010 dont l’étendue s’applique à la batterie de serveurs, ce qui est rendu possible grâce à l’intégration de SharePoint Server 2010 à Visual Studio 2010.

Le service est déployé dans le dossier ISAPI de SharePoint Server 2010, qui est accessible via l’URL du dossier virtuel _vti_bin. Par conséquent, le format de l’URL pointant vers le service est http://<serveur>/<UrlWeb>/_vti_bin/PublishingCache.svc.

Une fois le service déployé, ses méthodes sont accessibles à l’aide des URL et paramètres indiqués dans le tableau 2.

Tableau 2. URL et paramètres du service WCF

Service

URL relative au point de terminaison

Méthode HTTP

En-tête

getGlobalNav

/GlobalNav

GET

Non applicable.

getCurrentNav

/CurrentNav

GET

Non applicable.

getCombinedNav

/CombinedNav

GET

Non applicable.

getDefaultContentQuery

/ContentQuery

GET

Non applicable.

La méthode doCustomContentQuery accepte les paramètres listés dans le tableau 3.

Tableau 3. Valeurs de paramètre de doCustomContentQuery

Paramètre

Valeur

Endpoint-Relative URL

/ContentQuery

HTTP Method

POST

Headers

Tous les en-têtes sont facultatifs.

  1. ViewFields : liste de champs à afficher, séparés par des points-virgules. (Valeur par défaut : Title;FileRef)

  2. RowLimit : nombre de lignes à renvoyer. (Valeur par défaut : 50)

  3. Webs : étendue de la requête. (Valeur par défaut : Recursive)

  4. Lists : valeur du modèle de liste pour les listes à inclure dans la requête. (Valeur par défaut : 850)

  5. WebUrl : URL relative à la collection de sites pour la requête. (Valeur par défaut : « / »)

Request Body

Langage CAML (Collaborative Application Markup Language) d’exécution de la requête. En d’autres termes, il s’agit de la valeur utilisée en tant que valeur de requête dans l’objet CrossListQueryInfo.

Body Content Type

Text/plain.

SilverlightNavigationControl

Cette application Silverlight récupère les données de l’objet NavigationProvider via PublishingCacheRESTService, puis effectue leur rendu sous forme d’affichage à deux niveaux. Le niveau supérieur montre l’emplacement actuel et ses descendants directs, en affichant le titre de chaque site (en outre, la description de chaque site s’affiche sous forme d’info-bulle). Lorsque l’utilisateur pointe sur l’un des nœuds du niveau supérieur, le niveau inférieur est rempli à partir des nœuds correspondant aux enfants du nœud de niveau supérieur.

Si vous cliquez sur un nœud du niveau supérieur ou du niveau inférieur, le navigateur accède à l’URL du nœud sélectionné.

Déploiement et utilisation de SilverlightNavigationControl

Générez le projet et déployez le fichier .xap résultant vers un emplacement du serveur exécutant SharePoint Server 2010. Vous pouvez utiliser l’application de deux façons standard : en vous servant du composant WebPart Silverlight, ou en incluant manuellement une balise <object> dans le balisage HTML d’une page SharePoint Server 2010. En règle générale, SilverlightNavigationControl inclut l’application dans la page maître d’un site SharePoint Server 2010 de sorte qu’elle se trouve à un emplacement cohérent pour l’ensemble des pages qui utilisent cette page maître.

Tableau 4. Valeurs de paramètre de cacheServiceUri

Nom du paramètre

Obligatoire

Valeur

cacheServiceUri

Oui

URL pointant vers PublishingCacheRESTService, qui renvoie les données demandées à partir de l’objet NavigationProvider

Pour permettre au fournisseur de navigation d’afficher la hiérarchie de site relative à la page actuelle, l’URL doit être spécifiée en tant qu’URL relative (par exemple _vti_bin/PublishingCache.svc).

Pour permettre au fournisseur de navigation d’afficher la hiérarchie absolue (de sorte que le fournisseur de navigation affiche toujours la hiérarchie relative à un emplacement spécifique), l’URL doit être spécifiée en tant qu’URL absolue (par exemple http://serveur/_vti_bin/PublishingCache.svc) ou en tant qu’URL relative au serveur (par exemple /_vti_bin/PublishingCache.svc).

SilverlightContentQuery

Cette application affiche les données de requête de liste croisée et traduit les résultats des données de requête en données spécifiques à l’utilisateur à l’aide des services HTTP Microsoft Translator.

Déploiement et utilisation de SilverlightContentQuery

En fonction de ses paramètres d’initiation indiqués dans le tableau 5, cette application utilise la méthode doCustomContentQuery de PublishingCacheRESTService pour exécuter une requête de liste croisée mise en cache, puis affiche les résultats sous forme tabulaire. La première colonne de chaque ligne de résultat est un lien hypertexte cliquable (l’URL de chaque ligne est une valeur de colonne pour chaque élément, comme indiqué dans les paramètres d’initiation).

À l’aide des services Microsoft Translator, l’application traduit les données affichées vers l’une des langues disponibles dans la liste déroulante Traduire en. La liste est remplie dynamiquement en fonction de la liste des langues prises en charge par Microsoft Translator.

Vous pouvez utiliser l’application de deux façons standard : en vous servant du composant WebPart Silverlight, ou en incluant manuellement une balise <object> dans le balisage HTML d’une page SharePoint Server 2010.

Tableau 5. Paramètres d’initiation de SilverlightContentQuery

Nom du paramètre

Obligatoire

Utilisation

Valeurs par défaut (paramètres non obligatoires uniquement)

TranslatorAppId

Oui

AppId du service Microsoft Translator. Pour obtenir un AppId, voir l’article MSDN Getting Started with Microsoft Translator [https://msdn.microsoft.com/fr-fr/library/dd575235.aspx].

Non applicable.

cacheServiceUri

Oui

URL pointant vers la méthode doCustomContentQuery de PublishingCacheRESTService (par exemple https://server/PublishingCache.svc/ContentQuery)

Spécifiez l’URL comme étant relative, relative au serveur ou absolue.

Non applicable.

Query

Oui

Langage CAML (Collaborative Application Markup Language) d’exécution de la requête. Voir la description du paramètre Request Body de doCustomContentQuery, dans le tableau 3.

Non applicable

ViewFields

Oui

Liste de champs à afficher, séparés par des points-virgules. Voir les descriptions des paramètres de la méthode doCustomContentQuery dans le tableau 3.

Non applicable.

UrlField

Non

Champ contenant l’URL à atteindre lorsque l’utilisateur clique sur la ligne du tableau comportant les résultats affichés.

URL

RowLimit

Non

Nombre de lignes à renvoyer. Voir la description des paramètres de doCustomContentQuery dans le tableau 3.

Non applicable. Le service fournit une valeur par défaut, si la valeur n’est pas spécifiée.

Webs

Non

Étendue de la requête

Non applicable. Le service fournit une valeur par défaut, si la valeur n’est pas spécifiée.

Lists

Non

Valeur du modèle de liste pour les listes à inclure dans la requête.

Non applicable. Le service fournit une valeur par défaut, si la valeur n’est pas spécifiée.

WebUrl

Non

URL relative à la collection de sites du site Web utilisé pour la requête.

Non applicable. Le service fournit une valeur par défaut, si la valeur n’est pas spécifiée.

ShowHeaderRow

Non

Si la valeur est TRUE, les noms de colonnes de ViewFields sont affichés en tant que ligne d’en-tête dans le tableau de résultats ; sinon, false.

TRUE

Notes

Pour obtenir les descriptions des nombreux paramètres, voir la section relative à la méthode doCustomContentQuery.

Génération et exécution de l’exemple

Vous pouvez tester ce projet sur votre site de développement ou de test en procédant comme suit.

Génération de l’exemple

Les informations de cette section peuvent être utilisées avec tous les projets basés sur un service WCF REST. L’exécution de l’exemple nécessite au préalable que vous rendiez possible le déploiement de l’hôte de service WCF REST vers SharePoint Server 2010 grâce à l’intégration de SharePoint Server 2010 à WCF et Visual Studio 2010.

Pour configurer le déploiement de l’hôte de service WCF REST dans SharePoint Server

  1. Créez votre service WCF dans un projet de type Projet SharePoint vide. Ce projet permet à votre service d’être empaqueté et déployé automatiquement vers SharePoint Server 2010 en tant que solution.

    Dans votre projet, ajoutez une référence au fichier Microsoft.SharePoint.Client.ServerRunTime.dll.

  2. Ajoutez manuellement la référence de fichier en accédant au fichier. Dans Visual Studio 2010, ouvrez la boîte de dialogue Ajouter une référence, cliquez sur l’onglet Parcourir, puis accédez au dossier C:\Windows\assembly\GAC_MSIL\Microsoft.SharePoint.Client.ServerRuntime\.

  3. Modifiez le fichier .svc. Modifiez l’attribut Factory de votre service en le remplaçant par le nouveau facteur SharePoint pour l’hébergement des services WCF : Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressWebServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c".

  4. Dans Visual Studio 2010, ouvrez le fichier *.sln. Dans le volet Propriétés de Visual Studio 2010, remplacez la valeur de l’URL du site par l’adresse absolue de votre site de test de développement. Par exemple, http://MonServeurDeDév/. Veillez à inclure la barre oblique de fermeture.

    Au lieu de créer une référence d’assembly distincte, modifiez l’attribut Service afin d’inclure une référence à l’assembly de projet. Dans SharePoint Server 2010, la référence est indiquée lors du déploiement de la solution. Incluez en particulier la référence $SharePoint.Project.AssemblyFullName$.

    Supprimez l’élément Assembly, si le fichier .svc contient déjà un élément Assembly.

  5. Ajoutez le dossier mappé ISAPI à votre projet afin d’y placer les fichiers. Dans Visual Studio 2010, cliquez avec le bouton droit sur le projet, puis cliquez sur Ajouter. Cliquez sur Ajouter un dossier mappé SharePoint, puis sélectionnez le dossier ISAPI.

    Déplacez le fichier .svc et le fichier code-behind .cs vers le dossier mappé ISAPI dans le projet .

  6. Mettez à jour le fichier .csproj. Cliquez sur le fichier .csproj, puis lorsque vous y êtes invité, ouvrez-le à l’aide du Bloc-notes.

    Ajoutez <TokenReplacementFileExtensions>svc</TokenReplacementFileExtensions> à l’élément PropertyGroup.

Exécution de l’exemple

Une fois la solution générée et déployée, le service WCF REST interroge les données du cache des requêtes de liste croisée du serveur exécutant SharePoint Server 2010. Il effectue ensuite le rendu des résultats dans un contrôle de navigation Silverlight, et peut afficher ces derniers dans un tableau à partir des résultats d’une requête de liste croisée renvoyée par PublishingCacheRESTService.

Voir aussi

Concepts

Exemples de gestion du contenu d’entreprise

Cache d'objets

Procédure : Personnalisation de la navigation

Personnaliser les fournisseurs et les contrôles de navigation