General Components

Xafari Framework general components expand the functionality of relevant DevExpress XAF components and are included in Xafari General subscription.

Below is the list of the main general components. You can find the complete list in the documentation.

Extra Actions

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.

xafari-check-action
Read more about Check Action in the documentation.

Aggregated Action

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.

xafari-aggregated-action

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.

popup-container-action

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.

Read more about Dock Panels in the documentation.

Alternative Navigation Items

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.
  • There are special navigation items to work with Xafari Reports and Business Operations.
  • 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.

alternative-navigation-items

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.

tabbed-detail-property-editor

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.

enum-property-editor

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.

expressions-property-editor

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.

folder-browser-property-editor

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.

xafari-label-property-editor

Object Set Property Editor

This special Xafari property editor is used to implement Multiple Selection.

object-set-property-editor

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.

type-image-property-editor

Read more about the editor in the documentation.

Vertical Grid Property Editor

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 PropertiesBulk Edit, and Application Settings.

Vertical Grid Property Editor can be customized in the Application Model.

The Editor is available for Win, Web, and MVC.

vertical-grid-property-editor

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.

view-id-property-editor

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.

Google map property editor web asp.net

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.

group-property-editor

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.

progress-bar-property-editor

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.

xafari-quick-choice-property-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.

multiple-lookup-property-editor

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-period-struct-property-editor

Read more in the documentation.

Date Property Editor

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-date-property-editor

Read more about the editor in the documentation.

Lookup Property Editor

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.

lookup-property-editor

Read more in the documentation.

Extra List Editors

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.

xafari-explorer-list-editor

Read more about Explorer List Editor in the documentation.

Xafari Grid List Editor

This editor complements standard Grid List Editor. Win version supports Multiple Selection by Check Boxes. Web version supports Templated Web Editors.

grid-list-editor

Read about Grid List Editor in the documentation.

Xafari Tree List Editor

This editor complements standard TreeListEditor. Win version supports Multiple Selection by Check Boxes. Web version supports Templated Web Editors.

xafari-tree-list-editor

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.

xafari-card-list-editor

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.

Hierarchy-Node-List-Editor

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.

xafari-web-editors-templates

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.

Wizards

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.

xafari-wizard-action

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.

xafari-extra-filters

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.

xafari-smart-design

Read more about Smart Design Technology in the documentation.

Visual Studio Templates

Xafari Solution Wizard and Template Gallery provide opportunities for quick creation of new Xafari Applications.

xafari-solution wizard

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.
  • Directly specified link for current View.

Context Help is available for Win, Web, and MVC.

xafari-context-help

Read more about Context Help in the documentation.

Auto Refresh

AutoRefresh updates the displayed data automatically at a determined time interval. The developer can activate this feature for any View in the XAF application.

xafari-auto-refresh

Read more in the documentation.

Action by Timer

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.

xafari-action-by-timer

Read more about Action by timer in the documentation.

Criteria Object Creation

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.

xafari-criteria-object-creation

Criteria Object Creation is available for any List View in business applications developed on Xafari Framework.

Read more in the documentation.

Show Success Message

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.

xafari-success-message

Read more 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.

Accelerator

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.

xafari-framework-accelerator

Read how to use Xafari Accelerator in the documentation.

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.

xafari-tray-notification

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-menu

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

xafari-encryption

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

xafari-easy-tests

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.

xafari-application-starter

For more information about AppStarter, refer to the documentation.