ADF On-Ramp: What You Need to Know to Use the ADF Fusion Technology Stack. What is ADF and Fusion? ADF core technologies. Required languages.

Similar documents
ADF On-Ramp: What You Need to Know to Use ADF. What is ADF and Fusion? ADF core technologies. Required languages. Survey. Agenda. On the Positive Side

Introduction to ADF Core Technologies

Oracle ADF On Ramp: What You Need to Know to Use ADF

Oracle ADF On-Ramp: Developing Applications With the Core ADF Stack

Survey. ADF On-Ramp: What You Need to Know to Use the ADF Fusion Technology Stack. Agenda. Raffle at the End

If you wish to make an improved product, you must already be engaged in making an inferior one.

The Tie That Binds: An Introduction to ADF Bindings

ADF ON RAMP: WHAT YOU NEED TO KNOW TO USE ADF

We didn t need dialogue. We had faces.

J2EE for Oracle Technologists

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

Achieving the Perfect Layout with ADF Faces RC

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study

The Arrangement of the Screens: Introduction to Layout in ADF Faces

Don t get it right, just get it written.

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

The End of the Beginning: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Oracle Fusion Middleware 11g: Build Applications with ADF I

Hello Worldwide Web: Your First JSF in JDeveloper

Oracle Middleware 12c: Build Rich Client Applications with ADF Ed 1 LVC

Oracle Fusion Middleware 11g: Build Applications with ADF I

Made from the Same Mold: Templating Approaches for ADF Faces Applications

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Unraveling the Mysteries of J2EE Web Application Communications

<Insert Picture Here> Accelerated Java EE Development: The Oracle Way

Rich Web UI made simple Building Data Dashboards without Code

Developing Applications with Java EE 6 on WebLogic Server 12c

Getting started with ADF 11g

Oracle Developer Day

Oracle Fusion Developer Guide (ISBN: ) Preview Chapter 1. The Quick Lerner s Guide to Oracle Fusion Web Application Development PREVIEW

ADF Code Corner How-to restrict the list of values retrieved by a model driven LOV. Abstract: twitter.com/adfcodecorner

Using Thick Database Principles to Leverage Oracle SQL and PL/SQL Part III:

<Insert Picture Here> The Oracle Fusion Development Platform: Oracle JDeveloper and Oracle ADF Overview

Chapter. An Introduction to Oracle JDeveloper and Oracle ADF

Oracle ADF: The technology behind project fusion. Lynn Munsinger Principal Product Manager Application Development Tools Oracle Corporation

ADF Code Corner How-to bind custom declarative components to ADF. Abstract: twitter.com/adfcodecorner

Oracle Application Development Framework Overview

<Insert Picture Here> Advanced ADF Faces. Frank Nimphius Principal Product Manager

FILE XML DATABASE DEVELOPERS ORACLE 11G MANUAL EBOOK

ADF Hands-On. Understanding Task Flow Activities / 2011 ADF Internal Enterprise 2.0 Training. Abstract:

1z0-554qa88. Number: Passing Score: 800 Time Limit: 120 min File Version: 1.0. Oracle 1z0-554

<Insert Picture Here> The Latest E-Business Suite R12.x OA Framework Rich User Interface Enhancements

... AND UIX BEGAT ADF FACES: HOW RICH IS ADF FACES RICH CLIENT? Peter Koletzke, Quovera

Oracle WebLogic Server Application Security

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Oracle Developer Day

You CAN Judge a Book by Its Cover: Modern User Interface Design Principles

Design Modernization Case Study: Applying Mobile App Design Principles to the UTOUG Website

Oracle Developer Day

Understanding Oracle ADF and its role in the Oracle Fusion Platform

Oracle Developer Day

<Insert Picture Here> Oracle Application Framework (OAF): Architecture, Personalization, and Extensibility in Oracle E-Business Suite Release 12

Mastering Oracle ADF Task Flows. Frank Nimphius Principal Product Manager Oracle JDeveloper / ADF

ADF OAF Who Cares? You Do! Oracle Applications Framework / Application Development Framework - Which way do I go?

ADF Code Corner. 70. How-to build dependent list boxes with Web Services Business Services. Abstract: twitter.com/adfcodecorner

