SlideShare a Scribd company logo
1 of 39
That's Rich! Putting a smile on ADF Faces ODTUG Kaleidoscope 2009 Lucas Jellema
A Smile on Whose Face?
Overview What’s ADF 11g all about? Adding richness to ADF Web Applications Organized: Elegant real estate management Responsive & Interactive: Client Side and AJAX Attractive: Skinning & Styling Active: Server Push (aka Reverse AJAX) Personalized: Customization   Visually Compelling: Alternative Data Visualization Summary
ADF == Dogfood
Key themes for ADF 11g (more) Declarative (4GL style) development Lot of functionality can be Model driven: Complex Search Forms, List of Values, Validations 95% no-code development (visual, wizard,..) High level of reusability Page templates, Declarative Components, Task Flows & Regions, ADF Libraries, Model based specifications MDS (Meta Data Store) for design-time and run-time customization Skinning for tailor made look & feel Based on (latest) JEE standards Support many highly specialized Fusion Apps features
ADF 11g archictecture
Release 11.1.1.1.0 Code name Bulldog part of FMW 11gR1 (shipping July 1st) Meta Data Services (MDS) Active Data Source (Server Push) Desktop Integration (Excel as ADF Client) New components: Calendar, HierarchyViewer, PanelDashboard Team Collaboration WebCenter and SOA Suite integration
Rich Layout –Real Estate Management From static containers and browser popup windows To better looking, much snappier & nestable Dynamically resizable panelSplitter Accordion, Tabbed Panel Dashboard PanelBox, Show Detail, Show Detail Header And virtually limitless real estate: Popup Also Context Menu, List of Values and SelectDate
PanelDashboard ‘portal look-a-like’ using PanelBoxcomponents Drag & drop available for reorganizing
Adding in an Accordion Left sidebar should have an Accordion Pane That appears in (almost) every page Drag and Drop pane to the template Move Navigation List to the first Detail Pane Add a second Pane for ‘inspiration’
About popups A popup usually has one of these components as child noteWindow panelWindow dialog Menu Popups are usually associated with a component to align with & action triggering their appearance The showPopupBehavior tag is used for configuring this Content of a popup can be loaded with the page (immediate) or when required (lazy or lazyUncached)
Various Popup examples
Configuring a showPopupBehavior tag The showPopupBehavior tag is added as a child to a component that should trigger display of the popup triggerType attribute is used to specify event on component that launches popup Attribute alignId indicates the component with which the popup should align align specifies relative position of the popup popupId refers to the popup to show
Example: Adding fancy balloon help Create a popup with a noteWindow child to contain the fancy help content Add a showPopupBehavior tag to the inputText we want to add the help to
Responsive & Interactive Rich Client, AJAX & PPR From PPR based on field change & button click and using clunky IFRAMEs To smooth, elegant, light(er)-weight  Triggerable by many different types of action AJAX Payload is configurable Can link to Server Side listeners Can run JavaScript after PPR has completed And a rich client side API  Round-trip free component manipulation Drag and Drop support
Table fetching data… Table fetches data in asynchronous request And trees, charts, other DVTs, …
Some remarks visible vs rendered Only what is in the client can be PPRed or manipulated;  when rendered == false, nothing is sent to client clientComponent =“true” to instruct a manipulatable object to be rendered in client for example for outputText Client API: JavaScript API that allows manipulation of rich components
Manipulate component state The client side API allows us to manipulate most component properties that we can set server side Overriding the values derived server side from EL expressions with ‘later insights’ on the client – without AJAX overhead For example: toggling disclosed state of a ShowDetail
Client Listeners to intercept and act on Client Events The ClientListener component is used to intercept client side events and handle in JavaScript ClientListeners can respond to many different events That may or may not propagate to the server ClientListener specifies theJavaScript method to becalled upon the event This method has an eventinput parameter
Using the Client Side API for quick derivation Enter Fahrenheit value ValueChange event fires ClientListener picks up and calls JS function Function reads value and updates Celsius component
ServerListeners for custom AJAX A serverListener associates a server side method with a client side custom event This allows JavaScript functions to start communications with the server by queuing an event listened for by server A custom event carries a payload
Demo “Auto Suggest” Key Up Event is intercepted by a Client Listener That calls a JavaScript method The JavaScript method queues a custom event With the new value in State ServerListener processes theevent Derives the new list of suggestions PPRs the SelectOneList component
Set Property Listener setPropertyListener: used to send a value (EL) to a bean when specified type of event occursA very simple way to inform the server about an event and associated data  Supported types: action, focus, poll, query, rangeChange, selection, sort, rowDisclosure, valueChange and many more <af:image id="removeFromSetImage“           source="/images/removeFromSet.png“ shortDesc="Remove from Shopping Basket"/> <af:setPropertyListener from="#{item}“                        to="#{shoppingBasket.itemToRemove}"                        type="action"/> </af:commandLink>
Attractive: Skinning & Styling From: quite arbitrary, inconsistent skinnable visual properties – based on simple skin To: completely reworked skinning framework consistent, well documented and extensive Based on rich BLAFPLUS skin Supported by on line demo (rea.oracle.com) Including skinning of resources And: support for contentStyle and inlineStyle in most components
Browser Server Push Push: server sends messages to client HTTP does not allow Server to call Client Server can only respond to a request A bit like homing pidgeons… So Client calls Server and server reponds…. when it has a message Browser Browser X Server
Active: Server Push (aka Reverse AJAX) From: Server could notify Client when asked (for example in a poll) To: Active Data Service (ADS) that can push events to active components Some components including table, tree, all types of graphs and charts support the ADS If the data model implements the ADS model , events are pushed to the client And: Auto-PPR Any change from a data binding marked as “auto ppr” is pushed (piggybacked on PPR) to client
New Tweets coming in …
Personalized: Customization From: One size fits all style of application With possibly custom built customization To: fully integrated customization service Components (table, tree, panelbox,…) that support user defined configuration Customizations stored in Session or persisted in MDS to be reapplied across sessions And: customizations in non ADF components (or in any other meta data) can go in MDS too
Visually Compelling: Alternative Data Visualization From: tables, trees and form-fields as more or less the only representation of data To: rich visual components displaying and allowing manipulation of data Graphs & Charts Maps, Pivot Table, Hierarchy Viewer Calendar And: rich data controls Slider, color picker, rich text editor, date selector
Some components not yet available …. Carousel Auto Suggest (native) Google Maps integration Declarative support for Easter Eggs
Demoing Visual stuff Calendar, Pivot Table, Hierarchy Viewer
Creating a Calendar Need a ViewObject that has Start time, End Time, Title, Id And may have Recurring, Reminder, Location, Tags And custom attributes Drag and Drop VO as Calendar Map attributes to Calendar properties Implement Listeners for various events
Hierarchy Viewer
Hierarchy Viewer ViewObjects with ViewLinks provide model for tree binding that underlies the Hierarchy DVT At each node level: specify the content of the panel – optionally per zoom-level
Benefit of Data Binding Implementing the model required by the advanced DVTs can be quite a challenge Fortunately, ADF Model does it for us:  We can drag Data Controls (collections) to a page And drop them as any DVT we like The Graph DataBinding that gets created implements the model needed for the DVT Both POJO based as well as on (preferred) ADF BC
Pivot Table
Pivot Table ViewObject underlies PivotTable Choose Attributes for Rows/Columns and Cells Optionally specify Custom styling for cells Data editing on cells Aggregation Interaction (event listeners such as click)
Summary ADF 11g brings a lot of productivity through reuse and visual & declarative development It also brings a lot of ‘richness’ that can make web applications make people smile More attractive, productive, functional Important features providing richness AJAX, PPR, Server Push and Client Side (JS) API Rich Components, Layout Containers, MDS, alternative Data Visualization, Skinning & Styling Try out the rich features, give them a spin!
Resources Download all demo applications and source code from http://technology.amis.nl/blog/ For further questions: Email: lucas.jellema@amis.nl

