Model Merge Tool
- 3 min to read
With the Model Editor, you can examine and edit the Application Model in a module, application or user differences layer. But, in some scenarios, it can be required to move the Application Model customizations (differences) from one layer to another. For instance, you can customize a certain view layout at runtime, and then want to merge these customizations into a module. This topic provides general information on the Model Merge Tool that allows you to merge differences into an underlying Application Model layer. To see a step-by-step example of using this tool, refer to the How to: Merge End-User Customizations into the XAF Solution topic.
The Model Merge Tool can be invoked from the context menu of a project in a XAF solution. If a project is a module project, the Merge Model command is available. If a project is an application project, then the Merge User Model... option is available in addition to Merge Model.
When you select Merge Model, the Model Merge Tool is invoked for the application model layer of the current project. When you select Merge User Model, the Open dialog is shown, so you can select an arbitrary XAFML file. Typically, you select a Model.User.xafml file located in the current project output folder.
It is recommended that you close all open Model Editor tabs in Visual Studio before running the Model Merge Tool.
The Model Merge Tool is the dialog window.
It contains a nodes tree similar to the one provided by the Model Editor. Each node is accompanied with a checkbox intended to simplify multi-selection. To merge differences, select one or more nodes (nodes with differences are marked bold). Then, select a target in the dropdown below and click Merge. If the chosen differences cannot be applied to the selected target, then the following warning is displayed.
You can select another target in this instance and retry. The merging operation can be performed as many times as required. The Save button persists changes.
Application administrators can use the Model Merge feature as well. Of course they have no access to the application source. But they can merge differences into a common model layer that is typically stored in the Model.xafml file in the application folder. This can be done via the Merge Differences command available in Model Editor at runtime.
So, an administrator can customize a View and then provide it to all users without disturbing the application developer. In this instance, the Model.xafml file must be shared among all end-users. If terminal server deployment is used, this file is shared initially. Otherwise, an administrator needs to re-deploy the Model.xafml file for all users.