[SharePoint 2010] Créer et packager une application Silverlight pour SharePoint 2010
L’intégration native de Silverlight dans SharePoint 2010 représente une avancée majeure dans la conception des applications sur la plateforme SharePoint. Et pour cause, Silverlight repousse les limites du Web de SharePoint en offrant une expérience plus riche à l’utilisateur : dynamisme des interfaces, possibilité d’utilisation hors ligne et hors navigateur des applications, streaming vidéo, … et mise à disposition d’un modèle objet pour accéder en toute simplicité aux données de SharePoint !
Ce court post a pour objet de vous présenter une façon de créer et de déployer un projet d’application Silverlight. Nous utiliserons très succinctement le modèle objet client pour Silverlight de Sharepoint 2010.
Création d’un projet Silverlight pour SharePoint 2010 et utilisation du modèle client
1. Créer un projet de type « Silverlight Application » (ajoutez un projet Web de test si vous le souhaitez pour tester votre application, au moins l’interface, lors de sa conception) :
2. Pour communiquer depuis un contexte Silverlight avec le serveur SharePoint en utilisant le modèle objet mis à disposition par l’équipe de Redmond, vous devez référencer les deux DLLs suivantes :
- Microsoft.SharePoint.Client.Silverlight.dll
- Microsoft.SharePoint.Client.Silverlight.Runtime.dll
Remarque : les DLL pour les clients non Silverlight se trouve dans le répertoire ISAPI et se nomment Microsoft.SharePoint.Client.dll et Microsoft.SharePoint.Client.Runtime.dll.
Effectuez un clic droit sur votre projet > ‘Add Reference’
Localisez les DLLs (cf plus haut) dans le chemin « c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin ».
Votre projet devrait maintenant posséder les références vers les DLLs du modèle objet client pour Silverlight :
3. Dans votre fichier de code de l’application, ajoutez l’espace de nom Microsoft.SharePoint.Client :
4. Le modèle objet de Silverlight est accessible, ici de façon asynchrone, c’est à dire que vous empiler les requêtes (de chargement, de mise à jour, …) et les exécuter à l’aide de la méthode ExecuteQueryAsync.
private Client.ClientContext context = null;
private Client.Web web;
private delegate void MiseAJourInterface();
...
private void btnRefresh_Click(object sender, RoutedEventArgs e)
{
// Récupération du contexte SharePoint
context = Client.ClientContext.Current;
web = context.Web;
// Récupération des informations du site
context.Load(web, null);
// Chargement asynhrone des listes du site
context.Load(web.Lists, null);
context.ExecuteQueryAsync(RequeteSucceeCallback, RequeteEchecCallback);
}
#region Gestion des appels asynchrones
private void RequeteSucceeCallback(object sender, Client.ClientRequestSucceededEventArgs args)
{
// TODO
}
private void RequeteEchecCallback(object sender, Client.ClientRequestFailedEventArgs args)
{
// TODO
}
#endregion
Dans cet exemple nous souhaitons récupérer toutes les informations du site web courant et les listes/bibliothèque de ce dernier.
Déploiement d’une application Silverlight dans SharePoint 2010
Pour déployer votre application Silverlight sur SharePoint, il vous faut créer comme vous vous en doutez une feature ! Avec la nouvelle extension SharePoint de Visual Studio 2010, rien de plus simple :
5. Ajoutez un nouveau projet à votre solution : clic droit sur la solution > Add project > SharePoint > 2010 > Empty SharePoint Project
6. Dans le module créé par le modèle de projet (que vous pouvez renommer), modifiez son fichier Elements.xml associé de la façon suivante :
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="SLAccessible">
<File Path="SLAccessible/SilverlightAccessible2010.xap" Url="_catalogs/masterpage/SilverlightAccessible2010.xap" />
</Module>
</Elements>
Attention à bien remplacer les valeurs des attributs par les valeurs correspondant à votre projet. L’élément File contenant dans l’élément Module contient deux attributs :
- Path : chemin de l’emplacement du fichier .xap à inclure dans le projet,
- Url : emplacement où sera déployé sur le serveur SharePoint le fichier .xap spécifié par l’attribut Path.
Remarque : Dans l’exemple, je place le fichier .xap dans la bibliothèque des pages maîtres, néanmoins un autre emplacement (LAYOUT) par exemple est tout aussi indiqué.
7. Maintenant vous devez inclure le fichier .xap de votre application Silverlight dans le projet SharePoint. Pour cela, ajoutez la sortie du projet Silverlight à votre module en effectuant les actions suivantes : propriétés du module > Project Output Preferences (cliquez sur le bouton ‘…’) > Add > Project Name (changez et mettez votre projet Silverlight) > Deployment Type (mettez ElementFile) > OK
8. Pour packager, déployer et lancer le débogage : F5 ! Le compilateur va d’abord procéder à la compilation de votre application Silverlight puis il l’intégrera dans le WSP qui sera généré avant de déployer et d’activer la feature ainsi créée.
9. Une fois la feature déployée, insérez une webpart Silverlight dans une page et paramétrez cette dernière pour qu’elle pointe vers le fichier .xap déployé sur votre serveur (à l’adresse de la valeur Url du fichier .xap de votre fichier Elements.xml).
10. Enregistrez la page et vous devriez maintenant observer votre application Silverlight dans votre espace SharePoint 2010 :
Voilà j’espère que ces quelques rapides explications sur la création d’une application Silverlight dans SharePoint 2010 vous satisferont (n’ayant pas trop le temps de créer un article détaillé sur le sujet). Les retours d’expérience et les améliorations sont bien évidemment toujours les bienvenues !
Bon SPCode !
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :