Marmot Framework 简介
Marmot Framework是BSTEK提供的开源框架,它以Dorado和Marmot为基础结合Hibernate进一步提供了许多应用软件中常用的基础功能、组件,其中很多功能是依赖于数据库的.
开发Marmot Framework的主要目的是进一步减少应用开发中的重复工作,令应用开发效率进一步的得到提高. 即使Marmot Framework中部分现有功能不能完全满足某些复杂应用的需求,相信其中的实现方式也能够为开发者提供很好的参考和借鉴.
主框架
Marmot Framework中提供的多种风格的、示例性的应用预装载页面、登录页面、主框架界面,以及其中的常用逻辑(例如系统登录、注销的基本逻辑). 这些界面均可以支持工作区缩放、动画效果等高级功能.
用户可以以这些示例作为应用框架的模版,也可以根据需要创建全新风格的主框架, 只要将自己定制的界面配置到Mapping的相应控制器中就可以轻松的使主框架系统运转起来.
动态菜单
Marmot Framework提供了以数据库方式存贮菜单结构的基础实现,包括菜单结构的维护界面、快速生成各种菜单的工具类.菜单的工具类包含以下两大类:
- LazyMenuUtils - 用于生成支持懒装载的菜单,支持菜单栏、Outlook栏、导航树等多种菜单类型.懒装载菜单适合展示菜单层数和项数均较多的菜单,通过对菜单项的懒装载可以保证界面的初始化速度不会因菜单过于复杂而降低.
- DiligentMenuUtils - Diligent取Lazy之反义,用于生成一次性装载的菜单,支持菜单栏、Outlook栏、导航树、多页标签等菜单类型.一次性装载的菜单适合那些层数和项数均较少的简单菜单.
通过替换MenuFactory的实现类就可以将Marmot Framework的菜单功能与其他存储机制接驳,例如:其他结构的数据库、XML等,并且也可以在MenuFactory的实现类中植入对菜单项的权限控制逻辑.
收藏夹
收藏夹功能可以直接与Marmot Framework中的动态菜单功能结合,实现菜单的收藏功能.同时收藏夹还支持菜单项、树节点、收藏面板等多种显示方式.
控件状态
控件状态是指将Dorado控件的显示风格、布局方式、状态保存在数据库中,并在运行时动态的装载到界面当中.同时Marmot Framework还可以为每一个用户保存一套配置,实现类似Profile的功能以便使每一位用户获得自己喜好的界面展示.
目前支持此功能的Dorado控件包含AutoForm和DataTable.
- 对与AutoForm而言,用户可以利用Marmot Framework提供的配置界面方便的对表单中的各个字段完成分组、排序、编辑方式和显示方式的定制、显示或隐藏、简单的校验规则定制等操作,并将这些配置保存到数据库中.
- 对与DataTable而言,用户可以方便的将当前表格中的列宽、列序、锁定列数等信息保存到数据库中,以便下次打开界面时获得完全一直的状态.同时,用户也可以利用Marmot Framework提供的配置界面对表格的展示进行更加详细、灵活的定义.
另外,Marmot Framework中还提供了用户维护所有配置信息的管理界面.
高级查询
Marmot Framework中的高级查询包含下列功能:
- 将用户当前输入的查询条件保存为一套查询方案,以便于今后的快速取用和查询.
- 将部分查询方案共享给其他人.利用此功能也可实现系统级的查询方案的定制.
- 定义默认查询方案,使页面在进入时自动执行指定的查询方案.
- 提供对SqlDataset和AutoSqlDataset的万能查询功能,用户可以利用Marmot Framework中万能查询定制界面定制查询方式,包括复杂的数据匹配规则和排序规则.
- 支持查询字段的模版,并提供专用的维护界面,以便于定义万能查询界面中的可查询字段的列表,以及各字段的数据类型、支持的比较符列表、匹配值的编辑方式等.
- 提供对SqlDataset和AutoSqlDataset的自定义SQL查询功能(此功能可能导致安全性问题、故对很多系统并不适用).
最后,Marmot Framework还提供了针对Dorado的自定义控件和Studio的配置扩展,使得定义高级查询的过程变得异常简单.
实时消息
Marmot Framework提供一套消息发送的功能,有点类似即时通讯.使得用户可以藉此向其他系统使用者发送消息.即时消息接受者不在线,他也可以在下次登录系统时得到消息通知.
通过替换实现类的方式实时消息功能可以接驳任意系统中的人事结构.同时此功能还支持在发送消息的同时向对方的信箱中发送邮件、消息历史记录查询、定义消息的延时送达时间(利用此功能可以实现任务提醒的功能).
数据字典
Marmot Framework中提供了默认的数据字典功能的实现,包括内嵌的数据字典读取装载逻辑、数据库结构、专用的数据字段维护界面.
数据字典信息的装载支持“设计时装载”或“运行时装载”方式,其中“设计时装载”的效率稍高,但不利于实时的反应数据字典中的信息.而“运行时装载”在每次访问页面时读取数据库,可以准确的反应数据字典中的信息变化.
数据字典支持的信息项包括:字段的标题、数据类型、基本的校验规则、是否只读、是否默认可见、编辑模式、下拉方式等.
利用对DictionaryFactory接口的实现类,数据字典功能还可以方便的跟第三方的数据字典功能接驳.
系统属性设置
Marmot Framework提供了功能全面的、基于数据库的系统属性存取机制.
该机制中包含了属性模版的配置功能,通过该功能用户可以为每一个属性定义描述信息、数据类型、编辑方式,并且可以对所有属性进行分组、排序.最终Marmot Framework可以根据这些信息自动的生成供给用户使用的属性维护界面.
属性值包含“系统级值”和“用户级值”,在使用属性时“用户级值”的优先级将高于“系统级值”.在属性模版中可以为每一个属性定义是否允许拥有“用户级值”.此外,为了提高系统读取属性的效率,Marmot Framework还为属性值提供了缓存功能.
权限管理
基于角色,资源的权限管理机制,提供菜单、页面组件以及业务方法级别的全方位权限控制。 另外对于权限应用提供了批量授权与角色模板功能,以及在此基础上实现了角色代理机制。
对于权限资源的初始化,系统提供了方便的菜单导入与dorado中的视图模型组件元素的导入功能,快速定制权限信息。