Le Post Infeeny

Les articles des consultants et experts Infeeny

#SPC2012 : Introduction to the Cloud App Model for Office and SharePoint 2013

Monday, 16h00 – SPC134

Keenan – Senior Product manager developer audience toujours Eray Chou – Senior Program Manager Lead

Agenda : Hosting choice (3 architecture approach)

Résumé :

Cette session rentre dans le code plus en profondeur que la session précédente. Possibilité de créer une App en ASP.NET MVC .

Chou revient sur les nouvelles possibilités des API REST de SharePoint 2013 en termes de simplicité mais également sur le fait que c’est une API complète.

Enfin Chou, revient sur les Remote Event Receivers qu’il explique et dont il fait une démo

// Newton montre les différents moyen d’héberger une app

3 moyens d’héberger déjà évoqués dans la session d’avant SharePoint-Hosted App :

  • Un sous-site est créé sous le site qui héberge l’App (appelé Host web).
  • Provider Hosted App (Cloud based) : SharePoint + hébergeur personnal Autohosted (Cloud based) : SharePoint + Windows Azure Il conseille les cloud based pour gérer la montée en charge. La possibilité de gérer la techno et l’hébergement.
  • SP hosted : gestion automatique de l’hébergement

// DEMO : Newton fait une démo d’une Cloud hosted App (auto hosted) en ASP.NET MVC

L’App faite en ASP.NET MVC, permet de lire une liste et d’ajouter des éléments.

L’App est simple, permet juste d’ajouter des éléments avec un textbox par colonne.

On va sur Visual Studio avec le projet en ASP.NET MVC On est sur le controller et sur l’Index où il met en place le contexte dans le ViewBag.

Sur la méthode Add, il va simplement ajouter un item via le CSOM C#, puis définit les RouteValues grâce aux tokens standards de l’App.

Sur le cshtml, il va définit les différents mécanismes pour gérer la sécurité d’une App SharePoint avec un ContextToken notamment mis dans un input hidden. En regardant la source de la page une fois exécutée, le form va bien rediriger vers la bonne page avec les bons tokens d’app SharePoint Il revient sur Visual Studio 2012. Crée un projet ASP.NET MVC 4. Il clic droit sur le projet ASP.NET MVC et fait « Add SharePoint project ». Visual Studio ajoute le bon csproj type SharePoint pour déclarer l’App sur SharePoint.

// Chou prend la parole.

Il va parler REST & CSOM APIs.

L’API client.svc a été étendu en implémentant des fonctionnalités REST il accepte HTTP GET, PUT, POST pour lire, ajouter, modifier etc.

Il respecte le protocole OData

D’ailleurs, le CSOM qui existait a également été amélioré pour SP Server, et pour créer des appris Windows Phone.

Le CSOM couvre notamment les fonctionnalités Search, Social, Taxonomy, Workflow, Analytics, Sharing, Publishing, eDiscovery, IRM, BCS etc etc (much much more).

En termes de versions et licences, nous avons (Microsoft.SharePoint.Client.dll et .Client.Runtime pour SP Foundation.

SP Server va avoir également .Client.DocumentManagement.dll, Publishing.dll, Taxonomy.dll, UserProfiles.dll.

Cela s’appelle donc les remote APIs. L’ancien accès via  _vti_bin\client.svc devient _api/ L’utilisation est plus simple, avec la possibilité d’accoler les choses en utilisant javascript et notamment jQuery. Il y a la possibilité de retourner les résultats de requêtes REST en JSON ou ATOM (on pense à la méthode getJSON).

Ces APIs sont alors agnostiques par rapport à la plateforme qui utilise ces services.

Il ironise sur le fait que SharePoint a la bonne tradition d’avoir des URLs absolument propres.

Il donne des exemples de requêtes via l’URL (ex : _api/web/getAvailableWebTemplates(lcid=1033))

// DEMO : Utilisation de l’API REST

Il va sur un site SharePoint et via /_api/web et a une représentation du site en web service.

Il met en avant OData en montrant /_api/web/?$select=Title,Id pour avoir que les infos qui nous intéressent Il met en avant la simplicité d’utilisation en montrant _api/web/lists et en sélectionnant juste Title et Id comme pour l’exemple précédent.

Jusque là nous avons de l’XML affiché directement sur IE. Mais il est également possible de récupérer le résultat en JSON.

Il nous montre que des méthodes existent comme pour les listes. Nous avons getListByTitle _api/web/lists/getByTtitle(‘Annoucements’) ..  fait un /items pour récupérer les éléments.

Là il demande qui connait CAML, plus de monde que prévu répondent. Il s’excuse alors de nous avoir fait apprendre cela. Effectivement là via le webservice, après le /items, il nous montre que le filtre est assez facile grâce à un $filter après l’URL.

Il passe à la démo sur l’API Newsfeed avec l’URL /_api/spcoam/feed/my/news permettant par exemple de remonter tous les posts effectués dans le newsfeed.

// retour sur les slides

// Remote Event Receivers (RER)

Ce sont des event receivers qui peuvent être créés via une App (contrairement aux normaux à package côté Farm) Possibilité d’en créer sur ListItem, List, Web, App Nous avons toujours les événements synchrones et asynchrones Pour enregistrer un RER, soit nous faisons par XML, soit C#. Ressemble grandement aux ER normaux.

Le code va prendre la forme d’un service .SVC

// DEMO : Remote event receivers

Il a créé une App avec une document library Le RER, va checker s’il a été validé ?

Il a créé un document avec des propriétés placées sur le document (mapped properties) Il remplit les infos comme le titre et le description mais pas la « ValidatedDate » étant une colonne custom.

Il revient sur le code (la connexion est toujours mauvaise). Il a créé une blank App avec une document library.

Il enregistré son RER, RemoteEventReceiver1.svc.

Dans un autre csproj, il a son service SVC dans lequel il a implémenté IRemoteEventService. Il a notamment la méthode ProcessEvent() où il a récupéré l’item courant, et rempli la colonne « Validated date » à la date d’aujourd’hui via le code.

Test : ça marche !

// DEMO : RER pour envoyer une notification à Windows 8

Il créé une App en Autohosted. Le but de cette démo va être de montrer comment Visual Studio aide à créer ce qu’il faut pour créer un RER (être conscient des éléments créés en arrière plan) Deux csproj sont créés de base. Un pour déclarer l’App, l’autre pour créer le Default.aspx qui va être déployé sur Azure.

Il ajoute un template de liste simple (schéma etc.) d’annonces Il ajoute un remote évent receivers avec (itemadded itemupdated). Il nous montre qu’en plus du code, il a créé l’XML pour l’attacher à notre liste (NDLR : comme actuellement avec SP 2010 et VS 2010 …) Il implémente la méthode ProcessOneWayEvent() Il explique un snippet de code Windows 8 (town) qui permet de poster une notification sur Windows 8 Il déploie, ajoute une annonce dans sa liste … et rien ne se passe. Effet démo … Il nous explique que normalement une notification apparait sur Windows 8 …. Comme ce matin en keynote après un effet démo de Scott Guthrie et sur d’autres sessions … C’est à cause de Dreamweaver. Plaisanterie.

Christian

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

%d blogueurs aiment cette page :