Oracle ADF 11g 在 Java EE 框架中处于什么位置?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3530942/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 21:20:00  来源:igfitidea点击:

Where does Oracle ADF 11g stands among Java EE Frameworks?

oraclejsfjakarta-eeoracle11goracle-adf

提问by Walker

This is a two part question:

这是一个两部分的问题:

I would like to know where does Oracle ADF 11g stand as a framework to develop / deploy Web / Java EE Applications as compared to other frameworks. How much is Oracle ADF being used as a framework to Develop Web Applications. I am asking from a perspective that whether or not there are good job opportunities as an Oracle ADF Developer and what the future looks like for those holding Oracle ADF skills.

我想知道与其他框架相比,Oracle ADF 11g 作为开发/部署 Web/Java EE 应用程序的框架处于什么位置。Oracle ADF 被用作开发 Web 应用程序的框架有多少。我从一个角度询问是否有 Oracle ADF 开发人员的好工作机会,以及那些拥有 Oracle ADF 技能的人的未来是什么样的。

Also as Oracle plans to use ADF as core technology for Fusion Applications, Is it good time to build Oracle ADF skills as a siebel developer? As the future Oracle CRM Applications like ERP, SCM will be based on ADF should developers start building ADF skills. Around when will customers start implementing those applications based on ADF. Will these be available On Premise or mostly On Demand in SaaS way.

此外,由于 Oracle 计划使用 ADF 作为 Fusion Applications 的核心技术,作为 siebel 开发人员,现在是培养 Oracle ADF 技能的好时机吗?作为未来的 Oracle CRM 应用程序(如 ERP),如果开发人员开始构建 ADF 技能,SCM 将基于 ADF。客户大约什么时候开始基于 ADF 实施这些应用程序。这些是以 SaaS 方式提供的内部部署还是主要按需提供。

回答by VDest

We have chosen Oracle ADF in our company for one of our projects. Sadly, this proved to be a big mistake. I personally have used Oracle products, in particular their DB, but as far as fusion middleware is concerned, I would advise you to stay away from it. ADF was by far the worst framework I have ever used as an architect. Some of its features I noticed are: very complex, Oracle just "invents" or forces some development approaches that have been proven as a bad practice by the Java community years ago. ADF is very slow compared to other frameworks. With being slow I mean ADF pages run slow. The reason for this is extremely complex generated html and javascript. You can check this by opening up Firebug and inspecting the generated html...it looks like something from the 90s...Terrible. Not to be overly pedantic, but ADF pages have huge amounts of validation errors causing problems in making them run on all browsers. The architecture of ADF is, in my view, messy. Struts2 for example is a much cleaner framework which makes it very easy to integrate it with 3rd party libraries such jQuery, etc. Oracle advocates ADF as an MVC framework but frankly I failed to see the actual MVC architecture there. ADF uses its own javascript libraries, which are huge, practically impossible to modify, unoptimized and slow in comparison to others such as jQuery or Prototype. The emerging trends in J2EE are lightweight pluggable frameworks that are easily integrated with other tools such a Spring for managing dependencies, jQuery for scripting, CC for continuous integration. ADF is a heavy-weight tightly-integrated framework with other ORacle tools, which makes it very difficult to use it any other way than Oracle devised.

我们在公司中选择了 Oracle ADF 作为我们的项目之一。可悲的是,事实证明这是一个很大的错误。我个人使用过Oracle产品,尤其是他们的DB,但就Fusion中间件而言,我建议你远离它。ADF 是迄今为止我作为架构师使用过的最糟糕的框架。我注意到它的一些特性是: 非常复杂,Oracle 只是“发明”或强制执行一些开发方法,这些方法多年前已被 Java 社区证明是一种不好的做法。与其他框架相比,ADF 非常慢。缓慢是指 ADF 页面运行缓慢。这样做的原因是生成的 html 和 javascript 极其复杂。您可以通过打开 Firebug 并检查生成的 html 来检查这一点……它看起来像是 90 年代的东西……太糟糕了。不要过于迂腐,但是 ADF 页面有大量的验证错误,导致在所有浏览器上运行时出现问题。在我看来,ADF 的架构很混乱。例如,Struts2 是一个更简洁的框架,可以很容易地将它与 jQuery 等 3rd 方库集成。Oracle 提倡 ADF 作为 MVC 框架,但坦率地说,我没有看到那里的实际 MVC 架构。ADF 使用自己的 javascript 库,与 jQuery 或 Prototype 等其他库相比,这些库非常庞大、几乎无法修改、未优化且速度较慢。J2EE 的新兴趋势是轻量级的可插拔框架,它们可以轻松地与其他工具集成,例如用于管理依赖项的 Spring、用于脚本编写的 jQuery、用于持续集成的 CC。ADF 是与其他 ORacle 工具紧密集成的重量级框架,

