XAF之深入理解Application Model

XAF的Application Model是其自动生成UI和跨平台能力的核心。它是一个基于XML的元数据结构,用于定义程序的配置和特性。通过Model Editor或代码直接修改,开发者能实现高度自定义。Application Model的树形结构包含ActionDesign、BOModel、NavigationItems、ViewItems等节点,分别对应程序的Action、业务对象、导航项和视图元素。理解并掌握Application Model的层次结构对于配置XAF程序至关重要。
摘要由CSDN通过智能技术生成

 一.鸟瞰Application Model

            XAF的两大特色是1.自动生成UI;2.使用相同的业务逻辑产生不同平台的程序,而这两大特色都归功于Application Model才能完成。首先,XAF扫描程序代码,提取声明的类做出分析后创建数据结构和用户接口。扫描分析的结果是创建中性的数据格式,使用该格式定义数据库结构和程序特性,才能跨平台地读取使用。这个中性格式的元数据就是Application Model,实际上Application Model就是使用XML语言写成的文本,自然能够很方便地分享和更改,所以就为XAF程序提供了极大的自定义自由度。可以在设计时利用它修改程序配置(设置),也可以在运行时修改。由于Application Model是用XML书写的,使用简单的文本编辑器就能够对程序做出更改,但XAF提供了模块编辑器Model Editor能够很方便地修改Application Model,如图1所示。当然,也可以在代码中修改,这也是本文探讨修改Application Model的主要方式。

图1 Application Model Editor

          Application Model将信息组织成树形结构,如图2所示。根节点是Application,根节点下有许多子节点,如图2中的ActionDesign, BOModel, CreatableItem, ImageSource, NavigationItems, ViewItems, View等等,每一个树中的节点都拥有一系列的属性,它们决定特定程序元素的特性。如果要对某类程序元素做出配置,则到对应节点下设置即可,如要配置导航栏,则展开NavigationItems节点,在其中做出适当的配置即可。


图2 Application Model(树形结构)

         下面简单介绍几个二级节点,如图3所示。


图3  Application Model主要节点

1.ActionDesign

       该节点下存放了程序中所有的Action的相关信息,其下的Actions节点存放了程序中所有Controller的包含的Action的定义,ActionToContainerMapping节点下是所有ActionContainer的信息,而Controllers节点下记录了所有的WindowController和ViewController,还有DisableReasons下存在了一些已声明的禁用某些UI元素的原因。

2.BOModel

      该节点下存放了所有的业务对象模型,包括XAF自带的XPO对象河我们自己定义的XPO对象。

3.NavigationItems

     该节点下存放了导航栏的项,通过对它进行设置可以改变导航栏的行为,该节点下的子节点可包含更多子节点,包含子节点的为导航分组,不包含的为导航项。

4.ViewItems

      该节点下存放了详细视图的UI元素,如PropertyEditors。

5.Views 

    该节点下存放了程序中全部视图,主要包括所有XPO对象的ListView, DetailView, LookupListView,以及DashboardView视图(图3中没有)。

     由此可见,Application Model包含了程序运行的大部分配置。经典的MVC架构的元素在这里都体现出来了,而据XAF开发团队的开发人员说,他们的确是读了MVC的基本经典著作后谋划开发的XAF,所以理解MVC架构的开发者应该很容易掌握XAF,不像我摸索地这么久,当然,这是题外话了。好了,既然XAF的配置信息都放在Application Model里了,那XAF程序是怎样使用Application Model来配置程序特性的呢,那就先要理解Application Model的分层结构了。

二. Application Model的层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值