Marmot为我们解决了企业应用开发中的一些与具体业务无关的基础问题。在该框架中我们除了可以使用标准Dorado所提供的标准功能以外,Marmot还提供了一些扩展的功能,如Dorado表格表单的个性化定制、系统导航菜单的定制、权限异常日志的管理、万能查询的定制保存与加载、系统内部消息发送、业务流程的控制等。这其中Dorado表格表单的个性化定制、权限控制的实现和万能查询的定制保存与加载构成了Marmot的三大亮点。
表格的个性化定制。标准的Dorado表格用户可以改变列头的位置、设置显示和隐藏列、设置锁定列等,一旦页面刷新用户调整的效果也就会丢失,表格会恢复到初始状态。在Marmot中改变了这一局面,默认情况下可以把用户对Dorado表格所做的各种调整都记录下来,这样当用户刷新页面或重登录系统看到的就是他最近一次对表格调整的效果。同时通过Marmot我们还可以对Dorado表格做更为精细的调整(如列名,列组合,单元格编辑器类型等),所有这些调整完成后都可以记录下来,从而达到用户对自己看到的表格的个性化定制。
(图:Marmot中的表单自定义)
万能查询与查询预案。查询、检索是信息系统中数据维护的标准功能,每一个应用界面,只要涉及到数据的维护都要求有对数据的检索功能,同时我们又会发现,这些查询功能基本上都是类似的,但为了需求的实现,我们不得不为每一个维护界面开发出检索功能。Marmot中的万能查询可以帮助程序员快速的实现这一功能,在Marmot中,我们只需做些简单的配置就可以呼叫出Marmot的万能查询页面,从而实现对数据的查询与检索。
同时,对于应用系统的某些操作员来说,可能他每次登录系统后都要在某个功能模块页里的查询窗口输入相同或相似的条件来检索到一批结果集进行处理,如果他每次输入的只有一两个条件问题还不是很大,假如他每次要输入四五个甚至上十个条件相信效率是非常低的。在Marmot中的万能查询还提供了另外一个功能,那就是查询预案的保存与加载。通过这种机制,操作员可以把自己在查询窗口里设置的条件保存为一个方案,这样下次就可以通过下拉框选择的形式加载自己保存过的查询方案,这样就可以大大提高操作的效率,同时也给用户带来很好的操作体验。
(图:Marmot中的万能查询)
权限控制的实现。Marmot可以让用户轻易的实现让某些用户或角色有权或无权访问某些资源,具体分为三层,第一层为URL,第二层为组件以及组件里的元素(如指定表格中的某列为只读等),第三层为后台的Java方法。开发时,程序员不用考虑权限问题,开发完成后,上线之前进行权限配置即可。权限信息来源可以是LDAP,也可以是数据库的中几张表,根据具体情况实现预留的接口即可。
默认情况下当某一个资源没有被分配给任何一个人或角色的时候那么这个资源是公共的,所有的系统用户都有权限访问,一旦该资源分配给了某个用户或角色,那么这个资源只能由该用户或角色可访问,其它用户或角色就无权访问该资源。默认情况下Marmot中的资源访问权限是分配给角色的,同时还提供了一个名为“角色代理”的功能,指当一个某个用户因为某些原因不能处理当前自己权限范围可以完成的工作时,可以把自己的这个权限暂时分配给其它人代为处理一下。
界面风格的选择是Marmot中提供的一种特色功能。通过在登录页中的Style的选择,用户可以根据自己的喜好,选择自己喜欢的操作界面。开发者可以以这些示例作为应用框架的模版,也可以根据需要通过一些简单的配置创建全新风格的主框架。
(图:用户操作风格的选择)
Marmot提供了以数据库方式存贮系统导航菜单结构的基础实现。包括菜单结构的维护界面、快速生成各种菜单的工具类,通过Marmot提供的菜单工具类可以实现菜单的一次性装载或懒装载。菜单的工具类包含以下两大类:
LazyMenuUtils:用于生成支持懒装载的菜单、支持菜单栏、Outlook栏、导航树等多种菜单类型。懒装载菜单适合展示菜单层数和项数均较多的菜单,通过对菜单项的懒装载可以保证界面的初始化速度不会因菜单过于复杂而降低。
DiligentMenuUtils:Diligent取Lazy之反义,用于生成一次性装载的菜单,支持菜单栏、Outlook栏、导航树、多页标签等菜单类型。一次性装载的菜单适合那些层数和项数均较少的简单菜单。
通过替换MenuFactory的实现类就可以将Marmot的菜单功能与其他存储机制接驳,例如:其他结构的数据库、XML等,并且也可以在MenuFactory的实现类中植入对菜单项的权限控制逻辑。
收藏夹是Marmot中提供的一个小的辅助功能。它可以把我们应用操作中常用的页面像浏览器的收藏夹一样收藏起来,这样下次登录系统后可以通过收藏夹功能快速的导航到需要操作的功能模块页面。
实时消息是一套消息发送的功能,利用这个功能可以向系统中的其它用户或用户组发送定时消息(如果不指定时间,那消息会在第一时间送达接收者),同时消息发送过程中用户还可以指定是否同时发送到对方邮箱,当然开发者也可以做适当扩展,加上短消息发送等功能。实时消息的发送不要求接收者一定在线,如果接收者在线它会在指定时间收到发送者发送的消息,如果接收者不在线,下次登录后他还会在指定时间收到消息。
Marmot中提供了默认的数据字典功能的实现,包括内嵌的数据字典读取装载逻辑、数据库结构、专用的数据字段维护界面。数据字典信息的装载支持“设计时装载”或“运行时装载”方式,其中“设计时装载”的效率稍高,但不利于实时的反应数据字典中的信息.而“运行时装载”在每次访问页面时读取数据库,可以准确的反应数据字典中的信息变化。
数据字典支持的信息项包括:字段的标题、数据类型、基本的校验规则、是否只读、是否默认可见、编辑模式、下拉方式等。同时,利用对DictionaryFactory接口的实现类,数据字典功能还可以方便的跟第三方的数据接驳。
80%的路程坐地铁20%步行
做减法的二次开发平台,从长期技术管理的视角来看,一是降低风险,二是兼容并蓄各方的优势研发成果,不过度依赖于对某个厂商的产品,避免发生“短板木桶现象”;从短期某个具体项目的视角来看,能够开发效率提升,项目可管理度增加,产生“地铁效应”。
“Make Web Utility and Facility for the World”既是BSTEK的产品目标,也是众多厂商合作共赢的成果。
(图:Marmot中的表格自定义)
表单的个性化定制。当开发人员完成对dorado里的表单(AutoForm)开发后,用户是无法对表单的布局、编辑器类型、表单分组进行调整的。在Marmot中对标准的Dorado里的表单做了一些扩展,使的普通的用户可以根据自己的喜好对表单的布局、分组、字段的编辑器类型、大小等各种属性做一些个性化的定制,同样定制完成后可以保存下来,这样用户刷新页面或下次登录时就可以见到自己最近一次对表单做的调整。
分享到:
相关推荐
总的来说,"quadratic"是一个基于JavaScript的在线工具,它利用了Web技术的便捷性,帮助用户快速求解二次方程,展现了JavaScript在教育和实用计算方面的应用潜力。通过深入理解JavaScript以及Web开发的基本原理,...
- **JAVA语言的应用范围**: Java广泛应用于各种领域,包括Web开发、移动应用开发、大数据处理、云计算服务等。 - **JAVA开发环境的安装和配置详解**: - **下载JDK**: 可以从Oracle官网或其他可信源下载适合您操作...
- **Flex4**:一种用于构建桌面和移动设备上的高性能、跨平台的富客户端应用程序的软件开发框架。Flex4提供了一套强大的工具集,用于创建用户界面、处理数据绑定和事件驱动的操作。 - **MXML**:Flex的应用程序通常...
- **应用场景**:在游戏开发、电影制作以及教育软件中广泛应用。 #### Application software(应用软件) - **定义**:专为执行特定任务而设计的软件程序。 - **例子**:文字处理软件、电子表格应用程序等。 #### ...
HotJava 浏览器是 Java 应用的一个早期示例,它展示了 Java applet 在网页上的动态展示效果,这也推动了 Web 技术的发展。 **1.2 Java 语言的特点** - **面向对象**:Java 是一种完全的面向对象的语言,支持封装、...
VB程序设计是使用Visual Basic语言进行的,它是一种高级编程语言,用于开发Windows应用程序、Web应用程序和数据库应用程序等。VB程序设计的基础知识包括变量、数据类型、运算符、控制结构、函数和数组等。 在VB程序...
向量是物理学和数学中的基本概念,在二维和三维空间中广泛应用于图形学和游戏开发等领域。 在HTML5中,`<canvas>`元素提供了画布,通过JavaScript可以在这个画布上绘制图形,进行坐标操作。`canvas` API允许开发者...
借位规则“借一当二”则是在减法中,借位相当于加上二的负幂次。 `phpbin.php`可能是该在线转换工具的核心代码,使用PHP语言编写。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,可以嵌入到HTML中。在这个...
由于其源代码开放,用户在下载后可以根据自己的需求进行二次开发,轻松添加更多自定义功能。 Visual Basic是Microsoft公司推出的一种面向对象的编程环境,它以直观易学著称,尤其适合初学者学习编程。在VB中,我们...
Python在软件开发领域扮演着重要角色,它被广泛应用于Web开发、数据分析、人工智能、自动化脚本等多个领域。Python的跨平台特性使其可以在Windows、Linux、Mac OS等操作系统上运行,其丰富的第三方库如Numpy、Pandas...
它结合了多种语言的优点,如C++的性能与Java的健壮性,特别适用于构建Windows桌面应用程序、Web应用、游戏(特别是Unity引擎中的游戏开发)、服务端应用等。 #### 二、控制台应用程序基础 **案例1**:基于控制台的...
- **解析**:操作系统在第三代计算机中得到了广泛的应用和发展。 4. **结构化编程** – D. Fourth(第四代) - **解析**:结构化编程是一种编程范式,在第四代计算机时代变得越来越重要。 5. **时间共享** – C....
- **应用场景**:在数据库应用、Web服务器等领域中,合理设计缓存策略可以显著提升系统响应速度。 ##### 1.6 存储设备形成层次结构 - **核心概念**:不同类型的存储设备根据其访问速度和成本被安排在层次结构中。 ...
Java的类库丰富,适合开发各种类型的应用程序,包括桌面应用、Web应用以及移动应用等。 接下来,我们要探讨的是这个简易版多项式计算器的核心功能。多项式是指由常数、变量以及它们之间的加、减、乘、幂运算组合而...
计算机二级等级考试试题涵盖了许多IT基础知识,主要涉及编程语言、操作系统、网络协议、数据库管理和网页设计等多个方面。以下是对部分题目及其相关知识点的详细解析: 1. 计算机的三类总线包括控制总线、地址总线...
C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows应用程序、游戏开发、移动应用以及Web服务等多个领域。在这个源码中,我们将看到如何利用C#的基础语法、控制结构和图形用户界面(GUI)来构建一个简单的...
- Java EE(Enterprise Edition):企业版,用于开发Web应用服务。 - Java ME(Micro Edition):微型版,用于移动设备、嵌入式设备的开发。 4. **Java语言运行机制及运行过程**: - 源代码编译成字节码(.class...
20. 记账凭证录入:二次录入技术中,第二次录入主要数据是为了验证和确认数据的准确性。 21. 直接工资费用核算:原始凭证可能包括考勤、产量、工时记录以及代扣款通知单等。 22. 系统开发流程:初步实现方案的拟定...
- **JavaEE (Java Platform, Enterprise Edition)**: 主要针对企业级应用开发,包括Web应用、服务端应用等。提供了更多的API和服务,如EJB、JPA等。 - **JavaSE (Java Platform, Standard Edition)**: 核心版,...
ASP.NET 是微软开发的一种用于构建 Web 应用程序的框架,它基于.NET ...随着对C#的掌握,你将能够更好地利用ASP.NET框架构建高效、可靠的Web应用程序。明天将继续探讨WEB控件,它们是构建交互式网页的关键工具。