SlideShare a Scribd company logo
1 of 33
Jerry Yasir
SharePoint Server MVP
Client Object Model & REST
Improvements in SharePoint 2013
Who Am I?
SharePoint Server MVP Since 2010
SharePoint Practice Lead at US TECH Solutions (Jersey City, NJ)
Microsoft Certified Trainer (MCT) since 2008.
MCSE SharePoint 2013 – Waiting Results 
MCITP SharePoint Admin 2010, MCPD SharePoint Developer 2010 & MCTS
SharePoint 2010 Configuration & Development
MCTS WSS 3.0, SharePoint Server 2007, MCITP, MCTS Silverlight 4 Development,
Project Server 2007 & 2010, MCTS Project Professional 2007 & 2010, MCPD.NET,
MCSD.NET MCAD.NET
Email: jerry@ustechsolutions.com,
Twitter: @jerry_yasir Facebook: yasir.attiq (Jerry Yasir)
Blog: http://jerryyasir.wordpress.com
Overview – US Tech Solutions 3
 Leading global consulting company, offering domain led IT Consulting
services for more than 12 years .
 Development centers and COE’s in the US and India.
 IT consultants deployed globally on various projects.
 Access to a unique portfolio of innovative technologies that reduce IT
project cost, timescales and risk.
 A large and diverse pool of resources with expertise on various
technologies and at various levels.
 Specially Designed Skill & Career Development Programs
 Technology partnerships with leading OEM’s like Microsoft, Oracle
and IBM.
©US Tech Solutions, 2012 www.ustechsolutions.com
Agenda
REST
Summary
Overview Client OM Intro
Q & A
DEMO
CSOM in 2010
CSOM in SharePoint 2010
Issues with CSOM
• No Direct Access to
client.svc Web Service
• Must use a Proxy or
Supported End Points
• Supports .NET Silverlight
& JavaScript
Managed OM – Is Easy
Silverlight OM? – Is Easy
JavaScript OM? – Is Not
Easy
C
SharePoint 2010 CSOM Architecture
Silverlight
Library
.NET CLR
Library
JavaScript
Library
/_vti_bin/client.svc
Execute Query
Server
Client
Custom Client Code
How CSOM works
CSOM Changes in 2013
Changes in SharePoint 2013
Client.svc with REST Clients
• Direct Access to client.svc Web Service
• Access HTTP GET, PUT, Merge, POST
Requests
• OData Implementation
• Writing Code from NON Microsoft Apps
• New APIs for Server Functionality
• API for Windows Phone Development
For More Information
http://tinyurl.com/SP2013Odata
New CSOM API Support
E-Discovery
Taxonomy
Search
Workflow
Sharing
User
Profiles
Analytics
Publishing
Feeds
IRM
Business
Data
Lists
Support both Server Side code and REST
C
SharePoint 2013 CSOM Architecture
Silverlight
Library
.NET CLR
Library
JavaScript
Library
_api
Execute
Query
Server
Client
OData
Custom Client Code
Changes in SharePoint 2013 CSOM
• Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.RunTime.dll
• Available in SharePoint Foundation
• contains the core classes
Demo
Managed Client OM
Demo
JavaScript Client OM
REST Overview
What’s REST and Why?
Simple and Easier to
Use
• Easier than SOAP Based
WS’s
• Higher Productivity using
JavaScript and JQuery
• Results as JSON and
ATOM
• Everything is URL
• Results can be cached on
Proxy Servers.
REST in SharePoint 2010
REST in SharePoint 2013
Replace
• http://intranet/_vti_bin/client.svc/web
with
• http://intranet/_api/web/
• Lot more simple URL
• Helps in 256 Character Limit of URLs
in browser
• ListData.svc is still there for
backword compatiability
• OLD Aps will still work but needs to
be updated
Client OM and OData
What is OData?
More Information @ http://www.odata.org/
OData Terms and Concepts
OData Described in Entity Data Model by
Collection
Entity Set
A Navigation Property on an entity type that identifies a collection of
entities
Entry
Entry type
Note: May be Part of a type Hierarchy
Property of an Entry Primitive or complex Entity type property
Complex Type Complex Type
Link A Navigation Property defined on an entity type
Service Operation Function Import
Methods will be mapped into either
OData Maps CRUD Operations to HTTP Verbs
OData Implementation Details
More Information @ http://www.odata.org/
URLs
Resource Path – SQL Table or Web or List
REST – Return ATOM XML vs. JSON
ATOM-PUB XML
• Verbose
• Easier to Read
• ACCEPT = application/atom+xml
• Condensed notation
• Smaller payload
• ACCEPT =
application/json;odata=verbose;
Managing Objects to Resources
 Example REST URLS
 http://Intranet.consoto.com/_api/web/
 http://Intranet.consoto.com/_api/web/Lists
 http://Intranet.consoto.com/_api/web/Lists/getByTitle(‘Customers’)
 http://Intranet.consoto.com/_api/web/getAvailableWebTemplates(lcid=1033
 http://Intranet.consoto.com/_api/web/
 http://intranet.consoto.com/_api/web/Lists/getByTitle(‘Customers’)/Items(0)/?$se
