développer pour sharepoint 2010 et au-delà… · 2016. 8. 23. · linq to sharepoint – modèle...

32
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

Upload: others

Post on 28-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 2: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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.

Page 3: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 4: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 5: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 6: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 7: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

Sandbox – Le contexte

Page 8: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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 <

Page 9: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 10: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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)

Page 11: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 12: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 13: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

Accès aux Données

Sharepoint (serveur)

Server Object Model

Linq To SP

Content DB

Web Services (asmx)

Page 14: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 15: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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);

Page 16: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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>

Page 18: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 19: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 20: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 21: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 22: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 23: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

Démo Silverlight et CSOM Client Silverlight affichant la liste Wines

List

e Sh

arep

oin

t Li

ste

Silv

erlig

ht

Page 24: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 25: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 26: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

Démo Silverlight, CSOM et OData Client Silverlight affichant la liste Wines

List

e Sh

arep

oin

t Li

ste

Silv

erlig

ht

Page 27: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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)

Page 28: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 29: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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

Page 30: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

• 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

Page 31: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

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,

Page 32: Développer pour Sharepoint 2010 et au-delà… · 2016. 8. 23. · LINQ to SharePoint – Modèle daès aux listes Sharepoint, côté Serveur (sauf listes externes) – Typage fort

Liens…

• Nos Blogs :

http://blogs.msdn.com/stephe

http://blogs.msdn.com/fwickert