CHAPTER. Introduction to the Oracle Application Development Framework

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

PassGuide..1z0-554_81,Q&A

ADF Code Corner How-to declaratively build a master-detail behavior with DVT components. Abstract: twitter.com/adfcodecorner

Oracle Retail Accelerators for WebLogic Server 11g

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

Quick Web Development using JDeveloper 10g

ADF Code Corner. Oracle JDeveloper OTN Harvest 01 / Abstract: twitter.com/adfcodecorner

MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB

Oracle Fusion Middleware

6/13/2012. Sneak Preview: Oracle JDeveloper 12c New Features. Frank Nimphius Senior Principal Product Manager Oracle Development Tools

Oracle Fusion Middleware 11g: Build Applications with Oracle Forms

Using Thick Database Principles to Leverage Oracle SQL and PL/SQL Part I:

Peter Moskovits Principal Product Manager Oracle Corporation. Sue Vickers Group Manager Oracle Corporation

<Insert Picture Here> Oracle JHeadstart Forms2ADF - Overview

ADF Code Corner. 016-How-to customize the ADF Faces Table Filter. Abstract: twitter.com/adfcodecorner

Mobile Application Development: Introducing ADF Mobile Native Client Framework

Oracle Fusion Middleware

ADF Code Corner How-to launch a popup upon rendering of a page fragment in a region using JSF 2. Abstract: twitter.

Java EE 6: Develop Web Applications with JSF

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Oracle JDeveloper/Oracle ADF 11g Production Project Experience

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Tools to Develop New Linux Applications

Oracle Fusion Middleware

DEPLOYING APPLICATIONS TO WEBLOGIC SERVER USING JDEVELOPER AND WLS CONSOLE: JUST GET IT WRITTEN Peter Koletzke, Quovera and Duncan Mills, Oracle

Fast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002

Oracle Fusion Middleware 11g: Build Applications with Oracle Forms

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Developing Cross Device Mobile Applications

Both Sides Now: DevOps and Agile in Oracle Developer Cloud Service for Fusion Middleware Developers

CIS 764 Tutorial: Log-in Application

BEAWebLogic. Portal. Overview

SAGE Computing Services. Trials & Tribulations of an Oracle Forms -> Apex Conversion

Extensibility Guide Oracle Financial Services Lending and Leasing Release [October] [2013] Part No. E

1z0-419.exam.53q.

1Z0-560 Oracle Unified Business Process Management Suite 11g Essentials

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

MVC. Peter Koletzke, Quovera. Figure 1. MVC layers

AMIS on Fusion Middleware

Customizing a Packaged Application for a J2EE Environment: A Case Study. Leslie Tierstein TopTier Consulting, Inc.

Java Training Center, Noida - Java Expert Program

IBM Rational Application Developer for WebSphere Software, Version 7.0

Transcription:

On-Ramp: What You Need to Know to Use the Fusion Technology Stack Peter Koletzke Technical Director & Principal Instructor Survey Job responsibilities? DBA, developer Languages? PL/SQL Java Other Tools? Developer Forms/Reports JDeveloper Eclipse, NetBeans Other 2 Agenda What is and Fusion? core technologies Required languages Slides and white paper will be available on the UTOUG and Quovera websites. Later Today 11:30 Web Application Security 2:00 Bindings On the Positive Side If we do not find anything pleasant, at least we shall find something new. Si nous ne trouvons pas des choses agréables, nous trouverons du moins des choses nouvelles. Voltaire (1694-1778), Candide 3 4

Oracle Application Development Framework () A framework is a prebuilt service for solving a particular problem like access to the database Code libraries and standards support the framework Implements code reuse and best practices An architecture with code libraries is a meta-framework A wrapper for other frameworks Available starting in JDeveloper 10g Provides a consistent developer experience Pre- available in OAF Oracle Application Framework (UIX/MVC) Based on Model-View-Controller Java EE design pattern 5 di (Excel) EJB Session Beans Architecture Application Client JClient Web Services Mobile View Struts Model Bindings Data Controls Business Services Business Components JSP Web Client Controller JSF JSF Java Classes Faces RC Controller Essbase What is Oracle Fusion? Fusion Applications New business applications suite (in production) Fusion Middleware Tools for building and running the applications (and your custom apps) Fusion Architecture How to assemble various technologies to build FA How to connect FM pieces Which Technologies to Use? Core technology stack used to create Fusion Applications is: Business Components Faces Rich Client Model Controller Other high-level technologies or strategies also used SOA, ESB, Business Rules, WebCenter, BPM, BPA, BAM Need to consider those, too, at the architectural level but OOS 7 8

