SlideShare a Scribd company logo
New developer choices -
comparing SharePoint add-ins
(apps) with Office 365 apps
Chris O’Brien – MVP
www.sharepointnutsandbolts.com
Independent Consultant
Head of Development, Content
and Code
www.sharepointnutsandbolts.com
@ChrisO_Brien
http://cob-sp.com/COBLinkedIn
About me
Warning! Name change 
Warning! Name change 
Agenda
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
The SharePoint App Model –
"State of the Nation"
Apps, 2 years on – THE GOOD
The model is WORKING! Office 365 IS customisable AND stable
Apps, 2 years on – THE BAD
Raises the bar even higher to be a SharePoint developer?
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!”
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!”
What was needed
 Something less tied to SharePoint
 Something which works well on mobile devices
 Something easier for non-SharePoint developers to pick up
Let me introduce our client..
This is Joe 
(Office 365
intranet
manager)
 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
This is our
brave dev
team 
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”?
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
SHAREPOINT ADD-INS: END-USER
AND ADMIN
Click “next slide” to see this demo
on YouTube, or use link:
https://www.youtube.com/watch?
v=cNi353Mpwyk
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
Office 365 apps
What is an Office 365 app?
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”
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)
OFFICE 365 APPS: END-USER AND
ADMIN
Click “next slide” to see this demo
on YouTube, or use link:
https://www.youtube.com/watch?
v=xznfjNFIlAU
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
Development differences
API forms
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
Fetching files (.NET client library)
Fetching e-mail (.NET client library)
Other uses of Azure AD
Getting started with Office 365 APIs
Option 1 – best for new apps
• Start app from OfficeDev
MVC Starter Project
(http://cob-
sp.com/O365MvcStarter)
• 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-
sp.com/O365AppStart
• Copy in code/web.config
settings etc.
• More steps to do
DEVELOPING OFFICE 365 APPS:
GETTING STARTED
Click “next slide” to see this demo
on YouTube, or use link:
https://www.youtube.com/watch?
v=B8w1oJj3eJw
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)
But I can’t do it with the Office 365 APIs!
https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/
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
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..
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
Thank you for attending!
Chris O’Brien
www.sharepointnutsandbolts.com

More Related Content

What's hot (20)

PPTX
COB - Azure Functions for Office 365 developers
Chris O'Brien
 
PPTX
Do's and don'ts for Office 365 development
Chris O'Brien
 
PPTX
Modern SharePoint Development using Visual Studio Code
Jared Matfess
 
PPTX
Get started with building native mobile apps interacting with SharePoint
Yaroslav Pentsarskyy [MVP]
 
PPTX
Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien
 
PPTX
ECS19 Bert Jansen - Modernizing your existing sites
European Collaboration Summit
 
PPTX
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
 
PPTX
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Sonja Madsen
 
PPTX
COB ESPC18 - Rich PowerApps with offline support
Chris O'Brien
 
PPTX
SharePoint Framework - Developer Preview
Sean McLellan
 
PDF
[Struyf] Automate Your Tasks With Azure Functions
European Collaboration Summit
 
PPTX
Building productivity solutions with Microsoft Graph
Waldek Mastykarz
 
PDF
Sviluppare app per office
Fabio Franzini
 
PDF
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Fabio Franzini
 
PPTX
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
PPTX
Building Flexible SharePoint Solutions with AngularJS
bgerman
 
PPTX
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
European Collaboration Summit
 
PPTX
[Pinto] Is my SharePoint Development team properly enlighted?
European Collaboration Summit
 
PPTX
Building SharePoint Single Page Applications Using AngularJS
SharePointInstitute
 
PPTX
Office 2013 loves web developers slide
Fabio Franzini
 
COB - Azure Functions for Office 365 developers
Chris O'Brien
 
Do's and don'ts for Office 365 development
Chris O'Brien
 
Modern SharePoint Development using Visual Studio Code
Jared Matfess
 
Get started with building native mobile apps interacting with SharePoint
Yaroslav Pentsarskyy [MVP]
 
Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien
 
ECS19 Bert Jansen - Modernizing your existing sites
European Collaboration Summit
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
 
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Sonja Madsen
 
COB ESPC18 - Rich PowerApps with offline support
Chris O'Brien
 
SharePoint Framework - Developer Preview
Sean McLellan
 
[Struyf] Automate Your Tasks With Azure Functions
European Collaboration Summit
 
Building productivity solutions with Microsoft Graph
Waldek Mastykarz
 
Sviluppare app per office
Fabio Franzini
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Fabio Franzini
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
Building Flexible SharePoint Solutions with AngularJS
bgerman
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
European Collaboration Summit
 
[Pinto] Is my SharePoint Development team properly enlighted?
European Collaboration Summit
 
Building SharePoint Single Page Applications Using AngularJS
SharePointInstitute
 
Office 2013 loves web developers slide
Fabio Franzini
 

Viewers also liked (20)

