Handwriting on the Wall Who Moved My Cheese? from Where Do I Find The Best Oracle Development Tool?

Peter Koletzke Technical Director & Principal Instructor

The Characters The Maze

3 4 The Maze Oracle Tools: The Good Old Days

IAF to SQL*Forms 2.0 to Oracle Forms 12c

5 6

Oracle Tools: Today Agenda – Look for the Cheese Legacy Tools PL/SQL Web Toolkit ABCS Oracle Forms APEX Web Toolkit Post-Legacy Tools APEX ADF MAF MAF Cutting-edge Tools JET JET Oracle ADF ABCS Forms

7 8 PL/SQL Web Toolkit 12cR2 PL/SQL Web Toolkit Features • PL/SQL database packages HTP, HTF • Essentially HTML coding – E.g., htp.body() – You can create wrapper packages to make – Renders HTML: “” construction easier • A URL invokes a PL/SQL procedure • No special tool (Notepad, vi) containing calls to HTP and HTF • Issuing SQL is super easy – The server’s mod_plsql plugin • The program runs in the database • Only for Apache servers like OAS • Very powerful if you know HTML well • WLS calls Oracle HTTP Server (OHS), which contains mod_plsql • Fine if you are satisfied with HTML’s docs.oracle.com/database/121/ADFNS/adfns_w capabilities eb.htm#ADFNS015

9 10

PL/SQL Web Toolkit – Agenda – Look for the Cheese Development Experience

ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

11 12 Oracle Forms 12cR2 Oracle Forms Features • Part of Oracle Developer (Fusion • Scripting language inside the tool is Middleware) – Packaged with Oracle Reports PL/SQL • BI Publisher is an alternate reporting tool • Otherwise declarative • Declarative programming • Can call plugins • Server runs Forms Runtime servlet • Forms Runtime runs a compiled code file • Integrated with browser (.FMX) • Still part of Enterprise Business Suite • Form displays as a in the (EBS, ) browser • No HTML! • De-emphasized these days because of www.oracle.com/technetwork/developer- its proprietary nature tools/forms

13 14

Oracle Forms – Development Experience Agenda – Look for the Cheese

ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

16 Application Express (APEX) APEX Features 5.0.1 • Free tool distributed with the database • Declarative programming – Installed by default with 11g and 12c – Similar to Oracle Forms • Implemented in PL/SQL • Vital user community • Runs in the browser – Lots of “traditional” Oracle shops use it • Generates PL/SQL • Highly evolved • A layer on top of the PL/SQL Web – Used for Oracle Cloud Services Toolkit • Supports mobile devices www.oracle.com/technetwork/developer- tools/apex • Issuing SQL is a non-issue https://apex.oracle.com/en/

17 18

APEX Development Experience Agenda – Look for the Cheese

ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

20 Application Development ADF Features Framework 12cR2 • Wizards and layout editors • Oracle’s main Java-based development tool – Very “Forms-like” (development time, runtime) – Also, XML, Groovy, but less HTML – Developed for Oracle’s internal Forms developers • Positioned for enterprise-level applications • ADF is a meta-framework • Supports any Java framework – Development environment that encompasses • Includes frameworks many other frameworks – ADF Model, ADF Faces (View), ADF Controller, – Similar development “gestures” for any choice of ADF Business Components frameworks – Very highly evolved • The basis for Oracle Support website, • Used to build Oracle Cloud (f.k.a., “Fusion”) Enterprise Manager, SOA Suite, WebCenter applications

21 22

ADF Development Experience ADF Variations: Oracle Enterprise Pack for Eclipse 12.2.1.1 • OEPE – Plug-in for Eclipse – Adds the ability to develop JEE code • Supports work in Eclipse for: – ADF, MAF, WebLogic, Spring, Coherence, OR mapping, web services, REST, Maven, cloud services www.oracle.com/technetwork/developer- tools/eclipse/

