Friday, 18 July 2014

Apps for SharePoint overview

Apps for SharePoint are easy-to-use, lightweight web applications that integrate popular web standards and technologies to extend the capabilities of a SharePoint website. This topic helps you understand the basic concepts about how to build apps in SharePoint 2013.
Why build apps for SharePoint?
There are many great reasons to build an app for SharePoint:
·         Multiple options for hosting
A familiar programming model, plus popular technologies and languages
For apps, the web is the platform. If you can build a web application, you can build an app for SharePoint. Plus, apps for SharePoint have a similar development process for any device you are targeting – mobile phones, tablets, or computers – so you can be more efficient and productive.
Here are some highlights:
·         Use any language - like HTML, JavaScript, PHP, or .NET - and your favorite web development tools - like Visual Studio 2012 or the new "Napa" Office 365 Development Tools.
·         Distribute the app’s logic, data, and user interface (UI) in separate components to fit your needs.
For example, an app can have presentation logic in HTML and JavaScript that runs on the client, business logic in .NET that runs in Microsoft Azure, and data that is stored in SQL Azure. Or, an app in PHP could have data in MySQL.
·         Connect to most internal or public web services.
·         Use the new OAuth 2.0 support in SharePoint.
·         Use the expanded capabilities of REST and client APIs (JavaScript and .NET) to access the rich data and services in SharePoint such as search, workflow, social networking, taxonomy, user profiles, and Business Connectivity Services (BCS).
The following figure shows the conceptual architecture for building apps for SharePoint.
App for SharePoint programming model
Multiple options for hosting
The app model offers multiple hosting options for your app. You can choose your own web stack or host it on SharePoint, as shown in the following diagram. An app can also have some components in SharePoint while others are in the "cloud." Learn more about the various types of apps and hosting options in Choosing patterns for developing and hosting your app for SharePoint.
Apps for SharePoint hosting options
A familiar web experience, yet more flexible
Apps for SharePoint have the same user experience as SharePoint websites but are more flexible – they fit seamlessly into a SharePoint website in several ways:
·         As an immersive full-page experience
·         As part of a webpage, using app parts to surface an iframe element that contains the app
·         As UI custom actions, extending ribbons and menus by adding the app to list items, documents, and more
The following diagram shows the types of user experiences available. For more information about apps for SharePoint, see UX design for apps in SharePoint 2013.
Apps for SharePoint user experience options
Integration with apps for Office
Apps for SharePoint can integrate with apps for Office, which are based on the new web-based extensibility model in Office 2013. Apps for SharePoint can also be part of an Office 2013 document template. For more information about apps for Office, see Overview of apps for Office.
Reach users through the Office Store and the App Catalog
Use the Office Store to sell your app for SharePoint to users and IT professionals for personal or corporate use. The Office Store handles the end-to-end process from discovery to purchase to updates.
Apps for a company are deployed to the organization's internal App Catalog hosted on SharePoint, which provides the same complete back-end support. For more information about the Office Store and the App_Catalog, see Publish apps for SharePoint.
Building an app for SharePoint
To build your app for SharePoint, you must do the following:
·         Configuring an app
Configuring an app
An app for SharePoint is configured with SharePoint using an app manifest—an XML file that declares the app’s basic properties, where it runs, and what to do when it starts.
An app manifest file can do many things, such as use different authentication schemes (also known as app principals) and declare the permissions the app needs. It can also include tokens that are replaced at build/run time, so you can reference your app and pass context (for example, the SharePoint language and where the app is installed).
The following simple app manifest tells SharePoint to register the app and invoke a remote page when the app starts.
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest (http://schemas.microsoft.com/sharepoint/2012/app/manifest)"
ProductID="{5eccee90-1e41-4ecc-af8c-485facb5c188}"
Version="1.0.0.0"
SharePointMinVersion="15.0.0.0"
Name="LocalTheater"
> 
  <Properties>
    <Title>Local Theater</Title>
       <StartPage>https://remoteAppUrl/Default.aspx/?{StandardTokens}</StartPage>
  </Properties>
  <AppPrincipal>
    <RemoteWebApplication ClientId="*" />
  </AppPrincipal>
</App>
Deciding where the app’s code runs (hosting options)
You decide where the app’s code runs by choosing the hosting option —in SharePoint, in the cloud, or a mix of SharePoint and cloud.
·         Provider-hosted apps: You or your app purchaser’s IT department must host a provider-hosted app on a dedicated server or third-party hosting service. Depending on your choice, these apps run either on your server or in the cloud.
·         SharePoint-hosted apps: When the app is hosted in SharePoint itself, the code is only in HTML and JavaScript and is hosted by SharePoint.
·         Hybrid apps (components in both SharePoint and the cloud): In these apps, SharePoint components run in SharePoint while components hosted in the cloud run in the cloud.
Communicating with SharePoint using SharePoint APIs
Apps show their power when they use SharePoint APIs to connect and integrate with SharePoint features—search, workflow, social networking, taxonomy, user profiles, BCS, and more. This lets them read documents, do searches, connect people, and much more. SharePoint APIs include the following:
·         REST APIs and JavaScript APIs
·         Managed APIs (.NET)
Before you call SharePoint APIs, you must authenticate to SharePoint and get user consent or authorization. For more information, see Data access options for apps in SharePoint 2013 and App permissions in SharePoint 2013.

Packaging and distributing an app

Apps for SharePoint are distributed as an app package, and the components it contains depend on where your app is hosted. A provider-hosted app package might contain only the app manifest if the app is hosted on a dedicated server or third-party hosting service. A SharePoint-hosted app package might contain some SharePoint-related components and the app manifest. In addition, app packages can include components such as apps for Office. For more information, see How to: Publish an app for SharePoint by using Visual Studio.
If you use "Napa" Office 365 Development Tools or Visual Studio 2012 to build apps and deploy directly from them, the tools let you publish your app into a file that has an .app extension. You can then distribute the app in one of two ways:
·         Apps that are meant to run within a particular organization can be deployed using the App Catalog.
·         Apps for the Office Store can be submitted via the Microsoft Seller Dashboard. Always remember to add licensing checks to the app. For more information, seeHow to: Submit apps for SharePoint to the Office Store.

Apps Types:

SharePoint-hosted apps

Provisions an isolated sub web on a parent web. The app webs site gets it’s own unique sub-domain (browser cross domain policy). This is important to separate one app from each other app. Use lists, out-of-box web parts. No server-side code allowed, client JavaScript only.

Provider-hosted apps

Bring your own server hosting infrastructure. Use the programming language of your choice and callback to SharePoint via the OData API. There is also an option to create remote event receivers.
You can combine SharePoint-hosted apps with remote apps.


HOW DOES AN APP LOOKS LIKE?

 

The main part on app is the app manifest

The manifest contains an unique app id, the title, permissions and a start page. The example shows how to register a remote app. {Standard Tokens} appends some standard url parameters to the request like the url of the SharePoint host site. The url of the SharePoint host site is important for callbacks from the remote app to SharePoint. 

Marketplace

Microsoft also is going to introduce a commercial public marketplace for SharePoint and Office apps (Office apps are similar to SharePoint apps and will bring a new and unified web development model to the Office rich clients and web apps). 100 million potential SharePoint apps customers, or even 750.000.000 potential Office apps customers’ sounds very promising. Beside the public marketplace there is also the option to have a private corporate app catalog. 

Summary


I think the SharePoint product group did a really good job with the new app model, the marketplace and the current SharePoint strategy. They did some really clever decisions!´

No comments:

Post a Comment