1 / 31

It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET

PR12. It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST. Maxim Lukiyanov Program Manager Microsoft Corporation. Agenda. SharePoint Web Services REST Client Object Model Custom Web Services.

butch
Download Presentation

It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET

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. PR12 It's All About the Services:Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST Maxim Lukiyanov Program Manager Microsoft Corporation

  2. Agenda • SharePoint Web Services • REST • Client Object Model • Custom Web Services

  3. SharePoint Web Services Browser .NET CLR Other Platforms Internet REST Client OM ASP.NET WCF

  4. REST REST Client OM ASP.NET WCF

  5. REST • Access to SharePoint lists and library data • …/_vti_bin/listdata.svc • Lists and List items map to resources • listdata.svc/Employees(123) • Operations map to HTTP verbs • GET, POST, PUT, DELETE

  6. Example: Adding Announcement to SharePoint using HTTP POST • POST /_vti_bin/listdata.svc/Announcements HTTP/1.0 • Content-Type:application/json • Accept:application/json • Content-Length: 58 • { Title: ‘New SharePoint REST Interface’, • Body: ‘Accessible from any platform with HTTP stack’ }

  7. Based on ADO.NET Data Services • Flexible URL conventions for querying data • listdata.svc/Employees? $filter=JobTitleeq 'SDE' $orderby=Fullname • Multiple representations • JSON and Atom (full AtomPub support) • Feed readers, Excel Power Pivot (Gemini) • Batching, ETags, Paging, Documents

  8. REST: Atom feeds in the browser demo

  9. Example: Query Translation Original REST Query: • GET /_vti_bin/listdata.svc/Employees? $filter=Project/Title eq ‘Project1‘ HTTP/1.0 Translated into CAML Query: <Joins> <JoinType='LEFT' ListAlias=‘Projects'> <Eq> <FieldRefName=‘Project'RefType='ID'/> <FieldRefList=‘Projects'Name='ID'/> </Eq> </Join> • </Joins> <ProjectedFields> <Field Name=‘ProjectTitle' Type='Lookup' List=‘Projects' ShowField='Title'/> </ProjectedFields> <Query> <Where> <Eq> <FieldRefName=‘ProjectTitle'/> <ValueType='Text'>Project1</Value> </Eq> </Where> </Query>

  10. Integrated Development Experience • Visual Studio 2010 & 2008 SP1 • Client library for .NET and Silverlight • IDE integration, “Add Service Reference” • Entity based programming • Typed experience through code-gen • LINQ support • Updates • Client Libraries for PHP, Java

  11. REST: Master-Detail Application demo

  12. Client Object Model REST Client OM ASP.NET WCF

  13. Client Object Model • Motivation • Removes the need for custom wrappers around SharePoint Web Services • Unified object model across all clients • JavaScript • .Net CLR • Silverlight CLR

  14. Client Object Model Coverage • Supports broad set of SharePoint objects • Site operations • Lists, ListItems • Content Types, Fields, … • But not Administration namespace, Farm objects • Implemented as WCF service • …/_vti_bin/client.svc • Uses Web Binding for request batching

  15. How Client Object Model Works Client Application Server Sequence of commands: Client.svc command 1; command 2; command 3; Execute commands in the batch: XML command 1; command 2; command 3; context.ExecuteQuery(); JSON Process results Send results back

  16. Client Object Model demo

  17. Other SharePoint Web Services Web Services Advanced Operations SharePoint Server Operations Client Object Model Advanced List Operations Site Operations Security • User Profiles • People • Search • Enterprise Metadata • Document Coauthoring • Excel REST web services • Publishing • Workflow • BCS web services • … • see MSDN REST List data

  18. Custom Web Services REST Client OM ASP.NET WCF

  19. ASP.NET vs WCF • ASP.NET web services are supported • WCF is recommended for new web services • SharePoint 2007 does not support WCF directly • Separate Web Application is required or • Custom Virtual Path Provider/HTTP Module      

  20. ASP.NET Web Service Development • SOAP • The same as in SharePoint 2007 • Deploy ASMX service to ISAPI folder • Add ServiceWSDL.aspx and ServiceDisco.aspx files to represent WSDL of your service. • REST • Place ASHX request handler in ISAPI folder

  21. WCF ? • Problem • IT Admin configures IIS • Different Authentication schemes can be configured • Basic, Forms, Claims, Windows Integrated, Digest, … • Multiple IIS address bindings • Developer configures WCF Service endpoint • Solution • Dynamic (Programmatic) Configuration • RTM only, not available in Beta2

  22. WCF Web Service Development • SOAP • Specify Service Factory in SVC file • Add MEX endpoint behavior attribute to the service class • BasicHttpBindingServiceMetadataExchangeEndpoint • Deploy SVC service to ISAPI folder • REST • Specify Service Factory in SVC file • Deploy SVC service to ISAPI folder

  23. WCF Service Configuration

  24. Custom WCF Service demo

  25. Details of WCF Service Configuration SharePoint Service Factory Service.svc http://server/_vti_bin/Service.svc/negotiate http://server/_vti_bin/Service.svc/ntlm http://server/_vti_bin/Service.svc/anonymous SharePoint HTTP Module HTTP POST http://server/_vti_bin/Service.svc

  26. Key Takeaways • SharePoint 2010 is designed for Services Oriented Applications • New REST and Client Object Model provide easy access to SharePoint from client apps • SharePoint Lists have enhanced relational capabilities • WCF is supported and easy

  27. Related Sessions Questions?

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

  29. 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….

More Related