Windows 8 Consumer Preview

Depuis quelques semaines, vous avez pu découvrir la nouvelle version de Windows 8, grâce à la Consumer Preview : http://windows.microsoft.com/fr-FR/windows-8/consumer-preview

Parmi toutes les nouveautés de cette nouvelle version de l’OS, l’interface « Métro » aura bien sûr retenu votre attention. Metro est un nouvel environnement Démarrer qui apporte une grande palette de nouveautés et de nouvelle façon de réaliser des applications. Des applications compatibles tablette, mobile et pc, en bénéficiant pleinement de l’expérience tactile. L’installation de Windows 8 est simple et le niveau de compatibilité avec les applications Windows 7 est un grand avantage.

 

Pour développer sous Windows 8 Metro

En plus de toutes ces nouveautés fonctionnelles, Windows 8 offre au développeur un moyen simple et puissant de développer des applications.

Tous les outils de développements sont téléchargeables :
http://msdn.microsoft.com/en-us/windows/apps/br229516

Pour posséder un pack de développement complet, vous pouvez télécharger :
• Les Tools et SDK, qui contiennent :
o Microsoft Visual Studio 11 Express Beta for Windows 8
o Windows 8 SDK
o Blend for Visual Studio, and project templates
• Les design assets (Kit PhotoShop de ressources graphiques style métro)
• Un kit complet d’exemples d’applications Metro en C++, C#, Javascript, VB.Net, etc.
• Microsoft Advertising SDK si vous souhaitez ajouter des éléments publicitaires à vos applications

Il y’a déjà une quantité importante de documentation dédiée sur MSDN :
http://msdn.microsoft.com/en-us/windows/apps/

Vous y trouver notamment :
• De nombreux exemples de code : http://code.msdn.microsoft.com/windowsapps/
• L’API complète : http://msdn.microsoft.com/library/windows/apps/br211369

Comment développer sous Windows 8 Metro ?

Métro est souple dans la façon de concevoir des applications, vous avez technologiquement un large choix pour développer vos applications :
• HTML 5, avec uniquement de l’html et du JS
• C# ou VB.Net avec XAML
• C++ / Win32
Metro permet donc de faire à la fois des développements aussi simples que des pages web, mais aussi des biens plus complexes comme des applications d’entreprise, des jeux, etc !
Metro apporte dans Visual Studio 11 de nouveaux modèles de projets, disponible pour Javascript, VB, C# ou C++, appelés template de projets « Windows Metro style » :

 

Vous pourrez choisir parmi une liste de modèle de base, comme par exemple des applications de types « Grid » (avec défilement, liste d’items, détails, etc.), Splits, etc.
Par exemple, si vous choisissez le template Javascript, vous allez pouvoir réaliser entièrement votre application par HTML 5, Javascript, CSS, etc, comme par exemple dans l’exemple suivant :

Quelque soit votre langage de programmation, les projets Metro possèdent des fichiers package.appmanifest qui permettent de modifier les propriétés générique de l’application, comme son nom, le logo, l’auteur, le splash screen, etc.. Ces fichiers possèdent un assistant de design sous VS 11 :

Avec Visual Studio 11, packager, lancer et débuguer votre application Metro est très simple, il suffit comme pour tout autre type de projet de lancer le projet avec F5 :

Lorsque votre application est déployée, elle apparaît dans le hub des apps métro :

Vous pouvez maintenant développer votre application, personnaliser graphiquement vos écrans, ajouter votre code métier, tout en bénéficiant de la qualité de développement de C# ou de HTML5.
Pour la distribution, vous pouvez promouvoir votre application via le Windows Store.
Pour cela, il vous faut être en conformité avec les bonnes pratiques de distribution sous le Windows Store, disponibles sur MSDN : http://msdn.microsoft.com/library/windows/apps/br230836
Parmi les mesures importantes, il faut notamment que votre application respecte le processus de certification dont les termes complets sont disponibles ici : http://msdn.microsoft.com/en-us/library/windows/apps/hh694083

SharePoint et Metro : de nouvelles perspectives applicatives


