WebPart Vs App Part


Web Part
App Part
Run on SharePoint Server
Run on external servers or Browser
Run  with User Permissions or will full Permissions (elevated Privilege)
Run with App Identity that is granted specific Permission.  
Runs in the Same Domain and environment of the page and its content.
Runs on Different domain providing complete client -side isolation
Could take up a significant amount of CPU cycles for complex operations
Executed outside SharePoint hence SharePoint performance is  not impacted
Not easy to publish globally / locally. It requires installations and activations.
Can be published internally and or to the Microsoft public SharePoint Store

Migrate WebPart to App Part

Migrating Web part to App Part are not 1 : 1 Mapping for code because might be Web Part is Server Side API which not available in App Part. 
To migrate your web part to App Part you have determined hosting Option. Is App Part run in client or its external server? If your web Part contains any kind of intellectual property that you need to secure you should have to use external server. Because client side code is not very secure and easy to reverse engineered. 


Choosing right API which is very important if you're creating SharePoint Hosted App than you have three Option for CSOM flavours : 
  • JavaScript
  • Silverlight
  • Rest. And if you're doing SharePoint Cloud Hosted App Part you have two flavours.
  • . Net 
  • Rest
Which you pick it depends on allot of App Requirement and developer skill that you feel more comfortable with it. .net by using .Net you have a much better developer environment and Rapid Application development and with Rest you can take leverage of the new modern style of development.


Evolution of customizations in SharePoint

Microsoft office SharePoint 2007
• Required IT to Deploying Custom Solution by Console and GAC manually. 

Microsoft SharePoint 2010


  • SharePoint 2010 Sandbox Solution AKA partially trusted and user code solution. 
  • Sandbox deployed by Site Collection Administrators.
  • Only subsets of Server site API available and external database and web service call is not allowed.    
  • Can deploy on SharePoint online.

Microsoft SharePoint 2013

  •         Cloud App Module which runs Outside the SharePoint server 
  •         Better life cycle installs > update > install. 
  •          App Store to Manage Apps.

Advantages Cloud App Module.

If your organization is really looking for a Cloud Scalable Solution. This is the Right Architecture for you. The Cloud App Module is running totally outSide the SharePoint. Which allow developers to manage their app isolated with effecting other Solutions or farm itself  You can update your Apps without re installing and activating them. In case of error or bug your app will not effect on whole farm which helps SharePoint Administrators allot.  By using Cloud hosted App Module you take lavage of new web standards like MVC, MVVM, Html 5, Jquery. At the same time you take all advantages of SharePoint with chrome control cross domain library. SharePoint list is not recommended for highly transactional or Relationship data Module. In App Module You can access Data outside the SharePoint and external resources. Like Web services and SQL and take lavage with your app module. 

 SharePoint 2013 app module much better development life cycle than SharePoint 2010. Which meet the fashion of modern App development and publishing life cycles.

SP App Design - A Choice of Three Approaches