More Related Content

What's hot

Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep DiveAmazon Web Services
 
Building Advanced Serverless Applications
Building Advanced Serverless ApplicationsBuilding Advanced Serverless Applications
Building Advanced Serverless ApplicationsAmazon Web Services
 
Serverless-AWS SAM CLI Session: Developer Meet Up
Serverless-AWS SAM CLI Session: Developer Meet UpServerless-AWS SAM CLI Session: Developer Meet Up
Serverless-AWS SAM CLI Session: Developer Meet UpAmazon Web Services
 
Salesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopSalesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopChristophe Coenraets
 
Intro To Serverless Application Architecture: Collision 2018
Intro To Serverless Application Architecture: Collision 2018Intro To Serverless Application Architecture: Collision 2018
Intro To Serverless Application Architecture: Collision 2018Amazon Web Services
 
Mastering the Lightning Framework - Part 2
Mastering the Lightning Framework - Part 2Mastering the Lightning Framework - Part 2
Mastering the Lightning Framework - Part 2Salesforce Developers
 
Presentation on asp.net controls
Presentation on asp.net controlsPresentation on asp.net controls
Presentation on asp.net controlsReshi Unen
 
Beginning Serverless Applications with AWS SAM
Beginning Serverless Applications with AWS SAMBeginning Serverless Applications with AWS SAM
Beginning Serverless Applications with AWS SAMharprits10
 
