What is an App

In SharePoint 2013, everything in a SharePoint site is an app. SharePoint app or (App for SharePoint) is mainly a web application, a stand-alone piece of functionality that interacts with SharePoint via the Client-Side Object Model (CSOM), the REST and JavaScript API.  App cannot contain any server side code which is used in traditional SharePoint farm and sandboxed solution development. App code does not reside on the same server as SharePoint, rather it executes in the client browser or in IIS or in the cloud, thereby making the app loosely coupled with SharePoint. This enables developers to extend the capabilities of SharePoint sites without gaining full-trust access to the SharePoint farm. App is granted permission to SharePoint via OAuth. A key feature of app is that it can be developed using any programming language and technology such as HTML, JavaScript, .NET, PHP, or Java. App is published to a public marketplace or a corporate app catalog from where users can download or purchase it. App is easy to find in app store, install, use, manage, upgrade and uninstall.

 

App can be developed on both SharePoint Online and in On-Premise offerings. App use the following three types of deployment models.

 

SharePoint-Hosted - In the SharePoint-hosted deployment type model, a new isolated subweb known as app web is created under the parent site called the host web,  for hosting app. The app web keeps all the app content such as lists, workflows, pages, out-of-webparts and so on. The app code runs in the client browser which can use only HTML and JavaScript with CSOM / REST API and not any server side code.

 

Auto-Hosted - In this cloud model, though the app is developed for SharePoint but the app code resides outside of the SharePoint on Microsoft Windows Azure in the background, which can also have access to Microsoft SQL Azure database for managing data. The app is automatically deployed to Windows Azure and SharePoint creates a cloud-hosted app on your behalf. Auto-hosted model is supported on SharePoint Online only unlike the other deployment models.

 

Provider-Hosted -  The Provider-hosted deployment model is almost same as Auto-hosted model, the only difference is that the app code resides in an external domain or server i.e. your own hosting environment which may not be necessarily be windows-based. The app code can be written in any programming language and technology like PHP, .NET or Java. In this scenario, SharePoint acts only as launching pad for the external app. 

 

Refer the following link for more information on apps. Apps for Sharepoint Overview -  http://msdn.microsoft.com/en-us/library/office/fp179930.aspx

 

 

 What is an App Part

 

App Part also known as Client Part is one of the three ways in which an app can be presented to an end user. An App Part provides a way to mount an app to SharePoint. It uses an Iframe html element inside a SharePoint page to display the contents of an app. In App Parts, the UI and the app content is generated remotely with the app code running outside of the SharePoint server. This ensures complete isolation between the SharePoint surrounding interface and the embedded app. SharePoint automatically creates an App Part in the Web Part gallery when an app is deployed to SharePoint site.

 

 

What is a Web Part

 

Web Part is a reusable component or a server side control that can be added inside a SharePoint page. Web Part code runs directly within the SharePoint server. There are several out-of-box Web Parts  available in SharePoint and one can also build their own custom Web Parts.  Web Parts are editable, configurable and can even be connected to each other. Also, Web Parts can be utilized within an app.

 

 

Both App Parts and Web Parts are listed in the Web Part gallery from where they can be added in a page. From an end user's perspective, App Part is like a Web Part - both of them provides a way to add a piece of functionality to a page. However, there are primary differences between them in how they are developed and deployed. In App Part, the app code runs outside of the SharePoint while Web Part code runs within SharePoint. So, poorly built apps does not impact SharePoint environment as in case with poorly built Web Parts.