#SPC2012 : How to Develop Social Applications with SharePoint 2013

Thursday, 11h00, Matthew McDermott, MVP, Principal Consultant, Director

Résumé :

Session où la grande partie est de la redite d’autres sessions.

Une partie intéressante est la démo à la fin où il montre qu’il est possible d’outrepasser les problèmes de cross-scripting via un Request Executor. Dommage qu’il ne rentre pas plus dans les détails de l’implémentation de son code. Son code lui permet de créer une sorte de bot permettant de s’attacher à Dynamics pour poster une news sur SharePoint en mentionnant une personne qui clos une opportunité.

// Composantes du social

Il représente les composantes du social : UserProfiles + Feeds + Following + Search Il explique qu’il ne faut pas hésiter à faire des prototypes pour valider ce que l’on veut faire.

On peut travailler sur les UserProfiles, les social feeds, les site feeds et les community sites.

Il représente les possibilités de développer du social (CSOM, JSOM, REST, Silverlight Library, .NET CLR Library).

On peut récupérer les profiles et les propriétés.

On peut récupérer les feeds et les réponses.

On peut modifier la photo de l’utilisateur (pas ses propriétés).

On peut créer des posts avec l’utilisateur authentifié.

On ne peut pas tester si un compte existe, créer,modifier, supprimer un user profile, créer un post au nom d’une autre personne.

// DEMO : JSOM

Il veut amener du social dans la recherche.

Il a modifier le search design Display template. Il a copié le Item_Person et Item_Person_Hover.

Il y a ajouté une div dans le Hover copié, avec un javascript qui va utiliser le SocialFeedManager pour récupérer les feeds et les afficher sur le panneau.

Dans ce display template il utilise AddPostRenderCallback et SP.SOD.executeFund(‘sp.js’..) pour ajouter un callback lorsque le DOM est chargé.

Il utilise console.log() pour logger ses erreurs.

// DEMO : JSOM et REST

Il fait deux démos, permettant d’attaquer les services REST et JSOM pour attaquer le profil utilisateur en récupérant une propriété utilisateur. Avec ça il récupére la propriété custom « TwitterAccount » qu’il passe à une requête JSONP Twitter afin de récupérer les tweets.

// DEMO : Request Executor

Il expose un scénario d’un système externe qui veut se connecter à SharePoint. Il va utiliser Request Executor qui va créer une IFRAME vers une App SharePoint qui va attaquer le site SharePoint, comme un proxy.

Ainsi il surpasse la restriction cross-domain.

Il a une page hébergée sur Dynamics CRM, qui récupère et post les feeds.

Il a créé un dev qui lui permet de créer une opportunité sur Dynamics, et quand cette opportunité est validée, cela poste un message sur le newsfeed de SharePoint de la part d’un bot.

Il ne rentre pas dans l’implémentation de son code.

Christian

#SPC2012 : Living and breathing the social workspace

Session de 12h à 13h15 animée par Daniel Kraft (CEO, Newsgator)

Petit résumé:

Si vous voulez des news sur la version Newsgator sur SharePoint 2013, passez votre chemin. Il n’a eu aucune démo, que des screenshots de leur noivelle version de Newsgator sur 2010.

Quelques idées pour les gens qui travaillent sur des projets RSE.

// intro

Le problème principal : comment favoriser l’adoption utilisateur ?

Le social doit être une surcouche  L’idée est vraiment de tirer une valeur business depuis le social.

Il commence par des slides sur la nouvelle version de Newsgator en mode tuiles. Oh le beau bandeau SharePoint 2010, formidable, que de nouveauté…

Un autre sur leur app Newsgator sous Windows 8, le plugin outlook, leur outil « universal notification » qui ajoute une barre de notification sur n’importe quel outil.  La barre de notification répond au besoin d’intégration du RSE sur des intranet ou autres outils existants.

Il souligne l’intérêt du RSE qui permet de re devenir humain. On peut faire un post pour faire une blague, par mail, c’est plus compliqué.

  • 92% sont content de leur travail
  • 14% aiment leur travail

Les personnes qui aiment leur travail sont 200% plus innovants.

-> la productivité est donc fortement lié au ressenti des employés. 

Voilà Megan qui nous fait un retour d’expérience de sa compagnie (pas compris laquelle, 10000+ employés). Evidemment maintenant ils sont plus innovant, efficace et tout. Et tout ça grâce aux social et Newsgator.

