【问题标题】:When to use JPA/EJB and JSF when building apps in oracle adf在 oracle adf 中构建应用程序时何时使用 JPA/EJB 和 JSF
【发布时间】:2013-12-30 23:13:56
【问题描述】:

我需要一些关于 ADF 框架和应用程序/项目类型的信息。我正在将现有的 Oracle Forms 6 应用程序重写为 Java J2EE 应用程序。我正在探索 Oracle ADF 框架以及其他框架,例如带有 jsf 的 struts 2 和带有 jsf 的 sping & hibernate。

这是我的新应用程序的要求。

  • 3 层架构应用程序
  • 需要丰富的 UI 功能,例如动态表格、图表、从表格导出文件等。
  • 使用现有的数据库表查看、编辑和保存数据
  • 灵活设计以更改、编辑或添加新页面和业务逻辑
  • 支持业务规则
  • 添加的灵活性将某些业务服务公开为 Web 服务
  • 支持大型数据库表的 crud 操作
  • 支持使用 oid 和 ldap 的 https

我有几个问题。

1) 您是否推荐 Oracle ADF?

2) oracle ADF 框架是否支持上述所有要求?

3) 我在 Oracle 网站上找到了“使用 Oracle ADF 进行开发”和“使用 JPA/EJB 和 JSF 进行 Oracle ADF”的教程。哪一个更适合我的需求?何时在 ADF 应用程序中使用 JPA/EJB?

我们非常感谢您对上述内容的任何见解。提前致谢。

