Apps in SharePoint 2013  

SharePoint Apps overview  

  • Apps for SharePoint provide a new method to deliver specific information or functionality to a SharePoint site
  • SharePoint 2013 introduces the "Cloud app model", it enables you to create apps
  • Microsoft will host and control a public SharePoint Store, where developers will be able to publish and sell their custom apps for SharePoint
  • SharePoint apps are self-contained functionality that extend the capabilities of a SharePoint web application
  • Apps are essentially web applications that run "outside" of a SharePoint host web
  • It's an easy to use, stand-alone app that solves specific end-user or business needs
  • We can use any language for creating the apps, such as HTML, PHP, .NET and web development tools and so on
  • By using "NAPA" we can create SharePoint apps
  • We can use the Client Object Model (CSOM) to talk to SharePoint

    • JavaScript for Asynchronous
    • .NET for Synchronous

Example

We can create the custom branding and themes for SharePoint 2013 and share them with the other users in the Office marketplace.

Apps hosting Types

Provider-hosted

  • They are cloud-based Apps
  • Provider-Hosted Apps may have SharePoint components, similar to SharePoint-Hosted Apps, but the main business logic and data storage are manifested in an external infrastructure, such as an external Web server or in the Cloud
  • The app and all resources are hosted in a separate server in our organization's environments or developer's environment
  • We are responsible for provisioning and the IT organization or developers can supports the app

Hosted in the cloud (Azure auto-provisioned)

  • These are also cloud-based apps
  • Auto hosted apps all Windows Azure and Windows Azure SQL database components are provisioned for you when the apps are installed and the Windows Azure websites infrastructure handles the load balancing and other important maintenance tasks
  • Auto hosted app for SharePoint can interact with a SharePoint website but also uses resources and services that are located on a remote site that is hosted by Windows Azure

Hosted in a SharePoint environment

  • SharePoint-Hosted Apps are manifested entirely within a SharePoint server and generally have no external dependencies
  • The app and all resources are hosted in our organization's SharePoint farm
  • We can reuse the web elements, like list, libraries and out-of-box things
  • No server-side code is allowed, we can use JavaScript (with the SharePoint 2013 JSOM library) + HTML

Apps Restrictions compared with Sandboxed Solution

Why Sandboxed Solutions?

  • Sandboxed Solutions were introduced in SharePoint 2010
  • Sandboxed Solutions are partially trusted, and can only access a subset of the server-side SharePoint API.
  • Sandboxed Solutions can be deployed by site collection owner or Administrator via browser
  • Scalability and flexibility are increased because sandboxes run in a separate process (spucworkerprocess) that can be restricted by quotas, and their effect on the farm can be monitored.
  • Sandboxed Solutions do not affect other Sandboxed Solutions, well at least not in other site collections is what I mean.
  • Sandboxed Solutions skip application pool recycles, so debugging is not such a pain.

Sandbox solution vs. Apps

  • Apps can cross site collections within the same "tenant", this was a huge limitation of sandbox solutions.
  • Apps for SharePoint have permissions just as users and groups do. This enables an app to have a set of permissions that are different from the permissions of the user who is executing the app.
  • Apps can now define their entire user interface. This means we are no longer limited to developing a web part and hosting it inside a web part page just to do some custom code, but sandboxed we have limitations.   

References

Summary

In this article, we have explored SharePoint apps. Stay tuned for more articles.