Where Do The Fusion Technologies End Up? Agenda What is and Fusion? Faces UI rendering Controller Page flow and task flow Model Database access & SOA endpoints BC Binding data to items Departments Employees core technologies Required languages BC Faces Model Controller 9 10 The World View In this best of all possible worlds... everything is for the best. Dans ce meilleur des mondes possibles... tout est au mieux. Voltaire (1694-1778), Candide Business Components BC: an option in the Business Services layer of Persistence: storing data in a database O/R mapping: Translates relational database thingies to object-oriented (Java) whatsits Handles JDBC mechanics Creates SQL and handles results Primarily declarative XML source code to define the use of framework classes 11 12

More About BC Various component types View objects: define queries Entity objects: define insert-updatedelete ( DML ) View links: view object relationships Associations: entity object links Application modules: Define the data models and the database transaction It does not create user interfaces Sample BC Development Entity object editors 13 14 View Object Code View Object = SELECT statement <ViewObject xmlns="http://xmlns.oracle.com/bc4j" Name="AllEmployees" Version="11.1.1.53.41" SelectList="Employees.EMPLOYEE_ID, Employees.FIRST_NAME, Employees.LAST_NAME, Employees.JOB_ID, Employees.EMAIL, Employees.HIRE_DATE, Departments.DEPARTMENT_NAME, Departments.DEPARTMENT_ID, Departments.LOCATION_ID" FromList="DEPARTMENTS Departments, EMPLOYEES Employees" Where="Departments.MANAGER_ID = Employees.EMPLOYEE_ID" BindingStyle="OracleName" CustomQuery="false" PageIterMode="Full" UseGlueCode="false">... View Attribute = Column in query <Attribute Name="EmployeeId" IsNotNull="true" Precision="6" Scale="0" ColumnName="EMPLOYEE_ID" SQLType="NUMERIC" Type="oracle.jbo.domain.Number" ColumnType="NUMBER" TableName="EMPLOYEES" PrimaryKey="true"> <DesignTime> <Attr Name="_DisplaySize" Value="22"/> </DesignTime> </Attribute> <Attribute Name="FirstName" Precision="20" ColumnName="FIRST_NAME"... List-of-Values (LOV) Defined for an view object attribute Associate a query (view object) with the attribute Set up is declarative Start in the view object editor UI code will display this attribute specially Pulldown list item loaded with values Popup list-of-values dialog 15 16

VO Editor LOV Subtab Create List of Values At runtime 17 18 Used for queries View Object Editor s Query page View Criteria section View Criteria dialog Define the WHERE clause declaratively Declarative is the only method allowed. View Criteria View Criteria in the DCP Data Controls panel lists the defined criteria You can drag and drop a view criteria onto a JSF page Components are added for each attribute in the view criteria 19 20

Declarative Validation Rules Simple rules written on the entity object Method 1 Attributes tab Validation Rules subtab Method 2 Business Rules tab Attribute or entity level Declarative Validation Benefits Quick validation on the app server side No Java coding! Add a friendlier message for BC-level errors (e.g., length) Messages stored in a message bundle file that you can internationalize All UIs built from the entity object will contain the same validation Like a trigger in the database You need to decide where to place business rules code 21 22 UI Hints A.k.a., control hints UI definitions stored in the entity object or view object definitions Universal to all UIs created from those EOs or VOs Provides consistency Set it and forget it Can put the hints on either EO or VO Rule of thumb: use the entity object UI hints whenever possible Override on view object level if needed Setting UI Hints In Entity Object editor, select attribute and click the UI Hints tab in the Property Inspector OR View Object editor Attributes tab, UI Hints subtab 23 24