DOC
SharePoint Online App Model Guidance
Ryan Berg
 
PDF
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Nik Patel
 
PPTX
TypeScript and SharePoint Framework
Bob German
 
PPTX
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore
 
PPTX
SPS Barcelona 2016 - Branding Strategies for SharePoint and Add-ins - From De...
Stefan Bauer
 
PDF
Hard learned CSOM and REST tips
SPC Adriatics
 
PPTX
Share point hosted add ins munich
Sonja Madsen
 
PPTX
SharePoint 2013 Javascript Object Model
InnoTech
 
PPTX
Essential Knowledge for SharePoint Add-Ins
InnoTech
 
PPTX
Northeastern DB Class Introduction to Marklogic NoSQL april 2016
Matt Turner
 
PPTX
Rev Your Engines - SharePoint Performance Best Practices
Eric Shupps
 
PPTX
Real World SharePoint Add-In Development
Eric Shupps
 
PPTX
Develop a SharePoint App in 45 Minutes
Tom Resing
 
PPTX
Top 10 sharepoint interview questions with answers
willhoward459
 
PPTX
Deep-dive building solutions on the SharePoint Framework
Waldek Mastykarz
 
PPTX
Introduction to Azure Functions - Tutorial
BizTalk360
 
PDF
OneDrive For Business - What's new for IT Administrators and End-users
Learning SharePoint
 
PDF
10 Reasons your SharePoint Migration Failed
Benjamin Niaulin
 
PPTX
10 Reasons to Avoid Folders in SharePoint 2013/2010
Bobby Chang
 
SharePoint Online App Model Guidance
Ryan Berg
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Nik Patel
 
TypeScript and SharePoint Framework
Bob German
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore
 
SPS Barcelona 2016 - Branding Strategies for SharePoint and Add-ins - From De...
Stefan Bauer
 
Hard learned CSOM and REST tips
SPC Adriatics
 
Share point hosted add ins munich
Sonja Madsen
 
SharePoint 2013 Javascript Object Model
InnoTech
 
Essential Knowledge for SharePoint Add-Ins
InnoTech
 
Northeastern DB Class Introduction to Marklogic NoSQL april 2016
Matt Turner
 
Rev Your Engines - SharePoint Performance Best Practices
Eric Shupps
 
Real World SharePoint Add-In Development
Eric Shupps
 
Develop a SharePoint App in 45 Minutes
Tom Resing
 
Top 10 sharepoint interview questions with answers
willhoward459
 
Deep-dive building solutions on the SharePoint Framework
Waldek Mastykarz
 
Introduction to Azure Functions - Tutorial
BizTalk360
 
OneDrive For Business - What's new for IT Administrators and End-users
Learning SharePoint
 
10 Reasons your SharePoint Migration Failed
Benjamin Niaulin
 
10 Reasons to Avoid Folders in SharePoint 2013/2010
Bobby Chang
 
Ad

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

PPTX
2014 SharePoint Saturday Melbourne Apps or not to Apps
Gilles Pommier
 
PPTX
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Chris O'Brien
 
PDF
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
SharePointRadi
 
PPTX
App Model For SharePoint 2013
Toni Il Caiser
 
PDF
O365con14 - the new sharepoint online apps - napa in action
NCCOMMS
 
PPTX
Relearning SharePoint Development
bgerman
 
PPTX
GAB2017 - Azure function to build serverless SharePoint apps
Riwut Libinuko
 
PPTX
Office apps in Office 365 - Napa the next big thing
SPC Adriatics
 
PPTX
Prepararsi a spostare le proprie applicazioni share point su office 365
Giuseppe Marchi
 
PPTX
Office Add-ins community call-March 2019
Microsoft 365 Developer
 
PPTX
2013 - Back to the Future with Client/Server Development
Chris O'Connor
 
PPTX
SPCA2013 - Once you go app you don't go back
NCCOMMS
 
PPTX
Intro apps
BIWUG
 
PPTX
The SharePoint 2013 App Model
SPC Adriatics
 
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Bram de Jager
 
PPTX
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
Ryan Schouten
 
PPTX
SharePoint 2013 App Provisioning Models
Shailen Sukul
 
PPTX
Developing Apps for SharePoint 2013
SPC Adriatics
 
PPTX
Getting started with office 365 add ins development 3 may 2018 - v2
Nilesh Shah
 
PPTX
SharePoint 2013 Apps and the App Model
James Tramel
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
Gilles Pommier
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Chris O'Brien
 
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
SharePointRadi
 
App Model For SharePoint 2013
Toni Il Caiser
 
O365con14 - the new sharepoint online apps - napa in action
NCCOMMS
 
Relearning SharePoint Development
bgerman
 
GAB2017 - Azure function to build serverless SharePoint apps
Riwut Libinuko
 
Office apps in Office 365 - Napa the next big thing
SPC Adriatics
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Giuseppe Marchi
 
Office Add-ins community call-March 2019
Microsoft 365 Developer
 
