Créer des applications Silverlight pour accéder à des données SharePoint 2010
Prise en main du développement Web dans SharePoint 2010 : créez des applications Microsoft Silverlight qui affichent des listes SharePoint 2010 dans des contrôles DataGrid et découvrez comment déployer des applications Silverlight sur des sites SharePoint.
Dernière modification : jeudi 27 janvier 2011
S’applique à : SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
Dans cet article
Créer un projet d’application Silverlight
Ajouter du code permettant d’accéder aux données de liste SharePoint et de les afficher
Déployer et tester la solution
Étapes suivantes
Dans cet exercice, vous créez une application Microsoft Silverlight 3 simple qui affiche une liste SharePoint Server 2010 dans un contrôle DataGrid. Les données de la liste sont récupérées du serveur à l’aide du modèle objet client Microsoft SharePoint 2010. Ensuite, vous déployez la solution Visual Studio 2010 sur le serveur local qui exécute Microsoft SharePoint Server 2010. Pour accomplir cette tâche, vous devez effectuer les opérations suivantes :
Créer un projet d’application Silverlight
Ajouter du code permettant d’accéder aux données de liste SharePoint et de les afficher
Déployer et tester la solution
Notes
Cet exercice suppose l’existence d’une liste nommée Projects sur le site SharePoint spécifié ultérieurement dans cette rubrique. Les instructions permettant de créer la liste Projects se trouvent dans Créer des listes liées dans SharePoint 2010
Créer un projet d’application Silverlight
Dans cette tâche, vous créez un projet d’application Silverlight dans Microsoft Visual Studio 2010.
Pour créer le projet Silverlight
DémarrezVisual Studio 2010, cliquez sur Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans la section Modèles installés, accédez au nœud Autres types de projets, cliquez sur Solutions Visual Studio, puis cliquez sur Nouvelle solution.
En haut de l’écran, sélectionnez .NET Framework 3.5, tapez Begin dans la zone Nom, puis cliquez sur OK.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans la section Modèles installés, développez le nœud Visual C#, cliquez sur Silverlight, puis cliquez sur Application Silverlight.
En haut de l’écran, sélectionnez .NET Framework 3.5, tapez SPSilverlightExample dans la zone Nom, puis cliquez sur OK.
Dans la boîte de dialogue Nouvelle application Silverlight, cliquez sur OK.
Ensuite, ajoutez une référence au modèle objet SharePoint client Silverlight. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud SPSilverlightExample, puis cliquez sur Ajouter des références.
Accédez au dossier suivant : C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.
Sélectionnez Microsoft.SharePoint.ClientSilverlight.dll et Microsoft.SharePoint.Client.Silverlight.Runtime.dll, puis cliquez sur OK.
Ajouter du code permettant d’accéder aux données de liste SharePoint et de les afficher
Dans cette tâche, vous ajoutez, au projet, du code qui vous permet d’accéder aux données de liste SharePoint et de les afficher.
Pour ajouter du code au projet
Pour afficher la boîte à outils, dans le menu Affichage, cliquez sur Boîte à outils.
Dans la boîte à outils, faites glisser un contrôle DataGrid jusqu’à la grille existante dans le concepteur Silverlight du fichier Page.xaml.
Développez le contrôle DataGrid pour utiliser la totalité de la page. Dans le volet Propriétés, définissez les propriétés suivantes sur les valeurs indiquées :
Propriété
Valeur
Width
Auto
Height
Auto
HorizonalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
En outre, dans le volet Propriétés, activez la case à cocher AutoGenerateColumns.
Ouvrez App.xaml.cs, puis ajoutez l’instruction using suivante au début du fichier.
using Microsoft.SharePoint.Client; using System.Threading;
Ajoutez le code suivant au début de la méthode Application_Startup.
ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);
Ouvrez MainPage.xaml.cs, puis ajoutez l’instruction using suivante au début du fichier.
using Microsoft.SharePoint.Client;
Ajoutez la classe suivante avant la classe MainPage.
public class Project { public string Title { get; set; } public DateTime DueDate { get; set; } public string Description { get; set; } }
Ajoutez la variable suivante à la classe MainPage.
private ListItemCollection _projects;
Ajoutez le code suivant à la méthode MainPage après l’appel à InitializeComponent.
ClientContext context = new ClientContext(ApplicationContext.Current.Url); context.Load(context.Web); List Projects = context.Web.Lists.GetByTitle("Projects"); context.Load(Projects); CamlQuery query = new Microsoft.SharePoint.Client.CamlQuery(); string camlQueryXml = "<View><Query><Where><Gt>" + "<FieldRef Name='Due_x0020_Date' />" + "<Value Type='DateTime'>2008-01-1T00:00:00Z</Value>" + "</Gt></Where></Query><ViewFields>" + "<FieldRef Name=\"Title\" /><FieldRef Name=\"Description\" />" + "<FieldRef Name=\"Due_x0020_Date\" />" + "</ViewFields></View>"; query.ViewXml = camlQueryXml; _projects = Projects.GetItems(query); context.Load(_projects); context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnRequestSucceeded), null);
Ajoutez le code suivant après la méthode MainPage :
private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs args) { // This is not called on the UI thread. Dispatcher.BeginInvoke(BindData); } private void BindData() { List<Project> projects = new List<Project>(); foreach (ListItem li in _projects) { projects.Add(new Project() { Title = li["Title"].ToString(), DueDate = Convert.ToDateTime(li["Due_x0020_Date"].ToString()), Description = li["Description"].ToString() }); } dataGrid1.ItemsSource = projects; // must be on UI thread }
Le code que vous avez ajouté au cours des étapes précédentes initialise le contexte du modèle objet client Silverlight SharePoint (ClientContext). Ensuite, il obtient une référence à la liste Projects et exécute une requête CAML simple sur la liste pour récupérer tous les projets dont la date d’échéance est postérieure au 1er janvier 2008. Les résultats sont convertis en une liste de projets et liés au contrôle DataGrid Silverlight.
Déployer et tester la solution
Dans cette tâche, vous déployez, puis testez la solution en ajoutant le composant WebPart à la page sur le site SharePoint.
Pour déployer et tester la solution
Pour que vous puissiez déployer la solution sur SharePoint, le fichier.xap obtenu à partir du projet Silverlight doit se trouver dans le dossier C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin .
Cliquez avec le bouton droit sur le nœud SPSilverlightExample, cliquez sur Propriétés, puis sélectionnez Générer.
Définissez Chemin de sortie sur C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.
Générez la solution en cliquant avec le bouton droit sur le nœud SPSilverlightExample, puis en cliquant sur Générer. Le fichier .xap est copié dans le répertoire SharePoint requis et vous êtes en mesure d’ajouter le composant WebPart Silverlight au site SharePoint.
Ouvrez Internet Explorer et accédez au site SharePoint.
Sélectionnez l’icône Modifier en haut de la page.
Cliquez sur Insérer, puis sur Composant WebPart.
Cliquez sur Média et contenu dans la liste Catégorie, cliquez sur Composant WebPart Silverlight dans la liste Composant WebPart, puis cliquez sur Ajouter.
Dans la boîte de dialogue Composant WebPart Silverlight, tapez /_layouts/ClientBin/SPSilverlightExample.xap en guise d’URL, puis cliquez sur OK.
Le composant WebPart doit ressembler à la figure 1.
Figure 1. Composant WebPart Silverlight affichant les éléments de la liste des projets