Agenda What is and Fusion? core technologies Required languages BC Faces Model Controller Faces Rich Client Overview Fits into the View layer of Evolution: UIX Faces Apache Trinidad Faces Faces RC Built on top of JSF APIs Deployable on any 1.2 implementation of JSF Support for pop-ups and dialogs model support out-of-the-box Data Visualization Tools (DVT) components Charts, Gantt, Pivot, Maps, Hierarchy Really rich! 25 26 Faces RC Features Solid development support in JDeveloper Changeable skins Common look-and-feel characteristics Skin editor in JDev 11.1.2 Layout management features Extensive set of properties Declarative access to application metadata Properties can reference dynamic values using Expression Language Template support Some Components af:inputtext af:commandbutton af:commandimagelink af:inputlistofvalues af:menuitem af:selectonechoice af:inputdate af:selectbooleancheckbox 27 28

Sample Faces Development Faces JSF Snippet <jsp:root xmlns:jsp="http://java.sun.com/jsp/page" version="2.0" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">... <af:panelstretchlayout styleclass="afvisualroot" topheight="105px" bottomheight="20px"> <f:facet name="top"> <af:panelborderlayout> <f:facet name="start"> <af:image source="/images/tuhra.gif" shortdesc="tuhra Logo"/> </f:facet> <f:facet name="end"> <af:panelgrouplayout layout="horizontal" halign="right" valign="bottom"> <af:commandimagelink text="logon" shortdesc="logout from TUHRA" depressedicon="/images/groupdisconnect_dwn.png" disabledicon="/images/groupdisconnect_dis.png" hovericon="/images/groupdisconnect_ovr.png" icon="/images/groupdisconnect_ena.png" disabled="true" rendered="#{attrs.anonymous}"/> <af:commandimagelink text="logoff" shortdesc="logout from TUHRA" depressedicon="/images/groupdisconnect_dwn.png" disabledicon="/images/groupdisconnect_dis.png" hovericon="/images/groupdisconnect_ovr.png" icon="/images/groupdisconnect_ena.png" disabled="true rendered="#{!attrs.anonymous}"/> 29 30 AJAX in Faces RC Asynchronous JavaScript and XML Partial Page Rendering (PPR) in Faces Declarative AJAX Much AJAX in Faces is transparent Built into the components Nothing special needs to be done You can setup non-default AJAX behavior using properties partialsubmit used by command items autosubmit used by input items/lists, etc. partialtriggers all components, sets up the viewer (listener) AJAX provides a cleaner user interface! Id Value AJAX Interactions Total Pay AutoSubmit Salary #{bindings.salary. inputvalue} true Recalculate Salary 0400 Total Pay 0400 500 Raise 0100 Id Value AutoSubmit Id Value AutoSubmit partialtriggers Raise #{bindings.raise. inputvalue} true TotalPay #{bindings.salary.inputvalue + bindings.raise.in putvalue} false Salary Raise 31 32

Agenda What is and Fusion? core technologies Required languages BC Faces Model Controller Model Data Controls Provides list of components or groups of components for a node in the data model Drop as options Bindings Prebuilt connection from the BC to the UI Drag and drop action above does the work 33 34 Data Controls Business Services abstraction Makes Model components available to ViewController Automatically created with BC The Good News: You don t normally write data controls Can be created for other business services For non- BC, defined in DataControls.cpx Provide list of Drop as options that create pre-bound components Collection level (view object instance) Attribute level (view attribute) Collection Drop As Options 35 36

Bindings More about bindings in the 2 PM session Drop As Examples: Form and Table Association of a business service data element or action with a UI component Relatively automatic in Oracle Forms Definitely not automatic in native Java EE Binding normally takes a lot of coding One-off solution is not the answer Need a framework to assist Note the binding expressions User Interface Data Bindings Business Components Database Employees ID FirstName LastName EMPLOYEES Susan 37 38 Editing Bindings Link to PageDef file JSF Page Snippet Binding Code <af:inputtext value="#{bindings.departmentid.inputvalue}" label="#{bindings.departmentid.hints.label}" required="#{bindings.departmentid.hints.mandatory}" columns="#{bindings.departmentid.hints.displaywidth}" maximumlength="#{bindings.departmentid.hints.precision}" shortdesc="#{bindings.departmentid.hints.tooltip}" id="it1"> </af:inputtext> Bindings (PageDef) Snippet <bindings> <attributevalues IterBinding="DepartmentsView1Iterator" id="departmentid"> <AttrNames> <Item Value="DepartmentId"/> </AttrNames> </attributevalues> 39 40

