SharePoint Apps with Windows
Azure Platform as a Service
Don Kirkham
Senior Engineer / Microsoft Solutions
MCPD: SharePoint
[email protected]
@DonKirkham
Christopher Webb
Senior Engineer / Microsoft Solutions
MCSM: SharePoint
[email protected]
@chriswebb18
Copyright© 2012 Microsoft Corporation
Intro/Poll
Intro/Poll
Overview of
IaaS, PaaS, SaaS
Changes in SPO
Development &
Changes to SPO Development
& Pain Points
Copyright© 2012 Microsoft Corporation
Full Trust Solutions
No real control
Support is a nightmare
Upgrade is quite a challenge
Securing code to run in hosted
environments is effectively
impossible
SP Code
More custom
code: aspx, dlls,
web services,
GAC
Sandbox
Partial control
App Model
Control, Trust, Manage
Way too strict for developers
Hard to maintain and expand
Managed by your self
SP Code
Sandboxed
Custom
Code
App code
(client or
server)
SP Code
Isolated
App client
side code
Host/language independent
Management and update easily
doable per app
Emprases reusability
No server side sandbox, improved
CSOM
Farm
• Full trust solutions
• Customizations to file
system of servers
• Hosted in same
process as SharePoint
• Server side SharePoint
API access
• Classic model from
2007
Sandbox
• Declarative elements
• Partially trusted code
service still included for
limited server side
support
• Hosted in isolated
process
• Limited server side
SharePoint API access
SP Apps
• New Apps model
• Deployed from
corporate catalog or
SharePoint store
• Manage permission
and licenses specifically
• Simple install and
upgrade process
• Preferred option
Classic - Full trust
solutions
• ISV solutions
• Platform level
customizations to
on-premises
• Custom service
applications
• Custom WCF services
• SharePoint
customizations, not
customer-specific
customizations
Client Side Solutions
• Server side controls as
JavaScript on page
layouts and master pages
• Remote provisioning for
elements
• Embracing un-ghosted
model
• SP App dimension with
provider-hosted apps to
provide new capabilities
• Customer-specific
customizations
SP Apps
• App catalog based
solution
• Packaged reusable
solutions built for specific
functionality
• Not only for marketplace
or store, but also as
platform for
customer-specific customizations
Copyright© 2012 Microsoft Corporation
Provider Hosted
Apps
SharePoint Farm
Remote
connectivity
ACS
End users
App Admin
Registration of apps
Approve and
publish apps
spapp_appname.contoso.com
Verification of
registration
1
6
2
3
4
5
Contoso
Scope URI
Available Rights
http://sharepoint/content/sitecollection
Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web
Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web/list
Read, Write, Manage, FullControl
http://sharepoint/content/tenant
Read, Write, Manage, FullControl
Copyright© 2012 Microsoft Corporation
OfficeDevPnP
Copyright© 2012 Microsoft Corporation
Site Definition
• No Office365
• Long term impact
on costs
• Blocks transition to
cloud
• Causes significant
issues with future
migration and
upgrade
Site Templates
• Poor site collection
creation story
• Negative impact on
upgrades
• Causes additional
maintenance costs
with evergreen
• Not with publishing
features
Web Templates
• Poor site collection
creation story
• Causes
maintenance costs
with evergreen
SP Server side
provisioning
• Provision oob sites,
but modify them
based on user
selection and
requirements
• Standardization of
site creation in
code
• No Office365
Remote provisioning
• CSOM supports
creation of site
collections only in
Office365
• Standardization of
site creation in
code
• Can be done from
any external system
Options
Options
available
Cost impact
(short and
long term)
Support
in cloud
Copyright© 2012 Microsoft Corporation
Provider Hosted
Apps
Assets and
configuration
•
Branding Images
•
Master Pages
•
Page Layouts
•
Other settings
Remote
Timer job
SharePoint Farm
CSOM/REST
CSOM/REST
1
2
3
4
5
Assets and
configuration
•
Branding Images
•
Master Pages
•
Page Layouts
•
Other settings
Remote
Timer job
Initial provisioning based on the out
of the box site. Usually either team site
or publishing site.
Assets are uploaded from the
provisioning engine using CSOM/REST
Apply the needed changes
(configurations etc.) on top of the
out of the box site based on the
user selection.
This is the specialization part, but
since we start from oob site, we
always get the latest improvements
to it as a base line.
1
2
3
3
3
Copyright© 2012 Microsoft Corporation
Assets and
configuration
•
Branding Images
•
Master Pages
•
Page Layouts
•
Other settings
Remote
Timer job
Initial provisioning based on the out
of the box site. Usually either team site
or publishing site.
Assets are uploaded from the
provisioning engine using CSOM/REST
Apply the needed changes
(configurations etc.) on top of the
out of the box site based on the
user selection.
This is the specialization part, but
since we start from oob site, we
always get the latest improvements
to it as a base line.
1
2
3
3
3
SharePoint Farm
Provider Hosted
Apps
Assets
1
3
2
CSOM
• Upload CSS
• Set JS Injection for CSS
to be executed in page
process
SPCSPFont files describe the font scheme
Specify New Page Layout
Select New Master Page
Specify New Background Image
olor files describe the color palette
Copyright© 2012 Microsoft Corporation
Theme
•
Custom Master Page
•
Can introduce any level of customizations
•
When new changes are introduced to the
out of the box master, those should be
copied to custom master pages as well
•
Additional maintenance burden
•
Future major version upgrades will cause
additional requirements to re-create the
end user experience
SharePoint Farm
Provider Hosted
Apps
Theme
elements
1
3
2
CSOM
• Upload needed files
• Set theme to site
• (Set master page to
site)
•
Color file
•
Font file
•
Background image
Copyright© 2012 Microsoft Corporation
SharePoint Farm
Modify oob site definition provisioning model
15\Template\Features\[StapledFeature]\
<xml>
feature.xml
<xml>
2
15\Template\Features\
[StaplerFeature]
<xml>
element.xml
3
1
4
https://*.contosoapps.com
https://intranet.contoso.com
/sites/groupx
Root
News
Organization
Teams
Search
AppWeb
Root
Sub site
AppWeb
1
2
2
3
4
4
https://intranet.contoso.com/sites/team
Copyright© 2012 Microsoft Corporation
Root
Sub site
1
Root
AppWeb
AppWeb
https://intranet.contoso.com/sites/t
eam
https://intranet.contoso.com
/sites/catalog
Root
News
Organization
Teams
Search
https://intranet.contoso.com
/sites/orgZ
https://*.contosoapps.com
4
4
2
3
Centrally deployed
•
Side loading
•
Supports adding app parts and app
custom actions to host web
•
Requires specific feature to be enabled
from host web for app installation
•
No centralized control to add or remove
the app
•
No UI to deploy the app cross sites
•
Application install/uninstall events do fire
when deployed to sites
Copyright© 2012 Microsoft Corporation
https://github.com/OfficeDev/PnP/wiki
http://blogs.msdn.com/b/vesku/archive/2014/09/0
3/office-365-developer-patterns-and-practices-introduction-to-the-program.aspx
http://dev.office.com/sample-code
Don Kirkham
Senior Engineer / Microsoft Solutions
[email protected]
@DonKirkham
Christopher Webb
Senior Engineer / Microsoft Solutions
MCSM: SharePoint
[email protected]
@chriswebb18
http://blogs.msdn.com/b/kaevans/archive/2014/04/02/de
ploying-a-sharepoint-app-to-azure-as-part-of-a-build.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/03/04/bui
lding-sharepoint-2013-apps-with-windows-azure-paas.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/02/24/cre
ating-a-sharepoint-2013-app-with-azure-web-sites.aspx
http://blogs.msdn.com/b/steve_fox/archive/2013/02/18/b
uilding-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/09/28/ma
king-sharepoint-apps-scale-with-azure-redis-cache.aspx
Copyright© 2012 Microsoft Corporation