Not to mention the development tools that you are forced to used when developing ADF - the JDeveloper which is very buggy and crashes regularly. Developing in Eclipse is problematic, because ADF has numerous "specific" files which JDeveloper generates automatically.

更不用说您在开发 ADF 时被迫使用的开发工具 - JDeveloper 有很多错误并且经常崩溃。在 Eclipse 中进行开发是有问题的,因为 ADF 有许多 JDeveloper 自动生成的“特定”文件。

All in all...ADF was a huge disappointment for us. We spent months messing with it, when finally our client decided the application was too slow and difficult for them to support it and the cancelled it altogether.

总而言之……ADF 令我们非常失望。我们花了几个月的时间来处理它,最后我们的客户认为该应用程序太慢且难以支持,并完全取消了它。

Based on my experience i can only say stay away from it. Choose one of the more supported and architecturally clean solutions such as Struts2 or Spring.

根据我的经验,我只能说远离它。选择一种更受支持且架构清晰的解决方案,例如 Struts2 或 Spring。

回答by J Slick

I have used JDeveloper 10 and 11, both with ADF, on two enterprise ADF projects for a prominent defense contractor. I agree that ADF is complex, but disagree that JDev crashes frequently, or that the pages are slow to render.

我已经将 JDeveloper 10 和 11 都与 ADF 一起用于一个著名国防承包商的两个企业 ADF 项目。我同意 ADF 很复杂,但不同意 JDev 经常崩溃,或者页面渲染缓慢。

Now... why ADF? Read Oracle's synopsis below, stating that JDeveloper and ADF make Java EE development more accessible to "business" programmers. While this does not guarantee elegant programs, it does almost certainly guarantee that, when these developers get into trouble with ADF, they will probably be utterly lostand will have little idea how to open the hood and reach inside. Conversely, they would be lost even sooner trying to integrate the current J2EE open-source cornucopia.

现在……为什么是 ADF?阅读下面的 Oracle 概要,其中指出 JDeveloper 和 ADF 使“业务”程序员更容易进行 Java EE 开发。虽然这并不能保证程序优雅,但几乎可以肯定的是,当这些开发人员遇到 ADF 问题时,他们可能会完全迷失并且不知道如何打开引擎盖并进入内部。相反,如果他们试图集成当前的 J2EE 开源聚宝盆他们会更快地迷失方向



THE SERMON Source: ADF Developer's guide (paraphrased)

SERMON 资料来源:ADF 开发人员指南(释义)

"Since the early Java days in the late 1990's , the Jave enterprise platform has grown massively and today is used by a large community of developers. However, the developer community is not homogenous and includes developers who are not expert Java programmers, but are business developers who have core competencies in their industries. As the Java EE platform and community grows, the average programmer skill level is declining.

“从 1990 年代后期的 Java 早期开始,Jave 企业平台已经大规模发展,今天被大量开发人员社区使用。但是,开发人员社区不是同质的,包括不是专业 Java 程序员,而是业务的开发人员拥有所在行业核心能力的开发者, 随着Java EE平台和社区的壮大,程序员的平均技能水平在下降

It's hard to imagine that there is a single developer who understands all aspects of the Java EE platform in depth. The problem to address in Java EE is to provide a technology that empowers developers to build cutting edge web and SOA app's without limiting their agility.

很难想象会有一个开发人员深入了解 Java EE 平台的方方面面。Java EE 中要解决的问题是提供一种技术,使开发人员能够在不限制其敏捷性的情况下构建尖端的 Web 和 SOA 应用程序。

Existing Java frameworks such as Struts, Spring, JSF, EJB, GWT, etc are blankets pulled over areas of complexity that expose simpler controls to work with. Using frameworks, developers no longer work with the java core API's but instead interact with interfaces and services exposed by the framework.

现有的 Java 框架,如 Struts、Spring、JSF、EJB、GWT 等,都是覆盖了复杂领域的毯子,这些领域暴露了更简单的控件可以使用。使用框架,开发人员不再使用 java 核心 API,而是与框架公开的接口和服务交互。

