Office 365 Platform Flexible Tools BrowserWindowsASP.NET Workflows Event Receivers [7] Application [4] Transport [3] Network Industry Standard OSI

Embed Size (px)

Citation preview

  • 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