Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mike Ammerlaan Program Manager Microsoft Corporation

Similar presentations


Presentation on theme: "Mike Ammerlaan Program Manager Microsoft Corporation"— Presentation transcript:

1 Mike Ammerlaan Program Manager Microsoft Corporation
2/18/2019 2:29 PM PR07 Developing Solutions for Microsoft SharePoint Server 2010 Using the Client Object Model Mike Ammerlaan Program Manager Microsoft Corporation © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 Overview of Data Technologies
2/18/2019 2:29 PM Overview of Data Technologies Methods, MOSS Weakly-typed lists Strongly-typed lists Web Services Client OM REST APIs Client-side Data Platform Farm Site List Data External Lists Server OM Server-side Weakly-typed lists LINQ Strongly-typed lists New in 2010 Improved © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 Client Object Model Agenda The Basics Queries Exception Scopes
Conditional Load Silverlight Cross-site Data Access

4 Client Object Model: The Basics
Client-side library for remotely calling SharePoint Mirrors (a subset) of objects on the server Usable in JavaScript, .net CLR, Silverlight CLR Requests are batched for over-the-wire performance Used by SharePoint UI for operations like batch deletion

5 Starting with the client OM
.NET CLR: 14\ISAPI Silverlight: 14\TEMPLATE\LAYOUTS\ClientBin Packaged .XAP coming post-beta JavaScript: Use <ScriptLink>/SP.SOD.execute to add JS files Microsoft.SharePoint.Client 281kb Microsoft.SharePoint.Client.Runtime 145kb SP.js 380kb SP.Core.js 13kb SP.Runtime.js 68kb

