P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
P R E S E N T E D B Y …
Designing and Building
solutions with the future in mind
Chris Johnson
General Manager, Provoke
Solutions, Seattle
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
whoami?
• Blog: www.looselytyped.net
• @LoungeFlyZ
• Chris.Johnson@provokesolutions.com
• Ex-10yr Microsoftie, SharePoint Product Management,
Program Management and Consulting Services
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Agenda…
What’s new in 2013 for solutions
How does it work?
What does all this mean?
Designing for tomorrow
Wrap-up
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
What changed?
SharePoint Process
(IIS w3wp.exe)
Farm solutions aka “Full Trust”
WSP
Resources
XML/Features/Files
Code (DLL)
Sandbox Code Process
(SPUCWorkerprocess.exe)
SharePoint Process
(IIS w3wp.exe)
Sandbox solutions
WSP
Resources
XML/Features/Files
Code (DLL)
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Overview of the SharePoint App Model
• Office 365 and in on-premises farms
• Code never runs in SharePoint host environment
• APIs to talk to SharePoint
• Calls have controlled authorization
• Apps can have permissions independent of user permissions
• Apps deployed to private catalogs or online Store
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
App Types
• SharePoint-Hosted Apps
– All assets are in SharePoint
– No server code
• Cloud-Hosted Apps
– Provider Hosted
– Auto Hosted
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
App Installation Scopes
• Site-Scoped Installation
– App is installed in a specific site
– App is launched from same site
– This site is known as host web
• Tenancy-Scoped Installation
– App installed > app catalog site
– App available many host webs
– Host webs access one app instance
– Centralizes app management
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
SharePoint App Architecture
• SharePoint-Hosted Apps
– App resources added to SharePoint host
– Stored in child site known as app web
– App can have client-side code
– App cannot have server-side code
• Cloud-Hosted Apps
– App resources deployed on remote server
– Remote site known as remote web
– App can have client-side code
– App can have server-side code
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
App Catalog Site
• Private / enterprise marketplace for organizations
– No certification process
– Seen only by that company
• Enables license management & gateway for app procurement
• Office 365 - 1:1 App Catalog per Tenant
• On-Premises - 1:1 + optionally have App catalog per Web Application
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
What is my personal opinion?
• I like the “Plumbing” … a lot
– UI - integration
– Data – Remote APIs
– Events
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Full Trust App Model
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Chris, you are talking like a
crazy person…
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
What’s covered?
Component Apps Farm
Web parts X
App parts X
ASP.Net server controls X
ASP.Net user controls X
List and library templates X X
Content types X X
Event handlers X
Remote event receivers X
Pages and page layouts X
Files X X
Master pages X
Ribbon and list actions X X
Workflows X
Apps for Office X
Custom JavaScript list view
renderings
X
Custom JS column renderings
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
I do X today, how do I do Y tomorrow?
Richard diZerega
“App Approaches to Common SharePoint Customizations”
http://blogs.msdn.com/b/richard_dizeregas_blog
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Where you don’t want to be
In a corner with no way out.
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Don’t be cornered…
• Decouple where possible
• Don’t be a typical developer
• Light touch first, Deep only if needed
• Pragmatic, but forward thinking
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Chris, this really is totally
different!?!?
Sandbox Code Process
(SPUCWorkerprocess.exe)
SharePoint Process
(IIS w3wp.exe)
Sandbox solutions
WSP
XML/Features/Files Code (DLL)
SharePoint Site
Provider Hosted apps
App Package
App Resources Code (DLL)
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Some options
today…
1. App Model on Prem (2013 only)
1. High Trust on-prem aka S2S
2. Low Trust on-prem (Hybrid only)
2. Client JavaScript whenever possible
a) WebParts
b) Pages
c) JS CSOM
3. Externalize code + Web Services
e.g. event receivers
4. Aim for Office 365 even if you aren't
moving
5. Be very vigilant on nice to have
features
DOs (at least consider)
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Some options
today…
1. Use Farm Solutions by default
a) Make sure architects/developers think
b) Might be more costly, but will pay dividends
2. Tie into other systems without
considering how to loosely couple
3. Asdf
DON’Ts (at least consider)
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
There is no “Wrong”
… yet
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
“It’s going to be messy for a
while.”
C h r i s J o h n s o n
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Q&A• TIME FOR YOUR QUESTIONS
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
Get in touch
w w w. p r o v o k e s o l u t i o n s . c o m
C h r i s . J o h n s o n
@ p r o v o k e s o l u t i o n s . c o m
w w w. l o o s e l y t y p e d . n e t
@ L o u n g e F l y Z
P R O V O K E S O L U T I O N S
A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E
W E L L I N G T O N
THANK YOU
F O R T H E O P P O RT U N I T Y