Blah, blah, blah...

等等等等等等...

What seems a small problem for experienced java developers is another hurdle for business developers who are new to java and EE development. This type of developer may turn to a a single dev environment promising integration of all aspects of app development in a single technology chouice. Developers from a 4GL desktop dev background might be attracted by PLSQL, .NET, Adobe Flash.

对于经验丰富的 Java 开发人员来说似乎是一个小问题,对于 Java 和 EE 开发新手来说,这却是另一个障碍。这种类型的开发人员可能会转向一个单一的开发环境,承诺在单一技术选择中集成应用程序开发的所有方面。来自 4GL 桌面开发背景的开发人员可能会被 PLSQL、.NET、Adobe Flash 所吸引。

An experienced Java developer might see this a a big mistake, but how would those developers know, unless Java too provides a single solution for them? The solution is an end-to-end framework which pulls another blanket over the technologies, one that combines different framewokrs and technologies into a single product that exposes visual and declarative development gestures as it's predominant programming methodology... ADF."

有经验的 Java 开发人员可能会认为这是一个大错误,但除非 Java 也为他们提供了单一解决方案,否则这些开发人员怎么会知道呢?该解决方案是一个端到端框架,它为技术提供了另一套毯子,将不同的框架和技术组合到一个产品中,该产品公开了可视化和声明式开发手势,因为它是主要的编程方法……ADF。”

回答by nix