6 Getting Started: 3 things to know
1. ClientContext is the central object 2. Before you read a property, you have to ask for it 3. All requests must be committed in a batch clientContext = new ClientContext(“ clientContext.Load(list); clientContext.ExecuteQuery();

7 Hello World, Client Object Model

8 C# private ClientContext context; private Web web;
private void TestButton_Click(object sender, RoutedEventArgs e) { context = ClientContext.Current; web = context.Web; context.Load(web); context.ExecuteQueryAsync(TitleRetrievedContinue, null); } private void TitleRetrievedContinue(object sender, ClientRequestSucceededEventArgs args) web.Title = web.Title + " + Silverlight"; web.Update(); context.ExecuteQueryAsync(SayDone, null);

9 JavaScript var context; var web; function testButtonClick() {
context = new SP.ClientContext(); web = context.get_web(); context.load(web) context.executeQueryAsync(titleRetrievedContinue); } function titleRetrievedContinue() web.set_title(web.get_title() + " + JavaScript"); web.update(); context.executeQueryAsync(sayDone);

10 Accessing Data with Client OM
Client Application Client Application WPF/WinForm/Office Silverlight JavaScript Client OM client ExecuteQuery() XML server JSON Web Service Client.svc Server Application SharePoint API SharePoint Data

11 Major Objects in Client Object Model
Microsoft SharePoint Conference 2009 2/18/2019 Major Objects in Client Object Model Site Web ContentType Change List Navigation Form NavigationNode View UserCustomAction Field RoleDefinition ListItem RoleAssignment Folder WorkflowAssociation User Interface Data and Schema File WorkflowTemplate Logic WebPart Security © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

12 Items not covered by CSOM
User Profiles Excel REST web services People Publishing Search Administration Enterprise Metadata

13 Client Object Model Limitations
Client object model cannot be used on server to talk to same-server You still need to handle synch/update semantics (change log could help) No elevation of privilege capabilities Requests are throttled .net CLR has sync method; Silverlight CLR and Jscript are async

14 Retrieval Queries By default, .Load will fetch most* simple properties of an object Explicitly need to retrieve client objects or child collections You can use Linq to further define the shape of your queries What properties to include What sub-objects to retrieve (List items still need to use CAML queries)

15 Web Properties: Default Operations
bool AllowRssFeeds bool AllowRssFeeds bool AllowRssFeeds Group AssociatedMemberGroup ContentTypeCollection ContentTypes DateTime Created DateTime Created DateTime Created User CurrentUser String Description String Description String Description FieldCollection Fields Guid Id Guid Id Guid Id List Lists List Lists bool RecycleBinEnabled bool RecycleBinEnabled bool RecycleBinEnabled Folder RootFolder Folder RootFolder String Title String Title String Title clientContext.Load(web); clientContext.Load(web.RootFolder); clientContext.Load(web.Lists);

16 Advanced queries using Linq

17 Query Syntax var query = from list in clientContext.Web.Lists
         where list.Title != null          select list; var result = clientContext.LoadQuery(query); clientContext.ExecuteQuery();

18 Method Syntax clientContext.Load(oList,list => list.Fields .Where(field => field.Hidden == false && field.Filterable == true)); clientContext.ExecuteQuery();

19 Query Modes: Fill vs. Query
“Fill”: context.Load(object, params LinqExpression) Fills out the objects in the context: in-place ‘method syntax’ linq “Query”: context.LoadQuery(IQueryable) Use linq query to return custom objects Not filled into the context ‘query syntax’ and ‘method syntax’ linq

20 Method Query Syntax Basics
Use .Where method to: Filter down items retrieved in a collection Use .Include method to: Explicitly select properties or child objects to retrieve You own specifying what you want! (use .IncludeWithDefaultProperties for default + custom properties) Use .Take method to: Restrict overall number of items retrieved

21 Queries and Filtering

22 Client Object Model Advanced Topics
Exception Handling Use to react to exceptions within a batch Conditional Scope + Retrieves Use to check conditions before doing loads, on the server within a batch Uses scopes and using statements (IDisposable) to signify how methods are filtered

23 Exception Handling & Conditional Load

24 Silverlight Cross-Site Data Access using the Client Object Model
The Problem: You want to host powerful apps on SharePoint that use data on another server You want to minimize impact to SharePoint deployments Silverlight is (generally) limited to calls on one domain One solution: host XAP on external server & delegate user token

25 Browser Page (http://sharepoint/page.aspx)
2. Page is instantiated with special token Silverlight XAP ( 3. XAP calls back to custom web service on host server, with token client server 1. Web Part is added to page with application markup that indicates host server is 4. App server can forwards client OM request on behalf of user

26 Cross-site data access: core concepts
Application Principal SPUser that represents the incoming request account Effective permissions of Silverlight w/ client OM = Permissions of App Principal & Initiating User Application XML Contains hosting server information External Application Provider Can be deployed to host server to provide customized application-add experience Request Forwarder Code deployed to remote server to forward requests

27 Cross-Site Data Access

28 Getting Started: 3 things to know
1. ClientContext is the central object 2. Before you read a property, you have to ask for it 3. All requests must be committed in a batch clientContext = new ClientContext(“ clientContext.Load(list); clientContext.ExecuteQuery();

29 Overview of Data Technologies
2/18/2019 2:29 PM Overview of Data Technologies Methods, MOSS Weakly-typed lists Strongly-typed lists Web Services Client OM REST APIs Client-side Data Platform Farm Site List Data External Lists Server OM Server-side Weakly-typed lists LINQ Strongly-typed lists New in 2010 Improved © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

30 YOUR FEEDBACK IS IMPORTANT TO US!
Please fill out session evaluation forms online at MicrosoftPDC.com

31 channel9.msdn.com/learn
2/18/2019 2:29 PM Learn More On Channel 9 Expand your PDC experience through Channel 9 Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses channel9.msdn.com/learn Built by Developers for Developers…. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

32 2/18/2019 2:29 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

33 2/18/2019 2:29 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "Mike Ammerlaan Program Manager Microsoft Corporation"

Similar presentations


Ads by Google