24 ADF Variations: ADF Essentials Bonus Tool: NetBeans 8.1 • Plug-in to JDeveloper or Eclipse 12.2.1.0 • Another Oracle Java development – With OEPE environment • Technologies included: • For Java code –ADF Faces – ADF Controller – ADF Model – ADF Business Components • Not for ADF • Main feature: “Free” ADF runtime • Super-active user community – On Glassfish (free app server) .org – Other app servers • Development environment parallels www.oracle.com/technetwork/developer- JDeveloper in richness tools/adf/overview/adfessentials-1719844.html

25 26

NetBeans Development Experience Agenda – Look for the Cheese

ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

27 28 Mobile Application Framework MAF Features • MAF: formerly “ADF Mobile” 2.2.0 • Also available for Eclipse • Plug-in to JDeveloper • Offline database - SQLite • ADF development environment • Leverages mobile device features – Declarative programming – Camera, GPS, contacts, accelerometer – Java, HTML5, CSS, and JavaScript • Use current development skills • Produces mobile applications that can • Two flavors of development be run in iOS and Android (!) – Java-based: declarative, components http://www.oracle.com/technetwork/devel – HTML-based: programmatic, HTML5 oper-tools/maf/

29 30

MAF Development Experience Agenda – Look for the Cheese

ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

32 Iowa Polls – the Real Results CodeEval Fact 5. Rubio • JavaScript usage has grown 25% in the past year (blog.codeeval.com/) 4. Carson • Fourth most popular language in 2015 3. Trump 2. Cruz 1. JavaScript

33

GitHub Fact Tiobe Fact • #1 on GitHub for the past 3 years • Dec 2015 – JavaScript is “the programming – github.com/blog/2047-language-trends-on- language of the year” github – www.tiobe.com/index.php/content/paperinfo/tpci/

35 36 JavaScript Extension Toolkit JET Features •JET • Pure JavaScript coding • Simplifies Model-View-ViewModel – Secondarily: HTML5, CSS, SASS Syntactically Awesome development Style Sheets • Need to understand: – MVVM: also called, model-view-binder – Knockout.js, jQuery, CSS3, RequireJS (AMD) • IDE is Notepad or vi – Derived from MVC, • Used and refined internally at Oracle for 2-3 – Uses binder (viewmodel) instead of years controller www.oracle.com/webfolder/technetwork/jet/index. html – VM is the layer that binds data to the UI • JET vs. ADF https://blogs.oracle.com/ jdeveloperpm/entry/oracle_ adf_and_oracle_jet

37 38

More JET Features JET Development Experience - 1

• “Modular” – that is, lots of prebuilt code 1. Copy the HTML component code from the cookbook samples 2. Paste into the file’s editor – Cookbook on Oracle’s website • Built on the Knockout.js framework – A JavaScript library • Rich components, e.g. data visualization • If upgrades in the framework or libraries occur, you are responsible for recoding – No automatic migration of code as in ADF

39 40 JET Development Experience - 2 Agenda – Look for the Cheese

3. Copy the JavaScript component code 4. Paste into the file’s editor ABCS

APEX Web Toolkit

MAF

JET Oracle ADF Forms

41 42

Application Builder Cloud Service ABCS Features • ABCS – part of SaaS • Developed for non-programmers – Currently futureware – “next year” – To solve the app dev backlog • Not to be confused with Fusion Middleware • Can be extended with JavaScript ABCS - Application Business Connector Services • Data is supplied as REST services – A development tool for business users – – Representational State Transfer a.k.a.,“Citizen Developer“ • docs.oracle.com/javaee/6/tutorial/doc/gijqy.html – Oracle blurb: – Prebuilt Software-as-a-Service (SaaS) services “Oracle Application Builder Cloud Service enables business users with no previous programming experience to rapidly create • Development is done on a web page web and mobile apps, minimizing dependence on – No additional install needed IT departments and reducing infrastructure costs.” – Then the app is published on the web page

43 44 Info on ABCS ABCS Development Experience cloud.oracle.com/ApplicationBuilder

