Partager via


Exemple de code : Composant WebPart Statistiques de données sociales

Dernière modification : lundi 22 août 2011

S’applique à : SharePoint Server 2010

Le composant WebPart Statistiques de données sociales affiche des statistiques sur les données sociales. Cet exemple est un projet de composant Visual Web Part SharePoint Microsoft Visual Studio 2010. Après avoir généré et déployé ce projet sur votre site Microsoft SharePoint Server 2010, vous pouvez ajouter ce composant WebPart à toute page dans laquelle vous souhaitez afficher des statistiques sur les activités de lien de mise en réseau de vos utilisateurs. Le composant WebPart affiche les informations suivantes dans trois tableaux :

  • chaque URL ayant été balisée et les termes avec lesquels chaque URL a été balisée ;

  • chaque terme ayant été utilisé dans un lien de mise en réseau, ainsi que le nombre d’utilisation des termes ;

  • chaque utilisateur ayant ajouté un lien de mise en réseau, ainsi que le nombre de fois que cet utilisateur a balisé des URL.

Installez cet exemple de code sur votre ordinateur en téléchargeant le Kit de développement logiciel SDK Microsoft SharePoint 2010 (éventuellement en anglais) ou en téléchargeant l’exemple à partir de la Galerie de code (éventuellement en anglais). Si vous téléchargez l’exemple SDK SharePoint 2010, il est installé à l’emplacement suivant sur votre système de fichiers : C:\Program Files\Microsoft SDKs\SharePoint 2010\Samples\Social Data and User Profiles.

Extraction et stockage des données à l’aide du modèle objet

Le composant WebPart Statistiques de données sociales crée un objet UserProfileManager et un objet SocialTagManager que vous créez avec un site ou une collection de sites que vous écrivez directement dans votre code.SPServiceContext

//Change this value to the root URL for your site.
string socialDataStatsSite = "http://mysite";

