From Solutions to Apps - Moving to SP2013
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

From Solutions to Apps - Moving to SP2013

  • 1,083 views
Uploaded on

SharePoint Saturday NH talk on moving from SharePoint 2010 solutions to SharePoint 2013 apps - by @Bob1German and @SPDCP

SharePoint Saturday NH talk on moving from SharePoint 2010 solutions to SharePoint 2013 apps - by @Bob1German and @SPDCP

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,083
On Slideshare
1,083
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
19
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. From Solutions to Apps Moving to SharePoint 2013Bob GermanDerek Cash-PetersonBlueMetal Architects @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 2. Agenda• Apps Model Overview• App Access to SharePoint – RESTful Access – Client Side Object Model (CSOM) – Cross-domain Access – OAuth Access• Other Topics @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 3. Apps 101 Host Web REST or Client OMLink orIFrame App @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 4. App Hosting OptionsHost HostWeb Web App App Web (optional) Web App Azure or other provider SharePoint Provider or Hosted App Auto-Hosted App @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 5. App Hosting OptionsApp Web Provider or Azure• Provisioned by SharePoint • Auto-hosted apps are on app installation provisioned by Office 365• No Server Code – period on app installation (though you can leverage • Pretty much installed ASP.NET controls) Host anything goes Web• May contain declarative, web-scoped • Access host web via Oauth App features (lists, site Web pages, client script, images, css) App• Access host web via cross- domain library @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 6. App IsolationHost http://myserver/sites/myweb/Web App Web http://app12345/sites/myweb/ (optional) http://whatevs.com/somepath/ App Azure or other provider Different domain names leverage browsers’ same-origin policy @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 7. Isolated Application shows: - Client Side Object Model - Declarative features in App Site - Simple Client Web Part (“App Part”)Chord CalculatorDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 8. App Access to SharePoint @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 9. Choosing an App Model2010 Model 2013 Apps• Reuse and backward • App code is reusable in compatibility with existing SharePoint and Office solutions • Better isolation – no more• Full access to server OM leftover web parts and lists – Nearly complete access to • App-level AuthN from Azure everything in SharePoint or other provider – Well documented – • No dependency on User MSDN, many Code Service books, blogs, etc. • Leverages general web• Leverages SharePoint development skills development skills @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 10. Choosing an Access MethodREST CSOM• Synchronous or • Asynchronous only in asynchronous in Javascript Javascript• Returns entities (e.g. • Returns SharePoint objects Contact, Task) (e.g. List, ListItem)• Easier access from jQuery– • Easier access from .NET no dependency on SP.JS server side • Batched requests @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 11. Choosing a Hosting ModelSharePoint Hosted Provider / Azure Hosted• No server side code, period • Server-side code• Access to OOB SharePoint • Server is not subject to web controls on the page cross-domain policy• Able to store content on • More flexible data storage customer’s SP infrastructure (SQL Azure, etc.) @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 12. Accessing Data with Client OM OData (REST) @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 13. What’s New in CSOM So much more than simple site and list access!• User Profiles • Sharing• Search • Workflow• Taxonomy • E-Discovery• Feeds • IRM• Publishing • Analytics• Business Connectivity Services @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 14. Silverlight App w/Cross-Domain Policy• CSOM Cross-domain Access• CSOM File UploadWebcam DemoDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 15. Representational State Transfer (REST) JSON ATOM JSON ATOM WPF/WinForm/Office Silverlight JavaScript @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 16. Representational State Transfer (REST)• Operations map to HTTP verbs – Retrieve items/lists  GET – Create new item  POST – Update an item  PUT or MERGE – Delete an item  DELETE – These apply to links (lookups) as well• SharePoint rules apply during updates – Validation, access control, etc. @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 17. URL Conventions• Addressing lists and items List of lists /_api/web/lists List /_api/web/lists(‘guid’) List /_api/web/lists/getbytitle(‘Title’) Items /_api/web/lists/getbytitle(listname)/items Item /_api/web/lists/getbytitle(listname)/items(1) Single column /_api/web/lists/getbytitle(listname)/items(1)/fields/getByTitle (Description) Sorting ?$orderby=Fullname Filtering $filter=JobTitle eq SDE Projection ?$select=Fullname,JobTitle Paging ?$top=10&$skip=30 @Bob1German • bobg@bluemetal.com Inline expansion ?$expand=Project @SPDCP • derekcp@bluemetal.com
  • 18. jQuery App with Cross-Domain LibraryImage RotatorDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 19. Open Authentication• Standard in use by dozens of public sites• Similar to a valet key – App gives to a partly trusted 3rd party – Grants limited access• SharePoint grants the app access on the user’s behalf – No need to pass the user’s credentials – SharePoint can limit the scope of access @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 20. Azure-Hosted App with OAuthContacts MapDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 21. Remote Event Receivers• Require a provider or Azure-hosted app• Uses Access Control Services (ACS) token – Passed from SharePoint to remote web service – Web service can request a token to send back to SharePoint• SharePoint calls a web service with the following methods: – ProcessEvent() – Synchronous – ProcessOneWayEvent() – Asynchronous• List, ListItem, Web, and App level scopes• App Events – call AppEventReceiver.svc – App Installed – App Uninstalling – App Upgraded• Caveats: – No guaranteed delivery – Watch latency and performance on synchronous events @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 22. Workflow @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 23. ResourcesSharePoint 2013 Development• Host webs, Web apps, and SharePoint Components: http://bit.ly/R3tUiO• Data Access Options for Apps in SharePoint 2013: http://bit.ly/Peeof9• OAuth and SharePoint 2013: http://bit.ly/Ny1jNd• SharePoint 2013 Workflows: http://bit.ly/PEJCze• Programming using the SharePoint 2013 REST service: http://bit.ly/LR66Ju• Programming using the SP 2013 CSOM (JavaScript): http://bit.ly/OJUARGContact Us• Bob German - @Bob1German http://msdn.microsoft.com/BobGerman Bobg@bluemetal.com• Derek Cash Peterson - @SPDCP http://spdcp.com Derekcp@bluemetal.com @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 24. was made possible by the generous support of the following sponsors… @Bob1German • bobg@bluemetal.com Thank you!And by@SPDCP • derekcp@bluemetal.com your participation…