SharePoint Framework (SPFx) was introduced in early 2017 and it is the Preferred Development Method for SharePoint 2016 and SharePoint Online.
Advantages of SPFx
- Page and Web Part Model – No IFrame so increased performance
- Runs in context of Current User – better context permission accessibility
- Responsive Controls – easier rendering in mobile & tablet devices
- Full-fledged JS support – easier integration of React, Angular frameworks
- Free web parts – faster development on common scenarios
History of SharePoint Development Models
As an early starter with SharePoint, I would like to list down the SharePoint Development models from my mind.
Farm Solutions
This was the Initial development world. It consisted of C# code in DLLs running in the server-side. Later this led to issue of Full Trust and Poor code affecting whole server.
SharePoint 2003, 2007, 2010, 2013 had full support for Farm Solutions.
Sandboxed Solutions
Then came the Sandboxed Solutions which tried to resolve some of the Farm Solution issues. Sandboxed Solutions set Trust configuration, Restricted Code, Quota Limit there by preventing a Poor Code from hampering server. Still the code runs in Server-side leading to performance issues when a large number of users using a Dashboard web part for example.
Here the C# code will be executed on SharePoint server.
SharePoint 2007, 2010, 2013 had support for Sandboxed Solutions.
CSOM
Client-Side Object Model (CSOM) was developed to address few of the Sandboxed Solution issues. CSOM still uses C# code but can be executed outside the SharePoint server. This freed up the SharePoint Server from unwanted loads and also relaxed on the Deployment overheads with just referring to Client Side DLLs.
SharePoint 2010, 2013 supported CSOM.
JSOM
JavaScript Object Model (JSOM) bought the Client Side Object Model advantage to the SharePoint pages. Here the JavaScript code will be executed in the Client browser there by Freeing up Server Performance cycles.
JSOM also supported Batching which was earlier boon to reduce server roundtrips.
The initial way of executing JavaScript was attaching code file with a Script Editor web part. Later JSOM usage evolved as Solid Client Side Applications through usage of Angular, React and other JavaScript frameworks.
SharePoint 2010, 2013 supported JSOM.
Apps
Apps (Now Add-ins) was introduced in SharePoint 2013 to package & publish complete applications to Corporate or Office 365 store. In this way the client side support was extended to business level. Apps came with SharePoint Hosted Apps (SHA) initially.
Apps also provided PHA (Provided Hosted Apps) which allow running C# code in outside servers.
Apps were using IFrame and thus cause redirection & page load delays.
SharePoint 2013, 2016 supported Apps.
SPFx
SharePoint Framework (SPFx) was introduced in SharePoint 2016 to address the problems with Apps. There are No IFraames thus increasing the Page Performance. SPFx also comes with ready made reusable web parts for common functionalities.
SharePoint 2016 supports SPFx.
References
https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview