Développer pour Sharepoint 2010 et au-delà (aka SP Online) Stéphanie HERTRICH Relation Technique Développeurs Microsoft Frédéric Wickert Conseiller Technique Partenaires - Microsoft
Thème de la session Les Bests Practices pour développer avec Sharepoint 2010 en restant compatible avec un déploiement dans le Cloud : Sharepoint OnLine.
Dans cette session : On ne verra pas Nouveautés des listes (contraintes d intégrité, lookup, ) BCS, Listes externes UI, ruban Workflow On verra Modèle d exécution SandBox Client Silverlight 3 modèles d accès aux données SPLinq le Client Object Model l API REST
Rappels Sharepoint Online Côté Serveur La sandbox Sharepoint SPLinq (Linq To Sharepoint) Agenda Côté Client La sandbox Silverlight Le CSOM (Client Side Object Model) L API REST (OData) Synthèse pour Sharepoint OnLine Conclusion
Rappels Sharepoint OnPremise/OnLine Hébergé dans vos propres datacenters Machines dédiées Administré par vous Dev Partial et Full Trust Pour société de tte tailles Hébergé dans les data centers de MSFT Machines partagées Administré par MSFT Dev Partial trust Pour société de tte taille Hébergé dans les data centers de MSFT Machines dédiées Administré par MSFT Dev Partial et full trust Pour + de 5000 postes
Rappels Sharepoint Online Côté Serveur La sandbox Sharepoint SPLinq (Linq To Sharepoint) Agenda Côté Client La sandbox Silverlight Le CSOM (Client Side Object Model) L API REST (OData) Synthèse pour Sharepoint OnLine Conclusion
Sandbox Le contexte
SandBox : Solution isolée, limitée et surveillée Solution (.wsp) déployée par un owner de collection de sites Contrôlé par des quotas/jour dans l administration centralisée (%CPU, Mémoire, nb requêtes ) Exécution dans un processus isolé Accès limité à SPSite et <
SandBox : Les possibilités (Visual) Web Parts Event/Feature Receivers Feature Activation Events Custom Workflow Actions InfoPath Forms Services List Definitions Custom Actions Site Pages Site Columns Content Types
Sandbox: Les limites Accès externes à SP: http, web services ADO.net Search, BCS Threading IO Accès > à SPSites -> Utilisez les listes externes (OnPremise) -> Accès possible à des proxy Full-Trust (OnPremise)
Démo SandBox Hello World Rappels Visual Studio 2010 Templates pour Sharepoint 2010 Déploiement, Debug Facilité (F5) Sharepoint Power Tools (Extension Manager) Compilation/Intellisense contrôlés suivant option Sandbox
Rappels Sharepoint Online Côté Serveur La sandbox Sharepoint SPLinq (Linq To Sharepoint) Agenda Côté Client La sandbox Silverlight Le CSOM (Client Side Object Model) L API REST (OData) Synthèse pour Sharepoint OnLine Conclusion
Accès aux Données Server Object Model Content DB Sharepoint (serveur) Web Services (asmx) Linq To SP
LINQ to SharePoint Modèle d accès aux listes Sharepoint, côté Serveur (sauf listes externes) Typage fort 3 Etapes : 1. Générer les classes correspondant aux listes avec SPMetal, à partir de l URL du site 2. Ajoutez ces classes dans votre solution et utilisez-les dans votre application 3. A l exécution, les requêtes Linq appliquées sur ces classes sont traduites en CAML
http://stephe-msft/demos/caveavins/lists/wines Exemple : Récupérer le nom des vins dont le nombre de bouteilles est < 20 from w in _dc.wines where w.count < 20 select w.title; OU _dc.wines.where(w => w.count <= 20).Select(w => w.title);
Exemple : Récupérer le nom des vins dont le nombre de bouteilles est < 20 <View> <Query> <Where> <And> <BeginsWith> <FieldRef Name="ContentTypeId"/> <Value Type="ContentTypeId">0x0100 </Value> </BeginsWith> <Leq> <FieldRef Name="Count" /> <Value Type="Number">20</Value> </Leq> </And> </Where> </Query> <ViewFields> <FieldRef Name="Title" /> </ViewFields> </View>
Démo SPLinq On complète l exemple sandbox avec notre liste des vins http://stephe-msft/demos/caveavins/lists/wines
Agenda L offre Sharepoint Online Côté Serveur La sandbox Sharepoint SPLinq (Linq To Sharepoint) Côté Client La sandbox Silverlight Le CSOM (Client Side Object Model) L API REST (OData) Conclusion
Silverlight Développement en.net, multi-thread Expérience utilisateur riche, utilisation de Blend Accès à Services Web tiers, WCF RIA Services, Hébergé dans SP (WebPart) ou dans IIS Mode OutOfBrowser pour fonctionner hors navigateur Accès aux données SP à travers le Client OM (CSOM) ou l API Rest
Client Object Model (CSOM) API permettant d accéder aux objets SP côté client Plus simple d utilisation que les Web Services Disponible pour.net, Silverlight et JavaScript Approche familière du server object model
Accès aux Données Client.Net, Silverlight, JavaScript Client Object Model Client.svc Sharepoint Server Object Model API Content DB Web Services (asmx) Linq To SP
CSOM permet l accès à Sites, Site Collections Lists, List Items, Views, List Schemas Files and Folders Web, List, List Item Property Bags Web Parts Security Content Types Site Templates and Site Collection Operations
Liste Silverlight Liste Sharepoint Démo Silverlight et CSOM Client Silverlight affichant la liste Wines
API REST Fonctions de requêtage, ajout, suppression de listes accessibles par une URL http Ex pour récupérer les vins dont le nb de bouteilles est > 50: [url_site]/_vti_bin/listdata.svc/wines?$filter=count gt 50 Implémenté via WCF Data Services (anciennement Astoria ) Standard OData SDK pour clients OData : http://www.odata.org/developers/odata-sdk
Accès aux Données Client.Net, Silverlight, JavaScript Client Object Model Client.svc Sharepoint http Browse, Odata Client SDK API Rest (OData) Listdata.svc Server Object Model API Content DB Web Services (asmx) Linq To SP
Liste Silverlight Liste Sharepoint Démo Silverlight, CSOM et OData Client Silverlight affichant la liste Wines
Accès aux Données: Matrice décisionnelle Nom + - SPLinq Classes Proxy Typage fort Supporte les relations et projections Server Object Model Client Object Model API Familière Ne se limite pas aux listes Plus simple que les Web Services Ne se limite pas aux listes Pour clients Silverlight, JavaScript,.Net REST Standard Odata, SDKs client Typage fort Classes proxy Fonctionne avec différents clients Côté serveur uniquement Pré-traitement nécessaire à chaque modification du modèle Restreint aux listes et bibliothèques Côté serveur uniquement Typage faible Syntaxe CAML Typage faible Restreint aux listes et bibliothèques Pré-traitement nécessaire à chaque modification du modèle (si classes proxy)
Agenda Rappels Sharepoint Online Côté Serveur La sandbox Sharepoint SPLinq (Linq To Sharepoint) Côté Client La sandbox Silverlight Le CSOM (Client Side Object Model) L API REST (OData) Synthèse pour Sharepoint OnLine Conclusion
Synthèse Sharepoint Online (1/2) Sandbox: plutôt deux fois qu une! Côté serveur: Modèle d exécution SandBox de SP Isolation du processus, accès restreint et contrôlé aux objets et ressources du serveur Côté client : Silverlight et le Client Side Object Model Pas de restriction en terme de ressources serveur car s exécute côté client
Synthèse Sharepoint Online (2/2) Codage, debuggage et tests Le codage/debuggage n est pas recommandé directement sur la plateforme OnLine Plus lent à déployer Moins de facilité de debuggage (pas d accès disque, ) Le codage et débuggage est effectué sur la machine de développement. Une fois le développement validé, on déploie sur la version OnLine pour une qualification de plus haut niveau.
Conclusion Les bonnes habitudes à prendre OnPremise ET OnLine: Pour coder côté serveur, utilisez le modèle d exécution sandbox Ce que vous ne pouvez pas faire côté serveur (appel de services WCF, RIA.Net services, ), faites-le côté client avec Silverlight, le CSOM,
Liens Nos Blogs : http://blogs.msdn.com/stephe http://blogs.msdn.com/fwickert