分享

Web开发敏捷之道

 sumi2005 2012-04-09

在基于构件应用开发中,事件机制有着举足轻重的作用。但在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技术带来的无疑是喜悦,因为它大大改善了Web应用的人机体验。但对于开发者来说,AJAX却是一把难以驾驭的双刃剑,甚至是沉重的负担。基于AJAX的RIA技术,事实上是将JavaScript、XML、DHTML、CSS等传统技术拼凑在一起的组装式技术,难以形成一种较高层次的解决方案。并且,浏览器开发技术与服务器端开发技术大相径庭,要把AJAX运用自如,通常来说必须具备专门的浏览器端开发力量,这无疑是一种资源的巨大浪费。

  AOM,提供了原生AJAX支持的JSF引擎,从而使AJAX的开发成本降为零!基于Apusic OperaMasks开发的业务系统,程序员无需再关注什么是AJAX,开发出来的应用是自然而然的具备AJAX特性的应用;甚至于任何标准的JSF系统,迁移到AOM之上时,只需更改一个参数,即可拥有完整的AJAX特性!

  奥秘何在?在AOM中,程序员只负责通过摆放构件组成Web页面,无需负责拼凑HTML响应。 所有构件都由AOM引擎负责渲染成展现层语言。通过选用不同的渲染器,就可以为同一套构件生成不同的响应内容,可以是基本的HTML,也可以是支持AJAX的JavaScript、JSON、XML等内容。AOM既提供了HTML渲染器,又提供了AJAX渲染器,这样,与AJAX相关的开发工作量就被封装到渲染器中,转移到了引擎开发者和构件开发者的身上。对于应用开发人员,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

  Java,曾经被称之为史上最优雅的语言,吸引了诸多程序员的目光,目前已经成为世界上使用率最高的语言。但在Web 2.0浪潮的冲击下,在“简单、轻量、敏捷”压倒一切的态势下,Java也渐显疲态,日益臃肿与复杂起来。人们既希望拥有Java语言自身的强大、健壮与稳定,又期望拥有类似于Ruby等动态语言的敏捷、高效与灵活。由金蝶中间件公司自主研发并拥有完全自主知识产权的一种全新的动态语言,ELite,能够使您鱼与熊掌二者兼得。

  ELite是一个集命令式和函数式风格为一身的面向对象的程序设计语言,既有高阶函数、列表推导、模式匹配、延时求值等函数式语言所具有的语言特征,又具有和Java相近的语法结构。

  ■ 与Java相比,ELite语法简单、高效,并且更加的面向对象。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多