The SAP Fiori elements framework is based on SAPUI5 technology. You may be familiar with the Model View Controller concept in SAPUI5.
In the view, you can define the UI controls to be used in the UI.
The controller contains methods that define how models and views interact.
A model holds the data and provides methods to retrieve the data from the database and to set and update the data.
Thus, in a freestyle SAPUI5 app, you have to define the views and implement the methods needed in the controllers, for example, an event handler for a button if a user selects a button.
The SAP Fiori elements framework generates views at runtime based on a predefined floorplan, your app-specific metadata, annotations, and optional configuration. Therefore, in a standard SAP Fiori elements application, you do not have any static views or controllers in your project in the development environment.
When you use extension points, a static XML fragment must be added to the webapp/ext folder of your project. If needed, a controller can also be added. The Page Editor can generate both files, including an ext folder if it does not yet exist.
Extension points are containers provided by the SAP Fiori elements framework that hook into the standard SAP Fiori elements runtime. There, you can add your specific UI controls or behavior using the standard SAPUI5 programming model.
In custom extensions, you can provide features that SAP Fiori elements does not offer, for example, process diagrams or maps.
Note
Prioritize standard SAP Fiori elements features. Use custom extensions only as a last resort when the required functionality is not available out-of-the-box. Extensions add complexity: they increase initial development effort and long-term maintenance overhead and can introduce UI inconsistencies. Adhering to standard patterns ensures a better user experience and a more maintainable application.
Note: you can find all SAP Fiori elements extension points for list reports under Extensions for List-based Pages, and for object pages under Extensions for Object Pages, including documentation and sample code.