Tous les mois, ils extraient les bonnes idées du RSE et invitent les auteur à un lunch avec les dirigeants pour en parler -> rewarding

Daniel reprend la parole.

Il ne faut jamais sous estimer l’ego des gens. Rien n’est fait si les employés ne sentent pas qu’ils sont reconnus pour leur travail.

Comment faire ?

Par exemple, LinkedIn permet de reconnaitre le travail de collègues.

Voilà un témoignage maintenant d’une personne d’Oakley. Ils ont mis en place du social car ils ont grossi très rapidement ces dernières années. Ils ont voulu garder une culture d’entreprise forte. Un RSE à été mis en place pour répondre a ce besoin. Ils l’ont fait en 11 semaines puis l’ont déployé à tous le monde. Les RSE sert donc aux nouveaux à s’imprégner de la culture de l’entreprise. Ils ont mis en place de badges afin de reconnaitre les employés innovants et qui participes. Ils ont 1500 employés actifs.

Daniel reprend la parole.

Le principe des badges et autres récompenses permet de : donner un esprit d’appartenance, motiver les gens, et permet aussi et surtout d’identifier les experts. 90% de la connaissance est apprise des autres.

il recentre maintenant son discours sur du business, comment injecter du social dans les process business ? Il nous montre l’intégration d’une demande de congés dans le newsfeed de newsgator. Intéressant car cela démontre que toutes les tâches de travail pourraient être intégrés au social.

// questions

Quelle différence avec le social dans SharePoint ?

Newsgator est construit sur SharePoint et est censé le compléter… Mouais, vu qu’on a vu que du 2010, ça a du sens. Mais 2013, on saura pas.

Sur o365 ?

Pas vraiment, il ont un cloud à eux si j’ai bien compris.

Fabien

#SPC2012 : Getting Your Apps into the Office and SharePoint Store

Session de 12h à 13h15 Vivek Narasimhan, Product Manager

Cette session va clôturer mon programme de la SharePoint Conference.

Nous allons voir l’utilisation des apps pour l’utilisateur final, l’ajout via le store, la partie monétisation et la proposition d’une nouvelle app, qu’elle soit pour Office ou pour SharePoint.

Les nouveautés pour les développeurs Office et SharePoint : un nouveau modèle d’app, des nouveaux scénarios pour les utilisateurs finaux, et la possibilité de le distribuer facilement et potentiellement la vendre.

