html5-img
1 / 28

Introduction To: Client Object Model Development

Introduction To: Client Object Model Development. March 20, 2009 SharePoint Saturday Neil Iversen. http ://justaddcode.com/blog. The Plan. Introduction  You are here SharePoint 2010 Developer Overview. What is the Client Object Model Working with the COM .NET Silverlight

Jimmy
Télécharger la présentation

Introduction To: Client Object Model Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction To: Client Object Model Development March 20, 2009 SharePoint Saturday Neil Iversen http://justaddcode.com/blog

  2. The Plan • Introduction  You are here • SharePoint 2010 Developer Overview

  3. What is the Client Object Model • Working with the COM • .NET • Silverlight • Javascript • Questions

  4. What’s a Client Object Model? • Run code against SharePoint…only remotely • Its like a Web Service call, only prettier • Why use it? • ‘No Code’ solutions • Fancy AJAX • Rich Internet Applications (RIA) • Integrate with WinForm/WPF Apps • (Potentially) Get around Solution Limits

  5. So, how’s it work? • You use its .dll/.js • It bundles your calls • It calls a web service • You get pretty objects back

  6. Client Object ModelRuns on Remote Machine • Simple API to Add, Retrieve, Updateand Manage Data in SharePoint • Commands batched for Performance SharePoint Data Consistent Efficient Client Application .NET CLR Silverlight CLR JavaScript

  7. What’s the big advantage? • Uses calls similar to the Server Object Model (aka ‘The Object Model’ • Compared to the eye-blinding XML for the web services

  8. Getting Started – Where Am I? • ClientContext • Sets up the Environment your calls will be in • The Web you’ll be working with • Web and SilverLight have a Current context • .NET Requires you to specify a location • AuthenticationMode • Uses currently logged in User by default • Set to FormsAuth • Example: clientContext= new ClientContext(“http://myurl”); • web = clientContext.Web;

  9. Retrieving Items • Item Collections can be retrieved by ‘calling’ them • web.Lists • LINQ is available for some objects • var query = from l in web.Lists where l.Title = “Tasks” • Not everything is Enumerable • There is no list.Items • CAML is preferred for ListItems • CamlQuery object

  10. Nothing Happened! • Everything is async • Nothing happens until you clientContext.ExecuteQuery • But first you need to tell it the objects to Load • clientContext.Load(lists)

  11. Know when to Load them • Two methods for getting data: Load and LoadQuery • Load • Loads an instance of an object • LoadQuery • Returns a collection of objects • Can return multiple levels of objects (parent.child.child) • Can be more memory efficient

  12. Why can’t I see all my fields? • SharePoint is trying to conserve resources • It only brings back what it has to • Use Include to override this behavior • Load(myLists, lists=>lists.Include(list =>list.Title,list=>list.Author) • Or • Load(myLists, “Include(Title,Author)”)

  13. Demo - .NET Client Object Model

  14. Adding a new Item • ListItemCreationInformation • Sets the context for the Add • collection.Add(listItemCreationInformation) • Returns Item • Ex: ListItem item = list.Add(lici) • Then • item.Update() • clientContext.ExecuteQuery()

  15. Updating an Item • Item.Update! • clientContext.ExecuteQuery()

  16. Deleteing an Item • Item.DeleteObject • clientContext.ExecuteQuery()

  17. Demo - .NET CRUD

  18. ECMAScript Object Model • Commonly called ‘javascript’ by humans • Requires: • MSIE 7+ • Firefox 3.5+ • Safari 4.0+ • Needs SP.js to be loaded • <SharePoint:ScriptLinkrunat="server" Name="sp.js" Localizable="false" LoadAfterUI="true" /> • Stored in /LAYOUTS • SP.js – SP.debug.js

  19. Async what? • Javascript and SilverLight only have async web calls • This means you’ll get your results…sometime • Line 1 • WS Call • Line 3 • Line 1 • WS Call • Line 3

  20. Demo – Javascript Demo

  21. SilverLight • Probably the funnest of the options • Give you rich visualization options • Has Client Object Model like JS/.NET

  22. Demo – SilverLight Demo

  23. How about something you can use? • Auto Complete a list item • We’ll use jQuery and a plugin conveniently called ‘autocomplete’ • 3 Components • Get the Context, List and run the ‘All Item’s query • Bind the Autocomplete Data • Bind the Result Action

  24. Demo – Autocomplete Demo

  25. A Note about WP7 • Currently the SilverLight Client Object Model doesn’t run against WP7 • WP7 currently doesn’t support Active Directory authentication with Web services • Forms Authentication is currently the only way to access SP content from the phone

  26. Questions?

  27. Thanks! Neil Iversen Inetium http://justaddcode.com

More Related