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

Post on 28-Sep-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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>

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

top related