lect CustomerName,CustomerId,Address
Demo : REST in Browser
Demo : Using Fiddler
Demo : OData in Code
Summary
CSOM
Now Covers More
Important for App Development
REST
Improved Syntax
Easy to Use with JavaScript than C#
Some Great Resources
 http://msdn.microsoft.com/en-us/library/jj164060.aspx
 http://msdn.microsoft.com/en-us/library/jj163201.aspx
 http://msdn.microsoft.com/en-us/library/jj164022.aspx
 http://msdn.microsoft.com/en-us/library/jj163800.aspx
 http://msdn.microsoft.com/en-us/library/fp142385.aspx
 http://msdn.microsoft.com/en-us/library/fp142380.aspx
 http://msdn.microsoft.com/en-us/library/fp142386.aspx
 http://msdn.microsoft.com/en-us/library/jj193034(v=office.15).aspx
 http://code.msdn.microsoft.com/office/SharePoint-2013-Perform-a-
1bf3e87d/view/SourceCode#content
 http://msdn.microsoft.com/en-us/library/jj860569.aspx
Q & A
Thank You

More Related Content

What's hot

Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIChris Beckett
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchRob Windsor
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Ben Robb
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSPC Adriatics
 
Webtrends and bright starr webinar 01282015 sharepoint is evolving
Webtrends and bright starr webinar 01282015   sharepoint is evolvingWebtrends and bright starr webinar 01282015   sharepoint is evolving
Webtrends and bright starr webinar 01282015 sharepoint is evolvingKunaal Kapoor
 
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...NCCOMMS
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekShailen Sukul
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsRoy Kim
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...Nik Patel
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013Giuseppe Marchi
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidKris Wagner
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsJames Tramel
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 

What's hot (20)

Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST API
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
Webtrends and bright starr webinar 01282015 sharepoint is evolving
Webtrends and bright starr webinar 01282015   sharepoint is evolvingWebtrends and bright starr webinar 01282015   sharepoint is evolving
Webtrends and bright starr webinar 01282015 sharepoint is evolving
 
Word on the Server
Word on the ServerWord on the Server
Word on the Server
 
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
 
Access & SharePoint
Access & SharePointAccess & SharePoint
Access & SharePoint
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted Apps
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with Android
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted apps
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 

Similar to Client Object Model and REST Improvements in SharePoint 2013

Comsharepoint2013pdf
Comsharepoint2013pdfComsharepoint2013pdf
Comsharepoint2013pdfKamal Pandey
 
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndPractical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndIvan Sanders
 
Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluIvan Sanders
 
Solve Todays Problems with 10 New SharePoint 2010 Features
Solve Todays Problems with 10 New SharePoint 2010 FeaturesSolve Todays Problems with 10 New SharePoint 2010 Features
Solve Todays Problems with 10 New SharePoint 2010 FeaturesCory Peters
 
Office 365 Deployment Strategies 2.0
Office 365 Deployment Strategies 2.0Office 365 Deployment Strategies 2.0
Office 365 Deployment Strategies 2.0Bert Johnson
 
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2Sayed Ali
 
Rabie_temraz_CV (SharePoint)
Rabie_temraz_CV (SharePoint)Rabie_temraz_CV (SharePoint)
Rabie_temraz_CV (SharePoint)Rabie Temraz
 
Priti Belnekar PowerBI
Priti Belnekar PowerBIPriti Belnekar PowerBI
Priti Belnekar PowerBIPriti Belnekar
 
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User Group
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User GroupSharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User Group
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User GroupDrew Madelung
 
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1Sayed Ali
 
SharePoint 2010 - IT Platform upgrade and Management
SharePoint 2010 - IT Platform upgrade and ManagementSharePoint 2010 - IT Platform upgrade and Management
SharePoint 2010 - IT Platform upgrade and ManagementChris McNulty
 
