DevExpress XAF framework provides the following main types of Actions: SimpleAction, PopupWindowShowAction, SingleChoiceAction and ParametrizedAction. Xafari extends this set by four additional Actions.
Check Action
Check Action is a descendant of SimpleAction that allows checking Action state; it may be "checked" or "unchecked". The action exposes state change events.
Aggregated Action is a descendant of SingleChoiceAction that serves as a dynamic container for other Actions. Developers can customize it in Application Model, grouping different Actions in a hierarchical structure as shown in the figure below.
Read more about Aggregated Action in the documentation.
Popup Container Show Action
Popup Container Show Action is a descendant of DevExpress XAF PopupWindowShowAction. This Action is used when the user needs to input several parameters in a popup dialog before the Action execution, dialog displayed as a popup-container. To see an example of use, refer to Extra Filters.
Read more about Popup Container Show Action in the documentation.
WizardAction
WizardAction is a descendant of Popup Window Show Action and is used to implement Wizards.The action allows creating a number of sequential steps for editing object's parameters. In addition to this, WizardAction allows passing some steps according to the specific conditions.
Dock Panels
Dock Panels significantly improve the user interface of applications developed with DevExpress XAF. Dock Panels provide a user with more data on the current object via additional accompanying Views. Users can hide the Views they don’t need or, conversely, show other available Views.
In fact, the Dock Panels is a way to complicate View while not changing the settings of the View. This issue often occurs when new features are implemented in additional modules.
To work with the Dock Panels, the developer has to add DockManager component to FrameTemplate and customize the properties of the Panel and displaying rules in the Application Model. It is necessary to assign a certain View to the Dock Panel; the assigned View will display the Panel data.
The main use case assumes that there is a master-detail relationship between the Panel data and the main View data. Dock Panels functionality allows taking into account this relationship when displaying data. The master-detail relationship should be specified in the Application Model via special criteria. In this case, the data of both Views is synchronized in dependence on the parameters of the relationship. By default, the data will be synchronized in 0.5 seconds after the change of the current object or selected objects for Master View.
Dock Panels are used in the Categories implementation.
Xafari Framework components extend the standard DevExpress XAF navigation system by means of ARMs mechanism. It differs from XAF Navigation Items in a number of ways, providing such additional features:
Developers can design templates for similar groups of navigation items.
A special navigation item allows executing Actions directly from the navigation bar.
Developers can implement custom types of navigation items.
It is possible to control access to the navigation items via User Roles.
ARMs mechanism works on Win, Web, and MVC.
Windows Forms:
ASP.NET:
Read more about Alternative Navigation Items in the documentation.
Extra Property Editors
You can find the complete list of Xafari extra property editors in the documentation.
Tabbed Detail Property Editor
Tabbed Detail Property Editor is an alternative way to design Detail View. The idea is that the properties of the object are apportioned among several Detail Views. Tabbed Detail Property Editor displays groups of hierarchical tabs in NestedFrame. It is designed for complex Detail Views with lots of View Items, tabs, and collections.
Tabbed Detail Property Editor outwardly resembles XAF Tabbed Layout Group, but there are significant differences in the implementation. The concept allows the user to work with only one tab with simple View at a time instead of manipulating large and complex Views. It also solves performance problems that occur when working with large Details having more than 30 elements.
Developers can customize the Tabbed Detail Property Editor in the Application Model, creating the hierarchy of tabs and configuring the View of each tab.
Tabbed Detail Property Editor is implemented for Win, Web, and MVC.
Read more about Tabbed Detail Property Editor in the documentation.
Enum Property Editor
Enum Property Editor displays Enum property with FlagsAttribute. It supports 3 views (Standard, Checked Combo Box, Checked List Box) and allows displaying enumeration in multiple columns.
Enum Property Editor is implemented for Win, Web, and MVC.
Read more about Enum Property Editor in the documentation.
Expression Property Editor
Xafari Expression Property Editor extends the functionality of DevExpress XAF expressions designer. The editor:
allows creating expressions using operators, business class properties, constants, extensible set of functions, and parameters
allows the user to create and debug expressions (or parts of expressions) at runtime
displays string properties that specify expressions
is available for both Win and Web interfaces (figure below)
provides options to extend its basic functionality by adding the required functions, constants and parameters to the code.
Read more about Expression Property Editor in the documentation.
Folder Browser Property Editor
Folder Browser Property Editor displays string properties that contain folder paths. To select folders, it uses FolderBrowserDialog control.
Folder Browser Property Editor is implemented for Win platform.
Hyper Link Property Editor
Hyper Link Property Editor displays string properties that contain hyperlinks in URL format.
Hyper Link Property Editor is implemented for Win, Web, and MVC.
Label Property Editor
Label Property Editor displays String type properties as static text using LabelControl. The users cannot edit the property value.
Label Property Editor is implemented for Win platform.
Object Set Property Editor
This special Xafari property editor is used to implement Multiple Selection.
Type Image Property Editor
Type Image Property Editor is derived from standard Type Property Editor. In addition, it displays the icon for the type defined in the Application Model.
Type Image Property Editor is implemented for Win platform.
Vertical Grid Property Editor displays object properties in tabular form using VGridControl.
The properties are shown as a list, so adding or deleting them occurs naturally without disrupting the overall form design. Therefore, Vertical Grid Property Editor is used in Dynamic Properties, Bulk Edit, and Application Settings.
Vertical Grid Property Editor can be customized in the Application Model.
The Editor is available for Win, Web, and MVC.
Read more about Vertical Grid Property Editor in the documentation.
View Id Property Editor
View Id Property Editor displays string type properties containing View ID from Application Model. User can select required View, View types (ListView, DetailView, DashboardView) and View captions in the dropdown list.
View Id Property Editor is available for Win, Web, and MVC.
Read more about View Id Property Editor in the documentation.
Google Maps Property Editor
The Editor allows displaying and editing GeoPoint type properties. Latitude and Longitude define the position of the object on the map in the XAF application, Name and Description properties are shown as a snippet.
Read more about Google Maps Property Editor in the documentation.
Group Property Editor
Group Property Editor allows dividing Detail View on groups of properties and edit them separately. When one property group is being edited, the other groups are displayed in the View mode. This approach helps to accelerate the application.
Group Property Editor is available for Web.
Read more about Group Property Editor in the documentation.
Progress Bar Property Editor
The editor displays the progress of the process execution showing the current value as a percentage.
Quick Choice Property Editor
Quick Choice Property Editor is an alternative to the standard Lookup Property Editor and is used for searching a specific value in a list of fields without displaying additional popup windows. The standard ASPxComboBox control was used to implement the editor.
Read more about Quick Choice Property Editor in the documentation.
Xafari Multiple Lookup Editor
The editor is used to edit the IEnumerable properties and is an alternative to the standard ListPropertyEditor in cases where the list stores multiple selected objects.
Read more about Xafari Multiple Lookup Editor in the documentation.
Period Struct Property Editor
The editor is used for customizing a date filter when working with lists. Users can specify any range of dates for filtering data in the List View in a XAF application.
Xafari Date Property Editor allows editing and and displaying DateTime type properties in the Win and Web DevExpress XAF applications without the use of the popup calendar.
Xafari Lookup Editor displays reference properties in Windows forms applications. It allows users to quickly navigate to the Detail View of the referenced object and open the lookup list in a separate View.
For the complete list of Xafari Extra List Editors, please refer to the documentation.
Explorer List Editor
Explorer List Editor displays hierarchical data that implements ITreeNode or IHierarchyNode interfaces. Default List Editor for this data in DevExpress XAF is Tree List Editor. Unlike standard Tree List Editor, Explorer List Editor is inherited from the Grid List Editor. Explorer List Editor is visually similar to Windows Explorer (the name comes from here).
Explorer List Editor displays the data hierarchy in nested folders structure. This approach allows efficient queries to retrieve the required data and not load all objects (unlike Tree List Editor).
The information about the hierarchy dynamically displays in the optional navigation bar above the list. An additional column is used to identify if there are any child nodes.
Read more about Explorer List Editor in the documentation.
Read more about Xafari Tree List Editor in the documentation.
Card List Editor
This special List Editor displays a list of the data as a matrix. Special additional Detail View defines the layout of the properties in the cells of the matrix. The developer can customize Card List Editor in the Application Model.
Read more about Card List Editor in the documentation.
Hierarchy Node List Editor
Hierarchy Node List Editor displays hierarchical data that implements ITreeNode or IHierarchyNode interfaces. Default List Editor for such data in DevExpress XAF is Tree List Editor. Hierarchy Node List Editor is visually similar to Tree List Editor.
The component allows displaying the hierarchical structure in a List View using special editors and supports multiple hierarchies (users can change a current hierarchy in the runtime).
In addition to standard features, the editor can change the structure of hierarchical data using drag'n'drop.
Read more about Hierarchy Node List Editor in the documentation.
Web Editors Templates
Xafari adds new features to all standard XAF Web editors. This feature allows changing the design quickly and easily. By default, the editor looks like the standard one. To change the design of the editor, the developer needs to create a Template (ASPх User Control) and to refer to it in the Application Model.
Here is the list of editors that support the Templates:
ASPxXafariBooleanPropertyEditor
ASPxXafariByteArrayPropertyEditor
ASPxXafariBytePropertyEditor
ASPxXafariColorPropertyEditor
ASPxXafariCriteriaPropertyEditor
ASPxXafariDateTimePropertyEditor
ASPxXafariDecimalPropertyEditor
ASPxXafariDefaultPropertyEditor
ASPxXafariDoublePropertyEditor
ASPxXafariEnumPropertyEditor
ASPxXafariFloatPropertyEditor
ASPxXafariHtmlPropertyEditor
ASPxXafariImagePropertyEditor
ASPxXafariInt64PropertyEditor
ASPxXafariIntPropertyEditor
ASPxXafariListPropertyEditor
ASPxXafariLookupPropertyEditor
ASPxXafariObjectPropertyEditor
ASPxXafariPopupCriteriaPropertyEditor
ASPxXafariProtectedContentPropertyEditor
ASPxXafariStringPropertyEditor
ASPxXafariTimeSpanPropertyEditor
ASPxXafariTreeListEditor
ASPxXafariTypePropertyEditor
Read more about Web Editors Templates in the documentation.
Adaptive Editors
These editors aimed to extend capability of XAF Property Editor. There are two main groups of Xafari Adaptive Property Editors:
Spin – reflect and have possibility to edit numeric types values. Implemented in Web (supports Xafari Templates Storage technology) and Win forms.
Web – support Xafari Templates Storage technology, some of the editors let to determine the template of the frame.
Wizards allow executing complex operations sequentially (step by step).
Key features:
Wizard is an analog of the PopupWindowShowAction. This type of Action is useful when you want the user to input several parameters in a popup dialog before an Action is executed. The difference between them is that the Wizard allows making a number of sequential steps for editing object's parameters. In addition to this, Wizard allows passing some steps according to the specific conditions.
Wizards work in pop-up windows.
Wizard steps are shown as the Detail View for an object type.
At the end of the Wizard steps, there are two options: to execute Action or to cancel the execution.
Xafari technology of Wizards has a number of advanced features:
Support of both Win and Web platforms.
4 different templates.
Using WizardAction, which is a PopupWindowShowAction.
You can customize Wizard properties in the VS designer or in the Application Model.
The View for each step of the Wizard is generated automatically in the Application Model.
Conditional jumps between the Wizard steps are implemented.
Access to and control of Wizard steps in the code.
Windows Forms:
ASP.NET:
Read more about Xafari Wizards in the documentation.
Extra Filters
Extra Filters is a general solution to filter data by period. It includes a convenient control to quickly create different periods: by month, quarter, year, and any other period. Naturally, after the period is specified, the data is filtered automatically.
Extra filters are available for Win Forms and ASP.NET MVC
Windows Forms:
ASP.NET:
For more information about the Extra Filters, please refer to the documentation.
Smart Design
Xafari Smart Design technology allows solving specific problems of View generation. It provides the ability to configure a number of settings of List View, Lookup List View, and Detail View in the code, as well as to create additional Views.
By default, DevExpress XAF places all properties of the business object in the Application Model. The properties are displayed on the UI automatically, which often leads to redundant fields (columns) on the Views. The developer has to spend time and effort to hide the unnecessary elements. In some situations, it is easier to hide unnecessary properties by default and instead specify the list of required.
The basic idea of Xafari Smart Design is that only the properties specified by the developer should appear in the Application Model (and the UI). Moreover, the developer can create a rule to generate any number of different Views directly in the class of the business object and specify the layout of each View. The default XAF strategy and Smart Design can complement each other within a single application.
Xafari Smart Design is available for Win, Web, and MVC.
Read more about Smart Design Technology in the documentation.
Context Help
Context Help is a tool that integrates Xafari online documentation into a XAF application. It is configured in the Application Model. Context Help settings are presented in several nodes of the Model:
Common root page of documentation
Default page for all Views
Calculated link for current View. It is generated using a special ObjectFormatter class.
AutoRefresh updates the displayed data automatically at a determined time interval. The developer can activate this feature for any View in the XAF application.
In some applications, the business logic may require the Action to be executed automatically by timer. Action by Timer component implements this function in Xafari Framework. The controller allows configuring the timer, setting the countdown time, specifying the Action to run, etc.
Read more about Action by timer in the documentation.
Action Executor
This technology allows user or the system to execute several operations using one Action. Wherein, functionality depends on the context. Thus, depending on the used context a Simple Action can has different functionalities:
Criteria Object Creation is a Xafari component that is intended to optimize the creation of a new object in the List View in case filters are applied to the data in the List View. When a new object is created, the existing filter criteria values automatically apply to it.
In order to activate the component, the user needs to configure the business object or the corresponding List View in the application model.
Windows Forms:
ASP.NET:
Criteria Object Creation is available for any List View in business applications developed on Xafari Framework.
There is an option to show the end user a message saying that an Action was successfully executed. By default, no messages are shown.
Xafari extends the functionality of DevExpress XAF IModelAction component in the Application Model with an extra setting that allows displaying both static messages and formatted strings. Users can set up the Success Message property in the appropriate Action node in the Application Model.
This component allows to collapse or to expand properties group in Detail View. Thus, there is possible to add a suitable control to concrete layout group in the Application Model.
Read more about Layout Group Expand Enable in the documentation.
Model Differences Store
Model Differences (Application Model Differences, User Model Differences) are customizations of the Application Model.
Xafari Framework expands the mechanism provided by DevExpress XAF to store Model Differences, which allows avoiding some of its shortcomings.
Xafari Win Module initializes the Model Differences storage management system for Win applications, and the application uses FileUserModelDifferenceStore storage, which stores the User Model Differences for each user and allows adding other layers. Xafari Web Module initializes the Model Differences storage management system for ASP.NET applications, which use SessionUserModelDifferenceStore storage. Developers can use their own types of storage in case they need to.
Xafari Differences Store provides an option to store Model Differences in the database. In this case, if Win and Web applications work together with a common database, user settings are also used in conjunction.
Read more about Model Differences Store in the documentation.
Recursive Helper
Processing hierarchical data for developer means the need to implement recursive algorithm. This action requires several supplementary methods. Recursive Helper performs the basic operations for hierarchical data recursive processing and helps developer to save the time.
Xafari Helpers set aimed to extend DevExpress classes. The class set helps to get access to non-public members and implement additional properties and methods. Helper class also can be extended in another module.
When there is a large number of modules in the application, the Application Model becomes very complicated. Due to the increasing number of layers, the performance of the Application Model is slowed down, which leads to major lags in the application.
Xafari Accelerator is a general component of Xafari Framework developed specifically to overcome the issue of DevExpress XAF application slow performance when the Application Model is overcomplicated.
According to the tests we ran on demo applications, applications with enabled Xafari Accelerator had in average twice shorter starting time that application without the Accelerator.
The core principle of Xafari Accelerator performance is keeping the unchangeable part of the Application Model in a special .xml file and then building the constant part of the Application Model on this file, which significantly speeds up its starting time and, subsequently, the performance of the DevExpress XAF application.
Read how to use Xafari Accelerator in the documentation.
Popup Window Minimum Size
There is a possibility to popup Window minimum size to 640x480 using Xafari.Win.Core.WinSetMinimumSizeController. If needed, you can disallow this action using Active property.
Tray Notification
Xafari Tray Notification component allows interacting with the application through the notification area, or status area. It provides quick access to the application when it is running in the background.
The following functions are now available for Xafari applications via the context menu:
Minimize (minimizes the application window to the icon in the notification area),
Open (expands the application window back to the full screen),
Navigation (provides quick access to the navigation menu of the application),
Exit (closes the application).
The module adds a Xafari application icon to the notification area.
Applications with enabled Tray Notification have a Minimize button in the File context menu. Besides, the module alters the action of the Exit button. It minimizes the window into the notification area, instead of closing it altogether.
Tray Notification is enabled in the Model Editor where developers can customize the actions in the context menu and the File context menu. Developers can also adjust the behavior of Tray Notification in the source code.
Read more about Tray Notification in the documentation.
Encryption Service
Xafari Encryption Service ensures that end users cannot view the database connection string.
Instead of storing the connection string locally on the user's computer, Xafari has a special web service that provides the connection string only when the application starts, right before initializing the DB connection.
Before using Xafari Encryption Service, the developer has to:
add authentication (now only Windows authentication is available, we are planning to implement standard authentication in the future versions)
set the data access permissions
specify the connection string
connect the service to the application
Read how to use Xafari Encryption Service in the documentation.
Easy Tests
Xafari Easy Tests modules are based on DevExpress XAF components for testing XAF applications. Xafari Framework has three modules that allow using Easy Tests for Xafari Win components:
XEasyTest.WinAdapter
ScriptRecorder
ScriptRecorder.Win
See the list of Win components that work with Easy Tests here.
App Starter
AppStarter deploys different versions of the application on the user machine from a remote source. The main functions of the AppStarter are:
configuring the list of the applications to be started
providing the users with individual setups of application versions
creating lists of versions for groups of users
tracking updates of the current versions to prevent using outdated assemblies.
For more information about AppStarter, refer to the documentation.