Slide 1
Slide 2
Slide 3
Office 365 Platform Flexible Tools
Slide 4
Slide 5
BrowserWindowsASP.NET Workflows Event Receivers [7] Application
[4] Transport [3] Network Industry Standard OSI Model Microsoft
Open Specification
Slide 6
JavaScript Library Silverlight Library.NET CLR Library Client
Code Client Server REST oData JSON CSOM _api (_vti_bin/client.svc)
SharingSocialTaxonomySearchPublishing eDiscover y
WorkflowIRMBCSAnalytics
Slide 7
Slide 8 = 0) { clientSvc = clientSvc +
filePath.Substring(apiStart + "/_api/".Length); } RequestPathIndex
= PathIndex._vti_bin; }">
public sealed class SPRequestModule : IHttpModule { public void
BeginRequestHandler(object oSender, EventArgs ea) { //
Illustration, not actual code. if (RequestPathIndex ==
PathIndex._api) { string clientSvc = "/_vti_bin/client.svc/"; int
apiStart = requestVirtualPath.IndexOf("/_api/",
StringComparison.OrdinalIgnoreCase); if (apiStart >= 0) {
clientSvc = clientSvc + filePath.Substring(apiStart +
"/_api/".Length); } RequestPathIndex = PathIndex._vti_bin; }
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Build Request Execute Query Process Results Create Context
Slide 14
TokenHelper low trusthigh trust
Slide 15
Slide 16
Slide 17
Slide 18
using Microsoft.SharePoint.Client;Microsoft.SharePoint.Client
ClientContext context = new ClientContext("http://site"); List
oList = context.Web.Lists.GetByTitle("Announcements"); CamlQuery
camlQuery = new CamlQuery(); camlQuery.ViewXml = " " + " TACOCAT "
+ " 10 ; ListItemCollection oItems = oList.GetItems(camlQuery);
context.Load(oItems); context.ExecuteQuery(); foreach (ListItem
oListItem in oItems) { Console.WriteLine("ID: {0} \nTitle: {1}
\nBody: {2}", oListItem.Id, oListItem["Title"], oListItem["Body"]);
}
Slide 19
using
Microsoft.SharePoint.Client.Search.Query;Microsoft.SharePoint.Client.Search.Query
ClientContext context = new ClientContext("http://site");
KeywordQuery query = new KeywordQuery(context); query.QueryText =
"ContentTypeId:0x0104*"; query.SelectProperties.Add("Title");
query.SelectProperties.Add("ContentTypeId"); SearchExecutor
executor = new SearchExecutor(context); ClientResult results =
executor.ExecuteQuery(query); context.ExecuteQuery(); foreach (var
result in results.Value[0].ResultRows) {
Console.WriteLine(string.Format("Result: Title={0} ({1})",
result["Title"], result["ContentTypeId"])); } search query web
service deprecated
Slide 20
Slide 21 list.Include(set => set.Terms));
context.ExecuteQuery(); TermSet colors = tsc[0]; foreach (Term
color in colors.Terms) { Console.WriteLine(color.Name); }">
using
Microsoft.SharePoint.Client.Taxonomy;Microsoft.SharePoint.Client.Taxonomy
TaxonomySession session =
TaxonomySession.GetTaxonomySession(context); TermStore store =
session.GetDefaultSiteCollectionTermStore(); TermSetCollection tsc
= store.GetTermSetsByName("Colors", 1033); context.Load(tsc, list
=> list.Include(set => set.Terms)); context.ExecuteQuery();
TermSet colors = tsc[0]; foreach (Term color in colors.Terms) {
Console.WriteLine(color.Name); }
Slide 22
Slide 23
Slide 24
Slide 25
Slide 26
Microsoft.SharePoint Namespace Client.Runtime.dll
Microsoft.SharePoint.Client (client runtime context, web
request)...Client.dll Microsoft.SharePoint.Client (ClientContext,
Site, Web, List, ListItem, User, RoleDefinition/Assignment)
Microsoft.BusinessData.* (entities, lob systems, views, fields)
Microsoft.SharePoint.Client.EventReceivers
(SPRemoteEventType/Properties/Result)
Microsoft.SharePoint.ApplicationPages.ClientPickerQuery
(ClientPeoplePickerWebServiceInterface)
Microsoft.SharePoint.Client.WebParts (LimitedWebPartManager,
WebPart, WebPartDefinition) Microsoft.SharePoint.Client.Analytics
(logging analytics events)...Client.DocumentManagement.dll
Microsoft.SharePoint.Client.DocumentSet (DocumentSet)
Microsoft.SharePoint.Client.Video
(VideoSet)...Client.Publishing.dll
Microsoft.SharePoint.Client.Publishing (PublishingSite/Web/Page,
Variations) Microsoft.SharePoint.Client.Publishing.Navigation
(TaxonomyNavigation, NavigationTerm/TermSet)...Client.Search.dll
Microsoft.SharePoint.Client.Search.Query (KeywordQuery,
SearchExecutor)...Client.Taxonomy.dll
Microsoft.SharePoint.Client.Taxonomy (TaxonomySession,
TermStore/Group/Set, Term)...Client.UserProfiles.dll
Microsoft.SharePoint.Client.UserProfiles (ProfileLoader,
UserProfile, following) Microsoft.SharePoint.Client.Social
(SocialFeed/Post/Thread/Actor)
Microsoft.SharePoint.Client.Microfeed
(MicroFeedManager/Store/Post/Thread)
Slide 27
Slide 28
Slide 29
C#JavaScript using
Microsoft.SharePoint.Client;ExecuteOrDelayUntilScriptLoaded(initFunc,
sp.js); or $(document).ready(initFunc); using (ClientContext
context = new ClientContext(absoluteUrl)) using (ClientContext
context = TokenHelper( )) var context =
SP.ClientContext.get_current(); var context = new
SP.ClientContext(relativeUrl); string title = web.Title;var title =
web.get_title(); context.Load(oList, list=>list.Title,
list=>list.Created);context.load(oList, Title, Id);
context.load(oListColl, Include(Title, Id));
context.ExecuteQuery(); context.ExecuteQueryAsync();
context.executeQueryAsync(onSuccess, onError); Value types:
StringCollectionValue types: string[], NaN Automatic FormDigest
handlingManual FormDigest handling Issues creating
RoleDefinitionBindingCollections
Slide 30
Include Namespace Objects SP.js SP, SP.Sharing, SP.BusiessData,
SP.SiteHealth, SP.UI, SP.Utilities, SP.Workflow ClientContext,
Site, Web, List SP.Publishing.js SP.Publishing, SP.Navigation
SP.Search.js Microsoft.SharePoint.Client.Search.Query KeywordQuery,
SearchExecutor SP.Social.js SP.Social SP.Taxonomy.js SP.Taxonomy
SP.UserProfiles.js SP.UserProfiles
Slide 31
Slide 32
Slide 33
Slide 34
Slide 35
LOAD MORE