#SPC2012 : Deep Dive on building apps like a SharePoint ECM dev

Session de 15h15 à 16h30 Pablo Bravo, Senior Developer – SharePoint ECM

Toute la session va se faire dans le Cloud (Online + Azure + TFS) avec du développement dans Visual Studio 2012. Tout ce qui va être vu fonctionnera donc dans le Cloud mais pourra forcement fonctionner en version On Premise.

La démonstration se déroulera sur un Document Set (« Spec Library ») et nous allons lui associer un « Remote Event Receivers ». L’objectif est de faire une app, qui une fois installée va enregistrer le « Remote Event Receiver » sur l’ajout d’un élément dans le document Set. Une fois désinstallé, le Remote Event Receiver sera supprimé.

On voit donc le projet Visual Studio. Dans le manifest de l’app, on modifie les « permissions request » pour ajouter :

  • le scope « Web » en permission « FullControl »
  • le scope « Taxonomy » en permission « Write »
  • le userprofile en « Read »

En effet, l’app va toucher tous ces composants. Ce paramétrage qui est effectué par l’interface génère les « AppPermissionRequest » dans le « AppManifest.xml ».

Dans les propriétés du projet, on va pouvoir activer (value True) « Handle App Installed » et « Handle App Uninstalled » qui nous permet de générer un « AppEventReceiver » qui est un WebService svc. La classe implémente « IRemoteEventService », et on voit qu’une méthode « DeployHostAppElements » est intégré pour

  • Accéder à la liste (qui sera donc le DocumentSet)
  • Ajouter à la liste l’EventReceiver « EventReceiver.Add » sur l’ItemAdd.

La suppression de l’eventReceiver se fait dans « RemoveHostAppElements ». Le Receiver n’est une simple classe mais un WebService SVC implémentant IRemoteEventService. Dans la méthode « Process », on va accéder à la liste, appeler l’userProfile (new PeopleManager(clientContext)) pour récupérer le département de l’utilisateur courant. On récupère aussi les informations dans le TaxonomyService (le département), et on ajoute un élément dans le ProductBacklog de TFS. Tout ceci permet de modifier l’éléments courant (le documentSet) avec les informations récupérées (nom d’utilisateur, département).

Une fois terminé, le déploiement est lancé comme prévu dans SharePoint Online. Dans notre cas, on ne peut pas debuguer dans ce mode de déploiement (office365) afin d’ajouter l’AppEventReceiver, donc une page custom s’en occupe (via un bouton).

Une fois déployé, les autorisations d’accès sont demandées (OAuth).

Pour la deuxième partie, on attaque les Client Web Parts. Les Client Web Parts correspondent à une iframe vers une host web.

Pablo nous montre le développement d’un Client Web Part (Host Web) qui va requêter le serveur TFS , chercher des données de Work Item TFS. Pendant 30 minutes, on mange du code et c’est rapide et assez complexe à suivre. Le résultat fonctionne à la fin. On a pu voir du REST sur SharePoint, CSOM, de la récupération d’information depuis TFS, que l’app pourra être intégré dans le cloud (et dans le store).

Une bonne session de développement, mais trop rapide à mon goût avec tout le code écrit (via des snippets bien sûr).

Jérôme

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s