On nous rappelle que la cible est potentiellement 1 milliard d’utilisateur, que l’app est intégré (dans un site SP ou dans office (WA ou client lourd), que l’app distribué dans le store est « crédible » (well design, pas de contenu inapproprié). Lorsque l’utilisateur utilise l’app depuis l’Office Store, cela correspond qu’il donne confiance à Microsoft et pas spécifiquement au développeur.

Démo dans Office, via Word. En cliquant sur « Apps for Office », on voit dans le premier onglet les apps que j’ai ajouté (et qui sont liées à mon compte utilisateur). Dans le deuxième onglet, on voit les apps proposées par son entreprise (et pas uniquement les apps développées par l’entreprise). Dans le dernier onglet, on voit les app « featured ». Si cela ne suffit pas, on peut ouvrir l’Office Store (qui est donc public). On voit les apps par produit (Word, Excel…), ainsi que le détail (screenshot, prix…) et on peut les ajouter.

L’ajout demande une autorisation : un lien entre le compte Microsoft et l’app est donc effectué : l’app n’est installé sur le poste, mais disponible depuis le cloud. Une fois identifié, la page nous indique de retourner dans Word et que l’app se retrouvera dans l’onglet « My app ».

On passe à SharePoint. On voit également les apps qui peuvent être ajoutées, et les apps recommandées par sa société (app catalog). De la même façon, on a le SharePoint Store.

Concernant la distribution de l’app, il existe deux chemins :

  • Le développeur peut proposer l’app via le « Seller Dashboard ». L’app qui sera approuvé par Microsoft sera alors disponible dans l’Office Store. L’utilisateur final pourra via son ruban Office ajouter l’app (qu’elle soit gratuite, en évaluation ou payante)
  • Le développeur propose l’app dans l’app catalog de l’entreprise (après négociation avec le l’IT admin/IT projects). L’utilisateur final pourra via son ruban Office ajouter l’app.

Voyant cela en pratique : Le développeur veut proposer son app au public donc passe par le « Seller Dashboard ». Pour cela il faut se loguer. Une fois identifié, on voit les différentes apps déjà proposé ainsi que leur état (draft, approuvé, retiré). Les apps sont taggué « App for Office » ou « App for SharePoint ».

On ouvre une des apps qui est en statut « refusé » afin de connaître son problème. Un fichier word permet de présenter le document de retour, et les problèmes : dimension de l’icône non respectée et l’app ne référence pas le fichier « office.js ».

Un onglet spécifique permet de présenter les statistiques par apps : Hits par browser, téléchargement, achats…

On peut également via le Seller Dashboard voir le compte utilisateur (et toutes les informations associées), et les moyens de paiements (paypal, banque… la page ne nous est pas affichée).

On ajoute maintenant une nouvelle app, pour cela on remplit tout un tas d’informations :

  • Le type (App for Office, Outlook, SharePoint),
  • La version (ça peut être a, b, c, des chiffres),
  • La catégorie (Communications, Jobs, IT/Admin…).
  • L’ajout du logo,
  • L’app package (le fichier manifest)
  • S’il y a  des détails spécifiques à communiquer à MS pour les tests, il faut les saisir. C’est important car si il n’y a pas d’instruction et qu’il faut faire qqch de spécifique, l’app peut être rejetée par MS.
  • On peut proposer l’app en version d’évaluation (en indiquant un nombre de jour, un nombre d’utilisateur (société))
  • La description courte et longue, les screenshots
  • La documentation et/ou video associée (sous forme de lien) , et si besoin les conditions d’utilisation. Ce n’est pas MS qui supporte la maintenance de l’app, c’est le développeur.
  • On peut choisir le type de distribution : gratuit ou payant. A propos du prix, une liste déroulante est proposée (1.49 minimum$, et augmente par 0.50$ jusqu’à 999.99) et si le prix est par utilisateur ou pour un nombre d’utilisateur (10 seat par exemple)). Microsoft prend 20% sur les ventes (donc une app à 10$ revient 8$ au développeur).
  • L’achat est lié au compte MS, donc si on change de machine on a toujours ces apps.

Pour le moment, le store est uniquement US et les apps doivent être obligatoirement en EN. Toutefois, les utilisateurs/développeurs des autres pays (oui oui, il n’y a pas que les états-unis dans le monte) peuvent utiliser le store et leur monnaie locale pour les transactions. Aucune date n’est annoncée pour l’ouverture des langues et des store pays.

Toutes les apps sont testées par MS avant d’être publié par Microsoft.

Des exemples de domaines pour les apps :

  • Data visualization,
  • Lifestyle,
  • Project Management,
  • Communication,
  • Content Management,
  • Social,
  • Financial Management,
  • Reference

Dernier slide sur l’intérêt des apps (1 milliard d’utilisateur, la vente, la puissance, les mises à jours…). Allez, à vos Visual Studio 2012 et/ou bloc notes 😉

Jérôme

#SPC2012 : Deep dive into Excel Services and PowerPivot for SharePoint 2013

Session de 12h à 13h15 animée par Diego Oppenheimer (Program Manager) & Kay Unkroth (Program Manager)

On commence directement par une démo montrant un classeur Excel (nommé XLTweet) dans lequel on définit des termes et qui va chercher sur Twitter, tous les messages correspondant pour générer un tableau de bord

On voit des statistiques sur les top tweeters, top hashtags, top mentions et nombre de tweets par jour

On passe aux slides pour évoquer la manière dont cela a été réalisé grâce à PowerPivot et 1er élément, on peut télécharger le fichier en question sur le site de Microsoft (Analytics for Twitter)

La première version qui a été développée pour automatiser l’utilisation du classeur Excel (et notamment son rafraichissement sur SharePoint) n’est pas aussi simple qu’il y parait car on nous présente un schéma d’architecture qui met en oeuvre plus d’une dizaine de composant (PowerPivot, Reporting Services, SharePoint, Analysis Services, Excel, Azure…)

On passe en revue sur le schéma d’architecture du fonctionnement d’Excel Services, comment celui-ci fait pour utiliser un classeur Excel comme source de données (utilisation de SPClient, etc…)

