When you are new to the SharePoint and O365 world, it can be very confusing to understand the different ways of building applications. This is more confusing, especially for people coming from a traditional Lotus Notes background, where NSF files and the ability to build client or web applications are available right within. 

Here is a primer to understand the different elements and a guideline rule to build applications:

(Be aware that these are only guidelines and should not be taken as Gospel. 😊 )

Building your frontend 

Basic SharePoint Form 

A default form is created along with a SharePoint list. These forms are basic and are used for very simple applications.  

PowerApps 

PowerApps (https://powerapps.microsoft.com/en-us/) is a Microsoft platform that allows the development of mobile and web applications very easily. Along with PowerBI and Flow, the trio is called the Power Platform that enables citizen developers to build business functionality.  

Sharepoint Framework  

The SharePoint Framework (SPFx) (Introduction) is a page and web part model that provides full support for client-side SharePoint development, easy integration with SharePoint data, and support for open source tooling. This allows for using different plugins and custom code to provide users with a rich user experience 

Data 

Sharepoint Lists  

SharePoint Lists (Lists in SharePoint) is a collection of data inside SharePoint sites. These lists can have different columns with specific data types and can be linked to views and forms. Performance starts degrading when you need to show more than 5000 list items in a view. 

Azure SQL  

Microsoft Azure SQL is a managed cloud database provided as part of the Azure cloud platform. It’s a full-function relational database.  

Integrations 

Azure LogicApps is cloud-based service used to build scalable workflows that can also integrate with a wide variety of applications and services. With ready to use connectors for apps like SalesForce, SAP etc it becomes easy to add data integration, application integration into business solutions. 

Workflows 

Microsoft Flow  

Microsoft Flow allows users to create and automate workflows in the Microsoft universe. This requires very little programming and works beyond the Microsoft platform too. You can use Flow to automate actions that connect different applications and services like SalesForce, Twitter, DropBox, etc. 

WHAT TO CHOOSE WHEN

SharePoint Lists + Forms + PowerApps (as needed) Simple applications with basic access restrictions and < than 5000 records. For example, these can be request applications (request for resources, information etc), applications that collect basic data.   
PowerApps front end to SharePoint lists(data) Simple applications where you want a mobile interface. Ideally < 5000 records. Can also use this model to pull simple data from multiple sources. For example, pull together resource request and data from the asset register for a manager to approve the request. 
PowerApps with Azure backend Applications handling large volumes of data but the need for user interaction being limited (not too many hide-when or complex logic determining user interface) 
SPFx and Azure backend Complex applications involving large data, complex access controls, and dynamic user interfaces. Azure LogicApps is an option for integration with other enterprise systems and data stores. 
Microsoft Flow Use this to create different workflows. Flows are fast evolving to handle many scenarios and with the ability to work with different data sources.