My perception of and experience with ADF is that it is a very solid and robust framework (unfortunately, the development tools are not.) I'm not sure there's much competition to it, at least, not from a single framework. ADF itself is really several different frameworks combined over the years into a mostly cohesive product. Now that Oracle owns Java, i really expect (hope) parts/much of ADF finds its way into Java EE-proper so we can maybe see alternative implementations and better development tools. If that were to happen, it'd pretty well solidify ADF's future (as long as Oracle doesn't screw the Java community in the meantime and push them to alternative VM platforms).

我对 ADF 的看法和经验是它是一个非常可靠和健壮的框架(不幸的是,开发工具不是。)我不确定它是否有很多竞争,至少不是来自单个框架。ADF 本身实际上是多年来将几个不同的框架组合成一个非常有凝聚力的产品。现在 Oracle 拥有 Java,我真的希望(希望)ADF 的一部分/大部分能够进入 Java EE-proper,这样我们也许可以看到替代实现和更好的开发工具。如果发生这种情况,它将很好地巩固 ADF 的未来(只要 Oracle 同时不破坏 Java 社区并将它们推向替代 VM 平台)。

If you are already familiar with or want to work with Oracle(-related) products, ADF is what you want. Given the market penetration of Oracle, it's probably a reasonable bet that they'll remain dominant and your skills will remain marketable for years to come. Oracle is spending lots of money and acquiring lots of companies to try to own and retain the enterprise.

如果您已经熟悉或想使用 Oracle(相关)产品,ADF 就是您想要的。鉴于 Oracle 的市场渗透率,可以合理地打赌,他们将保持主导地位,并且您的技能将在未来几年保持市场销售。甲骨文正在花费大量资金并收购许多公司,以试图拥有和保留这家企业。

The SaaS question, to me, is a little harder to answer. While it does seem to be moving in that direction, it's not clear to me if it's mostly marketing's attempt to give it that push or if business-need is driving it. And there are lots of questions i don't really track such as business trust of the cloud for critical data and reliability.

对我来说,SaaS 问题有点难回答。虽然它似乎确实在朝着这个方向发展,但我不清楚这主要是营销试图推动它还是业务需求正在推动它。还有很多我没有真正跟踪的问题,例如云对关键数据和可靠性的业务信任。

回答by Amaan Junaid

I have been working with ADF since last 6 months, and i realise that ADF is made particularly large application with strong database integration. I haven't seen any other Framework which can provide you with so fast and easy development of database rich applications.

自过去 6 个月以来,我一直在使用 ADF,我意识到 ADF 是具有强大数据库集成的特别大的应用程序。我还没有看到任何其他框架可以为您提供如此快速和轻松的数据库丰富应用程序开发。

Yes i agree that it have some bugs, but still it works well if you know how to work with it.

是的,我同意它有一些错误,但是如果您知道如何使用它,它仍然可以很好地工作。

回答by Nagh

Short answer:

简答:

  • You developing Enterpise solution, your product vendor is Oracle - ADF is a best choice
  • You indie developer, your solution is not for enterprise, you not going to use other products in the Oracle stack - ADF is not for you, look for another framework.
  • 您在开发企业解决方案,您的产品供应商是 Oracle - ADF 是最佳选择
  • 您的独立开发人员,您的解决方案不适合企业,您不会使用 Oracle 堆栈中的其他产品 - ADF 不适合您,请寻找其他框架。

Long answer:

长答案:

If you going to Enterprise, if your general product's stack vendor is Oracle. Your best choise is to go along with ADF. ADF becomes better with each major release. I've started using ADF since 11.1.1.2, had a look at 10.x and now using 12.1.3, while still supporting large enterprise applications on 11.1.1.6.

如果你去企业,如果你的通用产品的堆栈供应商是甲骨文。您最好的选择是使用 ADF。ADF 在每个主要版本中都会变得更好。我从 11.1.1.2 开始使用 ADF,查看了 10.x,现在使用 12.1.3,同时仍然支持 11.1.1.6 上的大型企业应用程序。

I see a huge improvement and its really hard to find another product that provide better integration and support for whole Oracle stack.

我看到了巨大的改进,而且真的很难找到另一种产品来为整个 Oracle 体系提供更好的集成和支持。

However, if you quite familiar with other framework or/and not going to use other Oracle products and/or your customers can't afford to pay quite a lot for ADF/Weblogic/DB/ECM etc.. - your best choise is to avoid ADF. Its good for large enterprise solutions.

但是,如果您非常熟悉其他框架或/并且不打算使用其他 Oracle 产品和/或您的客户无法为 ADF/Weblogic/DB/ECM 等支付大量费用。 - 您最好的选择是避免 ADF。它适用于大型企业解决方案。

Yes, in fact actually you can develop using free and limited version of ADF - Essentials, use other app server as tomcat or glassfish, but you'll be better off with the other framework. ADF Essentials is only kickstart to large enterprise world, not a solution for small lightweight application.

是的,实际上您可以使用免费和受限版本的 ADF - Essentials 进行开发,使用其他应用程序服务器作为 tomcat 或 glassfish,但使用其他框架会更好。ADF Essentials 只是大型企业世界的启动项,而不是小型轻量级应用程序的解决方案。

回答by The Mitra Boy

Development in ADF is a pain in the heart. For a newcomer, the learning curve is too steep. I wish it could be more like learning dot NET.

ADF 的发展是一种心痛。对于新手来说,学习曲线太陡峭了。我希望它更像是学习 dot NET。

From my perspective, learning and constructing a functionality in dot NET takes a quarter of the time to do the same in ADF. Of course, it imbalance reduces as a person learns along, but that's pretty much the scenario for beginners. It's frustrating.

从我的角度来看,在 dot NET 中学习和构建功能需要四分之一的时间在 ADF 中完成相同的操作。当然,随着一个人的学习,它的不平衡会减少,但这几乎是初学者的场景。这令人沮丧。

回答by Aravinda Meewalaarachchi

I have been working with ADF since last 3 months, and i can tell you that ADF is a really suitable for situations which is essential to provide fast development process for large enterprise applications with strong database integration.

自过去 3 个月以来,我一直在使用 ADF,我可以告诉您,ADF 非常适合用于为具有强大数据库集成的大型企业应用程序提供快速开发过程必不可少的情况。

Compairing to other JavaEE framworks like Spring,

与 Spring 等其他 JavaEE 框架相比,

  • It is extremely complex when fixing bugs becasue of the architechtur of the ADF and lack of dev community relative to Spring. Spring has large development community around the framework.

  • It is hard to impliment MVC architecture with the ADF inter component integrations.

  • Spring Developers have much more reputation and demand compared to ADF developers.

  • ADF is very slow, heavy-weight, tightly-coupled compared to Spring and integrated framework with Oracle tools.

  • 由于 ADF 的架构和缺乏相对于 Spring 的开发社区,修复错误时非常复杂。Spring 围绕该框架拥有庞大的开发社区。

  • 很难用 ADF 组件间集成来实现 MVC 架构。

  • 与 ADF 开发人员相比,Spring 开发人员的声誉和需求要高得多。

  • 与 Spring 和 Oracle 工具的集成框架相比,ADF 非常缓慢、重量级、紧密耦合。

Hope this will help you to solve your problem and gain your knowledge. Happy coding!!!

希望这能帮助您解决问题并获得知识。快乐编码!!!