Même chose ensuite avec la manière dont Excel Services gère les rafraichissements planifiés via les TimerJob, le SecureStore, etc…

C’est une session extrêmement technique pour comprendre en détail le fonctionnement d’Excel Services dans le traitement des fichiers Excel mais je ne pensais pas qu’ils descendraient si profond (remarque vu le titre deep dive ça parait logique) dans les explications et je suis un peu perdu   😉

On aborde maintenant un exemple de code montrant comment déclencher par code, le rafraichissement d’un fichier Excel en utilisant les WebServices fournis nativement avec Excel Services

Passons à la création du classeur PowerPivot en tant que tel où l’on retrouve un schéma assez classique pour gérer les relations entre hashtags, tweets, mentions, etc.. et une dimension temps afin de pouvoir analyser les évolutions dans le temps

La construction du classeur Excel demandant pas mal d’opération que le speaker est en train de faire en live (ajout de la source de données, génération des relations entre tables, etc…) je vous passe les détails et vous renvoi vers toutes les vidéos PowerPivoit qu’on peut trouver un peu partout çar c’est exactement ce que nous sommes en train de voir

Après avoir passé le reste de la session à construire le classeur Excel avec des PivotChart, Slicers, etc… la session se termine sur un sentiment mitigé

La 1ère partie sur le fonctionnement d’Excel Services était très (trop) technique alors que la seconde partie s’est contentée de voir comment créer le classeur Excel donc au final pas beaucoup de choses à dire sur l’intérêt de la session

Stéphane

#SPC2012 : Developing Hybrid apps for SharePoint

Thurday, 10h30, Rob Howard, Program Manager, SharePoint Developer

Résumé

Une grosse partie d’introduction est de la redite de session précédente.

La deuxième partie explique comment configurer SharePoint pour qu’il utilise ACS en O365 ou un high trust (STS) en On-prem grâce à un certificat pour gérer la sécurité de la même façon entre les deux environnements mais avec la même App.

On va rentrer dans le code, JSON, token OAuth.

// Review of SP App Authentication

C’est le même monsieur qui a fait la session sur OAuth, et ce sont les mêmes slides, c’est annoncé et il s’excuse, il fait 10min de redite par rapport à la session de mardi.

// Scénarios Hybrid

Vendre une app pour des clients sur O365 ou on prem.

Créer une App avec un code qui puisse fonctionner pour les clients qui un O365 ou un on-prem.

Connecter une App dans le cloud avec une App en on-prem.

// App identity

En mode cloud, nous avons Azure AD qui sert de STS (token service). L’app et O365 trust l’Azure AD.

En on prem, on se base sur du certificat.

Hybrid, avoir des serveurs App et SP qui trust un Azure AD.

Pour du Hybrid, les autohosted apps ne sont pas gérées ni supportées pour les fermes on-prem.

Les cross-firewall server-side calls peuvent être un problème.

// DEMO : Meeting Scheduler App

Il a une APP qu’il upload sur O365 dans l’app catalog (SharePoint hosted).

Il ajoute l’app à un site. Il montre que l’app est bien dans un domaine.

Il met un élément dans sa liste (événement). Cela envoie un mail à tous les participants les invitant à saisir leurs préférences.

Il a un formulaire comme un Doodle qui lui permet de sélectionner des dates préférentielles.

Le créateur peut valider la date où le max de personnes est dispo.

Il créé un fichier ICS en javascript.

–> Juste pour montrer qu’il a créé une App qui fonctionne on-prem autant que sur O365

// Access tokens and issuers

En décodant l’access token déjà évoqué dans d’autres sessions.

Il y a le x5t correspondant au thumbprint, identifiant

iss est l’issuer, est le token service qui va permettre à SP de savoir s’il connait ce fournisseur de token.

Les deux vont permettre à SP de savoir s’il connait le fournisseur de Token + s’il connait la personne qu’il le demande (x5t-thumbprint).

Ensuite, le aud est un guid + url. guid représente l’audience qui peut profiter de ce token (SharePoint va avoir un numéro, Exchange un autre, Lync un autre).

identityprovider permet de savoir quel est le type d’identité ? (Microsoft Online ici).

Le nameid identifie cette identité.

actor est un Guid, représentant le client id qui effectue la requête.

