欢迎投稿

今日深度:

Oracle免费的便捷Web应用开发框架二则(1)(2)

ADF

ADF有两大特色:

一是丰富的RIA组件,ADF有上百种UI组件。顺便说一下,我不是专门做前端的,接触过的RIA框架包括ADF、RichFaces、ExtJs、Dojo、JQuery UI等,但能给我惊艳感的只有ADF和ExtJs。也不是说其他的框架不好,只不过是后来视野开拓了,也就没啥感觉了。

二是可视化、声明式的开发方式,说白了就是在JDeveloper这个IDE中拖拖控件就能自动生成配置文件和代码。除了复杂的逻辑处理要写代码外,ADF将页面设计、导航、模型层数据绑定、数据持久层的操作都实现了控件化。在ADF之前,类似的技术我只做过ASP.NET开发,记得当年.Net 3.5刚用上Linq to SQL时还兴奋了好一阵,后来用上ADF,才知道一山还有一山高。

ADF的技术架构分三部分,如下图:

Oracle免费的便捷Web应用开发框架

ADF最上面的是ADF Faces和ADF Controller,这部分是基于JSF的技术。ADF Faces有上百种UI组件,大量使用了Ajax特性;组件内的facet嵌套其他组件可以添加更多功能;提供客户端和服务端API。ADF Controller对JSF Controller进行了扩展,首先是Task Flow增强了JSF导航控制,其次还对JSF的Lifecycle和Managed Bean Scope进行了增强。

ADF最下面是ADF Business Components(简称ADF BC),负责业务逻辑及ORM。

ADF Controller和ADF BC之间是ADF Model。ADF Model将ADF BC封装后暴露给UI使用,实现数据控制和数据绑定。除了ADF BC,ADF Model还支持EJB、Web Service等。

ADF使用类似AM-MVC的模式,在现在看来还是相当先进的。配合JDeveloper,开发过程极其流畅,确如我最初看到的教学视频那样,有些应用几乎可以做到无代码开发。

虽然ADF看上去似乎很美好,但我用下来觉得坑也不少。第一,ADF算是比较复杂的框架,它自身的文档就有上千页,但还不够,还需要了解一些JSF的基础知识。它属于那种表面上看上去很傻瓜,走下去才发现岔路越来越多,需要很长时间边学习边摸索,才能形成正确的开发模式和规范,即所谓的best practice。第二,对Java EE新版本支持问题。ADF是基于JSF的(ADF BC不算),但还停留在十年前JSF 1.2的时代,申明式开发大量使用xml配置文件(Java EE 6基本只用Annotation),还在使用JSF Managed Bean(Java EE 6是CDI Bean)。尽管ADF自成体系,但Java EE 6、7陆续加入的新功能和先进的开发模式都没法用上,实在是可惜。第三,ADF的开发环境还有待改进,JDeveloper占用资源比较多,特别是可视化的编辑界面,复杂的页面用i7的cpu还会卡顿。第四,还有bug。尽管这几年经过11g、12c中间好几个版本,但bug还是有。最新的12.1.3我还碰到了,甘特图的子任务显示问题,浪费了两天时间,无果,最终放弃。

所以,对想尝试ADF的朋友,我的忠告是坚持用上两个月,再判断它是否适合你。学习ADF另一个好处就是以后可以做Oracle其他应用的开发,Oracle已经把ADF作为它战略性开发框架,很多产品线已经替换成了ADF样式的界面。比如说SOA Suite中的Human Task就需要用ADF开发。

费用方面,ADF本身是免费的,但它只能部署到Weblogic,Weblogic不是免费的(跟APEX一个道理)。如果你想部署到免费的Application Server,比如Glassfish、Tomcat,用ADF Essential,ADF Essential阉割了Security这块,需要找自己解决或找第三方的方案。此外,还有个开源的、简化版本的ADF Faces捐献给Apache MyFaces。

ADF有三个比较有特色的兄弟,顺便介绍下:

1. JHeadstart – 根据模板生成ADF程序,简化开发工作。特别适合那些对界面设计没啥经验、太多组件导致选择恐惧症的人。

2. ADF Desktop Integration(简称ADF DI) - 前端这部分不用ADF Faces的Web界面,而是作为一个插件整合到Excel中,类似于C/S架构。因为企业内部有很多数据处理的工作,Excel比Web界面有优势。

Oracle免费的便捷Web应用开发框架

3. Mobile Application Framework(简称MAF) - hybrid移动应用开发框架,支持iOS和Andriod系统。跟IBM Worklight的hybrid框架类似,MAF应用像原生应用安装在设备上,但内部打包了一个JVM执行Java代码,用移动设备内部的浏览器显示 UI,用Apache Cordova调用设备内部的摄像头、GPS等服务。

Oracle免费的便捷Web应用开发框架

Oracle免费的便捷Web应用开发框架




www.htsjk.Com true http://www.htsjk.com/shujukukf/17674.html NewsArticle ADF ADF有两大特色: 一是丰富的RIA组件,ADF有上百种UI组件。顺便说一下,我不是专门做前端的,接触过的RIA框架包括ADF、RichFaces、ExtJs、Dojo、JQuery UI等,...
评论暂时关闭