OperaMasks SDK
面向构件编程实现所见即所得
构件技术是提升软件复用度,从而提升软件开发效率的良好手段。但目前的Web开发技术,缺乏一种统一、标准、并得到业界广泛认同的构件标准。AOM遵循JSF
1.2规范,提供了基于构件的编程环境,并克服了规范的一些局限与不足。基于AOM内置的Ajax原生支持的JSF引擎之上,所有的构件都拥有完全的Ajax特性及丰富的人机体验。
AOM的构件称为Rich Component。如果您需要开发拥有复杂业务逻辑及操作流程的Web 应用,那么,Rich
Component是您的不二选择。并且,这些构件都是面向数据的,可以用JPA、Hibernate、或直接用JDBC将数据准备好,交给这些构件去展现。同一组数据可以用不同的构件来展现,无论是二维表格,
基于自定义模版的数据视图还是图表构件,对数据的展现过程都是一样的。
我们有(但不局限于):
DataGrid:以表格形式展现你的数据
|
TreeView:用来组织你的数据
|
DataView:用任何你能想到的方式
|
Chart&Report:以图表形式展现数据
|
在基于构件应用开发中,事件机制有着举足轻重的作用。但在Web应用开发中,虽然浏览器端提供了比较完善的事件模型,但业务逻辑放在服务器端运行,而浏览器与服务器之间的交互只能是请求与响应,无法表达复杂的事件。
AOM提供了混合型事件,只需要使用一个标签,就可以使普通客户端事件触发服务器端的处理逻辑。
构件技术,使展现与行为完全分离,避免了在页面中嵌入大量可执行代码,带来了所见即所得开发方式的回归。AOM的开发工具Apusic OperaMasks
Studio,提供了完善的所见即所得的展现层开发支持。
无缝整合现有多种成熟框架
AOM是糅合了展现层与控制层的整体框架,用户无需再去为展现层与控制层分别进行技术选型与整合,可以只专注于业务逻辑与持久层框架。J2EE世界中已经有许多优秀的成熟框架,它们能够解决不同层面的问题,并取得了用户的广泛认同,如Spring、EJB
3、Hibernate、JPA等。作为符合JavaEE标准的展现层框架,AOM并不重新发明轮子,而是兼容包并,能够与这些已有的成熟框架紧密集成。譬如,一个Spring对象,能够直接当成一个托管Bean来使用,而在
Spring中,也可以直接把Lite Bean当成普通的Spring对象来调用。
AOM是一种无侵入性的框架结构,它并不强求您采用它的全部特性,您完全可以根据您的需求按需调整,甚至同时使用其他基于JSP 2.1/Servlet
2.5的展现层与控制层框架。在同一个应用中的不同框架可以通过会话(Session)共享数据,通过请求转发进行消息传递,保持您原有的知识体系与系统架构。并且,AOM为未来其它框架的引入与无缝集成做好了准备!
实现无成本的Ajax支持
AOM,提供了原生AJAX支持的JSF引擎,从而使AJAX的开发成本降为零!基于Apusic
OperaMasks开发的业务系统,程序员无需再关注什么是AJAX,开发出来的应用是自然而然的具备AJAX特性的应用;甚至于任何标准的JSF系统,迁移到AOM之上时,只需更改一个参数,即可拥有完整的AJAX特性!
解耦美工与程序员的分工:IoVC
传统方式的页面中充斥着到后台逻辑的引用
互联网归根结底是一个展现内容的平台,在互联网上,页面的展现效果与艺术感被提高到了一个前所未有的高度。在不少互联网应用中,展现设计甚至比业务逻辑设计更为复杂,需求变化更为频繁。自从Web变成应用的载体后,人们就一直在为美工和程序员的分工而烦恼。于是,有了JSP/Servlet之分以及所谓的MVC架构。然而,时至今日这个问题并没有完美的解答。由于展示层负责直接与用户进行交互。系统的大部分行为需要由展现层发起,这导致展现层需要耦合控制逻辑;同时,所有的运行结果又需要由展现层来呈现,这又导致了展现层需要耦合业务模型。最终,不得不在展现层中嵌入大量的脚本代码,可能是Java代码片断,也可能是大量标签库及EL表达式的引入。
为了从根本上解决这个难题,AOM创造性的引入了一种全新的编程模型:IoVC——“Inversion of
View-Control”,即“视图控制反转”,换言之:它能够把对“View(即UI视图)的控制力”注入到您的后台业务逻辑中。这样一来,您在编写业务逻辑的过程中,对View拥有足够的控制力,从而能够将展现层与业务逻辑完全的解耦。
IoVC方式下页面变得简单纯粹
在传统的编程模型下,页面美工通过网页设计工具“画”出页面,交给程序员加入绑定逻辑。这些经过加
工的页面,美工无法理解。需要改动展现时,要么程序员负责起维护展现内容,要么美工重新画出页面,
程序员重新绑定。而在IoVC的帮助下,页面美工只需要给每个构件设置一个id,程序员在后台的业务逻辑
中,便拥有对页面UI元素的完全控制力。Web页面在美工完成之后,程序员再也无需因为需求的变更,而 重新维护Web页面内容。
IoVC所做的是将一个活动的、易变的、复杂的交互逻辑用不同的视图表现出来,Model 和 View 都是对
同一个事物的不同表述,就象在工程制图中用三个二维视图描述一个三维实体一样。Model关心的是业务 逻辑,而
View关心的是展现逻辑,但他们都是为应用逻辑服务的,因此是对应用逻辑的投影,当应用逻 辑发生变化,它的两个投影也将同时发生变化。在传统的Web MVC中,Model 和 View
之间存在一些辅助 线,以帮助反映对逻辑实体的联动变化,IoVC去掉了这些辅助线,使整个架构更加简洁。
轻量敏捷的粘接器:LiteBean
Lite Bean,脱胎于JSF中的Managed Bean(托管Bean),却又远超过Managed Bean的功能范围,它是展现层与业务模型层的粘接器。
在AOM中,一个Lite Bean就是一个普通的POJO对象,它可以继承任何基类,也可以实现任何接口。而Lite Bean的声明与配置,遵循“Convention Over
Configuration(约定优于配置)”的原则,只需一个简单的Annotation声明,使程序员从繁重的XML文件中解脱出来。在Lite
Bean中,您可以编写、调用、组合任何后台的业务逻辑,同时,遵循IoVC的编程思想,也使您拥有对展现层的完全控制力。在LiteBean中,还可以注入任何其它资源,也可以再注入其它的Lite
Bean。Lite Bean同时还是AOM与Spring、EJB3等其它已有编程模型的粘接器,一个Spring对象或EJB 3对象,同时也可以成为一个Lite Bean,而一个Lite
Bean同时也能够轻松的被Spring对象或EJB
3对象所调用。通过LiteBean,能够使程序员基于IoVC拥有对展现层的完全控制力,又能任意的调用、组装任何的后台逻辑,从而使开发工作更为轻松,程序员能完全享受Web开发的乐趣。
内嵌高效灵活的动态语言:Elite
ELite是一个集命令式和函数式风格为一身的面向对象的程序设计语言,既有高阶函数、列表推导、模式匹配、延时求值等函数式语言所具有的语言特征,又具有和Java相近的语法结构。
与Java相比,ELite语法简单、高效,并且更加的面向对象。
ELite具有灵活可扩充的语法结构,可以构造出适合自己需要的领域特定语言。并且,ELite向其它领域扩展的能力是简单且强大的,您可以轻松的将其扩展至您自己的业务领域,如金融、财务、交通等各行业。
与其它动态语言相比(如Ruby),ELite能够与Java很好的集成。