Customizing SharePoint Online
Customizing SharePoint OnlineCustomizing SharePoint Online
Customizing SharePoint OnlineBert Johnson
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Diveneil_richards
 

Similar to Client Object Model and REST Improvements in SharePoint 2013 (20)

Comsharepoint2013pdf
Comsharepoint2013pdfComsharepoint2013pdf
Comsharepoint2013pdf
 
Resume_Ravichandra Thota
Resume_Ravichandra ThotaResume_Ravichandra Thota
Resume_Ravichandra Thota
 
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application DevelopmentW8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
 
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndPractical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
 
Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - Honolulu
 
Solve Todays Problems with 10 New SharePoint 2010 Features
Solve Todays Problems with 10 New SharePoint 2010 FeaturesSolve Todays Problems with 10 New SharePoint 2010 Features
Solve Todays Problems with 10 New SharePoint 2010 Features
 
Office 365 Deployment Strategies 2.0
Office 365 Deployment Strategies 2.0Office 365 Deployment Strategies 2.0
Office 365 Deployment Strategies 2.0
 
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 2
 
Rabie_temraz_CV (SharePoint)
Rabie_temraz_CV (SharePoint)Rabie_temraz_CV (SharePoint)
Rabie_temraz_CV (SharePoint)
 
Case study for share point implementation for social intranet
Case study for share point implementation for social intranetCase study for share point implementation for social intranet
Case study for share point implementation for social intranet
 
Priti Belnekar PowerBI
Priti Belnekar PowerBIPriti Belnekar PowerBI
Priti Belnekar PowerBI
 
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User Group
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User GroupSharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User Group
SharePoint Server 2016 - Lets get ready - Wisconsin SharePoint User Group
 
Resume_Laxman
Resume_LaxmanResume_Laxman
Resume_Laxman
 
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1
What’s New for IT Professionals in Microsoft® SharePoint® Server 2013 Day 1
 
Farhan ahmed CV
Farhan ahmed CVFarhan ahmed CV
Farhan ahmed CV
 
SharePoint 2010 - IT Platform upgrade and Management
SharePoint 2010 - IT Platform upgrade and ManagementSharePoint 2010 - IT Platform upgrade and Management
SharePoint 2010 - IT Platform upgrade and Management
 
Customizing SharePoint Online
Customizing SharePoint OnlineCustomizing SharePoint Online
Customizing SharePoint Online
 
Farhan ahmed
Farhan ahmedFarhan ahmed
Farhan ahmed
 
