我的公司目前正在向Oracle过渡,以取代我们传统的供应链管理系统。
过渡的一部分将涉及评估是否使用Oracle ADF。这方面的主要业务驱动力是它在Oracle的旗帜下。传统上,我们所有的web应用程序都是使用SpringMVC编写的,但我们想评估(在最初的学习曲线之后)使用ADF交付位于Oracle堆栈之上的应用程序是否更快。
我们正在运行Oracle 11g,因此认为我们将被限制为ADF 11g。我看过ADF 12c的在线演示,但在11g上没有那么多。
问题:
- 是否有一个矩阵来比较11g以上的ADF和12c以上的ADF
- 你用12c还能得到什么?如果我们用11g,我可能会错过什么
- ADF如何与现代编码技术(如TDD/Continuous Integration/Maven Repository)集成?我在演示中看到的所有项目看起来都有一个扁平的结构,测试似乎是次要的
我在网上搜索了一些建议和比较,但都无济于事。ADF整体上缺乏像样的资源和论坛活动也有点令人担忧!
编辑日期:2015年11月28日:感谢到目前为止的所有回复。。。非常感谢。
关于11g和12c的辩论。我们使用的是Oracle Retail 14.1.1,可能有人建议我们必须使用ADF 11g,因为许多属于Oracle Retail的软件都是11g(见下表)。我理解ADF 12c应该在11g数据库上工作,那么仅仅与Oracle零售的其他部分集成是个问题吗?对于Oracle零售业的其他部门,我远非专家。
Oracle零售发布版本14.1.1
数据库12.1
Fusion中间件:
ADF 11.1.1.7
OAM 11.1.2.2
OID 11.1.1.7
WebLogic服务器10.3.6
OBIEE,ODI 11.1.1.7
Forms Server 11.1.2.2
SOA套件11.1.1.7
WebCenter Suite 11.1.1.9.0
我一直在使用11g和12c,我不得不说,从开发的角度来看,12c(12.2.1.0.0)带来了生产力的提高。我不明白为什么现在有人会从11克开始。
民主同盟军最大的弱点来自于一个奇怪的框架。我习惯于相对轻松地从一个java web框架跳到另一个。民主同盟军的情况并非如此。尽管你看起来有一个相当轻松的开始,但过一段时间后事情可能会变得棘手。
关键要素是了解业务组件背后的力量,不幸的是,这是ADF中最不了解的要素。在我的一生中,我从未见过比其他框架更糟糕的代码。但是,一旦正确理解,在复杂的UI、数据输入屏幕和复杂的查询方面,ADF远远高于我所知道的Java中的任何框架。
建议:在没有经过验证的ADF生产经验的开发人员的情况下,不要启动您的项目。周围有很多经验丰富的ADF顾问,他们可能有点贵,但其中一个可以为您节省50%的开发预算。
我想你已经看到这个页面和这个页面了吗?ADF不依赖于DB版本(在一定程度上),因此您当然可以对11g的DB使用ADF 12c。查看认证矩阵以获得有关支持的数据库版本的指导。Oracle DB 10、11和12都由12c支持。您肯定希望使用当前的生产12(12.2.1)。这些链接将概述12c中的新功能。
此外,考虑到ADF企业方法论小组,并在那里提问。不知道你所说的"缺乏像样的资源"是什么意思。除了大量的文档外,Youtube ADF频道还有许多录制的教程、博客、书籍和深入、全面的培训。看看我的聚合网站,看看还有什么。
想想看,ADF最大的客户是Oracle本身。所有Oracle工具、控制台等,包括Fusion Applications,这是一项比你可能计划的任何东西都要大得多的开发工作,都是基于ADF的。
ADF提供了两种不同的与数据库交互的方式(JPA和Business Components,JDeveloper内置了声明性工具支持),以及创建和使用SOAP和REST的本地支持。它的数据控制数据抽象层使连接和使用后端服务和数据源变得更容易。还有对eclipse的工具支持。此外,移动产品允许使用与ADF Desktop类似的概念开发iOS和Android的混合应用程序。据我所知,这是唯一一个端到端无缝集成的框架,不需要将来自不同供应商的不同部分拼凑在一起,并希望使其以连贯的方式协同工作。
有学习曲线吗?当然,任何新的框架都是如此。ADF是一个框架,和任何框架一样,它要求你按照"他们的方式"来做它还内置了对git、maven和持续集成的支持。
我认为这是一个很好的开始。还可以考虑派一名开发人员参加为期五天的在线培训课程,以更全面地评估产品(上面的链接)。此外,我建议你也看看ADF的youtube视频。
我恭敬地不同意马库斯的观点。1.不知道他说的"怪异"是什么意思。具有JEE经验的开发人员(servlet、JSP、JSF、JavaBeans、ORM)会发现框架中已经有许多熟悉的东西和许多重复的、可预测的代码,这使他们更容易专注于逻辑和功能,而不是基础设施和管道。