Purpose and Benefits
Dock Panels are used to display context information about the chosen object on the main form.
There are three types of Dock Panels: detail, master and independent.
- Detail Dock Panel contains additional/detailed information about the chosen object. See the real life example: the main form “Sales Order” is accompanied with two more panels where useful data (such as detailed history of interactions with a particular customer) is shown. For the manager it means less effort and more speed in determination of order parameters, penalties, discounts, etc.
- Master Dock Panel is used to filter the objects on the main form. For example, the Customer is used to filter the main Sales Order list form.
- Independent Dock Panel displays the data not associated with the objects on the main form. For example, it may be a list of user tasks, a list of notifications, etc. Independent Dock Panel is displayed regardless of other forms opening or closing. It is very convenient to provide permanent access to certain information, no matter what forms are called at a particular moment.
The image below demonstrates the UI configuration where various types of Dock Panels are displayed simultaneously.
One of the use cases is a very useful feature allowing to implement filters for list forms. But the main advantage of Dock Panels is evident when designing Detail Views. Further sections of the post describe the difficulties that arise when designing XAF Detail Views, and how to overcome them using Dock Panels.
The Difficulties of Designing Complex XAF Forms
These difficulties are inherent in the development and implementation of enterprise systems. They are as follows:
- The aspiration to display a lot of information on one form leads to a confusing layout.
- It is required to design a "role" form, i.e. it requires minor differences when displaying complex significant form for different user roles. Some information is mandatory for some users, while for others it is excessive.
- Performance problems for large forms: the form containing over 50 fields is slow to load.
- Additional windows. Users really want to see different contextual "background windows" for the objects in the list form. To meet this need, the developer has to design very intricate Master-Detail forms.
- Updates and deployment. The deployment process often requires adaptation to customer needs, many forms are subject to significant customization. Now imagine that the original form has been modified into the updated version, so the whole process of customization will have to be repeated.
- In some cases, it is fundamentally impossible to display additional (related) information within a single form. For example, there are no physical links between the entities in the Business Model.
Dock Panel Concept
Dock Panel is a new approach to design XAF applications interface, it opens up new opportunities for developers and customers and allows us to solve all the problems listed above. Basic concepts of the Dock Panel are described below:
- The main form of the object is static and does not allow any additions, unassociated or useful information, etc.
- All additional information is displayed within separate context windows.
- All the context windows are designed separately from the main form. As a rule, it is done in a separate project.
- There is a general mechanism for a user to access the contextual windows, user displays and hides contextual information independently. Thus, the developer is released from the task to design a variety of slightly different forms.
Dock Panel Advantages
- Additional contextual panels design does not depend on the form of the object (main form). Thus, it does not affect the main project, not to extend its boundaries. It is possible to add a certain Dock Panel to several forms. For example, the Debts Balance for @Partner Dock Panel may be displayed in addition to the Sales Order Detail View, Partners List View, and Contract Detail View.
- The layout of the main form is static, the presence of additional panels does not change the layout of the fields. There is no need to change the form design, carefully crafted when it was created. When upgrading version, it is does not need to re-adapt the design of all extended forms. Instead, we provide the user with the ability to display/hide an additional information window.
- The main form is developed once and its functionality remains static in all assemblies. The timing of updates of the application is reduced. The need for re-testing Dock Panels disappears.
- Third-party developers can design Dock Panels in separate projects (.NET assemblies). Therefore, it is possible to supply Dock Panels as Add-on to the basic version of the system. The customer can add multiple extensions from different vendors. For example, automation department of the customer's company can apply their own design to the standard context windows of the basic system.
- The administrator can add a Dock Panel to the application at runtime via the Model Editor. It does not require to recompile the application and components.
- Dock Panels work in asynchronous mode and practically don’t affect the performance of the main form.
- The user can control the number of fields displayed on the panel. Unclaimed fields can be disabled to facilitate the search of necessary data and to expedite decisions.
- It enhances the user experience for self-service and dynamic customization own workplace. It reduces the costs of adaptation of the information system for the changing needs of the customer.
- Form development costs are reduced. Intricate forms are divided into separate independent components that do not affect each other and can be expanded and modified separately.
- View shows related information even in such situations where no physical links exist between the entities in the Business Model.
Who Needs Dock Panels
First of all, Dock Panels will be useful to the developers of complex/modular enterprise systems. The greatest effect is achieved when several different customers have deployed the same system release and started to exploit it. In this case, each deployment project will inevitably require to adapt the system and customize the forms.
An Example of Using Dock Panels
The following example demonstrates the advantages of using Dock Panels.
There is a modular system containing the following modules: «Sale», «Warehouse» and «Finance».
For different customers there are various configurations of supply: «Sale (only)», «Sale+Warehouse», «Sale+Finance», and full set «Sale+Warehouse+Finance». The figure below demonstrates the variants for the release of the system:
In addition to the four basic configurations, the functionality of the Sale module can be extended with third-party development – an additional add-on module that allows managers to see the TOP 10 most often bought items.
Take a look at an actual situation when these modules are being implemented by several individual developers (or teams). It leads to the fact that updates to the modules are produced independently from each other (not simultaneously).
These modules provide the user with the following information:
- Sales module displays the pre-sale order.
- Finance module displays the information about payments made by the buyer. It helps to account the size of discount based on the past purchase history.
- Warehouse module displays the information about the current balance of goods. It helps to quickly choose a Warehouse and to determine the availability.
- Sale Add-on module displays the information about the products most purchased by the customer. It helps the manager in case of similar orders.
The image below shows the manager's workplace when using the merged full configuration «Sale+Warehouse+Finance+Sale Add-on».
The users of the described system may require different combinations of these forms. Based only on the standard XAF functionality, the developer has to create up to 8 complex and rather complicated forms. Their support will be difficult and making changes in several forms at once will also require much time and effort.
Conclusions based on the example
It should be noted that performance problems of too complicated forms can be solved by using Xafari Tabbed Detail. However, custom configuration and separate support for each module remains extremely labor-consuming.
The whole range of issues will be solved completely by using Xafari Dock Panels.
The user operates with clear and simple terms: "Show/Hide payment info", "Show/Hide the warehouse status ", etc.
The user and the developer don’t need to rebuild the layout of the "Sales order" main form. It is enough to call the desired panel when needed. If the user closes the main form, the additional panel is closed automatically. It is important that when the user opens the form again, the panel layout is restored.
In fact, Dock Panels provide a dynamic user workplace. If the manager handles the Sales Order, and the current buyer usually orders the same specification, then the Popular Products for @customer (TOP 10) Dock Panel is very helpful. If the buyer is new, the Popular Products for @customer (TOP 10) Dock Panel is unnecessary and the user hides it, making the workplace easier and more convenient, and – what really matters – more efficient.
Dock Panels implement the concept of displaying context information that increases the efficiency of XAF applications. Ownership costs are reduced significantly (including customization, adaptation, documentation, and testing).
Dock Panels provides a modern “Self” approach to XAF applications. "Self" is a promising direction in automation. It means that the user should be able to improve or customize the system for personal business needs, not involving in-house IT-specialists or external software developers.
It should be noted that Dock Panels can be used in different modules, but it will be transparent for the end user anyway.