Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps


Published on

A presentation I gave at SharePoint Evolutions 2015. Here, I compare SharePoint apps (now renamed "SharePoint Add-Ins" as of April 2015!) and the newer flavour of app development, Office 365 apps.

It focuses primarily on the perspective of a development team implementing the app - and factors to consider when deciding between the two approaches. However, to do this we must consider end-user and administration aspects, as well as code/development.

Key agenda points:

- Changes in SharePoint development
- Apps, 2 years on..
- SharePoint Add-Ins – a recap
- Office 365 apps - Why did Microsoft introduce these? What do they promise?
- Comparing SharePoint Add-Ins with Office 365 apps - For the end-user, administrator and developer
- Summary

Published in: Technology

Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps

  1. 1. New developer choices - comparing SharePoint add-ins (apps) with Office 365 apps Chris O’Brien – MVP
  2. 2. Independent Consultant Head of Development, Content and Code @ChrisO_Brien About me
  3. 3. Warning! Name change 
  4. 4. Warning! Name change 
  5. 5. Agenda
  6. 6. SP2003 – hacking in ASPX files SP2007 – WSP packages SP2010 – WSPs and CSOM SP2013 – WSPs, CSOM and app model (remote code) Now – As above + Office 365 APIs A brief history
  7. 7. The SharePoint App Model – "State of the Nation"
  8. 8. Apps, 2 years on – THE GOOD The model is WORKING! Office 365 IS customisable AND stable
  9. 9. Apps, 2 years on – THE BAD Raises the bar even higher to be a SharePoint developer?
  10. 10. What developers say about apps.. “I get it, but things are harder/take longer” “So I have to write code to create fields and content types now? Really?” “Getting on-premises infrastructure sorted for apps is painful!”
  11. 11. What end-users say about apps.. “Why can’t I go directly into [tool X] in my browser?“ “It doesn’t make sense to go from a SharePoint site!” “It doesn’t work well on my phone!”
  12. 12. What was needed  Something less tied to SharePoint  Something which works well on mobile devices  Something easier for non-SharePoint developers to pick up
  13. 13. Let me introduce our client..
  14. 14. This is Joe  (Office 365 intranet manager)
  15. 15.  Build me a meetings app!!  It needs to: –Allow selection of attendees –Stores agenda of meeting in SharePoint doc lib –Inserts entry into calendar of attendees –Tracks booked meetings to a SharePoint list somehow –Work well on mobile devices
  16. 16. This is our brave dev team 
  17. 17. Dev team questions We’ll come back to this scenario later… Do the Office 365 APIs cover the requirements? What about the user experience? How would we roll it out “globally”?
  18. 18. Solve common problems with Add-Ins Full trust (farm) solution Remote code/apps Timer job Scheduled process in Azure (CSOM to read/write to SP) Event receiver Remote event receiver Custom field control JSLink Site definition 1. Remote provisioning solution 2. WebTemplate in NCSS * (less preferred) Run With Elevated Privileges App-only authentication Custom web parts/user control App part, or JavaScript injection Feature receiver, DelegateControl, application page None – but other approaches possible * NCSS = no-code sandbox solution
  20. 20. Click “next slide” to see this demo on YouTube, or use link: v=cNi353Mpwyk
  21. 21. Key takeaways – SharePoint Add-Ins Installed to SharePoint sites Generally accessed from Site Contents page Can be “admin-deployed” via a tenant-scoped app install
  22. 22. Office 365 apps
  23. 23. What is an Office 365 app?
  24. 24. Office 365 apps – the vision “Everyone” has an Office 365 account (kinda!) Lots of apps need to: - store files, - send mail/ calendar invites etc. Use Office 365 instead of app’s own! “Making it easy for other platforms/devices to make use of Office 365”
  25. 25. Office 365 apps – the promise Mail, Contacts, Calendar (Exchange) Files (SharePoint) Users and Groups (Azure AD) AIM: Remove differences between SharePoint and Exchange (e.g. app which stores e-mail attachments to OneDrive)
  27. 27. Click “next slide” to see this demo on YouTube, or use link: v=xznfjNFIlAU
  28. 28. Key takeaways – Office 365 apps Registered in Azure AD Users can browse to app “directly” – and asked to sign-in if needed When app is assigned to user, shows in their “My apps” page
  29. 29. Development differences
  30. 30. API forms
  31. 31. Office 365 API capabilities Mail Contacts Calendar Files Users & groups Discovery Service Expense app: Looks up user’s manager Sends mail with details Expense form/receipt saved to ODFB site
  32. 32. Fetching files (.NET client library)
  33. 33. Fetching e-mail (.NET client library)
  34. 34. Other uses of Azure AD
  35. 35. Getting started with Office 365 APIs Option 1 – best for new apps • Start app from OfficeDev MVC Starter Project (http://cob- • Integrate your functionality into this app • Simplest approach Option 2 – best for existing apps • Use existing application • Integrate Office 365 APIs into project using MSDN article - http://cob- • Copy in code/web.config settings etc. • More steps to do
  37. 37. Click “next slide” to see this demo on YouTube, or use link: v=B8w1oJj3eJw
  38. 38. Key differences for developers SharePoint Add-Ins Office 365 app APIs SharePoint CSOM/REST (.NET or JavaScript) Office 365 APIs (REST + many libraries) Authentication SharePoint context/access tokens Azure AD auth Hosting SharePoint-hosted/provider-hosted Provider-hosted Deployment Installed to SharePoint site Standalone Mobile support No “native” apps – just web Support for iOS/Android/Windows 8 native apps (specific API client libraries)
  39. 39. But I can’t do it with the Office 365 APIs!
  40. 40. Key differences summarised App for SharePoint Office 365 app How app is accessed SharePoint site (Site Contents page) App Launcher/My Apps page (or direct link to app) App registration Registered with AppRegNew.aspx Registered in Azure AD App deployment SharePoint app catalog/installed to site Standalone Users assigned to app in Azure AD Authentication Access/context tokens – handled by SharePointContext class Handled by client libraries/ADAL libraries
  41. 41. Office 365 app *would* be a good foundation here:  APIs cover most of the requirements (calendaring, contacts etc.)  The user experience would work well – accessible anywhere in Office 365  Option of creating a device specific app (e.g. iOS) BUT:  Would need to step outside O365 APIs for writing to SharePoint lists -> no drama, could use same auth token in CSOM code Back to our scenario..
  42. 42. Summary  Apps are really about REMOTE CODE  Office 365 apps = just an extension of this model  Office 365 apps are great for “cross-service” capability  Capability will grow – this will become a standard approach  Some differences to consider:  End-user | Admin | Developer
  43. 43. Thank you for attending! Chris O’Brien