From Solutions to Apps                         Moving to SharePoint 2013Bob GermanDerek Cash-PetersonBlueMetal Architects ...
Agenda• Apps Model Overview• App Access to SharePoint  – RESTful Access  – Client Side Object Model (CSOM)  – Cross-domain...
Apps 101   Host   Web         REST or               Client OMLink orIFrame              App                @Bob1German • b...
App Hosting OptionsHost                HostWeb                 Web        App                   App Web                   ...
App Hosting OptionsApp Web                         Provider or Azure• Provisioned by SharePoint     • Auto-hosted apps are...
App IsolationHost                             http://myserver/sites/myweb/Web       App Web               http://app12345/...
Isolated Application shows: - Client Side Object Model - Declarative features in App Site - Simple Client Web Part (“App P...
App Access to SharePoint              @Bob1German • bobg@bluemetal.com               @SPDCP • derekcp@bluemetal.com
Choosing an App Model2010 Model                       2013 Apps• Reuse and backward             • App code is reusable in ...
Choosing an Access MethodREST                           CSOM• Synchronous or               • Asynchronous only in  asynchr...
Choosing a Hosting ModelSharePoint Hosted                Provider / Azure Hosted• No server side code, period    • Server-...
Accessing Data with Client OM  OData  (REST)                @Bob1German • bobg@bluemetal.com                 @SPDCP • dere...
What’s New in CSOM        So much more than simple site and list access!•   User Profiles               •   Sharing•   Sea...
Silverlight App w/Cross-Domain Policy• CSOM Cross-domain Access• CSOM File UploadWebcam DemoDEMONSTRATION                 ...
Representational State Transfer (REST) JSON   ATOM   JSON   ATOM                                WPF/WinForm/Office        ...
Representational State Transfer (REST)• Operations map to HTTP verbs  –   Retrieve items/lists  GET  –   Create new item ...
URL Conventions• Addressing lists and items  List of lists      /_api/web/lists  List               /_api/web/lists(‘guid’...
jQuery App with Cross-Domain LibraryImage RotatorDEMONSTRATION                                       @Bob1German • bobg@bl...
Open Authentication• Standard in use by dozens of public  sites• Similar to a valet key   – App gives to a partly     trus...
Azure-Hosted App with OAuthContacts MapDEMONSTRATION                              @Bob1German • bobg@bluemetal.com        ...
Remote Event Receivers• Require a provider or Azure-hosted app• Uses Access Control Services (ACS) token    – Passed from ...
Workflow     @Bob1German • bobg@bluemetal.com      @SPDCP • derekcp@bluemetal.com
ResourcesSharePoint 2013 Development• Host webs, Web apps, and SharePoint Components:       http://bit.ly/R3tUiO• Data Acc...
was made possible by the generous      support of the following sponsors…    @Bob1German • bobg@bluemetal.com             ...
Upcoming SlideShare
Loading in...5
×

From Solutions to Apps - Moving to SP2013

755

Published on

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

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
755
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

From Solutions to Apps - Moving to SP2013

  1. 1. From Solutions to Apps Moving to SharePoint 2013Bob GermanDerek Cash-PetersonBlueMetal Architects @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  2. 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. 3. Apps 101 Host Web REST or Client OMLink orIFrame App @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  4. 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. 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. 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. 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. 8. App Access to SharePoint @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  9. 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. 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. 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. 12. Accessing Data with Client OM OData (REST) @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  13. 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. 14. Silverlight App w/Cross-Domain Policy• CSOM Cross-domain Access• CSOM File UploadWebcam DemoDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  15. 15. Representational State Transfer (REST) JSON ATOM JSON ATOM WPF/WinForm/Office Silverlight JavaScript @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  16. 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. 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. 18. jQuery App with Cross-Domain LibraryImage RotatorDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  19. 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. 20. Azure-Hosted App with OAuthContacts MapDEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  21. 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. 22. Workflow @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  23. 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. 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…
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×