En online, on a un Azure AD, qui va créer un access token grâce à un certificat. SharePoint, on va créer un ACS proxy qui va déclarer Azure AD comme trusté. Azure AD va gérer les tokens ensuite.

En On-prem, il y a un Trusted Security Token Issuer, qui va jouer le rôle de ACS mais en on prem.

// DEMO : Création d’une app high trust on-prem

En on-prem, il faut qu’on configure SP, pour qu’il y ait un trust grâce à un certificat.

Cela se passe en Powershell, avec l’utilisation de issuerId (ISS).

On récupère le realm, Get-SPAuthenticationRealm -ServiceContext http://sphvm-57892.

On récupère le certificat Get-PfxCertificate.

Du code Powershell que je n’ai pas noté. Grosso modo, il déclare le token issuer sur SP.

Il créé une app Provider Hosted.

Le wizard VS 2012, propose d’utiliser un client secret via ACS ou un certificate.

On utilise le certificat où on met le certificat PFX et le mot de passe.

Il a une app, où il ajoute une List en XML.

Dans son ASPX, il utilise le CSOM pour ajouter un item.

Dans le load, il utilise le TokenHelper du projet pour faire un GetS2SAccessTokenWithWindowsIdentity(appWeb, Request.LogonUserIdentity) qui lui permet de générer son propre token.

Le token généré est passé à sa création de liste pour qu’il ait l’accès, utilisation de TokenHelper.GetContext…

// Configuring a hybrid SP environment

Il va configurer ACS comme trusted token issue sur SP

C’est du Powershell.

Il récupère un SPWeb.

Il définit un $ACSMetadataEndPoint étant l’URL, d’ACS accounts.accesscontrol.windows.net… il met l’URL du realm en format JSON.

Il récupère le flux via Invoke-RestMethod.

Il utilise Set-SPAutneticationRealm en passant le flux JSON.

Il créé un proxy Azure ACS Service Application Proxy en passant l’endpoint.

Il créé New-TrustedSecurityTokenIssuer en mettant également l’endpoint ACS.

Le code décrit ici n’est pas complet mais le but est bien de définir ACS comme étant trusté par SP.

// Creating a hybrid SharePoint App

Il utilise ACS en ligne quand on est sur O365.

Il utilise son propre token issue avec certificat lorsqu’il est on-prem.

Il créé un projet VS2012, App SharePoint, il met une URL on-prem, Provider-hosted.

Il utilise le certificat avec le PFX et le mot de passe.

Il explique que VS2012, fait le travail pour lui de mettre dans dans le web.config pour créer un client secret.

Il va dans le default.aspx. Et ajoute un snippet deux fois.

Premier test, il n’a pas de tokenstring (GetContextTokenFromRequest(Request)) il affiche le Title du hostWeb. Il va utiliser le GetS2S…. pour récupérer le token généré.

Sinon Deuxième, il utilise GetClientContextWithContextToken(token).

Il va sur IE, sur SP Online, il utilise _layouts/15/appregnew.aspx pour générer un App Id, App Secret en se basant dans le web.config sur le client Id et secret qui était généré par Visual Studio. Il met l’appdomain à son localhost. Il upload l’App qu’il a utilisé côté on-prem.

En allant sur l’App, il va dans le 2ème test, car il est un context token.

Sa démo échoue, son explication est qu’il s’est trompé de package App. Car l’audience n’est visiblement pas la bonne.

Dernière chose qu’il veut nous montrer est qu’en faisant publish et en renseignant un client id et secret commun, il a un .APP et un .ZIP aussi qui peut lui servir à déployer son App sur Azure par exemple

Christian

#SPC2012 : Migrating your WCM internet sites to SharePoint 2013

Session de 10h30 à 11h45 animée par Israel Vega

Petit résumé:

Session super intéressante sur le process de migration depuis 2010 vers 2013.

// intro

Le job d’Israel est de faire en sorte que le site qu’il nous montre sous SharePoint 2010 soit tel quel à la fin de la session. Mais en SharePoint 2013 🙂

// démo pre move

Il commence par backuper et restorer ses bases depuis 2010 vers 2013.

En passant, il converti sa base vers claims.

J’ai dû en rater car il va super vite !

Il lance tout ça maintenant car ça prend du temps.

// slides

Il va faire le focus sur le design et branding. Son but est de faire fonctionner son site internet sur 2013.

Les nouveautés WCM : custom 404 pages, snippet gallery, clean urls, etc…