SharePoint Saturday Redmond - Building solutions with the future in mind

  • 1.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N P R E S E N T E D B Y … Designing and Building solutions with the future in mind Chris Johnson General Manager, Provoke Solutions, Seattle
  • 2.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N whoami? • Blog: www.looselytyped.net • @LoungeFlyZ • Chris.Johnson@provokesolutions.com • Ex-10yr Microsoftie, SharePoint Product Management, Program Management and Consulting Services
  • 3.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Agenda… What’s new in 2013 for solutions How does it work? What does all this mean? Designing for tomorrow Wrap-up
  • 4.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N What changed?
  • 5.
    SharePoint Process (IIS w3wp.exe) Farmsolutions aka “Full Trust” WSP Resources XML/Features/Files Code (DLL)
  • 6.
    Sandbox Code Process (SPUCWorkerprocess.exe) SharePointProcess (IIS w3wp.exe) Sandbox solutions WSP Resources XML/Features/Files Code (DLL)
  • 7.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Overview of the SharePoint App Model • Office 365 and in on-premises farms • Code never runs in SharePoint host environment • APIs to talk to SharePoint • Calls have controlled authorization • Apps can have permissions independent of user permissions • Apps deployed to private catalogs or online Store
  • 8.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N App Types • SharePoint-Hosted Apps – All assets are in SharePoint – No server code • Cloud-Hosted Apps – Provider Hosted – Auto Hosted
  • 9.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N App Installation Scopes • Site-Scoped Installation – App is installed in a specific site – App is launched from same site – This site is known as host web • Tenancy-Scoped Installation – App installed > app catalog site – App available many host webs – Host webs access one app instance – Centralizes app management
  • 10.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N SharePoint App Architecture • SharePoint-Hosted Apps – App resources added to SharePoint host – Stored in child site known as app web – App can have client-side code – App cannot have server-side code • Cloud-Hosted Apps – App resources deployed on remote server – Remote site known as remote web – App can have client-side code – App can have server-side code
  • 11.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N App Catalog Site • Private / enterprise marketplace for organizations – No certification process – Seen only by that company • Enables license management & gateway for app procurement • Office 365 - 1:1 App Catalog per Tenant • On-Premises - 1:1 + optionally have App catalog per Web Application
  • 12.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N What is my personal opinion? • I like the “Plumbing” … a lot – UI - integration – Data – Remote APIs – Events
  • 13.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Full Trust App Model
  • 14.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Chris, you are talking like a crazy person…
  • 15.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N What’s covered? Component Apps Farm Web parts X App parts X ASP.Net server controls X ASP.Net user controls X List and library templates X X Content types X X Event handlers X Remote event receivers X Pages and page layouts X Files X X Master pages X Ribbon and list actions X X Workflows X Apps for Office X Custom JavaScript list view renderings X Custom JS column renderings
  • 16.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N I do X today, how do I do Y tomorrow? Richard diZerega “App Approaches to Common SharePoint Customizations” http://blogs.msdn.com/b/richard_dizeregas_blog
  • 17.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Where you don’t want to be In a corner with no way out.
  • 18.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Don’t be cornered… • Decouple where possible • Don’t be a typical developer • Light touch first, Deep only if needed • Pragmatic, but forward thinking
  • 19.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Chris, this really is totally different!?!?
  • 20.
    Sandbox Code Process (SPUCWorkerprocess.exe) SharePointProcess (IIS w3wp.exe) Sandbox solutions WSP XML/Features/Files Code (DLL)
  • 21.
    SharePoint Site Provider Hostedapps App Package App Resources Code (DLL)
  • 22.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Some options today… 1. App Model on Prem (2013 only) 1. High Trust on-prem aka S2S 2. Low Trust on-prem (Hybrid only) 2. Client JavaScript whenever possible a) WebParts b) Pages c) JS CSOM 3. Externalize code + Web Services e.g. event receivers 4. Aim for Office 365 even if you aren't moving 5. Be very vigilant on nice to have features DOs (at least consider)
  • 23.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Some options today… 1. Use Farm Solutions by default a) Make sure architects/developers think b) Might be more costly, but will pay dividends 2. Tie into other systems without considering how to loosely couple 3. Asdf DON’Ts (at least consider)
  • 24.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N There is no “Wrong” … yet
  • 25.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N “It’s going to be messy for a while.” C h r i s J o h n s o n
  • 26.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Q&A• TIME FOR YOUR QUESTIONS
  • 27.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N
  • 28.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N Get in touch w w w. p r o v o k e s o l u t i o n s . c o m C h r i s . J o h n s o n @ p r o v o k e s o l u t i o n s . c o m w w w. l o o s e l y t y p e d . n e t @ L o u n g e F l y Z
  • 29.
    P R OV O K E S O L U T I O N S A U C K L A N D M A N I L A S E A T T L E S I N G A P O R E W E L L I N G T O N THANK YOU F O R T H E O P P O RT U N I T Y