2013 - Back to the Future with Client/Server Development
Chris O'Connor
 
SPCA2013 - Once you go app you don't go back
NCCOMMS
 
Intro apps
BIWUG
 
The SharePoint 2013 App Model
SPC Adriatics
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Bram de Jager
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
Ryan Schouten
 
SharePoint 2013 App Provisioning Models
Shailen Sukul
 
Developing Apps for SharePoint 2013
SPC Adriatics
 
Getting started with office 365 add ins development 3 may 2018 - v2
Nilesh Shah
 
SharePoint 2013 Apps and the App Model
James Tramel
 
Ad

More from Chris O'Brien (14)

PPTX
Chris OBrien - Azure DevOps for managing work
Chris O'Brien
 
PPTX
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien
 
PPTX
COB - PowerApps - the good, the bad and the ugly - early 2018
Chris O'Brien
 
PPTX
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien
 
PPTX
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Chris O'Brien
 
PPTX
SP2013 for Developers - Chris O'Brien
Chris O'Brien
 
PPTX
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Chris O'Brien
 
PPTX
SharePoint Ribbon Deep Dive
Chris O'Brien
 
PPTX
Automated Builds And UI Testing in SharePoint 2010 Development
Chris O'Brien
 
PPTX
Optimizing SharePoint 2010 Internet Sites
Chris O'Brien
 
PPTX
Managing the SharePoint 2010 Application Lifecycle - Part 2
Chris O'Brien
 
PPTX
Managing the SharePoint 2010 Application Lifecycle - Part 1
Chris O'Brien
 
PPT
SharePoint workflow deep-dive
Chris O'Brien
 
PPT
SharePoint Web Content Management - Lessons Learnt/top 5 tips
Chris O'Brien
 
Chris OBrien - Azure DevOps for managing work
Chris O'Brien
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien
 
COB - PowerApps - the good, the bad and the ugly - early 2018
Chris O'Brien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Chris O'Brien
 
SP2013 for Developers - Chris O'Brien
Chris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Chris O'Brien
 
SharePoint Ribbon Deep Dive
Chris O'Brien
 
Automated Builds And UI Testing in SharePoint 2010 Development
Chris O'Brien
 
Optimizing SharePoint 2010 Internet Sites
Chris O'Brien
 
Managing the SharePoint 2010 Application Lifecycle - Part 2
Chris O'Brien
 
Managing the SharePoint 2010 Application Lifecycle - Part 1
Chris O'Brien
 
SharePoint workflow deep-dive
Chris O'Brien
 
SharePoint Web Content Management - Lessons Learnt/top 5 tips
Chris O'Brien
 

Recently uploaded (20)

PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
July Patch Tuesday
Ivanti
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 

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

  • 1. New developer choices - comparing SharePoint add-ins (apps) with Office 365 apps Chris O’Brien – MVP www.sharepointnutsandbolts.com
  • 2. Independent Consultant Head of Development, Content and Code www.sharepointnutsandbolts.com @ChrisO_Brien http://cob-sp.com/COBLinkedIn About me
  • 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. The SharePoint App Model – "State of the Nation"
  • 8. Apps, 2 years on – THE GOOD The model is WORKING! Office 365 IS customisable AND stable
  • 9. Apps, 2 years on – THE BAD Raises the bar even higher to be a SharePoint developer?
  • 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. 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. 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. Let me introduce our client..
  • 14. This is Joe  (Office 365 intranet manager)
  • 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. This is our brave dev team 
  • 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. 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. Click “next slide” to see this demo on YouTube, or use link: https://www.youtube.com/watch? v=cNi353Mpwyk
  • 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
  • 23. What is an Office 365 app?
  • 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. 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)
  • 26. OFFICE 365 APPS: END-USER AND ADMIN
  • 27. Click “next slide” to see this demo on YouTube, or use link: https://www.youtube.com/watch? v=xznfjNFIlAU
  • 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
  • 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. Fetching files (.NET client library)
  • 33. Fetching e-mail (.NET client library)
  • 34. Other uses of Azure AD
  • 35. Getting started with Office 365 APIs Option 1 – best for new apps • Start app from OfficeDev MVC Starter Project (http://cob- sp.com/O365MvcStarter) • 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- sp.com/O365AppStart • Copy in code/web.config settings etc. • More steps to do
  • 36. DEVELOPING OFFICE 365 APPS: GETTING STARTED
  • 37. Click “next slide” to see this demo on YouTube, or use link: https://www.youtube.com/watch? v=B8w1oJj3eJw
  • 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. But I can’t do it with the Office 365 APIs! https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/
  • 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. 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. 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. Thank you for attending! Chris O’Brien www.sharepointnutsandbolts.com

Editor's Notes

  • #25: Many people in the world (especially workers, students, government) will have an Office 365 account Lots of apps and systems need to store files, send mail/calendar invites etc. Wouldn’t it be cool if those apps could use the user’s Office 365 space for this?