Raleigh DevDay 2017: Building CICD pipelines for serverless applications
Raleigh DevDay 2017: Building CICD pipelines for serverless applicationsRaleigh DevDay 2017: Building CICD pipelines for serverless applications
Raleigh DevDay 2017: Building CICD pipelines for serverless applicationsAmazon Web Services
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning componentsthomaswaud
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingAmazon Web Services
 
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)Francesco Lerro
 
Authoring and Deploying Serverless Applications with AWS SAM
Authoring and Deploying Serverless Applications with AWS SAMAuthoring and Deploying Serverless Applications with AWS SAM
Authoring and Deploying Serverless Applications with AWS SAMAmazon Web Services
 
Building Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsBuilding Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsAmazon Web Services
 
Raleigh DevDay 2017: Building serverless web applications
Raleigh DevDay 2017: Building serverless web applicationsRaleigh DevDay 2017: Building serverless web applications
Raleigh DevDay 2017: Building serverless web applicationsAmazon Web Services
 
Local Testing and Deployment Best Practices for Serverless Applications - AWS...
Local Testing and Deployment Best Practices for Serverless Applications - AWS...Local Testing and Deployment Best Practices for Serverless Applications - AWS...
Local Testing and Deployment Best Practices for Serverless Applications - AWS...Amazon Web Services
 
Deep Dive on Serverless Application Development NY Loft
Deep Dive on Serverless Application Development NY LoftDeep Dive on Serverless Application Development NY Loft
Deep Dive on Serverless Application Development NY LoftAmazon Web Services
 
Advanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentAdvanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentRob Windsor
 
Building Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureBuilding Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureAmazon Web Services
 

What's hot (20)

Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep Dive
 
Building Advanced Serverless Applications
Building Advanced Serverless ApplicationsBuilding Advanced Serverless Applications
Building Advanced Serverless Applications
 
Serverless-AWS SAM CLI Session: Developer Meet Up
Serverless-AWS SAM CLI Session: Developer Meet UpServerless-AWS SAM CLI Session: Developer Meet Up
Serverless-AWS SAM CLI Session: Developer Meet Up
 
Salesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopSalesforce Lightning Components Workshop
Salesforce Lightning Components Workshop
 
Intro To Serverless Application Architecture: Collision 2018
Intro To Serverless Application Architecture: Collision 2018Intro To Serverless Application Architecture: Collision 2018
Intro To Serverless Application Architecture: Collision 2018
 
Mastering the Lightning Framework - Part 2
Mastering the Lightning Framework - Part 2Mastering the Lightning Framework - Part 2
Mastering the Lightning Framework - Part 2
 
Presentation on asp.net controls
Presentation on asp.net controlsPresentation on asp.net controls
Presentation on asp.net controls
 
Beginning Serverless Applications with AWS SAM
Beginning Serverless Applications with AWS SAMBeginning Serverless Applications with AWS SAM
Beginning Serverless Applications with AWS SAM
 
