Custom REST services and j Query AJAX Building
Custom REST services and j. Query AJAX Building your own custom REST services and consuming them with j. Query AJAX
about John Liu • Senior Consultant for Share. Point Gurus Sydney • Blog johnliu. net • Community: user groups, Share. Point Conferences and Share. Point Saturday • @johnnliu • Loves. NET - Share. Point 2007, 2010, Silverlight & Windows Phone • Video games, board games, D&D
Contents • Intro – j. Query – REST API (out of the box) • Create SOAP service • Create REST service • Highly responsive websites with j. Query AJAX • Create ADO. NET Data. Service • Fast demo of Knockout JS
Intro - j. Query in 1 slide • Java. Script library • Select using CSS rules, then do something with the selected set • Lots of helper functions, utilities • Externally injected so doesn’t interfere with how Share. Point works • $("div. mybox"). add. Class("yourbox"). show(); • http: //jquery. com/
Intro - Share. Point REST API • /_vti_bin/List. Data. svc/
Quick tip with IE • If you see this, IE is trying to be helpful Uncheck!
Question before demo • How many have written webparts for Share. Point • How many have build your own WCF services at some point (for Share. Point) • (new) How many of you have looked at MVC 4 – (bonus) What's the key feature of MVC 4?
Code Demo WRITE YOUR OWN SOAP AND REST SERVICES
Building your own WCF services • Useful for Info. Path • The problem with WCF: Error “This collection already contains an address with scheme http” Configuration necessary in web. config • Use Microsoft. Share. Point. Client. Services. Multiple. Base. Address. Basi c. Http. Binding. Service. Host. Factory
What you can do in a REST service • • • SPContext. Current Check current user's roles and permissions Make read and write database calls SPSecurity. Run. With. Elevated. Privileges SPUtility. Send. Email Do whatever you want! • Use Microsoft. Share. Point. Client. Services. Multiple. Base. Address. We b. Service. Host. Factory • Reminder: remember SPDispose. Check
AJAXify your UI • Define: AJAX – do it without refreshing the browser. This means a very seamless user experience • Grab just the data I need from a quick service call • Find where I want it to go • Form HTML string and append() into the existing DOM structure
AJAX vs. Web Parts AJAX ASP. NET Web Parts Script runs on client Need to learn j. Query AJAX Debug in browser Small payload Client side DOM manipulation Best Feature • Super fast UI • ASP. NET hosted code • Learn ASP. NET page lifecycle • Debug in server • Larger page size (waiting…) • Connected web parts • • • Configuring webparts is easier for non-developer
Deploy is simple Farm Solution • But doesn’t interfere with your site collections or deploy anything into Share. Point • Stuffed up? Delete the service folder and it's gone! • Web. Parts can be sandbox solutions – so if your service is stable, you only need to deploy/redeploy sandbox webparts to update your UI / script • Your script can be stored in the library, can be modified without redeploy
Debug? Where!? • Debug service on the server – Holds up App Pool - • Debug webpart on the browser – Holds up only your own browser – IE 9's dev tools are pretty good all round
Bonus Demo WRITE YOUR OWN DATASERVICES, KNOCKOUTJS AND AJAX
Future of j. Query, AJAX and REST • j. Query data binding – j. Query. tmpl – j. Qote • Knockout. JS – MVVM data-binding on client side
Summary • • Hands up if you think this is better than writing webparts : -) j. Query REST API (out of the box) Create SOAP service Create REST service Highly responsive websites with j. Query AJAX Create ADO. NET Data. Service
Resources • REST and j. Query AJAX • http: //blogs. msdn. com/b/sharepointdev/archive/2011/02/22 /calling-a-wcf-service-using-jquery-in-sharepoint. aspx • http: //www. wictorwilen. se/Post/Calling-a-WCF-Service-usingj. Query-in-Share. Point-the-correct-way. aspx • http: //johnliu. net/ • Data Service http: //msdn. microsoft. com/en-us/library/dd 728279
Help! I'm still on 2007 • http: //spservices. codeplex. com/ • j. Query wrapper around Share. Point 2007 (and 2010) SOAP services • Notably, via Java. Script you can: – Update item without form – Start workflow on any item – Get information from user profile service
Gold Sponsors Silver Sponsors Bronze Sponsors Media Sponsors
Thank you John. Liu@Sharepoint. Gurus. net @johnnliu http: //John. Liu. net
- Slides: 21