CV of Faisal Farough SP DevAdm
CV of Faisal Farough SP DevAdmCV of Faisal Farough SP DevAdm
CV of Faisal Farough SP DevAdm
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Client Object Model and REST Improvements in SharePoint 2013

  • 1. Jerry Yasir SharePoint Server MVP Client Object Model & REST Improvements in SharePoint 2013
  • 2. Who Am I? SharePoint Server MVP Since 2010 SharePoint Practice Lead at US TECH Solutions (Jersey City, NJ) Microsoft Certified Trainer (MCT) since 2008. MCSE SharePoint 2013 – Waiting Results  MCITP SharePoint Admin 2010, MCPD SharePoint Developer 2010 & MCTS SharePoint 2010 Configuration & Development MCTS WSS 3.0, SharePoint Server 2007, MCITP, MCTS Silverlight 4 Development, Project Server 2007 & 2010, MCTS Project Professional 2007 & 2010, MCPD.NET, MCSD.NET MCAD.NET Email: jerry@ustechsolutions.com, Twitter: @jerry_yasir Facebook: yasir.attiq (Jerry Yasir) Blog: http://jerryyasir.wordpress.com
  • 3. Overview – US Tech Solutions 3  Leading global consulting company, offering domain led IT Consulting services for more than 12 years .  Development centers and COE’s in the US and India.  IT consultants deployed globally on various projects.  Access to a unique portfolio of innovative technologies that reduce IT project cost, timescales and risk.  A large and diverse pool of resources with expertise on various technologies and at various levels.  Specially Designed Skill & Career Development Programs  Technology partnerships with leading OEM’s like Microsoft, Oracle and IBM. ©US Tech Solutions, 2012 www.ustechsolutions.com
  • 6. CSOM in SharePoint 2010 Issues with CSOM • No Direct Access to client.svc Web Service • Must use a Proxy or Supported End Points • Supports .NET Silverlight & JavaScript Managed OM – Is Easy Silverlight OM? – Is Easy JavaScript OM? – Is Not Easy
  • 7. C SharePoint 2010 CSOM Architecture Silverlight Library .NET CLR Library JavaScript Library /_vti_bin/client.svc Execute Query Server Client Custom Client Code
  • 10. Changes in SharePoint 2013 Client.svc with REST Clients • Direct Access to client.svc Web Service • Access HTTP GET, PUT, Merge, POST Requests • OData Implementation • Writing Code from NON Microsoft Apps • New APIs for Server Functionality • API for Windows Phone Development For More Information http://tinyurl.com/SP2013Odata
  • 11. New CSOM API Support E-Discovery Taxonomy Search Workflow Sharing User Profiles Analytics Publishing Feeds IRM Business Data Lists Support both Server Side code and REST
  • 12. C SharePoint 2013 CSOM Architecture Silverlight Library .NET CLR Library JavaScript Library _api Execute Query Server Client OData Custom Client Code
  • 13. Changes in SharePoint 2013 CSOM • Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.RunTime.dll • Available in SharePoint Foundation • contains the core classes
  • 17. What’s REST and Why? Simple and Easier to Use • Easier than SOAP Based WS’s • Higher Productivity using JavaScript and JQuery • Results as JSON and ATOM • Everything is URL • Results can be cached on Proxy Servers.
  • 19. REST in SharePoint 2013 Replace • http://intranet/_vti_bin/client.svc/web with • http://intranet/_api/web/ • Lot more simple URL • Helps in 256 Character Limit of URLs in browser • ListData.svc is still there for backword compatiability • OLD Aps will still work but needs to be updated
  • 20. Client OM and OData
  • 21. What is OData? More Information @ http://www.odata.org/
  • 22. OData Terms and Concepts OData Described in Entity Data Model by Collection Entity Set A Navigation Property on an entity type that identifies a collection of entities Entry Entry type Note: May be Part of a type Hierarchy Property of an Entry Primitive or complex Entity type property Complex Type Complex Type Link A Navigation Property defined on an entity type Service Operation Function Import
  • 23. Methods will be mapped into either OData Maps CRUD Operations to HTTP Verbs OData Implementation Details More Information @ http://www.odata.org/
  • 24. URLs Resource Path – SQL Table or Web or List
  • 25. REST – Return ATOM XML vs. JSON ATOM-PUB XML • Verbose • Easier to Read • ACCEPT = application/atom+xml • Condensed notation • Smaller payload • ACCEPT = application/json;odata=verbose;
  • 26. Managing Objects to Resources  Example REST URLS  http://Intranet.consoto.com/_api/web/  http://Intranet.consoto.com/_api/web/Lists  http://Intranet.consoto.com/_api/web/Lists/getByTitle(‘Customers’)  http://Intranet.consoto.com/_api/web/getAvailableWebTemplates(lcid=1033  http://Intranet.consoto.com/_api/web/  http://intranet.consoto.com/_api/web/Lists/getByTitle(‘Customers’)/Items(0)/?$se lect CustomerName,CustomerId,Address
  • 27. Demo : REST in Browser
  • 28. Demo : Using Fiddler
  • 29. Demo : OData in Code
  • 30. Summary CSOM Now Covers More Important for App Development REST Improved Syntax Easy to Use with JavaScript than C#
  • 31. Some Great Resources  http://msdn.microsoft.com/en-us/library/jj164060.aspx  http://msdn.microsoft.com/en-us/library/jj163201.aspx  http://msdn.microsoft.com/en-us/library/jj164022.aspx  http://msdn.microsoft.com/en-us/library/jj163800.aspx  http://msdn.microsoft.com/en-us/library/fp142385.aspx  http://msdn.microsoft.com/en-us/library/fp142380.aspx  http://msdn.microsoft.com/en-us/library/fp142386.aspx  http://msdn.microsoft.com/en-us/library/jj193034(v=office.15).aspx  http://code.msdn.microsoft.com/office/SharePoint-2013-Perform-a- 1bf3e87d/view/SourceCode#content  http://msdn.microsoft.com/en-us/library/jj860569.aspx
  • 32. Q & A