Raleigh DevDay 2017: Building CICD pipelines for serverless applications
Raleigh DevDay 2017: Building CICD pipelines for serverless applicationsRaleigh DevDay 2017: Building CICD pipelines for serverless applications
Raleigh DevDay 2017: Building CICD pipelines for serverless applications
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning components
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)
AWS ❤ SAM - Serverless on stage #9 (Milan, 20/02/2018)
 
Authoring and Deploying Serverless Applications with AWS SAM
Authoring and Deploying Serverless Applications with AWS SAMAuthoring and Deploying Serverless Applications with AWS SAM
Authoring and Deploying Serverless Applications with AWS SAM
 
Building Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsBuilding Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step Functions
 
Raleigh DevDay 2017: Building serverless web applications
Raleigh DevDay 2017: Building serverless web applicationsRaleigh DevDay 2017: Building serverless web applications
Raleigh DevDay 2017: Building serverless web applications
 
Deep Dive into AWS SAM
Deep Dive into AWS SAMDeep Dive into AWS SAM
Deep Dive into AWS SAM
 
Local Testing and Deployment Best Practices for Serverless Applications - AWS...
Local Testing and Deployment Best Practices for Serverless Applications - AWS...Local Testing and Deployment Best Practices for Serverless Applications - AWS...
Local Testing and Deployment Best Practices for Serverless Applications - AWS...
 
Deep Dive on Serverless Application Development NY Loft
Deep Dive on Serverless Application Development NY LoftDeep Dive on Serverless Application Development NY Loft
Deep Dive on Serverless Application Development NY Loft
 
Advanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentAdvanced SharePoint Web Part Development
Advanced SharePoint Web Part Development
 
Building Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureBuilding Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS Infrastructure
 

Similar to That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)

Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Lucas Jellema
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Lucas Jellema
 
ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)Lucas Jellema
 
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...Lucas Jellema
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션Amazon Web Services Korea
 
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio AnguloLuis Du Solier
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceLucas Jellema
 
Scripting languages
Scripting languagesScripting languages
Scripting languagesteach4uin
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowRolf Kremer
 
Silicon Valley Code Camp - JSF Controller for Reusability
Silicon Valley Code Camp - JSF Controller for ReusabilitySilicon Valley Code Camp - JSF Controller for Reusability
Silicon Valley Code Camp - JSF Controller for Reusabilityjcruizjdev
 
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Lucas Jellema
 
Optimizing Flex Applications
Optimizing Flex ApplicationsOptimizing Flex Applications
Optimizing Flex Applicationsdcoletta
 
JSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies PresentationJSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies PresentationMichael Fons
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsIvano Malavolta
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
Integrate Sas With Google Maps
Integrate Sas With Google MapsIntegrate Sas With Google Maps
Integrate Sas With Google Mapsvineetkaul
 
Developing Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationDeveloping Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationMark Gu
 

Similar to That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009) (20)

Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
 
ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)
 
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
 
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso Workflow
 
Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
Silicon Valley Code Camp - JSF Controller for Reusability
Silicon Valley Code Camp - JSF Controller for ReusabilitySilicon Valley Code Camp - JSF Controller for Reusability
Silicon Valley Code Camp - JSF Controller for Reusability
 
Oracle fusion dba online training
Oracle fusion  dba online trainingOracle fusion  dba online training
Oracle fusion dba online training
 
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
 
PPT
PPTPPT
PPT
 
Optimizing Flex Applications
Optimizing Flex ApplicationsOptimizing Flex Applications
Optimizing Flex Applications
 
JSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies PresentationJSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies Presentation
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Integrate Sas With Google Maps
Integrate Sas With Google MapsIntegrate Sas With Google Maps
Integrate Sas With Google Maps
 
