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.

Xafari Popup Container Show 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.

Win:

dock_panels_1_zoom74

Web:

dock_panels_2_zoom75

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.

Windows Forms:

Xafari Alternative Navigation Items

ASP.NET:

arm_extra_navigation_items_2

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.

Xafari 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.

Xafari 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.

Xafari Expression 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.

Xafari 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.

Xafari 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.

Xafari 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.

Xafari 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.

Xafari 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.

Xafari Google Maps Property Editor

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.

Xafari 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.

Xafari 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.

Xafari Xafari Multiple Lookup 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.

Xafari 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.

Xafari Xafari 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.

Xafari 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.

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.

Read more about Adaptive Editors 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.

Windows Forms:

Xafari Wizards

ASP.NET:

wizards_2

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

Extra filters are available for Win Forms and ASP.NET MVC

Windows Forms:

period_struct_property_editor_1

ASP.NET:

period_struct_property_editor_2

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.

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.

Windows Forms:

Xafari Auto Refresh

ASP.NET:

autorefresh_1

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.

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:

Action Executor-2

Action Executor

Read more about Action Executor 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.

Windows Forms:

Xafari Criteria Object Creation

ASP.NET:

criteria_object_creating_2

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 Show Success Message

Read more in the documentation.

Layout Group Expand Enable

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.

Layout Group Expand Enable

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.  

Read more about Recursive Helper in the documentation.

Helpers

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.

Read more about Helpers 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 Accelerator

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.

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.

Xafari Tray Notification Form

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 Service

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 App Starter

For more information about AppStarter, refer to the documentation.

Write US