Editor's Notes

  1. In this session we will look at what’s new and improved in SharePoint 2013 Client OM.
  2. We will look at Fundamental of REST and Odata. There have been major improvements in both Client Object Model and REST in SharePoint 201. We will look into the fundamentals and Finally we will at how we can make REST calls using JavaScript and C#.
  3. Everthing was client.SVC Service in SharePoint 2010 which was a WCF Entry Point. It was not possible to access client.svc directly as it was not allowed just like any other WCF Services. You need a proxy to read from client.svc. The proxy will take the code segments that we have and execute the equal server side code. We only had Managed Client, Silverlight Proxy which is very closed to .NET object Model. CSOM was more easier to use in .NET than using JavaScript. Reason for this is most people does not like to work with JavaScript or jQuery due not having enough support in writing code like you get in Visual Studio Intelligence and type checking and debugging. Hence wringing code in JavaScript is more difficult than C#.
  4. In Client Object Model for SharePoint 2010 all you needed to do is to create the visual studio 2010 project and then add references to related Dll. Like Microsoft.SharePoint.Client or Microsoft.SharePoint.Client.Silverlight and their related Runtime Dlls or use Javascript sp.js or sp.core.js files behind a page and then write code which through the same proxy calls client.svc service and execute our code in batches. Client.svc then execute the client code as Server Side code and returns the response as JSON. What you start writing code you will use class like Sites, Lists, List Items using the proxy classes that provided by SharePoint. We need to refer the assemblies that we need to write code. We have to executeQuery that is running across the network which is executed as XMLhttpRequest and passed to client.svc which then handle the effective batching, serialization of requests and parsing the replies. When client.svc finishes it sends the JSON response back to caller applications. It is note that Management Client OM from C# you can execute the code synchronously but in Silverlight as well as JavaScript the only way to run code is to run it as asynchronously.
  5. One of the major improvements has been made that that client.svc has been extended to provide direct support for client.svc. Now you can call client.svc using REST calls. Means you can now do stuff to SharePoint from non Microsoft Platform using the HTTP Get, Post request. Client.svc has now been implemented to cover not all but many of the oData specification which you can check from www.odata.org. Please note that not all the methods or calls are supported. You can check these details from http://msdn.microsoft.com/en-us/library/fp142385.aspx On the other side there are great improvements in Server Side API of Client Object Model which gives us access to more information from SharePoint as well as a API that allow access to SharePoint from Windows Phone.
  6. SharePoint 2013 Object Model now covers User Profiles – Covering for Search, and Taxonomies, Feeds from User Profiles now we can do workflow stuff, content management, BCS, IRM as well as analytics. There are new dlls are available for new APIs but dual support for Strongly Typed CSOM & REST.
  7. SharePoint 2013 now support the old way of writing code that we used to do in SharePoint 2010 but instead now you can make direct call to SharePoint 2013 client.SVC using oData. One great thing that has been done is that instead of _vti_bin/client.svc now you can use _api which actually maps to client.svc. New CSOM Coverage now overlaps the functionality of listdata.svc. Everthing that listdata.svc provided is now available in SharePoint 2013 CSOM REST. ListData.svc is there for backward compatibility only.
  8. There are not changes in SharePoint Foundation with respect to client OM. The changes are mostly done in SharePoint.Server. Please not that to use Client Object Mode you need to add references Micorosoft.SharePoint.Client and Microsoft.SharePoint.Client.Runtime dlls have the all the core classes that has methods that are responsible for doing all the messages and translations of WCF conversion of XMLHttpRequest to JSON. Now you can see that many SharePoint Server side client OM features have been added. There is now a assembly for accessing user profile that allows you to read and write in SharePoint Profile Store. There is assembly for providing support to talking to Taxonomy store as well as work, and Search. You can also use the Publishing client class to create publishing sites and pages in SharePoint 2015. Please note that you still have dual support for Client OM as well as REST calls to use this functionality.
  9. Introduction to Managed Client OM – Create a Basic client App in C# and read SharePoint Lists or add SharePoint List and add items. 10 Minutes Introduction to SharePoint App based JavaScript. 10 minutes http://msdn.microsoft.com/en-US/library/office/apps/fp179927
  10. Introduction to Managed Client OM – Create a Basic client App in C# and read SharePoint Lists or add SharePoint List and add items. 10 Minutes Introduction to SharePoint App based JavaScript. 10 minutes http://msdn.microsoft.com/en-US/library/office/apps/fp179927
  11. The REST architectural style was develop in parallel with HTTP/1.1, based on the existing design of HTTP/1.0.[6] The World Wide Web represents the largest implementation of a system conforming to the REST architectural style. REST exemplifies how the Web's architecture emerged by characterizing and constraining the macro-interactions of the four components of the Web, namely origin servers, gateways, proxies and clients, without imposing limitations on the individual participants. As such, REST essentially governs the proper behavior of participants. REST-style architectures consist of clients and servers. Clients initiate requests to servers; servers process requests and return appropriate responses. Requests and responses are built around the transfer of representations of resources. A resource can be essentially any coherent and meaningful concept that may be addressed. A representation of a resource is typically a document that captures the current or intended state of a resource. The client begins sending requests when it is ready to make the transition to a new state. While one or more requests are outstanding, the client is considered in transition. The representation of each application state contains links that may be used the next time the client chooses to initiate a new state-transition.[7] REST facilitates the transaction between web servers by allowing loose coupling between different services. REST is less strongly typed than its counterpart, SOAP. The REST language uses nouns and verbs, and has an emphasis on readability. Unlike SOAP, REST does not require XML parsing and does not require a message header to and from a service provider. This ultimately uses less bandwidth. REST error-handling also differs from that used by SOAP. REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used (which often differs quite a bit from what many people actually do). The promise is that if you adhere to REST principles while designing your application, you will end up with a system that exploits the Web’s architecture to your benefit. In summary, the five key principles are: Give every “thing” an ID Link things together Use standard methods Resources with multiple representations Communicate statelessly http://www.infoq.com/articles/rest-introduction
  12. Everthing was client.SVC Web Service in SharePoint 2010. You need a proxy to read from client.svc. The proxy will take the code segments that we have and execute the equal server side code. We only had Managed Client,
  13. However, SharePoint 2013 adds the ability for you to remotely interact with SharePoint sites by using REST. Now, you can interact directly with SharePoint artifacts by using any technology that supports standard REST capabilities. To use the REST capabilities that are built into SharePoint 2013, you construct a RESTful HTTP request, using the Open Data Protocol (OData) standard, which corresponds to the desired client object model API. The client.svc web service handles the HTTP request and serves the appropriate response in either Atom or JSON (JavaScript Object Notation) format. The client application must then parse that response. Figure 2 shows a high-level view of the SharePoint REST architecture.
  14. The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. OData does this by applying and building upon Web technologies such as HTTP, Atom Publishing Protocol (AtomPub) and JSON to provide access to information from a variety of applications, services, and stores. The protocol emerged from experiences implementing AtomPub clients and servers in a variety of products over the past several years.  OData is being used to expose and access information from a variety of sources including, but not limited to, relational databases, file systems, content management systems and traditional Web sites. OData is consistent with the way the Web works - it makes a deep commitment to URIs for resource identification and commits to an HTTP-based, uniform interface for interacting with those resources (just like the Web).   This commitment to core Web principles allows OData to enable a new level of data integration and interoperability across a broad range of clients, servers, services, and tools. http://odata.netflix.com/Catalog/Titles?$filter=ReleaseYear gt 2012&AverageRating gt 4
  15. One of the major improviements has been made that that client.svc has been extended to provide direct support for client.svc. Now you can call client.svc using REST calls. Means you can now do stuff to SharePoint from non Microsoft Platform using the HTTP Get, Post request. Client.svc has now been implemented to cover not all but many of the oData specification which you can check from www.odata.org. Please note that not all the methods or calls are supported. You can check these details from http://msdn.microsoft.com/en-us/library/fp142385.aspx On the other side there are great improvements in Server Side API of Client Object Model which gives us access to more information from SharePoint as well as a API that allow access to SharePoint from Windows Phone.
  16. The browser is going to return the data in Atom-Pub. Which return data in XML which is self describing. Everything Odata Servie scan also return JSON. Javascript Object Notation.
  17. Switch the URL First show Web Prope.rties Then Shows Web.Lists Then Show Web.Lists.getByTitle(‘AwCustomer’) Then Show Web.Users Then Show Web.getUserByID(‘LoginName’)
  18. Switch the URL First show Web Prope.rties Then Shows Web.Lists Then Show Web.Lists.getByTitle(‘AwCustomer’) Then Show Web.Users Then Show Web.getUserByID(‘LoginName’)
  19. Switch the URL First show Web Prope.rties Then Shows Web.Lists Then Show Web.Lists.getByTitle(‘AwCustomer’) Then Show Web.Users Then Show Web.getUserByID(‘LoginName’)
  20. 3/18/2022 12:34 PM