Les applications Metro ouvrent de belles perspectives d’applications pour bureau intégrées avec SharePoint. On pourrait notamment penser à :
• des applications permettant de consulter ou mettre à jour des calendriers SharePoint
• des applications permettant de parcourir des bibliothèques de documents de site et de télécharger ou consulter des documents avec Office Web Apps
• des applications permettant d’interagir avec la couche sociale de SharePoint (mettre à jour son statut de micro blogging SharePoint, ou de publication dans son mycontent, etc.)
• des applications permettant de consulter des rapports de KPI ou de BI stockées ou créées sous SharePoint
• Etc.
Beaucoup de scénarios d’interconnexion peuvent être imaginées entre les applications Metro et SharePoint.

Comment communiquer avec SharePoint depuis une app Metro ?

Pour communiquer depuis une application Metro, une architecture par web services ASMX, WCF ou REST est possible avec un site SharePoint.
L’architecture d’une application Metro communiquant avec SharePoint peut donc se baser sur une architecture 3 tiers de type
• UI Layer : Windows 8 Metro HTML 5 ou C# (XAML) – dans l’application
• Service Layer : Hub des services REST ou ASMX ou WCF avec SharePoint – dans l’application
• Data Access Layer SharePoint (« SharePoint Layer »)  - dans SharePoint

La couche de service peut se baser sur tous les services fournis out of the box par SharePoint 2010. Une liste exhaustive de ces services est disponible sur MSDN : http://msdn.microsoft.com/fr-fr/library/ee705814.aspx.
Avec ces web services natifs, vous pouvez notamment retrouver des éléments de liste, faire des requêtes, lister des sites, créer des items, administrer la plateforme, etc.
Pour des besoins d’application métiers spécifiques, une architecture de business layer avec des custom web services peut être imaginée, comme décrit dans le billet d’Adis Jugo et présenté par le schéma d’architecture applicative suivant :

Développer une application Metro avec SharePoint

Tout d’abord, pour  communiquer avec les web services SharePoint, penser à renseigner les « capacités » de votre application.
Pour cela, ouvrir le fichier package.appmanifest et penser à cocher les case « Internet (Client & Server) » et « Private Netorworks (Client & Server) » :

Ensuite ajouter une web service reference pour pointer vers votre web service, pour vous permettre de générer le hub de définitions de votre ou vos services.

Dans son billet, Adis Jugo prends l’exemple d’un service personnalisé déployé sous SharePoint. Lors de la création du hub de service, une nouvelle référence est ajoutée au projet :

Il est alors possible par code de requêter votre service et afficher les données dans l’application, comme le montre l’exemple de code suivant :

 

Comment s’authentifier avec SharePoint

Dans l’exemple précédent, l’authentification avec SharePoint était fournie en windows intégrée, ceci veut dire que l’utilisateur de Windows 8 est sur le même domaine que SharePoint (ou un domaine trusté).
D’autres types de méthodes d’authentification peuvent être supportés suivant votre scénario de connexion avec SharePoint :
• Instancier d’autres credentials avec le login/mot de passe avec une authentification Windows intégrée ou Kerberos
• Envoyer un jeton d’authentification dans le cas d’authentification par claims ou FBA
• Embarqué un player IE pour l’authentification Office ID et récupérer le cookie dans le cas d’une connexion à Office 365

Conclusion

Metro et Windows 8 offre une nouvelle expérience utilisateur pour PC et matériel mobile, via un modèle de développement simple basé sur XAML pour C# et VB.Net, et HTML 5 pour le Javascript. Tout comme une application Silverlight, la communication avec SharePoint est possible via la couche web services de SharePoint, offrant de bonnes possibilités d’interconnexion entre le bureau Métro et la plateforme web d’entreprise.

Olivier CARPENTIER, Consultant SharePoint Microsoft Services

Liens

Channel 9 :
http://channel9.msdn.com/Events/BUILD/BUILD2011/BPS-1004
http://channel9.msdn.com/Events/BUILD/BUILD2011/BPS-1006
http://channel9.msdn.com/Tags/metro
http://channel9.msdn.com/Blogs/bursteg/Part-3-Windows-8-Camp-Introduction-to-Building-Metro-Apps-Part-3
http://blog.sharedove.com/adisjugo/index.php/2011/11/02/developing-windows-8-metro-style-applications-for-sharepoint/
http://www.tcscblog.com/2011/09/14/windows-8-internet-explorer-10-accessing-sharepoint-2010/