• https://blogs.oracle.com/hands-on-with-mobile- tech/entry/intro_to_oracle_mobile_cloud • http://www.otechmag.com/magazine/2015/fall/application- builder-cloud-service.html

45 46

Bonus JavaScript Tool Where Does Alta UI Fit? • Mobile Application Accelerator (MAX) • Common user experience (UX) • For mobile device applications regardless of the tool • Part of Mobile Cloud Service (MCS) – Scaled down graphics – square, not round – Similar to ABCS – BIG, bold colors • For MCS not SaaS/PaaS – Present only most important elements first • Mobile apps only – Reduce need for navigation and data input • Will merge with ABCS eventually • Demos of the same app, Work Better • www.oracle.com/us/corporate/press/2313779 • blogs.oracle.com/hands-on-with-mobile- – ADF: http://jdevadf.oracle.com/workbetter tech/entry/intro_to_oracle_mobile_cloud – JET: www.oracle.com/webfolder/technet work/jet/public_samples/WorkBetter/public _html/index.html

47 48 You Have Questions? • ADF or APEX? • ADF or JET? • ABCS? • Which mobile development tool? • JDeveloper or Eclipse? • What about Forms? • Do I really have to learn JavaScript? • Who moved my cheese?

www.oracle.com/webfolder/ux/middleware/alta/index.html 50

ADF or APEX? ADF or JET? • A very old question • ADF is for Java developers • APEX is PL/SQL – Declarative programming primarily – Runs in the database; easy connection – Less affected by upgrades to the database – Runs on the server • Takes runtime resource from database – No one is worried about that – Takes care of all layers – Used for PaaS configuration apps – Oracle builds SaaS applications – Development done in the browser • JET is for JavaScript developers • ADF is Java – Program code oriented – Runs on the server – You are responsible for migrating to new – Scales well; good for large applications versions – It is strategic – Oracle builds its apps with it – Runs on the client – Rich UI features and task flows – UI only although it can use REST services – Customizations are in XML – upgrade safe – Oracle provides it for PaaS applications

51 52 ABCS? Which Mobile Dev Tool? • Again, it’s futureware • MAF is the tool of choice for developers – Remains to be seen – ADF techniques • Only for SaaS and PaaS users • MAX and ABCS are for end users • Business users could use it – Web interface – With supervision! • MAX is here now for MCS

53 54

JDeveloper or Eclipse? What About Forms? • In the past, there was a clear distinction • Yes, what about it? • Not so now • Still there in the Oracle apps • ADF is supported almost fully in Eclipse • Still supported, enhanced • Traditional Oracle shop will probably • Traditional Oracle shop could stay with it prefer JDev - natively declarative • Oracle Cloud/Fusion Applications shop would choose ADF instead – Cloud apps use ADF

55 56 Do I Really Need to Learn JavaScript? Big Note • If you need to develop JET, MAX, • Lots of resources for all these ABCS, “Yes” tools • Otherwise, “Not now but probably – YouTube videos sometime in the future” – How-to’s, tutorials • MAF online courses – JavaScript cannot be ignored • ADF Academy for long –Forums – Blogs – Code samples –Libraries

57 58

Legal Precedent Summary • Lots of development tool choices these days Change is the law of life. • “Traditional” work with Forms and PL/SQL • “New wave” work with ADF and MAF And those who look only to • “Next wave” work with JET, maybe ABCS the past or the present • Need to keep aware of change are certain to miss the future. • The cheese may be moving • Good News: • The cheese doesn’t have to move —John F. Kennedy (1917-1963) any time soon

59 60 Books co-authored with Dr. Paul Dorsey, Avrom Roy-Faderman, & Duncan Mills

Developer Advanced Designer Forms & JDeveloper 3 Handbook Reports Handbook http://www.quovera.com

• Founded in 1995 as Millennia Vision Corp. • More technical white papers and ORACLE9i ORACLE JDeveloper JDeveloper 10g presentations on the web site Handbook Handbook

62