using (SPSite siteColl = new SPSite(socialDataStatsSite))
{
//Create SocialTagManager with desired SPServiceContext.
SPServiceContext serviceContext = SPServiceContext.GetContext(siteColl);
UserProfileManager myUserProfileManager = new UserProfileManager(serviceContext);
SocialTagManager mySocialTagManager = new SocialTagManager(serviceContext);

Seuls les utilisateurs répertoriés dans la liste de contrôle d’accès Autorisations de l’application de service Profil utilisateur peuvent créer une instance d’un objet UserProfileManager. Pour ajouter un utilisateur à la liste de contrôle d’accès Autorisations de l’application de service Profil utilisateur, effectuez les étapes de la procédure suivante.

Pour ajouter un utilisateur à la liste de contrôle d’accès Autorisations de l’application de service Profil utilisateur

  1. Dans votre navigateur, accédez à votre page d’accueil Administration centrale de SharePoint.

  2. Naviguez jusqu’à la page Gérer les applications de service, mentionnée sous l’en-tête Gestion des applications.

  3. Sélectionnez l’option Application de service Profil utilisateur. Cliquez sur Autorisations.

  4. Dans la boîte de dialogue, ajoutez les comptes d’utilisateurs. Cliquez sur OK.

Les liens de mise en réseau utilisant uniquement des termes de taxonomie, la première tâche que doit effectuer le composant WebPart consiste à extraire tous les termes de mise en réseau qui ont été créés dans le magasin de taxonomie actuel. Chaque objet SocialTerm contient le terme de taxonomie du magasin de taxonomie actuel et une propriété Count qui représente le nombre d’utilisations du terme dans un lien de mise en réseau.

//Get all social terms and store in an array.
SocialTerm[] socTerms = mySocialTagManager.GetAllTerms();

L’étape suivant consiste à créer des objets Dictionary qui stockent toutes les informations affichées par le composant WebPart.

//Create a Dictionary to store values for tags on social URLs, number of times each social term is used,
//and number of times that each user has tagged a URL.
Dictionary<string, string> SocialUrlStats = new Dictionary<string, string>();
Dictionary<string, long> SocialTermStats = new Dictionary<string, long>();
Dictionary<string, int> SocialTagStats = new Dictionary<string, int>();

Après avoir extrait tous les termes de mise en réseau qui ont été utilisés dans des liens de mise en réseau, le composant WebPart itère le tableau de termes de mise en réseau, stocke la quantité pour chaque terme, puis extrait et stocke toutes les URL qui ont été balisées avec chaque terme.

//Get a Taxonomy term for each SocialTerm, get the number of times each social term has been used in a tag,
//and get all the URLs for which that term has been used as a tag. Then map each URL to each of the terms with which
//it has been tagged.
foreach (SocialTerm aTerm in socTerms)
{
  string termName = aTerm.Term.Name;
  SocialTermStats.Add(termName, aTerm.Count);
  try
  {
    SocialUrl[] socURLs = mySocialTagManager.GetAllUrls(aTerm.Term);
    foreach (SocialUrl aUrl in socURLs)
    {
      string urlString = aUrl.Url.ToString();
      if (!SocialUrlStats.ContainsKey(urlString))
      {
        SocialUrlStats.Add(urlString, termName);
      }
      else
      {
        SocialUrlStats[urlString] += ", " + termName;
      }
    }
  }
  catch (UserNotFoundException unfE)
  {
// If the user is not found, handle exception.
  }
}

Le composant WebPart remplit ensuite l’objet SocialTagStatsDictionary en extrayant tous les liens de mise en réseau créés par chaque utilisateur dans UserProfileManager. Il mappe ensuite chaque lien de mise en réseau à son propriétaire.

//Get all the social tags in which the terms have been used.
List<SocialTag> socialTagsList = new List<SocialTag>();
foreach (UserProfile userProf in myUserProfileManager)
{
  try
  {
    SocialTag[] userTags = mySocialTagManager.GetTags(userProf, 0);
    foreach (SocialTag aTag in userTags)
      {
        socialTagsList.Add(aTag);
      }
  }
  catch (UserNotFoundException unfE )
  {
//If the user is not found, handle exception.
  }
}

//For each SocialTag, get the owner and get the number of times that owner has tagged a URL.
foreach (SocialTag aTag in socialTagsList)
{
  if (aTag != null)
  {
    if (!SocialTagStats.ContainsKey(aTag.Owner.DisplayName))
    {
      int tagCount = mySocialTagManager.GetCount(aTag.Owner);
      SocialTagStats.Add(aTag.Owner.DisplayName, tagCount);
    }
  }
}

Pour finir, le composant WebPart lie chaque objet Dictionary à un objet GridView pour afficher les statistiques de données sociales qu’il a extraites. Les chaînes utilisées dans l’interface utilisateur sont stockées dans un fichier de ressources.

//Bind each Dictionary to a GridView control. Display localized header strings for each column.
GridView1.DataSource = SocialUrlStats;
GridView1.Columns[0].HeaderText = Properties.Resources.String1;
GridView1.Columns[1].HeaderText = Properties.Resources.String2;
GridView1.DataBind();
GridView2.DataSource = SocialTermStats;
GridView2.Columns[0].HeaderText = Properties.Resources.String3;
GridView2.Columns[1].HeaderText = Properties.Resources.String4;
GridView2.DataBind();
GridView3.DataSource = SocialTagStats;
GridView3.Columns[0].HeaderText = Properties.Resources.String5;
GridView3.Columns[1].HeaderText = Properties.Resources.String2;
GridView3.DataBind();
}

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

Les étapes suivantes montrent comment tester ce projet sur votre site de développement ou de test.

Pour générer l’exemple

  1. Créez un dossier nommé Microsoft.SDK.Server.Samples, puis décompressez le fichier SocialDataStatistics.zip dans ce dossier.

  2. Démarrez Visual Studio 2010, puis ouvrez le fichier SocialDataStatistics.sln qui se trouve dans le dossier créé à l’étape 1.

  3. Dans la fenêtre Propriétés, spécifiez la valeur d’URL de l’adresse absolue de votre site de développement ou de test (par exemple, http://monsite/. Assurez-vous d’inclure la barre oblique de fermeture. Faites également en sorte que cette URL ait la valeur de la chaîne socialDataStatsSite dans le fichier VisualWebPart1UserControl.ascx.cs.

  4. Si elles ne sont pas déjà présentes, ajoutez des références aux assemblys suivants au projet :

    • Microsoft.SharePoint.dll

    • Microsoft.SharePoint.Taxonomy.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.UserProfiles.dll

  5. Dans le menu Générer, sélectionnez Déployer la solution. Une fois la génération terminée, le composant WebPart est installé sur votre site de développement ou de test.

Pour exécuter l’exemple

  • Ajoutez le composant WebPart nouvellement installé à une page quelconque de votre site. Dans la catégorie Personnalisé, sélectionnez le composant WebPart VisualWebPartProject1.

    ConseilConseil

    Si votre page génère une erreur indiquant que le contrôle de ce composant WebPart est introuvable, naviguez jusqu’à \Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES, puis affectez à SocialDataStatisticsWebPart le nouveau nom VisualWebPartProject1.

Voir aussi

Concepts

Création et utilisation de données sociales avec le modèle objet

Autres ressources

Galerie de code (éventuellement en anglais)