Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Is your JavaScript ready for the Enterprise? What does that even mean? John “JB” Brock Senior Principal Product Manager Oracle Tools and Frameworks March 01, 2017
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Is your JavaScript ready for the Enterprise? What does that even mean?
John “JB” Brock Senior Principal Product Manager Oracle Tools and Frameworks March 01, 2017
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
“Enterprise software, also known as enterprise application software (EAS), is computer software used to satisfy the needs of an organization rather than individual users.” – Wikipedia
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
“Extreme scale or loads, and availability.”
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
“Basically means that it's complicated enough, that you can build consulting business around it.” – Vartec, stackoverflow
6
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Client-Server relationships are changing
7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 8
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 9
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 10
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Client based applications for the Enterprise
11
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
7 Building blocks for Enterprise JavaScript
1. Resist the hype 2. Rediscover HTML5 as an application framework 3. Compare responsive design between CSS and JavaScript 4. Evaluate the framework vs. library approach 5. Incorporate modularity 6. Evaluate abstractions over JavaScript, CSS, and HTML 7. Evaluate corporate frameworks
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
1. Resist the hype Said another way, “Don’t chase the shiny object!”
13
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
•Data heavy monitoring systems
•Behind the firewall management systems
Don’t land airplanes from a phone!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
•Phone alerts
•Management / reporting
Extend, instead of replace
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Semantic markup: <article>, <header>
New input types: e-mail, URL, color
New Intellisense/Auto Completion
Validation attributes, 'required' and 'pattern'
2. Rediscover HTML
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Original HTML
• Designed as a language for semantically describing scientific documents
HTML5
• A response to demands for multimedia experiences (animations, games, movies, and audio)
• Also contains new built-in application development features
• Semantic elements help Accessibility
HTML and HTML5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Demos
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
3. Responsive design with CSS and JavaScript Things may look and behave the same, but have important differences.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Original CSS
• Designed as a stylesheet language for describing the look and feel of documents
CSS3
• Over 50 modules make up CSS3
• “Media Query “ most well known
• Tailor to different resolutions
• Enable responsive design
• But... also take a look at JavaScript for this
Responsive CSS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Show/Hide
• Elements remain in the DOM
• Bound data is still loaded
Load/Unload
• Only included in DOM as needed
• Adjust REST calls dynamically
• Response.js – http://responsejs.com
• Interchange – http://foundation.zurb.com
CSS3 vs. Responsive JavaScript
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Demos
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
4. Frameworks or Libraries? JavaScript options are huge!
What is the best direction?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Different libraries for different purposes
App Frameworks & Libs
Angular, Knockout, Backbone, Vue, React, Ember, …
Module Systems
RequireJS, Browserfy, Webpack, …
Build Systems
Grunt, Gulp, Brunch, …
Testing Frameworks
Protractor, Jasmine, Qunit, Karma, …
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Framework approach Library approach
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
The larger the application, the more important modularity becomes.
5. Incorporate Modularity
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Compare modular solutions
RequireJS
http://requirejs.org/
Webpack
https://webpack.js.org/
ECMAScript 2015(ES6)
Modules and SystemJS
Browserify
http://browserify.org/
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
What’s easiest for your development team?
The picture may not be clear for everyone in the same way.
6. Abstractions over JavaScript, CSS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
7. Evaluate corporate frameworks • Microsoft – several
• IBM – several
• Salesforce – several
• SAP – SAP Open UI5 and Fiori
• ING – github.com/Spectingular (AngularJS-based component framework)
• PayPal – krakenjs.com (Node.js/Express based application framework)
• Oracle – oraclejet.org (Toolkit of open source JavaScript libraries)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
What is Oracle JET?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
JET isn’t just another
framework, It’s a Toolkit!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
A toolkit of existing open source
libraries and new Oracle
componentry
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Its modular! Use only the tools you
need
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Basic Components
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Advanced Components
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Accessibility Built-in
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
28 languages 190+ locales
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Mobile ready
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
IOS
Android
Windows
Native themes
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• Off-canvas regions allow content to be hidden off-screen until invoked by the user or application
• Very common UI pattern on devices with smaller screens
Common Mobile Paradigms Off-Canvas Elements
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• Pull to refresh is a touch gesture that is commonly used to fetch more data in a lazy-loading situation
Common Mobile Paradigms Pull to Refresh
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• The swipe gesture is an extremely prevalent touch gesture on mobile devices
• On list views, swipe is often used to take action on list items
Common Mobile Paradigms Swipe
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• Features such as sticky listview headers enable users to maintain information context
Common Mobile Paradigms Sticky Headers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• Support for a an Indexer component
• Another screen real estate saver commonly seen on mobile lists
Common Mobile Paradigms Indexer
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• Often used in conjunction with pull to refresh, JET allows applications to give their users feedback when data is being loaded
• Here a busy indicator is displayed
• JET uses iconography that mirrors the mobile device’s native UI
Common Mobile Paradigms Progressive Data Loading
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• The JET Router used in combination with the JET ojModule can provide platform-appropriate animations
• Content can be swapped out in-place without updating the rest of the page
Common Mobile Paradigms Animations
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
It’s all Open Source!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Learn More!
http://oraclejet.org
@oraclejet