Agenda What is and Fusion? core technologies Required languages BC Faces Model Controller Controller (c) Extension to standard JSF Controller functionality Defines task flows Logic and page fragment components Embedded on the page in a region component Benefits Page fragment re-use Executing code in a logic-defined flow Task flow not page flow Security Exception handling and transaction management Defined in a diagram Like JSF but more components available 41 42 router start point of the flow. Sample Controller Development control flow case exception handler 43 Sample Controller Code <task-flow-definition id="dept-flow"> <default-activity>deptbrowse</default-activity> <view id="deptbrowse"> <page>/deptbrowse.jspx</page> </view> <view id="deptedit"> <page>/deptedit.jspx</page> </view> <control-flow-rule> <from-activity-id>deptbrowse</from-activity-id> <control-flow-case> <from-outcome>toedit</from-outcome> <to-activity-id>deptedit</to-activity-id> </control-flow-case> </control-flow-rule> <router id="checkforexplicitid"> <case id=" 6"> From To <expression>#{!empty pageflowscope.employeeid} </expression> <outcome>byid</outcome> </case> <default-outcome>currentuser</default-outcome> </router> <method-call id="queryemployeebyid"> <method>#{bindings.queryemployeebyid.execute}</method> <outcome> <fixed-outcome>queryemployeebyid</fixed-outcome> </outcome> </method-call> 44

Summary: Core Technologies Agenda Faces UI rendering Controller Page flow and task flow Model Database access & SOA endpoints BC Binding data to items Departments Employees What is and Fusion? core technologies Required languages 45 46 Which Languages Do You Use? 1. Java All important programmatic code Think trigger code as in Forms 2. XML HTML The components rely on XML Property editors create it for you 3. JavaScript and Cascading Style Sheets Add functionality to HTML pages Usually the components do this work for you 4. Expression Language Used in JSF binding properties 5. Groovy BC scripting How Much of Each Do You Use? Language (Use) Java (frameworks such as Faces) Java (extending framework features) Level Needed Basic Expert Primary Use Business components code for validation and special handling of model objects, as well as coding conditional page flow. Supplementing or replacing functionality supplied by the framework. This requires research into the framework s capabilities and architecture. XML Basic The JSF tags and the HTML renderer take care of the HTML for you. XML is used for JSF JSP files JavaScript Basic/None Providing customized user interaction functionality, for example, special handling of a checkbox selection. Cascading Style Sheets Expression Language Basic/None Basic/ Intermediate For ensuring a consistent look and feel. If you use prebuilt look-and-feel templates, no CSS coding is needed. Supplying data to components from properties or methods in the application. Groovy Basic Expressions for Business Components 47

Shameless Book Plugs Final Voltaire Wisdom The secret of being a bore is to tell everything. Le secret d'ennuyer est celui de tout dire. Voltaire (1694-1778), Sept Discours en Vers sur l Homme 49 50 Summary Fusion is Oracle s effort to merge application products and technologies Oracle uses the Fusion Technology Stack and to build Fusion Applications offers a consistent developer experience regardless of the technologies Business Components provide access to the database and other data sources Faces provide 150+, feature-rich item and container components for JSF JSP pages Model connects BC to Faces Controller manages page flow and task flow Designer Handbook ORACLE9i JDeveloper Handbook Developer Advanced Forms & Reports ORACLE JDeveloper 10g Handbook JDeveloper 3 Handbook Books co-authored with Dr. Paul Dorsey, Avrom Roy-Faderman, & Duncan Mills www.quovera.com Founded in 1995 as Millennia Vision Corp. Profitable without outside funding Consultants each have 10+ years industry experience Strong High-Tech industry background 200+ clients/300+ projects JDeveloper Partner More technical white papers and presentations on the web site 51 52