Le Post Infeeny

Les articles des consultants et experts Infeeny

[SPC14] SharePoint Power Hour – New developer APIs and features

Mail de Christian du 4 mars . Session du Lundi 03/03/2014 – 14h00

Speaker
Rob Howard – Program Manager Microsoft
Office developer platform team

/// Résumé
Beaucoup de code dans cette session développeur.
On évoque toutes les nouveautés des APIs avec beaucoup de démos.
Le site provisioning est très prometteur et permet vraiment d’aller plus loin dans la gestion de projets de type « usines à sites ».
Beaucoup de nouvelles fonctionnalités pour le développeur qui vont arriver dans les semaines prochaines sur les tenant Office 365 sont présentées.
Une session qui va vite, très vite car elle est ambitieuse : celle de montrer via des démos un maximum de code sur les nouveautés pour les développeurs qui vont arriver ces prochains mois.
Les solution packs arrivent dès aujourd’hui, comme nouveau mode de documentation permettant d’aider les développeurs sur les concepts apportés nouvellement.

/// Agenda
Rappels sur App Model
Nouveautés pour les Apps pour SharePoint Apps sur devices et sites avec Office 365

/// Rappels App Model
Il rappelle qu’il y a beaucoup de moyens d’intéragir avec SharePoint avec les APIs.
La sécurité est maintenue avec les systèmes de trust et d’authentification.
Beaucoup d’artefacts permettent de de créer des interfaces et d’améliorer l’expérience utilisateur (UX).
App Model était le nouveau moyen de développer présenté en SPC12.
Beaucoup d’ISVs et de partenaires en général ont fait leur apps.
Beaucoup de solutions types fermes ont été portées en mode Apps.
Session en rapport : SPC325 // Session real world samples of FTC to CAM transformations.
Des nouveautés sont apportées grâce aux CUs (cumulative updates).
Très intéressant : des guidances et samples avec notamment l’annonce aujourd’hui des « Solution Pack » qui permettront de proposer de la documentation et des codes samples pour développer les nouveautés site provisionning et branding.
MS Download ID – 42030.
Il explique les preview features comme nouvelles où ils aimeraient des retours via UserVoice. OfficeSPDev.
http://officeams.codeplex.com : Projet CodePlex avec des codes samples pour les Apps. Il faut aller explorer les samples existants.
Microsoft surveille StackOverflow avec les tags [ms-office] et [sharepoint].
Les nouveautés seront postées sur http://blogs.msdn.com/b/officeapps

/// Nouveautés pour les Apps
// Contextual Apps
Ces apps dont on parle depuis ce matin. Ce sont des apps qui sont contextuelles à l’interface où nous sommes. Une app comme présentée ce matin présente lorsqu’on crée un mail.
//Device Apps et Web Sites : beaucoup d’APIs et SDK pour créer des WebApp ou des Apps pour mobile disponibles sur les différentes plateformes.

// Nouvelles remote APIs
Les client components sont apportées par SharePoint Server 2013 SP1.
Pareil pour celles de SharePoint Online.
Les deux proposent des librairies portables pour l’utilisation de Windows Store.

// DEMO : Site provisioning App
Remote application en provider hosted.
Sur une App on peut ajouter la permission sur le Tenant en mode Write : cela lui permet de créer des collections de sites.
Il crée sur sa page une textbox pour le site name, une pour l’owner et enfin un bouton qui va exécuter son code (de création de site).
Il insère son code snippet pour la gestion du token et avoir la gestion de l’authentification sur son App.
Il insère ensuite le code avec l’objet SiteCreationProperties permettant de créer une collection de sites.
Microsoft.Online.SharePoint.Client.Tenant.dll est ajouté dans le projet et contrairement à son nom, il fonctionne aussi en On-Prem.
Il lance son App à l’interface très sobre, entre ses paramètres et clic sur le bouton. Il va sur son Admin Dashboard sur Office 365 et on voit que sa collection est en train de se créer. Plutôt pas mal comme possibilité maintenant sur une App !

