Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium
The Plan Introduction You are here Feature Presentation Developing against SharePoint Remotely Next Topic Selection Random Stuff
User Group Goals Provide a community for SharePoint Developers Share development knowledge Exchange tips/tricks/other/free pizza Add 2,000 List Items….in JavaScript
User Group Format Presentations 1-2 per meeting (targeting 1.25 Hours) Hopefully Demo Heavy (Slides are for MBAs) Highlights of Nifty Things See next slide QA/Discussion/Random Things
Call for Cool Stuff Created something cool? Send Screenshots or Videos We’ll try to feature some items here
Sharepointmn.com/modig/ Our current home Meeting information Usually has the right time Previous presentations Running on SharePoint As required by SharePoint User Group Law
Upcoming Next Meeting August 26 (Tuesday 5:30pm) Topic: TBD – Hopefully later today Location: Based on Feedback MNSPUG August 13 (9:00am – Noon) Topic : Panel Discussion (sharepointmn.com)sharepointmn.com
The Plan But, I love the Object Model! Why you can’t use the OM all the time Remote possibilities SharePoint Web Services Introduction What’s available How do I use them? Hey – those don’t do what I want! The dark alley that is RPC Introduction What’s available How do I use them? Where can I learn more? Questions
Working with SharePoint Remotely
But, I love the Object Model! We all do… You can only use the Object Model on the server Scenarios: Remote administration tools Integration with desktop application Silverlight!
Remote Possibilities… SharePoint Designer! OOTB WSS Web Services OOTB MOSS Web Services Custom Web Services FP RPC WSS RPC
SharePoint Web Services
Introduction Located in C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\ISAPI Accessible via
SharePoint Web Services What’s available in WSS
SharePoint Web Services What’s available in MOSS
DEMO: The basics Add a Web Reference and get back a list of lists for a web
DEMO: Play from PoSH! Use the Get-WebService Proxy Generator
SharePoint Web Services Hey – those don’t do what I want! Deploy your own Web Service! Allows you to use the Object Model Permissions/Deployment can be tricky
DEMO: I do what I want Deploy and consume a custom Web Service
Remote Procedure Call
SharePoint RPC Introduction Remote Procedure Call Execute commands via HTTP POST Two kinds: FrontPage RPC (FPRPC) WSS RPC Three Targets: _vti_bin/_vti_adm/admin.dll _vti_bin/_vti_aut/author.dll _vti_bin/owssvr.dll
SharePoint RPC What’s available - FPRPC
SharePoint RPC What’s available – WSS RPC
SharePoint RPC Permissions Permissions count! You can only do with RPC what you have access to do via the Web UI Once you have authenticated, a Request Digest is sent down that you can use for future calls.
SharePoint RPC How do I use them? Authenticate and retrieve a Request Digest Submit a POST command to the appropriate URL Retrieve the server’s response
DEMO: JavaScript Test Page Submit RPC commands via JavaScript
SharePoint RPC How do I use them? Not just a JavaScript thing :-) Use.NET to submit RPC commands
SharePoint RPC Where can I learn more? SharePoint Designer knows! Use Fiddler to watch what SPD is doing
DEMO: Learn from SPD Use Fiddler to watch the HTTP traffic between SharePoint Designer and SharePoint
SharePoint RPC Where can I learn more? HubKey’s document-focused RPC Library
DEMO: Play with HubKey’s Framework Get a list of documents
Resources
Web MSDN: MSDN: More than you ever wanted to know: RPC Protocol Specifications
Resources Blogs: PowerShell Proxy Generator ratorForPowerShell.aspx ratorForPowerShell.aspx
Resources HubKey C# Code Library documents.html Minnesota Silverlight User Group SharePoint + Silverlight User Group Session Tuesday, September 16 th
Next Meeting Planning Possible Topics Workflow Timer Jobs/Alert Event Panel/Roundtable General Site Provisioning (Site Defs/Templates/Features) … More RPC
Random Stuff Raymond Mitchell Inetium Feedback Forms/Giveaway Mingle, Eat, Feedback See you next time!