Les nouveautés 2013 : pas de upgrade in place, il faudra forcement du detach/attach.

Les raisons de migrer sont donc : profiter de ces nouvelles fonctionnalités, redesign, etc.

Les mode de migration :

  • à l’identique
  • à l’identique + des amélioration
  • refonte partielle
  • refonte

Selon ces cas, les décisions seront différentes. Il faut donc bien identifier en amont le cas sur lequel on travaille.

Sa démo porte sur le 2eme cas, une migration à l’identique avec les ajouts de la navigation par métadonnées et de la gestion de la master page depuis design manager.

// 1ere étape

Il montre son site migré par le process lancé avant les slides sous 2013 et le ruban est toujours celui de 2010. En fait SharePoint 2013 installe le 14 hive et le 15 hive, d’où la coexistence.

Son WSP a été installé sur 2013. (Les site def custom ne peuvent etre migrées sur le cloud)

Il faut maintenant upgrader la master pour profiter de l’expérience 2013:

Pour cela :  site setting > upgrade status

Et boum : erreur interne.

C’était voulu, il y a plusieurs étapes à faire sur la master : changer le rubban, changer la balise html, etc.

Apres des petites blagues car sa master ne voulait pas s’afficher (« I see dead master pages… » en mode 6e sens 🙂 c’est showman !), il a pu changer et ça marche, cool 🙂

1er étape ok, le site est migré, le ruban est 2013, mais aucune nouvelle fonctionnalité n’est disponible.

// 2 eme étape

Si on veut utiliser le design manager, il faut reprendre le HTML de la master existante et faire toutes les étapes de création de master page avec cet outil pour que le HTML et l’ASPX soient dissociés.

Il nous fait la démo, vraiment pas mal et pas trop complexe.

Il nous fait une démo en temps que designer de l’édition de sa masterpage depuis dreamweaver sur mac, ca marche facile. Fini les envois de html par mail !

Pour ajouter un custom control dans le html, la snippet galerie propose un bouton dans le ruban pour créer un snippet à partir de celui ci.

Si on choisi de ne pas migrer sur le design manager :

On doit réfléchir a comment déployer les css, images -> feature, wsp

On perd la possibilité de l’utiliser -> design sur html et conversion automatique en master pas possible, on doit travailler comme avant.

// activer la navigation par metadonnees

Il faut d’abord upgrader le managed metadata service pour profiter des évolutions 2013.

Puis upgrader le navigation control dans la master

Il faut ensuite activer des features si on utilise le modèle blank#0 (cas d’un site publishing fait à partir d’un web template sur O365 par exemple).

Il créé son termset manuellement et fait pointer la friendly URL de ses termes vers ses pages migrées.

Et hop! Ça fonctionne.

// post migration

Peur des 404 ? on peut garder la vieille url lors d’une migration dans un colonne et afficher cette colonne dans la custom 404.

Si on utilise le FBA, le FBA doit être reconfiguré et les passwords doivent être changer par les users (car le cryptage utilise l’ID du serveur).

Fabien

#SPC2012 : Mastering App for Office development

Session de 10h30 à 11h45 Ali Powell

La session va permettre de découvrir l’antre d’une app pour Office. On va revoir le concept et du code dans Visual Studio mais aussi directement depuis le bloc notes nous sera présenté.

Quelques chiffres pour commencer concernant les tendances :

  • 1 milliard de smartphones en 2016 dont 350 millions pour le travail
  • 82% de la population connectés (online) touche aux réseaux sociaux
  • 50% des entreprises clientes sont sur la route vers Cloud

L’arrivée de « app for Office » apporte de nouveaux composants (les apps), des nouveaux scénarios, des nouvelles expériences utilisateurs : au niveau des devices (le tactile, la mobilité), du cloud (Office, le modèle cloud app), et le social (newsfeeds, microblogging, communication, vidéos…) : « apps are everywhere »

« Apps for Office permet de mettre le web dans Office ».

Les apps sont récupérées depuis l’office store ou l’app catalog. Elles peuvent être installées directement sur le poste. L’expérience à travers les devices (tablettes, pc, phone). Une app pour Office fait pour le client riche fonctionnera dans la version navigateur (WebApp). L’intérêt est qu’il n’y a pas d’installation à faire sur chaque device.