// DEMO : Seller Dashboard
Il y a maintenant un mode d’abonnement où une App peut maintenant avoir un paiement en mode abonnement plutôt qu’un paiement OneShot.
Cela se fait sur le Seller Dashboard, la plateforme permettant de publier son App sur le store.

// Hosted App UI
Il rappelle que son App étaient des simples textbox .. pas terrible.
Il introduit Office Web Widget vu précédemment. Cela permet en javascript de créer des controls de type SharePoint (gestion des events, people picker, list view) dans n’importe quelle application (PHP par exemple).
Office Web Widget tout nouveau depuis le 28/02/2014 et est téléchargeable en mode NuGet.
Il revient sur sa page HTML, où il insère les références dans le head. Il déclare les js correspondant liés au HostURL qui permet de charger le js de Office Web Widget depuis le site SharePoint où le fichier est dispo.
Ensuite il crée une div avec un attribut data-office-control= »Office.Controls.PeoplePicker » en plus de son textbox . Il passe en Debug et voit que dans sa page, il a maintenant un people picker.
On va voir comment récupérer la valeur. Il met un data-office-options permettant de mettre des paramètres au control comme un placeholder (html5) permettant de mettre une description sur la textbox quand elle est vide.
Debug —> ça marche et on peut récupérer.
Il explique que sur ce Office Web Widget sera un projet GitHub où chaque développeur pourra proposer ses améliorations.

// Futur : Workflow Apps
Il explique comment packager les workflows dans les Apps et les utiliser depuis les Apps dans son site hôte. Ainsi améliorer le packaging des Apps et ajouter des fonctionnalités de workflows facilement maintenue via des Apps.
Arrive sur Office 365 à la fin de mars !!

// DEMO : Workflow Apps
il crée un workflow depuis Visual Studio, sans créer les listes nécessaires pour le workflow (tâches etc.).
Il ajoute dans son Manifest d’App les droits de gestions sur le Web pour attacher le workflow sur les listes.
Il ajoute une activité dans son workflow de type simple tâche, sur une personne codée en dur (juste pour montrer le workflow sur le principe).
Il déploie le tout sur son tenant Office 365.
On voit qu’en ajoutant un workflow à une liste, son workflow est maintenant dispo dans les modèles de workflow (workflow templates).

// Futur : les custom file extension
On va pouvoir maintenant créer des Apps qui vont faire la gestion de type de fichier pour une extension donnée. Note : comme la keynote developpeurs, on pourra faire une App qui ajoutera à son Team Site, la gestion des fichier d’AutoCAD par exemple … pas mal du tout !

// DEMO : les custom file extensions
Il crée encore une App toute vide avec les droits de Web/Write.
Il crée un FileTypeCustomAction qu’il accroche sur le modèle Document Library et l’appelle, Dans un <CustomAction> on a maintenant un <FileExtensionDefinition avec un attribut Extension= »drw » qui permettra de gérer la façon dont la location est maintenant FileExtensionDefinition et qui se comporte avec une extension de type drw. En fait il décrit l’URL d’une page dans ce noeud qui sera utilisée pour le preview d’un fichier drw. Il crée cette fameuse page en HTML et ajoute les javascript nécessaires pour le comportement voulu, ainsi que les CSS.
Il a notamment mis un preview.js qu’il crée, et y insère le code qui permet de lire les query strings de l’URL. Ainsi il peut récupérer le SPItemUrl et grâce à l’API REST, il va récupérer le fichier via la fonction GetFileByServerRelativeUrl().
Debug : Il va sur un site où il y a fichier drw. Rien de particulier. Il installe son App et approuve les permissions. Boum maintenant son fichier DRW a une icône particulière, et une preview de type Office Online permet de visualiser le fichier sur le clic droit du fichier : vraiment pas mal du tout !!
SPC347 : OneDrive for Business extensibility : building great apps and solutions

