The new SharePoint 2013 App Model gives SharePoint developers a whole new platform to develop apps for Office and SharePoint using standard development languages, tools, and hosting services. SharePoint Apps are basically web applications that can be in any language, such as HTML, JavaScript, PHP, or .NET, using familiar web development tools such as Microsoft Visual Studio 2012, and a new web-based tool called "Napa" Office 365 Development Tools to build apps for SharePoint.
2. Speaker Bio
twitter: @nkhamis blog: Rez’s SharePoint Blog Spot -
http://www.khamis.net
3. First things first – we aren’t losing anything! (yet)
Farm Solutions Sandbox Solutions Apps
• Full trust solutions • Declarative elements • New Apps model
• Partially trusted code with • Deployed from corporate
Cloud Hosted
• Access to file systems
• Classic model from 2007 limited API support catalog or office market
• Deploy to the GAC • DLL’s and .NET Managed place
• Access to the 14 Hive Code • Manage permission and
• No access to server licenses specifically SharePoint Hosted
• DLL’s and .NET Managed
Code • Preferred option
• No server code!
---------------- Solutions Model -------------------- ------ App Model ------
8. Why did Microsoft go down the “App Route”?
Get our code out of SharePoint!
9. App Hosting Options
Developer-Hosted App
SharePoint
“Bring your own server hosting infrastructure” Your Hosted Site
Cloud-based Apps Web
Developers will need to isolate tenants
Get remote events from
SharePoint
Use CSOM/REST + Azure Auto-Provisioned App
OAuth to work with SP
Windows Azure + SQL Azure SharePoint
Azure
provisioned invisibly as apps are Web
installed
SharePoint-hosted App
Parent
Provision an isolated sub web on a parent Web
web
• Reuse web elements
(lists, files, out-of-box web parts) App Web
• No server code allowed; use client
JavaScript for logic, UX
animated
10. Development Environment for your Apps
hardware and software requirements
CloudShare
Amazon Web Services EC2
Windows Azure Virtual Machines
Office 365 with SharePoint 2013 Preview
SharePoint 2013 Developer Site
12. App Project Anatomy
PAGES SCRIPTS
Home.aspx App.js
Main page of the app Template script file
Web Part Page Elements.xml
Script and Style Installs script file to isolated
references app site
Elements.xml
Installs home page to the
isolated app site
STYLES APP MANIFEST
App.css AppManifest.xml
Template style sheet ProductID, Version, Title
Elements.xml Tile and StartPage Urls
Installs css to isolated app AppEvent Urls: Installed, Uninstalling,
site Upgraded
App Permission requests
Farm Solutions:Custom code was deployed to the server.Lots of other things to deploy to the serverMost deployments required IT Pro with access to upload solutionServer outages and most SharePoint errors could usually be traced to custom code deployed to the server Only available with on-prem deployments and not with hosted deployments Sandbox solutions:limited in the number of things you can doDevelopers work a subset of full server-side API blocked from making external database or web service callsBoth optionsrequire developer with solid understanding of SharePoint server-side API
Self-contained pieces of functionality extending SharePointcapabilitiesEasy to use stand alone applicationsAble to download and purchase them from the Office Store or the App CatalogThey run outside of the core SharePoint framework so allow developers to create any application they can imagineUse standard web technologies like html, JS and CSS
Demo: Office 365 Preview Site Apps in Site Content
App Isolation:prevents unauthorized access to users’ data. Isolation prevents apps from talking to each otherIsolation level determines the limit to potential breaches in security. You get to specify the level of access you are giving to the app.By default, apps are deployed to their own web site in a special, isolated domain, rather than to your farm or a sandbox. Processes run in that domain. When you install an app, SharePoint creates a special subsite in the existing site where the app is installed (the AppWeb). This site gets a special URL that looks something like this: http://app-bf473b5225nn0f.apps.contoso.com/SomeAppName.Cross site domain calls and cross site scripting are blockedHosting:Apps for SharePoint can be self-hosted by a developer, auto-provisioned by Azure, hosted by SharePoint, or a combination of these. All can leverage SharePoint components. Custom server code can only be run in developer self-hosted or Azure auto-provisioned hosting options. Monitoring:Farm administrators and SharePoint Online Service Administrators can monitor apps for SharePoint and respond to errors and issues. Site owners can manage apps and licenses for their sites/usersDemoApp URL
Demo:Developer SiteNAPANew App
DEMOVisual Studio 2012 SharePoint Templates
Full Page, App is listed on the Site Contents page of the host web,the app runs in full-screen mode. Chrome Control help your apps maintain a consistent look and feel with SharePoint, it enables you to add the SharePoint navigation header area to your app pages, including pages hosted externallyApp part, a type of Web Part that is represented by the ClientWebPart class. This kind of Web Part is essentially a wrapper for an IFrame that would host a page of the appCan have custom Tool Part to customize the App PartUI Custom Actions such as custom Ribbon controls or customize the new Callout feature (used to be ECB menu)Demo:Full pageApp PartTool PartUI Custom Action
The OAuth 2.0 authorization protocol enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.SharePoint 2013 Preview introduces a Representational State Transfer (REST) service that is fully comparable to the client object models. In SharePoint 2013 Preview, nearly every API in the client object models will have a corresponding REST endpoint.developers can interact remotely with the SharePoint object model by using any technology that supports REST web requestsPermission applies to all children in the scopeDemo/_api/web