Client Object Model and REST Improvements in SharePoint 2013

on

  • 7,097 views

Client Object Model and REST Improvements in SharePoint 2013

Client Object Model and REST Improvements in SharePoint 2013

Statistics

Views

Total Views
7,097
Views on SlideShare
7,097
Embed Views
0

Actions

Likes
2
Downloads
71
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • In this session we will look at what’s new and improved in SharePoint 2013 Client OM.
  • 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#.
  • 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#.
  • 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.
  • 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.aspxOn 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.
  • 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.
  • 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.
  • 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.Runtimedlls 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.
  • Introduction to Managed Client OM – Create a Basic client App in C# and read SharePoint Lists or add SharePoint List and add items. 10 MinutesIntroduction to SharePoint App based JavaScript. 10 minuteshttp://msdn.microsoft.com/en-US/library/office/apps/fp179927
  • Introduction to Managed Client OM – Create a Basic client App in C# and read SharePoint Lists or add SharePoint List and add items. 10 MinutesIntroduction to SharePoint App based JavaScript. 10 minuteshttp://msdn.microsoft.com/en-US/library/office/apps/fp179927
  • The REST architectural style was developin 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 IDLink things togetherUse standard methodsResources with multiple representationsCommunicate statelesslyhttp://www.infoq.com/articles/rest-introduction
  • 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,
  • 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.
  • 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
  • One of the majorimproviements 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.aspxOn 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.
  • The browser is going to return the data in Atom-Pub. Which return data in XML which is self describing.Everything OdataServie scan also return JSON. Javascript Object Notation.
  • Switch the URLFirst show Web Prope.rtiesThen Shows Web.ListsThen Show Web.Lists.getByTitle(‘AwCustomer’)Then Show Web.UsersThen Show Web.getUserByID(‘LoginName’)
  • Switch the URLFirst show Web Prope.rtiesThen Shows Web.ListsThen Show Web.Lists.getByTitle(‘AwCustomer’)Then Show Web.UsersThen Show Web.getUserByID(‘LoginName’)
  • Switch the URLFirst show Web Prope.rtiesThen Shows Web.ListsThen Show Web.Lists.getByTitle(‘AwCustomer’)Then Show Web.UsersThen Show Web.getUserByID(‘LoginName’)
  • http://blogs.msdn.com/b/sharepointdev/archive/2011/07/25/working-with-the-ecmascript-client-object-model-jsom-in-sharepoint-2010-part-1-nikhil-sachdeva.aspxhttp://blogs.msdn.com/b/sharepointdev/archive/2011/07/25/working-with-the-ecmascript-client-object-model-jsom-in-sharepoint-2010-part-2-nikhil-sachdeva.aspxhttp://blogs.msdn.com/b/sharepointdev/archive/2011/07/19/working-with-the-ecmascript-client-object-model-jsom-in-sharepoint-2010-part-3-nikhil-sachdeva.aspxhttp://blogs.msdn.com/b/sharepointdev/archive/2011/07/25/working-with-the-ecmascript-client-object-model-jsom-in-sharepoint-2010-part-4-nikhil-sachdeva.aspx

Client Object Model and REST Improvements in SharePoint 2013 Client Object Model and REST Improvements in SharePoint 2013 Presentation Transcript

  • Client Object Model & RESTImprovements in SharePoint 2013 Jerry Yasir SharePoint Server MVP
  • Who Am I?SharePoint Server MVP Since 2010SharePoint 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 & MCTSSharePoint 2010 Configuration & DevelopmentMCTS 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.NETEmail: 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 Overview Client OM Intro REST DEMO Summary Q&A
  • CSOM in 2010
  • CSOM in SharePoint 2010 Issues with CSOM • No Direct Access to Managed OM – Is Easy client.svc Web Service Silverlight OM? – Is Easy • Must use a Proxy or JavaScript OM? – Is Not Supported End Points Easy • Supports .NET Silverlight & JavaScript
  • SharePoint 2010 CSOM Architecture /_vti_bin/client.svcServer ExecuteClient Query .NET CLR Silverlight C JavaScript Library Library Library Custom Client Code
  • How CSOM works
  • CSOM Changes in 2013
  • Changes in SharePoint 2013Client.svc with RESTClients • New APIs for Server Functionality• Direct Access to client.svc Web • API for Windows Phone Service Development• Access HTTP GET, PUT, Merge, POST Requests• OData ImplementationFor More Information• Writing Code from NONhttp://tinyurl.com/SP2013OdataMicrosoft Apps
  • New CSOM API Support User Taxonom Publishin Search Feeds Lists Profiles y g E- Business Sharing Workflow Discovery IRM Analytics DataSupport both Server Side code and REST
  • SharePoint 2013 CSOM Architecture _apiServerClient Execute Query OData .NET CLR Silverlight C JavaScript Library Library Library 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
  • DemoManaged Client OM
  • DemoJavaScript Client OM
  • REST Overview
  • What’s REST and Why? Simple and Easier to Use • Everything is URL • Easier than SOAP Based WS’s • Results can be cached on Proxy Servers. • Higher Productivity using JavaScript and JQuery • Results as JSON and ATOM
  • REST in SharePoint 2010
  • REST in SharePoint 2013Replace • Lot more simple URL • Helps in 256 Character Limit of URLs in browser• http://intranet/_vti_bin/client.svc/web with • ListData.svc is still there for backword compatiability• http://intranet/_api/web/ • 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 ConceptsOData Described in Entity Data Model by Entity SetCollection A Navigation Property on an entity type that identifies a collection of entities Entry typeEntry Note: May be Part of a type HierarchyProperty of an Entry Primitive or complex Entity type propertyComplex Type Complex TypeLink A Navigation Property defined on an entity typeService Operation Function Import
  • OData Implementation DetailsOData Maps CRUD Operations to HTTP Verbs Methods will be mapped into either More Information @ http://www.odata.org/
  • URLsResource Path – SQL Table or Web or List
  • REST – Return ATOM XML vs. JSONATOM-PUB XML• Verbose • Condensed notation• Easier to Read • Smaller payload• ACCEPT = application/atom+xml • 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)/?$select 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