Oracle Jet vs Oracle ADF or
Oracle Jet with Oracle ADF
Eugene Fedorenko
About me
Eugene Fedorenko
Senior Architect
Flexagon
adfpractice-fedor.blogspot.com
@fisbudo
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
Start
Oracle ADF
Oracle Jet
Oracle Jet
Oracle ADF vs Oracle Jet
Should I go with Jet?
•Existing projects
•Fresh look&feel
•New Features
•Hybrid
•New project
•Self-education
Jet vs ADF. Differences
Jet vs ADF. Differences
Alta UI
Jet vs ADF. Differences
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
Jet vs ADF. Similarities
•Powered by Oracle
•Alta UI components base
•DVT components
•Accessibility support
•Internalization
•Work on Desktop and Mobile Web
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
Why?
•Skills
•JS is hot now
•Resources
•How many ADF developers are around?
•How many JS developers are there?
Why?
•ADF Releases
•12.2.1.3.0 Aug 2017
•12.2.1.2.0 Oct 2016
•12.2.1.1.0 Jun 2016
•12.2.1.0.0 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
So should we go with JS?
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?
Alternatives
React
•Born in Facebook
•Lightweight library
•Reusable components
•Virtual DOM
•Clean Abstraction
•Great Developer Tools
•React Native
•Develop NATIVE apps for iOS and Android
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
AngularJS
•Complete client-side solution
•Data Binding
•Controller
•Deep Linking
•Form Validation
•Directives
•Reusable Components
•Dependency Injection
•Apache Cordova for hybrid mobile apps
Cases to go
•Existing project
•New projects
•Hybrid applications
Jet + ADF BC
Jet + ADF BC
•Pros
•Simple architecture
•Reuse
•Knowledge/Experience
•Core BC implementation
•Cons
•Not as easy as it looks
•…
Jet + ADF BC. Business Services.
•Stateful -> Stateless
•Different UI design
•Reconsider/rebuild services
•State
•Transaction management
•Current row
•Pagination
Jet + ADF BC. Business Services.
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
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
Jet + ADF BC. Hardware.
•Stateful -> Stateless
•CPU +
•Memory -
•Server centric -> Client Centric
•Back to thick client architecture
•Server -
•Client +
Jet + ADF BC. JVM Tuning.
•Less long living objects
•Large Nursery
•Small Tenure
Jet + ADF Faces + ADF BC. Separate pages.
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
Jet + ADF Faces + ADF BC. Same pages.
•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.
Jet + ADF Faces + ADF BC. Same pages.
Jet + ADF Faces + ADF BC. Same pages.
•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.
Jet + ADF Controller.
Jet + ADF Controller.
•Pros
•Task Flows in Oracle JET
•Cons
•Complicated
•Heavy
•Stateful
•Tightly coupled Client and Server
ADF + Back End
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
Q&A
JetvsAdf

JetvsAdf

  • 2.
    Oracle Jet vsOracle ADF or Oracle Jet with Oracle ADF Eugene Fedorenko
  • 3.
    About me Eugene Fedorenko SeniorArchitect Flexagon adfpractice-fedor.blogspot.com @fisbudo
  • 4.
    Agenda •Oracle ADF vsOracle 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
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Oracle ADF vsOracle Jet
  • 10.
    Should I gowith Jet? •Existing projects •Fresh look&feel •New Features •Hybrid •New project •Self-education
  • 11.
    Jet vs ADF.Differences
  • 12.
    Jet vs ADF.Differences Alta UI
  • 13.
    Jet vs ADF.Differences
  • 14.
    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
  • 15.
    Jet vs ADF.Similarities •Powered by Oracle •Alta UI components base •DVT components •Accessibility support •Internalization •Work on Desktop and Mobile Web
  • 16.
    Why? •Responsiveness •Many things happenon 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
  • 17.
    Why? •Skills •JS is hotnow •Resources •How many ADF developers are around? •How many JS developers are there?
  • 18.
    Why? •ADF Releases •12.2.1.3.0 Aug2017 •12.2.1.2.0 Oct 2016 •12.2.1.1.0 Jun 2016 •12.2.1.0.0 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
  • 19.
    So should wego with JS?
  • 20.
    Sure about OracleJet? •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?
  • 21.
  • 22.
    React •Born in Facebook •Lightweightlibrary •Reusable components •Virtual DOM •Clean Abstraction •Great Developer Tools •React Native •Develop NATIVE apps for iOS and Android
  • 23.
    Vue.js •The trendiest projectof the year •Small learning curve •Well defined ecosystem •router: vue-router •State management: Vuex •Single file components •template, logic, styles •Real open source project
  • 24.
    AngularJS •Complete client-side solution •DataBinding •Controller •Deep Linking •Form Validation •Directives •Reusable Components •Dependency Injection •Apache Cordova for hybrid mobile apps
  • 25.
    Cases to go •Existingproject •New projects •Hybrid applications
  • 26.
  • 27.
    Jet + ADFBC •Pros •Simple architecture •Reuse •Knowledge/Experience •Core BC implementation •Cons •Not as easy as it looks •…
  • 28.
    Jet + ADFBC. Business Services. •Stateful -> Stateless •Different UI design •Reconsider/rebuild services •State •Transaction management •Current row •Pagination
  • 29.
    Jet + ADFBC. Business Services.
  • 30.
    Jet + ADFBC. 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
  • 31.
    Jet + ADFBC. 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
  • 32.
    Jet + ADFBC. Hardware. •Stateful -> Stateless •CPU + •Memory - •Server centric -> Client Centric •Back to thick client architecture •Server - •Client +
  • 33.
    Jet + ADFBC. JVM Tuning. •Less long living objects •Large Nursery •Small Tenure
  • 34.
    Jet + ADFFaces + ADF BC. Separate pages.
  • 35.
    Jet + ADFFaces + 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
  • 36.
    Jet + ADFFaces + ADF BC. Same pages.
  • 37.
    •Pros •Suitable for portalsand 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.
  • 38.
    Jet + ADFFaces + ADF BC. Same pages.
  • 39.
    Jet + ADFFaces + ADF BC. Same pages.
  • 40.
    •Pros •Same ADF BCtransaction •REST API is not involved •Cons •JSF lifecycle •Not compatible with ADF PPR •Incompatible Drag&Drop Jet + ADF Faces + ADF BC. Same pages.
  • 41.
    Jet + ADFController.
  • 42.
    Jet + ADFController. •Pros •Task Flows in Oracle JET •Cons •Complicated •Heavy •Stateful •Tightly coupled Client and Server
  • 43.
  • 44.
    ADF + BackEnd •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
  • 45.