L’intérêt des apps est la simplicité et les apps touchent un nouveau public : les compétences à acquérir sont simples (HTML, JS). L’objectif des apps ne sont pas de créer une nouvelle application mais des composants connectés permettant d’utiliser internet et des api existantes.

Rappel sur les zones des apps pour Office (déjà détaillé lors des précédents CR de sessions) : TaskPane, Content, Mail.

Concernant la composition d’une app (framework) : Web Extensions Framework (Wef), Office JSOM, Application Specific JSON (Outlook JSON…), app API’s, pour être affiché sur des clients riches ou dans le navigateur.

On commence par du bloc-notes avec la présentation du manifest d’une app.

On y retrouve :

  • Le type de l’app (TaskPaneApp)
  • L’id de l’app : afin d’être unique dans le store et permettre les mises à jour dans le futur
  • Le titre, la localisation, description, le concepteur…
  • L’appDomain qui va permettre de donner le domaine qui sera utiliser pour charger la ou les app pages (ex : http://services.odata.org)
  • SourceLocation : permettant d’indiquer la page qu’on veut afficher (dans notre cas, la site wikipedia)
  • La dernière et certainement l’une des plus importantes, les permissions concernant le document qui hébergera l’app. Ex :  ReadWriteDocument

Pour faire le pont avec l’intégration de l’app dans l’onglet My App du logiciel Office, la base de registre est ouverte.

A l’emplacement « CurrentUser/software/MS/Office/15.0/Wef/developer », on ajoute une clé « MyApp » avec le lien vers le fichier manifest de l’app qui se trouve sur le pc.

On ouvre Word. Et dans « Apps for Office » on voit l’app.

C’est parti pour Visual Studio 2012 !

Un nouveau projet « App pour Office » est créé, de type « TaskPane » pour Excel. On voit le fichier manifest généré. Cette voici, le SourceLocation est une page du projet VS. Le déploiement est lancé. On retourne dans la base de registre et on voit bien que la clé a été rajouté par Visual Studio 2012.

Autre démonstration sur un fichier Excel contenant une app qu’il nous a déjà été montré : le votes pour l’élection américaine. Bouton droit sur l’app « View Source » nous peut de voir le code source HTML. L’app est intéractive : on passe la souris sur un états et on voit des informations détaillées. Toutes ces infos viennent d’un onglet du fichier.

Le fichier Excel est fermé et est renommé en zip (OpenXML), et peut voir dans le répertoire « xl/webextension » les apps du fichier : balise « bindings » pour chaque onglet vers « app_ref » avec l’id de l’app. Il y a également un screenshot de l’app dans le répertoire media (un screenshot est généré au format image à chaque enregistrement du fichier).

Le fichier Excel est ensuite uploadé dans SharePoint afin de voir « Excel Web App ». A l’ouverture, nous avons une demande d’autorisation pour l’app car elle souhaite accéder aux données du fichiers.

Concernant les apps pour Mail (ds le manifest Capabilitiy = MailBox), il y a une légèrement différence car grâce à Exchange, elles peuvent être installé par l’administrateur. Ces dernière une fois ajoutée dans Exchange ne peuvent pas être désinstallées par l’utilisateur.

On voit maintenant une autre app déjà développée. L’app est de type « Mail ». Celle-ci va permettre d’identifier les numéros de téléphone et afficher les liens vers Lync.

Ali Powell a insister plusieurs fois sur le design qui est très important pour convaincre et rassurer l’utilisateur mais aussi pour qu’elle devient populaire.

Les permissions sont cette fois en « ReadItem ». Une règle est également ajouté (depuis le manifest) pour indiquer que l’app s’applique que sur les types « message ».

Le test est directement fait dans Office 365.

Un autre test avec une adresse, uniquement l’app Bing maps est lancée.

Un autre test sur un meeting, mais qui ne fonctionne pas. Ça permet de voir autre chose : la gestion des apps au niveau de Outlook montre les apps de type User (la nôtre) et celles installées par l’administrateur.

Bon tout est ok, mais ça fonctionne toujours pas. Dommage mais on comprend bien le principe.

Une dernière app de type de TaskPane est montré permettant d’afficher une information en bas à droite (bulle d’info).

Cette session a permis de voir la base, quelques éléments sous-terrain des apps, mais j’avoue que je m’attendais à pleins de code en mode « Wahou ».

Jérôme