Developing Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationDeveloping Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web Application
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)

  • 1. That's Rich! Putting a smile on ADF Faces ODTUG Kaleidoscope 2009 Lucas Jellema
  • 2. A Smile on Whose Face?
  • 3. Overview What’s ADF 11g all about? Adding richness to ADF Web Applications Organized: Elegant real estate management Responsive & Interactive: Client Side and AJAX Attractive: Skinning & Styling Active: Server Push (aka Reverse AJAX) Personalized: Customization Visually Compelling: Alternative Data Visualization Summary
  • 5. Key themes for ADF 11g (more) Declarative (4GL style) development Lot of functionality can be Model driven: Complex Search Forms, List of Values, Validations 95% no-code development (visual, wizard,..) High level of reusability Page templates, Declarative Components, Task Flows & Regions, ADF Libraries, Model based specifications MDS (Meta Data Store) for design-time and run-time customization Skinning for tailor made look & feel Based on (latest) JEE standards Support many highly specialized Fusion Apps features
  • 7. Release 11.1.1.1.0 Code name Bulldog part of FMW 11gR1 (shipping July 1st) Meta Data Services (MDS) Active Data Source (Server Push) Desktop Integration (Excel as ADF Client) New components: Calendar, HierarchyViewer, PanelDashboard Team Collaboration WebCenter and SOA Suite integration
  • 8. Rich Layout –Real Estate Management From static containers and browser popup windows To better looking, much snappier & nestable Dynamically resizable panelSplitter Accordion, Tabbed Panel Dashboard PanelBox, Show Detail, Show Detail Header And virtually limitless real estate: Popup Also Context Menu, List of Values and SelectDate
  • 9. PanelDashboard ‘portal look-a-like’ using PanelBoxcomponents Drag & drop available for reorganizing
  • 10. Adding in an Accordion Left sidebar should have an Accordion Pane That appears in (almost) every page Drag and Drop pane to the template Move Navigation List to the first Detail Pane Add a second Pane for ‘inspiration’
  • 11. About popups A popup usually has one of these components as child noteWindow panelWindow dialog Menu Popups are usually associated with a component to align with & action triggering their appearance The showPopupBehavior tag is used for configuring this Content of a popup can be loaded with the page (immediate) or when required (lazy or lazyUncached)
  • 13. Configuring a showPopupBehavior tag The showPopupBehavior tag is added as a child to a component that should trigger display of the popup triggerType attribute is used to specify event on component that launches popup Attribute alignId indicates the component with which the popup should align align specifies relative position of the popup popupId refers to the popup to show
  • 14. Example: Adding fancy balloon help Create a popup with a noteWindow child to contain the fancy help content Add a showPopupBehavior tag to the inputText we want to add the help to
  • 15. Responsive & Interactive Rich Client, AJAX & PPR From PPR based on field change & button click and using clunky IFRAMEs To smooth, elegant, light(er)-weight Triggerable by many different types of action AJAX Payload is configurable Can link to Server Side listeners Can run JavaScript after PPR has completed And a rich client side API Round-trip free component manipulation Drag and Drop support
  • 16. Table fetching data… Table fetches data in asynchronous request And trees, charts, other DVTs, …
  • 17. Some remarks visible vs rendered Only what is in the client can be PPRed or manipulated; when rendered == false, nothing is sent to client clientComponent =“true” to instruct a manipulatable object to be rendered in client for example for outputText Client API: JavaScript API that allows manipulation of rich components
  • 18. Manipulate component state The client side API allows us to manipulate most component properties that we can set server side Overriding the values derived server side from EL expressions with ‘later insights’ on the client – without AJAX overhead For example: toggling disclosed state of a ShowDetail
  • 19. Client Listeners to intercept and act on Client Events The ClientListener component is used to intercept client side events and handle in JavaScript ClientListeners can respond to many different events That may or may not propagate to the server ClientListener specifies theJavaScript method to becalled upon the event This method has an eventinput parameter
  • 20. Using the Client Side API for quick derivation Enter Fahrenheit value ValueChange event fires ClientListener picks up and calls JS function Function reads value and updates Celsius component
  • 21. ServerListeners for custom AJAX A serverListener associates a server side method with a client side custom event This allows JavaScript functions to start communications with the server by queuing an event listened for by server A custom event carries a payload
  • 22. Demo “Auto Suggest” Key Up Event is intercepted by a Client Listener That calls a JavaScript method The JavaScript method queues a custom event With the new value in State ServerListener processes theevent Derives the new list of suggestions PPRs the SelectOneList component
  • 23. Set Property Listener setPropertyListener: used to send a value (EL) to a bean when specified type of event occursA very simple way to inform the server about an event and associated data Supported types: action, focus, poll, query, rangeChange, selection, sort, rowDisclosure, valueChange and many more <af:image id="removeFromSetImage“ source="/images/removeFromSet.png“ shortDesc="Remove from Shopping Basket"/> <af:setPropertyListener from="#{item}“ to="#{shoppingBasket.itemToRemove}" type="action"/> </af:commandLink>
  • 24. Attractive: Skinning & Styling From: quite arbitrary, inconsistent skinnable visual properties – based on simple skin To: completely reworked skinning framework consistent, well documented and extensive Based on rich BLAFPLUS skin Supported by on line demo (rea.oracle.com) Including skinning of resources And: support for contentStyle and inlineStyle in most components
  • 25. Browser Server Push Push: server sends messages to client HTTP does not allow Server to call Client Server can only respond to a request A bit like homing pidgeons… So Client calls Server and server reponds…. when it has a message Browser Browser X Server
  • 26. Active: Server Push (aka Reverse AJAX) From: Server could notify Client when asked (for example in a poll) To: Active Data Service (ADS) that can push events to active components Some components including table, tree, all types of graphs and charts support the ADS If the data model implements the ADS model , events are pushed to the client And: Auto-PPR Any change from a data binding marked as “auto ppr” is pushed (piggybacked on PPR) to client
  • 28. Personalized: Customization From: One size fits all style of application With possibly custom built customization To: fully integrated customization service Components (table, tree, panelbox,…) that support user defined configuration Customizations stored in Session or persisted in MDS to be reapplied across sessions And: customizations in non ADF components (or in any other meta data) can go in MDS too
  • 29. Visually Compelling: Alternative Data Visualization From: tables, trees and form-fields as more or less the only representation of data To: rich visual components displaying and allowing manipulation of data Graphs & Charts Maps, Pivot Table, Hierarchy Viewer Calendar And: rich data controls Slider, color picker, rich text editor, date selector
  • 30. Some components not yet available …. Carousel Auto Suggest (native) Google Maps integration Declarative support for Easter Eggs
  • 31. Demoing Visual stuff Calendar, Pivot Table, Hierarchy Viewer
  • 32. Creating a Calendar Need a ViewObject that has Start time, End Time, Title, Id And may have Recurring, Reminder, Location, Tags And custom attributes Drag and Drop VO as Calendar Map attributes to Calendar properties Implement Listeners for various events
  • 34. Hierarchy Viewer ViewObjects with ViewLinks provide model for tree binding that underlies the Hierarchy DVT At each node level: specify the content of the panel – optionally per zoom-level
  • 35. Benefit of Data Binding Implementing the model required by the advanced DVTs can be quite a challenge Fortunately, ADF Model does it for us: We can drag Data Controls (collections) to a page And drop them as any DVT we like The Graph DataBinding that gets created implements the model needed for the DVT Both POJO based as well as on (preferred) ADF BC
  • 37. Pivot Table ViewObject underlies PivotTable Choose Attributes for Rows/Columns and Cells Optionally specify Custom styling for cells Data editing on cells Aggregation Interaction (event listeners such as click)
  • 38. Summary ADF 11g brings a lot of productivity through reuse and visual & declarative development It also brings a lot of ‘richness’ that can make web applications make people smile More attractive, productive, functional Important features providing richness AJAX, PPR, Server Push and Client Side (JS) API Rich Components, Layout Containers, MDS, alternative Data Visualization, Skinning & Styling Try out the rich features, give them a spin!
  • 39. Resources Download all demo applications and source code from http://technology.amis.nl/blog/ For further questions: Email: lucas.jellema@amis.nl

Editor's Notes

  1. http://www.slideshare.net/mwessendorf/server-side-push-with-adf-faceshttp://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx
  2. Demo of Hierarchy Viewer: http://rea.oracle.com/faces/indexHosted demo of DVT: http://jdevadf.oracle.com/dvtdemo-dvt-faces-demo-context-root/faces/index.jspx
  3. Demo of Hierarchy Viewer: http://rea.oracle.com/faces/indexHosted demo of DVT: http://jdevadf.oracle.com/dvtdemo-dvt-faces-demo-context-root/faces/index.jspx