Client Side Object Model

Download Report

Transcript Client Side Object Model

SharePoint 2010
Client Side Object Model
Agenda
•
Introduction
•
The Problem
•
Client side vs Server Side
•
Client Side Object Model
–
–
–
–
How it works
What can it do?
Limitations
Possibilities
•
REST Interface
•
Demonstration – REST + CSOM
•
Questions
Introductions
• Who am I?
• Who are you?
• “Customisation Possibilities”
The Problem
• SharePoint does so much!
• But not exactly what I want 
• I know – I’ll customise it!
The Problem
• Custom development
– Too Risky ?
• Data issues?
– Too Expensive ?
• Initial development
• Maintenance
• Upgrade?
• More often than not, custom development requires
installation of components on the Server
– Promotion through environments
– Time and costs associated with downtime
The Problem
Customise!
The Problem
$@#%$*&!
The Problem
• A lot of organisations simply don't allow server side coding
• A lot of hosting situations don’t allow server side coding
– BPOS / Office 360 / SharePoint Online
– Web Central
– Shared Tenancy / Security Issues
• Team based SharePoint development rarely performed
– TFS
– Proper Build Servers
Client side vs Server Side
Server Side
Client side
Client side vs Server Side
Server Side
Client Side
• Code running on server
• Can use SharePoint object
model directly
• Code running on client
computer
• Can only interact with
SharePoint via web services
• Requires installation on
server
• Hard to do anything of any
complexity
Client side vs Server Side
Server Side
Designer *
Web Part Development
Generic Feature Development
UI Menu Feature Development
SharePoint Event Handlers
Custom Web Services
Custom Field Types
Custom Page Development / Code behind
Custom Windows Applications / Utilities
Branding / Design
User controls
Workflows
Advanced configuration
…
Custom STSADM commands
Business Connectivity Services (BCS)(2010)
InfoPath Forms
Custom Timer Jobs
Custom Workflows / Custom Workflow Actions
Client side vs Server Side
Client Side
?
Client side vs Server Side
• So previously the ‘real’ client side options were:
– Web Services
• Very low level
• A bit complex (security)
– Scripts on page
• Mainly for UI change (hiding fields, UI improvements)
• “Can call web services” – yuck
• VB can do some interesting things
– SharePoint designer modifications
• OK – if you don’t delete everything
• Customisations not as portable as would like
• Know your boundaries!
Client side vs Server Side
• Some client side work-arounds got quite popular:
– JPoint – series of JavaScript functionality in web parts
– HTML Calculated column –using the ‘calculated column’ to
conditionally output HTML
– JavaScript web-service libraries – still yuck
What’s New Already?!
• SharePoint 2010 has two major areas of functionality in this
area
1.
Client Side Object Model (CSOM)
2.
REST Services
Client Side Object Model
16
Client Side Object Model
• In a nutshell - the client side object model provides an ‘object
model’ to client technologies
– .Net Applications
– Silverlight
– JavaScript (
)
• Each of these have a separate .dll to work with, but have very
similar code
Client Side Object Model
• Each of these have work with the Client web-service under
the hood to provide the functionality on the server
CSOM
Client Side Object Model
Client Side Object Model
• Example - Delete List ( .net ):
Client Side Object Model
• Example - Delete List ( JavaScript ):
Client Side Object Model
Demo – CSOM
Client Side Object Model
• JavaScript?
–
–
–
–
–
–
Yes – JavaScript
SharePoint 2010 Ribbon
Custom Links
Content Editor Web Parts
Added into Forms pages for lists and libraries
Scriptlets
Client Side Object Model
Demo – JS
Client Side Object Model
• Security
– Windows Credentials by Default
– Can use Forms Authentication
– Permission level setting
Client Side Object Model
Tips and Tricks?
– Minimise what you need to retrieve
–
–
–
–
Know what is loaded in context and what isn’t…
Beware of IQueryable with ListItem
JavaScript only has a-sync calls…. Ouch
Use the JavaScript “Item Table”
• Holds data for the current item context
Summary
• Before
– Client side coding was very difficult
– Either via web services or very limited in functionality
• After
–
–
–
–
–
Client side coding much easier
“Object Model” - like coding on the server
Similar for JavaScript, Silverlight, .Net Applications
Don’t need to develop on the server!
New Possibilities with Rest and the CSOM
Reading:
Using the SharePoint Foundation 2010 Managed Client Object Model
http://msdn.microsoft.com/en-us/library/ee857094.aspx
Managed Client Object Model
http://msdn.microsoft.com/en-us/library/ee537247.aspx
Common Programming Tasks
http://msdn.microsoft.com/en-us/library/ee537013.aspx
Praveen Battula
http://praveenbattula.blogspot.com/
Questions?