développer pour sharepoint 2010 et au-delà… · 2016. 8. 23. · linq to sharepoint – modèle...
TRANSCRIPT
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 On verra
• Nouveautés des listes (contraintes d’intégrité, lookup,…)
• BCS, Listes externes
• UI, ruban
• Workflow
• 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
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
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
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
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
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
Accès aux Données
Sharepoint (serveur)
Server Object Model
Linq To SP
Content DB
Web Services (asmx)
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
Sharepoint
Server Object
Model API
Web Services (asmx)
Client .Net, Silverlight, JavaScript
Linq To SP
Content DB
Client.svc
Client Object Model
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
Démo Silverlight et CSOM Client Silverlight affichant la liste Wines
List
e Sh
arep
oin
t Li
ste
Silv
erlig
ht
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
Sharepoint
Server Object
Model API
Web Services (asmx)
Client .Net, Silverlight, JavaScript
Linq To SP
Content DB
Client.svc
Client Object Model
Listdata .svc API Rest
(OData)
http Browse, Odata Client SDK
Démo Silverlight, CSOM et OData Client Silverlight affichant la liste Wines
List
e Sh
arep
oin
t Li
ste
Silv
erlig
ht
Accès aux Données: Matrice décisionnelle
Nom + -
SPLinq • Classes Proxy • Typage fort • Supporte les relations et projections
• Côté serveur uniquement • Pré-traitement nécessaire à
chaque modification du modèle • Restreint aux listes et
bibliothèques
Server Object Model
• API Familière • Ne se limite pas aux listes
• Côté serveur uniquement • Typage faible • Syntaxe CAML
Client Object Model
• Plus simple que les Web Services • Ne se limite pas aux listes • Pour clients Silverlight, JavaScript, .Net
• Typage faible
REST • Standard Odata, SDKs client • Typage fort • Classes proxy • Fonctionne avec différents clients
• 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
• 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.
Synthèse Sharepoint Online (2/2) Codage, debuggage et tests
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