In this tutorial section, you will learn how to add custom features to your application. For this purpose, you should familiarize yourself with the following basic concepts of the eXpressApp Framework.
Visually, Action is a toolbar item or another control that performs the associated code when an end-user manipulates it. XAF provides several predefined Action types. You can choose the appropriate type, depending on how you want your Action to be represented within the UI. Regardless of the chosen type, all Actions expose the Execute event, whose handler is executed when end-users manipulate the corresponding element. For more details, refer to the Actions topic.
Controllers are classes inherited from the Controller's descendants: ViewController (including its generic versions: ViewController<ViewType> and ObjectViewController<ViewType, ObjectType>) or WindowController. They are used to implement business logic in your application. This logic can be executed either automatically (e.g, when a View is activated) or triggered when an Action declared within the Controller is executed by a user. Controllers implemented within modules are collected automatically by XAF using reflection. That is why Controller classes should be public. When a Window is created, required Controllers are activated. This results in activating (making visible) their Actions. For more details, refer to the Controllers topic.
Controllers and Actions are instruments that provide custom features in an XAF application. In this tutorial section, you will learn how to add Actions of different types, implement Controllers without Actions, and modify the behavior of existing Controllers and Actions, etc. It is recommended that you complete the lessons listed below, in order.