Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

KScope18 presentation
Oracle Jet vs Oracle ADF or
Oracle Jet with Oracle ADF

Published in: Software
  • Be the first to comment

  • Be the first to like this


  1. 1. Oracle Jet vs Oracle ADF or Oracle Jet with Oracle ADF Eugene Fedorenko
  2. 2. About me Eugene Fedorenko Senior Architect Flexagon @fisbudo
  3. 3. Agenda •Oracle ADF vs Oracle Jet Battlefield •Differences •Similarities •Why should I care? •JS alternatives •Oracle ADF with Oracle Jet •Jet + ADF BC •Jet + ADF Faces + ADF BC •Jet + ADF Controller
  4. 4. Start
  5. 5. Oracle ADF
  6. 6. Oracle Jet
  7. 7. Oracle Jet
  8. 8. Oracle ADF vs Oracle Jet
  9. 9. Should I go with Jet? •Existing projects •Fresh look&feel •New Features •Hybrid •New project •Self-education
  10. 10. Jet vs ADF. Differences
  11. 11. Jet vs ADF. Differences Alta UI
  12. 12. Jet vs ADF. Differences
  13. 13. Jet vs ADF. Differences Jet ADF Open Source. No official support. Commercial. Official Oracle Support No Garanty of API stability API is mostly stable Code Focused Declarative approach Strong JS skills Basic Java skills. Strong ADF Skills Works on any web server Works on a set of certified application servers Can be easily combined with other web technologies Prefer to “own” the page
  14. 14. Jet vs ADF. Similarities •Powered by Oracle •Alta UI components base •DVT components •Accessibility support •Internalization •Work on Desktop and Mobile Web
  15. 15. Why? •Responsiveness •Many things happen on client •Leveraging of asynchronous calls •Web + Hybrid (Apache Cordova) •Same application for Desktop and for Mobile •iOS, Android, Windows 10 •Same set of skills for Desktop and for Mobile
  16. 16. Why? •Skills •JS is hot now •Resources •How many ADF developers are around? •How many JS developers are there?
  17. 17. Why? •ADF Releases • Aug 2017 • Oct 2016 • Jun 2016 • Oct 2015 •Oracle Jet releases •5.0.0 Apr 2018 •4.2.0 Feb 2018 •4.1.0 Nov 2017 •4.0.0 Sep 2017 •3.0.0 Mar 2017
  18. 18. So should we go with JS?
  19. 19. Sure about Oracle Jet? •There are alternative JS tools •Oracle Forms -> Oracle ADF/MAF -> Oracle Jet -> ? •Open Source •Powered by Oracle •Free •No official support •Not a framework but a toolkit •Really?
  20. 20. Alternatives
  21. 21. React •Born in Facebook •Lightweight library •Reusable components •Virtual DOM •Clean Abstraction •Great Developer Tools •React Native •Develop NATIVE apps for iOS and Android
  22. 22. Vue.js •The trendiest project of the year •Small learning curve •Well defined ecosystem •router: vue-router •State management: Vuex •Single file components •template, logic, styles •Real open source project
  23. 23. AngularJS •Complete client-side solution •Data Binding •Controller •Deep Linking •Form Validation •Directives •Reusable Components •Dependency Injection •Apache Cordova for hybrid mobile apps
  24. 24. Cases to go •Existing project •New projects •Hybrid applications
  25. 25. Jet + ADF BC
  26. 26. Jet + ADF BC •Pros •Simple architecture •Reuse •Knowledge/Experience •Core BC implementation •Cons •Not as easy as it looks •…
  27. 27. Jet + ADF BC. Business Services. •Stateful -> Stateless •Different UI design •Reconsider/rebuild services •State •Transaction management •Current row •Pagination
  28. 28. Jet + ADF BC. Business Services.
  29. 29. Jet + ADF BC. AM Pool Settings. •Referenced Pool Size is ignored •AM pooling matters •jbo.doconnectionpooling ON •Disconnect AM Upon Release ON •Reset Non-Transactional State Upon Unmanaged Release ON
  30. 30. Jet + ADF BC. Security. •JET/JS based UI has a broader attack surface •Multiple service endpoints to consider •The model layer will have to be more robust •Checking of all inputs for SQL-injection •The data is now visible •All UI logic is visible
  31. 31. Jet + ADF BC. Hardware. •Stateful -> Stateless •CPU + •Memory - •Server centric -> Client Centric •Back to thick client architecture •Server - •Client +
  32. 32. Jet + ADF BC. JVM Tuning. •Less long living objects •Large Nursery •Small Tenure
  33. 33. Jet + ADF Faces + ADF BC. Separate pages.
  34. 34. Jet + ADF Faces + ADF BC. Separate pages. •Pros •Clean architecture design •Different UI for different use cases •Separate entry points •Cons •Think twice on security, internalization, etc. •More complex DevOps procedures
  35. 35. Jet + ADF Faces + ADF BC. Same pages.
  36. 36. •Pros •Suitable for portals and dashboards •Reuse Jet components •Cons •Two different ADF BC transactions •Separate caches •Separate user context •JSF lifecycle •Not compatible with ADF PPR •Incompatible Drag&Drop Jet + ADF Faces + ADF BC. Same pages.
  37. 37. Jet + ADF Faces + ADF BC. Same pages.
  38. 38. Jet + ADF Faces + ADF BC. Same pages.
  39. 39. •Pros •Same ADF BC transaction •REST API is not involved •Cons •JSF lifecycle •Not compatible with ADF PPR •Incompatible Drag&Drop Jet + ADF Faces + ADF BC. Same pages.
  40. 40. Jet + ADF Controller.
  41. 41. Jet + ADF Controller. •Pros •Task Flows in Oracle JET •Cons •Complicated •Heavy •Stateful •Tightly coupled Client and Server
  42. 42. ADF + Back End
  43. 43. ADF + Back End •Pros •Lower risk •Focus on back-end •Cons •Way more expensive than classic ADF BC way •Data Controls challenge •REST Data Control •ADF BC on top of WS •Bean data control on top of WS or Rest DC
  44. 44. Q&A