// Cloud Business App in Visual Studio
C’est un nouveau modèle qui permet de créer une App qui va se connecter au SI de l’entreprise.
Il ne développe pas plus ici et propose de voir la session : SPC394 : Developing Office 365 Cloud Business Apps

// Office 365 Device Apps
Il présente des Apps créées sur des device, utilisant les modèles objets client pour se connecter à SharePoint.

// Azure AD OAuth in Office 365 Preview C’est une annonce officielle, la gestion de l’authentification Azure AD Graph, Exchange et SharePoint.
Pour les applications et les sites.
Cela se base sur OAuth 2.0 avec la gestion de des permissions et de la sécurité.

// DEMO : Azure AD OAuth
il va sur http://manage.windowsazure.com et montre que sans abonnement, AD subscriptions.
La page dit qu’il n’y a pas d’abonnement mais un lien subsiste Sign up for Windows Azure.
Il va maintenant sur le portail et se connecte avec un utilisateur qui a l’abonnement. Il a deux sites, dont un de type Directory où il peut créer des users.
Il montre dans les Applications sur une nouvelle application, un nouveau bloc où il peut ajouter pour chaque application des permissions déléguées permettant d’agir sur SharePoint notamment.

// Office 365 Discovery Services Preview C’est une annonce aussi sur un service permettant de déterminer les URLs des services Office 365.
Une sorte d’annuaire des outils.

// DEMO : Office 365 Discovery Services Il a une appli vue ce matin lui permettant de tester certaines APIs.
Il entre un user et récupère les infos lui permettant de savoir quel type d’user c’est.
Il va plus loin, et voit s’il a accès à un site. Il récupère tous les tokens qui lui sont nécessaires pour son App.
Ensuite il appuie sur Discover et là, il voit les différentes URLs de services (MyFiles OneDrive, Mail Exchange, Calendar, Contacts) assez simplement.

// Office 365 API Preview
Nouvelles APIs REST/OData Service. Elles permettent d’accéder aux données de fichiers, de listes, de mails de calendrier, d’annuaire.
Il est utilisable sur Exchange, SharePoint, Azure AD.

// DEMO : Office 365 API Preview
Il crée un site tout simple sur Visual Studio en ASP.NET MVC.
Il ne met pas d’authentification qu’il gère plus tard.
Il a ajouté Office 365 API Tools sur son Visual Studio. Il ajoute dans Services Manager, une connexion en se connectant sur son tenant. Il crée une connexion sur SharePoint puis ajoute les droits sur les fichiers et les sites en écriture.
Il ajoute maintenant les connexions aux services Exchange, Tout ça ajoute des controls dans le projet qui vont faciliter toute l’authentification et l’accès aux données.
Debug : Il est prompté sur l’authentification Office 365, et atterri sur une page où un listing de ses documents est déjà fait sans avoir codé quoi que ce soit pour l’instant. Pas mal. Il fait la même chose pour Exchange où il n’a pas encore mis les droits. Il retourne sur son code, et ajoute un controller qui va gérer son code. Il ajoute un model (bon, directement dans le fichier de la classe du controller pour la démo). Enfin il ajoute des données en dur dans un tableau correspondant aux actions qu’il veut tester, avec les URLs des APIs correspondantes.
Enfin il ajoute le code, la tuyauterie permettant de tester son app selon ses objets en se servant notamment des classes créées par l’outil pour gérer la partie authentification.
Il crée une view qui va afficher les détails de sa réponse HTTP.
Debug : tout marche et il a fait un explorateur d’API qui lit, ajoute, supprime des fichiers sur OneDrive ou sur Exchange.
Enfin il publie son site sur https://o365apisdemo.azurewebsites.net en configurant son site Azure pour qu’il soit multi tenant et avec du SSO. Cela permet de connecter son outil à n’importe quel tenant.
C’est fort !

// Office 365 SDK for Android
Il est en retard donc ne s’étend pas mais c’est maintenant officiel : il y a maintenant le SDK sur GitHub pour Android.
Voir la session SPC373 : Build SharePoint Solutions on Mobile devices

Christian SU

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 :