【问题讨论】:

    标签: java jsf jakarta-ee oracle-adf


    【解决方案1】:

    这是我的看法:

    三层架构应用

    任何基于 Java EE 或 Spring 的应用程序都可以满足这一点。 Spring 将迫使您将应用程序分层。

    需要丰富的 UI 功能,例如动态表格、图表、文件导出 从表等......

    您更有可能使用来自 jQuery、d3 和其他基于 JavaScript 的库的 UI 表单元素来获得这些。框架不会限制您的选择。

    使用现有的数据库表来查看、编辑和保存数据

    JDBC 或基于它构建的任何东西(JPA、Hibernate 等)将使这成为可能。

    用于更改、编辑或添加新页面和业务逻辑的灵活设计

    没有任何框架能让这一切变得简单。无论如何,您都必须得到铲子并完成工作。

    支持业务规则

    您可以通过多种方式表达业务规则:代码、状态机、Rete 规则引擎。你要哪一个?

    添加将某些业务服务公开为 Web 的灵活性 服务

    无论框架选择如何,您都可以执行此操作。 Spring 具有良好的契约优先,基于 xsd 的 Web 服务远程处理。

    支持大型数据库表的crud操作

    大是无关紧要的。 JDBC 允许 CRUD。

    支持使用 oid 和 ldap 的 https

    我看不出 HTTPS 与 LDAP 有什么关系。

    你的问题对我来说并不意味着高级 Java 人员。

    我不会推荐 Struts 或 JSF。两者都是不适合移动平台的 90 年代技术。世界正朝着 HTML5、CSS3、JavaScript 发展。我建议你也这样做。

    如果你想使用 Spring,我会坚持使用他们的 Web MVC。它优于 Struts 和 JSF,并且您可以获得 Spring 提供的所有其他好东西(例如 DI 和 AOP)。

    我个人认为对 Oracle ADF 的关注太强烈了。它与 Oracle Forms 曾经做的一样多地将您联系在一起。

    我会根据 Web 服务、REST 或 SOAP 以及灵活的 UI 来考虑这一点。将前端和后端完全解耦。 UI 来来去去,但适合您的业务流程的良好服务模型,在适当的粒度级别上,将持续一段时间。

    【讨论】:

    • 谢谢。您是否实施过任何 Oracle ADF 应用程序?我从研究中发现,使用 ADF 可以满足我几乎所有的要求。我希望找到有人分享他们在 ADF 中实施的经验,特别是大型和数据驱动的应用程序。我在前端使用过 Icefaces (JSF2) 和 Ext JS,在后端使用过 Spring、Hiberate、Ibatis。
    • 就我个人而言,我倾向于 Primefaces、Spring 和 Hibernate 应用程序,但客户是一家大型 Oracle 商店,拥有大量数据驱动(每个表中有数百万条记录)遗留(Oracle 表单)应用程序,需要进行现代化改造,他们倾向于 ADF 框架。
    • 自 2005 年以来写了很多 Java,尤其是 Spring。无论如何,你的客户想要什么。当他们想要再次撕掉所有这些烂摊子时,您将保证再次参与。
    【解决方案2】:

    ADF 的一个好处是它是一个集成产品,所有部件都设计为适合 JDeveloper 内置的工具并与之协同工作。没有真正的设置或必须“让事情一起工作”。它确实如此,OOTB。 其他解决方案将需要或多或少地进行一些“拼凑”。 ADF 完全集成了从数据源(RDB、WS、POJO、EJB 等)到 UI。 此外,您使用的任何 3rd 方 fwk 都会导致搭配。 ADF 将您与 Java 联系在一起,但这不如使用专有 PL/SQL 的 Forms 强大。

    ADF Faces 基于但扩展了 JSF,这几乎不是 90 年代的技术,于 2004 年推出。此外,它可以根据需要轻松与 JS 库一起使用。我建议你看看 ADF 的成功stories。 Oracle 使用 ADF 构建了一套全新的业务应用程序。他们从字面上把公司押在了这上面。怀疑他们会用二流、不合格的技术做到这一点。

    ADF BC 的工具支持比 JPA 更好 - 但两者都可以使用。此外,ADF Faces 支持从相同的 UI 设计开发和部署到 iOS 或 Android。不确定还有其他 fwk 可以这么说。 是的,ADF 支持您的所有要求。 托管在社区版 glassfish 上的 ADF Essentials 是免费的。

    link 与:JPA 或 ADF BC 对话。

    【讨论】:

    • 谢谢乔。这就是我一直在寻找的。 ADF 是否满足我的要求,如果可以,从 ADF BC (BC4J) 与 EJB/JPA 中选择什么。
    • 我也发现了这个blog.whitehorses.nl/2012/03/26/adf-11g-bc4j-or-ejb3。在我们的例子中,主键关系在基于旧表单的应用程序的表上没有很好地定义。有 30 种具有复杂业务规则和验证的表单。你推荐 ADF BC 而不是 JPA?
    • 取决于开发者背景。 ADF BC 是为不了解 java 的 4gl 开发人员设计的,基本上是 - Forms、Siebel、PPsoft。 JPA 适用于那些了解 Java 并且可以在类和集合以及 OQL 中工作的人,恕我直言。我对两者都很好,并且在某些方面 JPA 对我来说更容易并且可能更快,因为它位于 toplink 社区版。但是,ADF BC 的工具支持更好,BC 是 Fusion Apps 编写的,一旦“得到它”,就会对验证、LOV 和复杂模型提供更多支持。
    • 此外,将 DB 更改向上迁移到模型层比 JPA 更容易且“自动”。 BC 支持将 db 结构与 BC 模型同步。假设没有广泛的根结构数据库更改 - 迁移到模型,然后迁移到数据控件和页面上都是声明性的,都是自动的并且非常快。就像几分钟一样快。不确定JPA是否可以这样说。如果您要走 ADF 路径,请查看我提供给学生的网站上的添加链接。
    • 开始的好地方:sites.google.com/site/joeztechland/Home/adf-linkssites.google.com/site/joeztechland/adf-information-sources/…。那里有很多好东西可以帮助您入门。加上甲骨文将在这里。其他 3rd 第三方附加供应商也可以这样说吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2012-01-19
    相关资源
    最近更新 更多