210 likes | 366 Views
SharePoint Apps in SharePoint 2013. Ryan Schouten @ shrpntknight ITG. Special Thanks to our Platinum Sponsor. …and our Gold Sponsor. About Me. Ryan Schouten Worked with SharePoint for 7 years I have experience with SharePoint 2003 – 2013 I have worked with ASP.Net for 11 years MCPD
E N D
SharePoint Apps in SharePoint 2013 Ryan Schouten @shrpntknight ITG
Special Thanks to our Platinum Sponsor …and our Gold Sponsor
About Me Ryan Schouten Worked with SharePoint for 7 years I have experience with SharePoint 2003 – 2013 I have worked with ASP.Net for 11 years MCPD Contact Information Ryan.Schouten@itg-mail.com @shrpntknight http://www.sharepointknight.com
Objectives • The Need • Benefits • Hosting Options • Limitations • New Functionality • Development Options • Permissions and Security • Deployment • Break it Down
Why the change Today’s Market Today’s Trends Our Principles
Hence the new App Model • No custom code on the SharePoint server • Easier to upgrade to future versions of SharePoint • Works in Office 365 SharePoint Online without limitations • Reduces the ramp-up time for those building apps • Don’t need to know/be as familiar with SharePoint “-isms” • Leverage hosting platform features in new apps • Enables taking SharePoint apps to different levels – further than what can be done with farm / sandbox solutions
Benefits (continued) • Low cost of entry for developers • Hosted SharePoint Dev sites • No need to have a farm per developer (Shared Development Farms/Tenants) • No Intensive development environment requirements
Hosting Options Your Hosted Site SharePoint Host Web Provider-Hosted App “Bring your own server hosting infrastructure and technology platform” App Web* (separate SharePoint domain) Cloud-based Apps Get remote events from SharePoint Use CSOM/REST + OAuth to work with SP Autohosted App Windows Azure + SQL Azure provisioned invisibly as apps are installed SharePoint Host Web Azure App Web* (separate SharePoint domain) • SharePoint-Hosted App • Provision an isolated sub web on a parent web (separate domain) • Reuse web elements (lists, files, out-of-box web parts) • No server code allowed; use client JavaScript for logic, UX SharePoint Host Web App Web (separate SharePoint domain) *App Webs are optional in Cloud-Hosted Apps
Limitations • Apps in general • Deployed to different domain(extra login possible) • Initial configuration is a pain • App Parts • Loaded in an iframe(size is fixed) • Also loaded from other domain
New Functionality • Improved CSOM • Improved Rest API • Needed since code is not run in SharePoint Processes • O-Auth Security • New Security Model to allow app specific permissions
JSOM Library • Library has two versions • PS.js – minified version of the library • PS.Debug.js – unminified with intellisense • Both can be found in the layouts folder • %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS • http://siteurl/_layouts/15 • Easiest way to reference it in SharePoint is <SharePoint:ScriptLinkname="PS.js"runat="server"ondemand="false"localizable="false"loadafterui="true"/>
Example SP.SOD.executeOrDelayUntilScriptLoaded(GetProjects, "PS.js"); function GetProjects() { varprojContext = PS.ProjectContext.get_current(); projects = projContext.get_projects(); projContext.load(projects, 'Include(Name, CreatedDate, Id)'); projContext.executeQueryAsync(onQuerySucceeded, onQueryFailed); }
Continued function onQuerySucceeded(sender, args) { varprojectEnumerator = projects.getEnumerator(); while (projectEnumerator.moveNext()) { var project = projectEnumerator.get_current(); var row = tblProjects.insertRow(); row.insertCell().innerText = project.get_name(); row.insertCell().innerText = project.get_createdDate(); row.insertCell().innerText = project.get_id(); } }
Permissions and Security • Apps have their own permissions • You must specify what SharePoint you want to access in your Manifest • Content is secured through Oauth • Users must have the permissions you need for them to install
Deployment • Everything Packaged into a .app file • This can be used to add the app manually to a site or publish it to the SharePoint Store
Gotchas • On-Premise Sites are not configured by default to handle Apps • Sideloadingof apps is not enabled on this site. • Enable-SPFeature e374875e-06b6-11e0-b0fa-57f5dfd72085 –url http://sp.contoso.com • App Management Shared Service Proxy is not installed. • Technet article on how to setup On-Premise for development • http://msdn.microsoft.com/en-us/library/fp179923.aspx