Wednesday, August 1, 2012

SharePoint 2013 - Apps overview

Apps for SharePoint are self-contained pieces of functionality that extend the capabilities of a SharePoint website. Which means an App may include list, library, pages, workflow, a remote web application etc. The new Cloud App Model enable us to create Apps. Apps will be accessed from "Site Contents" page.

For example, we have to see every day the conversions from one currency to another currency for doing business then every time we have to go to web and open some site and then find the information. Instead if we have an App available to do this job of converting one currency to another currency mapping then we can simply do that inside the SharePoint site without going out of the site.

Important points to remember:
  • An app is a web application. So, if you know how to create a web application then you can create an App. It's that simple.
  • You can develop the app in any language you know like PHP, .NET, JavaScript, HTML etc.
  • App can connect any source like internal or external web services through ODATA protocol support in SharePoint 2013.
  • They can use REST [Representational State Transfer], client API's like JavaScript client API or .NET managed client API to integrate/connect app with SharePoint.
  • We can use all API's which SharePoint 2013 provides in Apps to read SharePoint data and utilize it to process the requirements. [Basically with ease of access we can read data from SharePoint and utilizing it in our App for different processing scenarios which is a huge advantage when compared to previous versions.]
  • The client.svc service we used in SharePoint 2010 for accessing the SharePoint data. Now, we don't need this to call client.svc end point and instead we can directly call the SharePoint 2013 service using the url /_api/ to read SharePoint data. For example, to call search service we can directly use /_api/search to call list data /_api/web/lists/ etc.
  • Using ASMX calls are deprecated.
Where can we host Apps?

1. SharePoint Store
SharePoint Store is owned and hosted by Microsoft. Developers can develop the custom apps around the world and can submit to SharePoint Store. So that any user can be able to download and install them. They can purchase apps if it is not free and buy licenses etc.

2. App Catalog
App Catalog is specific to any organization, where the apps are developed and owned by specific organization. It can be either on on-premises or SharePoint online hosted.

As I already mentioned each App will be a web application. SharePoint 2013 uses the App manifest metadata to identify the App and it will be registered to SharePoint. The sample manifest file will looks like below.
 
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
     Name="My First SharePoint App"
     ProductID="{6c442cc4-0968-4f75-b664-2cbae5d5a6ca}"
     Version="1.0.0.0"
     SharePointMinVersion="15.0.0.0">
  <Properties>
    <Title>My First SharePoint App</Title>
    <StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage>
  </Properties>
  <AppPrincipal>
    <Internal />
  </AppPrincipal>
</App>
You can include authentication [app principles] and more details in the app manifest files. The string "StandardTokens" is replaced at run time to pass some context data like SharePoint language etc. See more details about App manifest here.

Apps hosting options
  • Cloud hosted: This type of hosting is used when app has at least one remote component. It may also include SharePoint hosted components. There are two types in Cloud hosted apps.
    • Provider-hosted: Apps for which the non-SharePoint components are deployed. Provider hosted apps can run on the cloud [SharePoint online] or on the own server [on-premises] depends on where you hosted them.
    • Autohosted: This will be used when apps that include Windows Azure web site, may has SQL Azure database. These apps will run in the cloud.
  • SharePoint hosted: Apps that include only SharePoint components and logic that runs on client. SharePoint hosted apps are hosted in SharePoint itself. The code we can use is HTML, JavaScript, CSS etc. When we deploy SharePoint hosted apps, SharePoint 2013 actually creates a web site in the site collection [to which you deployed] and is called as "App Web". The url of the App web is "prefix you register" + "-some random key from SharePoint"."full server qualified name/appname". For example: app-4c690ed122ce1f.sp15.corp.contoso.com/pages/default.aspx. This url is completely specific to the App and you can call it through API to read the App data.
I believe with this information, you can have clear idea on what are Apps in SharePoint 2013. Feel free to comment me if you have any questions or need more information.

2 comments:

  1. Good post! Is there a check list or prerequisites for an existing ASP.NET application to become “self hosted (provider hosted)” app in SharePoint 2013?
    Either steps or quick way to prove the point via drag/drop etc?
    Venkat

    ReplyDelete
  2. do you have information which is helpful for BAs and PMs trying to get a grip on this subject

    ReplyDelete