SharePoint Apps model
overview
Competitive forces
• We want to pay only for what we need! • We want you to be quicker than wind! • We want the better quality for us!
• We want it cheap!
• We want to control what we are doing with our environments
Competitive forces
QUICK ACCESS to
SPECIFIC NEED
The answer?
• Cloud model with multi-tenants
• Control what is running on each environment • Microsoft cloud platform
– Major platforms in the Microsoft ecosystem available online
– Owned and operated by Microsoft
The answer?
• Easier upgrade• Multi-hosts capability • Better integration
• Multi-devices
• SharePoint not required locally for dev purposes
App for SharePoint Defined
• "There's an App for that"
– Popular catch phrase that demonstrates the popularity of App Stores
• Like an App on a phone, Apps for SharePoint provide functionality that extends SharePoint • Installed on a specific SharePoint Web but
always runs somewhere other than SharePoint • Rectangle thru which users interact with
Technologies used for the apps
• HTML (5)• CSS
• JavaScript
• No SharePoint server-side code!
• Need some server-code? It must be hosted outside
Chrome Control
• Present the navigation header of the Host Web in a block element on the App page
• Register the SharePoint ChromeControl JavaScript using a <script> tag
• Provide an HTML block element to put the header into
• The control inherits its appearance from the Host Web
• Customize the control using the available options
App Licensing
• 1 License for each App on each Host Web • Perpetual or Trial
• All user or multiuser • Free, Trial, Paid, or Site
• With or without an expiration date
• 15, 30, 60 days, unlimited, OR Perpetual • Per user or Unlimited
• Free or Paid
• Only applies to Apps in the SharePoint Store • Microsoft currently receives a 20% fee for
Authentification & authorization
• Specific set of permissions• If user has the ability to grand permissions, app can be installed
• SharePoint-Hosted apps have the benefit of using built-in security
• Oauth is required for Self-hosted and Azure-Provisioned apps
App rights
• Default rights : Read, Write, Manage and Full Control
• Not possible to customize
• Apps are granted permissions to a scope and all children of the scope
Impacts
• New model based on well-known architectures
• New way for doing business – Sell to the mass
– Expose online apps in SharePoint
Tools
• Office Developer Tools in Visual Studio 2012+ • Napa for SharePoint/Office
Napa for SharePoint
• Develop on the cloud from any device • HTML/CSS/Javascript
• Available for free
• Can be opened in Visual-Studio 2012+ • Many great dev features
Hosting models
• SharePoint-hosted• Cloud-hosted (AKA self-hosted)
– Provider-hosted (On-premise, ISP, etc.) – Azure-Autohosted (Office 365)
• Hybrid
– SharePoint-hosted but depend on Cloud resources
– Cloud-hosted but depend on SharePoint resources
SharePoint-hosted Apps
• App resources are hosted in SharePoint but code only runs in the client browser
• Code is HTML and JavaScript,
no server-side code can run at all
• Unless deployed using JSOM, no JavaScript on the Host Web
• App resources are stored in an App Web • Deployed entirely to SharePoint
Provider-hosted
• All files are located on an external server • Pre-deployed Web/Database:
– On-premise
– Third-party (ISP) hosting service
• Web content NOT hosted on SharePoint's Azure • Content can use any Web technology
• Content can be common for all tenants
Azure-Autohosted
• Auto-deployed Azure Web/Database • Azure Web Site
– Limit 1
– ASP.NET (including MVC)
• Azure DB
– Limit 1
– Limits during preview
• 1 GB in size
• Not in SharePoint Store
• Workflow
– No Limit
Auto-hosted options
• Provider-hosted: Lots of Users, Few Apps • Azure Autohosted: Lots of Apps, Few Users
Characteristics Of An App for SharePoint
• Always Web-scoped
• Always installed the Host Web
• Always contain an AppManifest.xml file that defines characteristics about the App
• Never run server-side code on SharePoint server
• Optionally, house App resources on an auto-created subweb called the App Web
Host Web
• Web where the business user installs the App • The user interacts with the App on the Host
Web
• Only limited SharePoint resources allowed: – App Parts
– Custom Actions
• App resources can be housed in an App Web or elsewhere on the Web
App Web
• Dynamically created subweb,
created when the App Package includes a WSP • Used to store Web resources:
– Pages, CSS, Images, JavaScript, etc.
• The App Web is used to store SharePoint resources:
– Master Pages, Lists/Libraries, SharePoint Lists,
Site Columns and Content Types, Web Parts, etc.
• Isolated endpoint the App can securely call using client side code (CSOM, JSOM, REST)
App configuration for on-premises farm
• Ensure that App service application and subscription service are created and running in farm
• Subscription service is used to provide unique Site Collection ID for App Urls
• Apps will be hosted on own domain, within their own frame
– Leverages web browser same-origin policy for script isolation
• URL naming – each app has unique URL – one app = one URL
– http://default-appUID.apps.contoso.com
– appUID – combination of site collection ID and particular SPWeb where app
http://sp/sites/web http:// /sites/web/appguidtenant-apphash1.contosoapps.com
main SharePoint site app1 SharePoint site
Client Script Object Models
• .NET and Silverlight API• JavaScript API
• REST API (useful when .NET is not available) • Choose the right object model according to
Sandboxed Solutions
• Sandboxed solutions are deprecated • Really?
• Sandboxed code is deprecated and should not be used anymore
• Sandboxed solution without code are used for App Web with CAML declarative XML
App Stores
• SharePoint Store
– Managed by Microsoft
– Must be a Microsoft Seller to upload an App – Handles discovery to purchase to updates
• Web Application App Catalog
– Managed in SharePoint Central Administration – Company-developed or purchased Apps
• Apps in Testing
– Managed in a Developer Site
– Sideloaded by Napa/Visual Studio – Intended for testing Apps only
SharePoint 2010 applications
• Full-trust farm solutions and sandboxed solutions are still available
• SharePoint 2010 developments still work in SharePoint 2013
Next steps?
• Speak about cloud-model around you! • Office 365 trial subscriptions
• 5-days Training session @ Boost-IT in the next few months