Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint...

37
Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium http://www.iwkid.com/

Transcript of Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint...

Page 1: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Minneapolis Office Developer Interest Group (MODIG)

July 22, 2008

Developing against SharePoint Remotely

(No Object Model Allowed!)

Raymond MitchellInetium

http://www.iwkid.com/

Page 2: 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

Page 3: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 4: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 5: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Call for Cool Stuff Created something cool?

Send Screenshots or Videos We’ll try to feature some items here

Page 6: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 7: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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)

Page 8: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 9: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Working with SharePoint Remotely

Page 10: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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!

Page 11: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Remote Possibilities… SharePoint Designer!

OOTB WSS Web Services OOTB MOSS Web Services

Custom Web Services

FP RPC WSS RPC

Page 12: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint Web Services

Page 13: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint Web Services Introduction

Located in C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\ISAPI

Accessible via http://site/_vti_bin/*.asmx

Page 14: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint Web Services What’s available in WSS

Administration Alerts Authentication Copy DocumentWorkspace Forms Imaging ListDataRetrieval Lists Meetings People Permissions SharepointDirectoryManagementService SiteData Sites SPSearch UsersGroups Versions Views WebPartPages Webs

Page 15: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint Web Services What’s available in MOSS

Area – obsolete in V3Official FilePublished LinksSearchUser Profile ChangeUser ProfileWorkflow

Page 16: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: The basics Add a Web Reference and get back a list of lists for a web

Page 17: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: Play from PoSH! Use the Get-WebService Proxy Generator

Page 18: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 19: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: I do what I want Deploy and consume a custom Web Service

Page 20: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Remote Procedure Call

Page 21: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 22: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint RPC What’s available - FPRPC

Page 23: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint RPC What’s available – WSS RPC

Page 24: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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.

Page 25: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

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

Page 26: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: JavaScript Test Page Submit RPC commands via JavaScript

Page 27: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint RPC How do I use them?

Not just a JavaScript thing :-)

Use .NET to submit RPC commands

Page 28: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint RPC Where can I learn more?

SharePoint Designer knows!

Use Fiddler to watch what SPD is doing

Page 29: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: Learn from SPD Use Fiddler to watch the HTTP traffic between SharePoint Designer and

SharePoint

Page 30: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

SharePoint RPC Where can I learn more?

HubKey’s document-focused RPC Library

Page 31: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

DEMO: Play with HubKey’s Framework Get a list of documents

Page 32: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Resources

Page 33: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Resources Web Services @ MSDN:

http://msdn.microsoft.com/en-us/library/aa979690.aspx

RPC @ MSDN: http://msdn.microsoft.com/en-us/library/ms442469

.aspx

More than you ever wanted to know: RPC Protocol Specifications

http://www.iwkid.com/blog/Lists/Posts/Post.aspx?ID=22 http://msdn.microsoft.com/en-us/library/cc313171.aspx

Page 34: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Resources Blogs:

http://www.iwkid.com/blog http://www.tonstegeman.com/blog

PowerShell Proxy Generator http://www.nivot.org/NewImprovedGetWebService

ProxyGeneratorForPowerShell.aspx

Page 35: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Resources HubKey C# Code Library

http://geek.hubkey.com/2008/07/programatically-manage-remote-documents.html

Minnesota Silverlight User Grouphttp://www.ilmservice.com/silverlight/

SharePoint + Silverlight User Group Session Tuesday, September 16th

Page 36: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Next Meeting Planning Possible Topics

Workflow Timer Jobs/Alert Event Panel/Roundtable General Site Provisioning (Site

Defs/Templates/Features) … More RPC

Page 37: Minneapolis Office Developer Interest Group (MODIG) July 22, 2008 Developing against SharePoint Remotely (No Object Model Allowed!) Raymond Mitchell Inetium.

Random Stuff

Raymond MitchellInetiumhttp://www.iwkid.com

Feedback Forms/Giveaway

Mingle, Eat, Feedback

See you next time!