Oracle 12c framework latest version is out with a bunch of
new exciting features. Thanks to some cutting edge
components and the flexibility of declarative components,
this new version ADF framework increase dramatically the
productivity levels.
VK Business Profile - provides IT solutions and Web Development
Webinar Oracle adf12c EN
1. what´s up in tech
ADF Expert Center – May 2016
Webinar Oracle ADF12c
A quick review of the lastest Oracle ADF version
2. what´s up in tech
Index
atSistemas ADF Expert Center
What´s new in JDK y JSF
New ADF components
Jdeveloper improvements and innovations
ADF improvements and innovations
Conclusions
Questions
3. what´s up in tech
ADF Expert Center
Work hard to be always the best is atSistemas goal. In the ADF Expert Center
we always want to be at the edge in technology investigation to provide the best
service for our customers.
o Enterprise architectures
o Custom made components (Accelerators)
o ADF Smart Monitor
o Plug-in of ADF audit rules
o Custom made security provider for WLS
Products
o ADF training for Java developers
o ADF training for Forms developers
o Best practices guide-lines
o Oracle Forms to ADF migrations
Trainning
o Projects support
o Technical offices implantation
o Advance consulting
o Expert support channel
Consulting
Main lines of activity
Trainning
R&D
Colaboration
Comunication
Products&Services
4. Software Architect and Technical Leader
Member of ADF Expert Center
Email: flopez.campillo@atsistemas.com
6. what´s up in tech
JDK
JDK 8
Default methods in interfaces
Lambda expressions ( () System.out.println(“My code passed”); )
Stream API
Dates API
JDK 7
Multi-catch
Strings in Switch
Automatic management of resources in try-catch (connexions, inputstreams etc)
Hyphen in numeric literals
JDK 6 JDK 8
7. what´s up in tech
JSF 2.2
HTML 5 support gets richer
Full Facelets implantation (.jsf)
Custom components for Ajax interaction
(f:Ajax)
Parameters between pages
f:viewParam
Composite components
Annotations registry for managed beans
No need to register beans in faces-config.xml
anymore
New scopes
@NoneScoped: EL expresión live-time
@CustomScoped: Custom management scope
JSF 1.2 JSF 2.2
Conditional navigation in faces-config.xml
(Router activity in ADF)
Faces Flow (TaskFlow in ADF)
EL expressions sending parameters
No need to implement f:attribute etc.
Events new annotations
PostConstructApplicationEvent
PreDestroyApplicationEvent
PreRenderViewEvent
18. what´s up in tech
JDeveloper
Lightweight and loads faster
Maven integration
GIT integration
In Debug can handle changes in Model/View layer without the necesity of restart
Design mode gets better
20. what´s up in tech
Styles
Alta Skin
Theme Editor: lest complexity with styles
Templates & components for responsiveness
af:matchMediaBehavior
Responsive Template
21. what´s up in tech
TaskFlow
Better TaskFlow Templates
22. what´s up in tech
Entity trigger
It allow us to execute our own in base of
the ADF live cycle
Now its less complex
Easier to detect if an Entity has
custom code
No need to hight levels of life cycle
undertanding in ADF BC
23. what´s up in tech
af:query
Improvements:
Ability of reorder fields position (Advance Mode)
In design mode be able to specify the operations in advance mode
Capability of specify width of fields in design mode
New functionality of providing final user the ability of deleting fields no matter mode
24. what´s up in tech
Row Finder
New way of using ViewCriterias for internal searches.
Allow to search inside of a ViewCriteria:
Be able to create a new rowset without interfered the UI rowset
25. what´s up in tech
af:target
Full control of which components are going to be executed (in the life cycle)
and the ones that will be refresh.
Skips validation on button click
Fields refresh depending of “valueChange” property
Depending Lovs !!!!
Cancel or Reset button implementation
Immediate true is not needed
Lots more …
27. what´s up in tech
Maven
Full ADF Maven integration
Now “all or nothing” decision about Maven, there is no “in the middle”
Go to Continuous Integration gets easier
Oracle Maven artefact repository maven.oracle.com
29. what´s up in tech
REST Services
REST/JSON Services creation
ADF Business Components exposition through REST/JSON interface:
Resource base on instances of View Objects
Resources groups base on version number
30. what´s up in tech
REST Services
REST/JSON Services creation
Custom Resources
31. what´s up in tech
REST Services
REST/JSON Services creation
Access to description of the resources collections
32. what´s up in tech
REST Services
REST/JSON Services creation
Determintated resource access
33. what´s up in tech
REST Services
REST/JSON Services creation
Be able to customize resource access
Attribute values and fields to show
Pagination
Link expansion
34. what´s up in tech
REST Services
REST/JSON Services consumption
Data Controls for RESTful (XML y JSON) services consumption
Easy process of generation
Minimize the effort needed to access services
Services integration like Model layer
35. what´s up in tech
REST Services
REST/JSON Services consumption
Exposed resources through REST connection
37. what´s up in tech
Conclusions
Improvement and bugs fixed
Same productivity & higher flexibility
Performance improvements
Maven IC
Easier to adapt Forms application necessities
11g R1 and R2 disappear
Better stability
39. what´s up in tech
Índice
http://openjdk.java.net/projects/jdk8/
http://www.oracle.com/technetwork/es/articles/java/expresiones-lambda-api-stream-java-2633852-esa.html
https://jcp.org/en/jsr/detail?id=344
http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx
http://jdevadf.oracle.com/workbetter/faces/index.jsf
http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1213nf-2222743.html
40. what´s up in tech
ADF Experts Services
We can provide a wide range of advance services solutions to our clients in
Development, QA and ADF software testing.
o Unit/Functional Test
o Test atomization
o Security Test, Systems, Load/performance
o Code static analysis
o ADF Smart Monitor
o ADF audit Plug-in of Rules
o Mobile Application
Framework (MAF)
o Turnkey projects
o Technical support
o Development methodologies and Best Practices
o Implementation & support of own products as
services complement.
o Accelerators implementation.
o Technical offices
o Experts support
o ADF training
o Managed Services
o Development factory
o Remote Technical Office
Mobility Testing & QA
Complementary Services Remote Services Implantation
o Strategy, tactic and operational
o Architecture & code audit
o Performance audit
Consulting
41. Madrid Barcelona Cádiz A CoruñaZaragoza
Email: flopez.campillo@atsistemas.com
Software Architect and Technical Leader
Member of ADF Expert Center
Email: flopez.campillo@atsistemas.com
Notas del editor
Hi everyone and wellcome to this new sesión of what´s up in tech.
I always like to start with the most obvious questions, Who I am, why we do this, who is this webminar address to ?
Who I am, in this case Anna introduce me already, I am a software Architect and Technical leader, apart of been Member of the ADF expert Center and present this kind of presentation also I do sesión training, I specialize also to start new teams with clients, make mixed teams to get the best of both, the business knowleage from the client and our technical expertise
Why we do this kind of Webminars:
We like technology and we believe in sharing knowleage, we would like express the comunity we are a bunch of guys here in Spain and we are experts on those technologies and we love what we do.
This webminar is address for developer that has already started to Work with ADF, specially the ones who are not sure about the posibility of jumping from 10g or 11c to 12c. This is not a Master Class of ADF, we won’t see here advance tecniques, perhaps in the near future we will do an advance session
Despite there has been several release of ADF Framework 12c we are going to summarize them all.
Default Interfaces
Methods defined in the interface but can be use in the class.
Lambda expresionsDefault Interfaces
New way of passing a block of code to method, you need to create an interfaces an a Runner class, but now it gets easier to specify you code.
Streams
Different way of going through collections, different to the tipical Iterator.
It apply filters to get the same information mapping the data
Dates
Api that comes from JodaTime, classes like:
Instant, LocalDate, LocalTime ZonedDateTime
MultiCatch
Several exceptions catch at the same time, instead of a list of catches
Autmatic management of resources
If we define resources like: inputStream, OutputStream, Reader, Writter, Formatter, Socket inside a try it will automatically close, no more “Finally”
We are talking about JSF here !!! Not ADF.
As all of you might now ADF is an implementation of JSF for that reason some of the new features are already IN ADF.
Code Editor: colors to empathize objects, do searches, go to line … We use it already in Tool ASM (ADF Smart Monitor) to show some logs.
ListView Component:
Following the new wave of Think Mobile First several new components always try to put information in simple list to always be more adaptable in Mobile devices.
Deck components: No more Jquery components
PanelSpringBoard: Menu on top
PanelDrawer: menú left and right
They are Handy when we want to implement in ADF lots of fields. It get more spacious.
Design mode gets improved
One of the bigest improvement that Oracle have done in the las 15 years that is the look and feel.
Starting from the “not too nice” 10g skins in UIX, after the Fusion 11g and later the 12c Alta the evolution has been mint blowing.
Them Editor a new tool that helps us, especially for beginner
Instead of doing custom implementation you can specifiy there your code
Is not something new, before we could already search creating a RowSet and do a search using a ViewCriteria.
Now is a preset object that helps to stablish a store search and use it programatically.
Full rest support.
Before: we have to implement of our services, for CRUD in a VO was easy but if the model is complex with lots of object will be difficult.
Now can publicize in click of a button all your business objects and modify the data directly.
In each resource you can specify what is going to be public
can group them by versión, even the same Service in diferent versions
For each VO we especify Create, Delete or Update, which attribute we allow to show or modify or the Rowfinder
After we create the first resource it will create a servlet is going to allow us to query data
After create one versión we can test it using a cliente or a browser, with an URL we can query the description of the resources.
Using a GET query we can retrieve data and related objects, for instance, Lovs references, ViewLink for master detail structure etc.
In the definition we can specify pagination
We can specify also which Links information is going to shown.
Talking about comsumption:
In 11g with Soap or Rest XML we have to provide objects like XSD
With Rest Json was more difficult, we had to create methods, we had to parse, we had to créate a client to consume them, this is a time consuming tasks.
This new versión helps to handle them, in the same way of Business Components it will automatically créate DataControls and will parse Json in a very easy way.
Here, on the left the conexión of the rest service and the dataControls. As you can see its look like exactly like business components DataControls.
-What would be your main reason to convince my Company to invest of upgrading our ADF development to 12c?
The main reason that I would use is just because now days Browser get updated automatically and therefore the way that devices and undertand html is continue evolving plus the amount of different devices, resposiviness now days is a MUST, and Oracle invest time to make new versions more responsive.
The other reason is just because the sectors is going towards Service Oriented and whose new versions helps us a lot with REST services.
-Which ADF versión exactly are you presenting?
Since 12c came there have been three main versión, 12.1.2.0, 12.1.3.0 and 12.2.1.0
-We are thinking about the posible migration from 11g to 12c, is there any especial point to look at in order to do it ?
From 10 to 11 there have been several changes, especially in the viewLayer, business object are pretty similar.
In 11g threre If you are comming from R2 the differences are very Little just because R2 was consider the Betta versión of the 12c, if you come from the R1 versión be careful if you use hyrarquical application modules because it has change the way of reusing or not the conexión.
I never find the way of creating pages using the design mode, do you usually use it ?
What I do is …
Debug mode got improved in terms of performance? Is it getting hang so often ?
Yes it get better and better, now you can see more often especially for Java clases even in model layer get refresh, but like always the perfert environtment that you can always thrust unfortunatelly doesn’t exist.
Do have good experience in Glashfish 4 ? We have it running but documentation is horrible.
We have a couple of our client with Glashfish and despide they are not in production yet it seem it is working quite well, we have to customize the connection in one of the due to an error, by default was AutoCommit true and we change it for AutoCommit false.
Talking in terms of skining, do we need to change the layout que we use ? Does it render in a different way ?
No, 60% of the elements are the same, it depends how many modification have you done on your current Project, a PanelGroupLayout is the same but the look and feel of the components you will see it is a Little bit different and in general is always better, with more style definition, internally it get render differently of course.Which components do you use to make responsive Apps and Touchable apps?
First of all let´s especify what an App is, if we talk about mobile app there is an especific framework for APP in ADF, it is call MAF and it is exclusible to make hybrid apps.
If we talk about web-base application some of the components are already responsive or adaptive, for instance the paneltabbet if the window is too small it will show you a contextual menú to select the tabs that you don´t see or event to close them all. There are also espefic layout container like af:matchMediaBehavior that will stretch the box inside. You can always use CSS Media Query to apply it directly to the style class that you want.
Talking about touchable, in adf you can especify with el expresión how elements is going to be rendered depending of the device.
For instance:
Pagination instead of scrolling,
Html5 instead of flash,
drag and drop and ta and hold
Tablet style UI components (Springboard and list view that we saw before)
Maxime support will be:
<af:document title="index.jsf" id="d1" maximize="#{adfFacesContext.agent.capabilities['touchScreen'] eq 'none' ? true : false}"> <af:form id="f1"> <af:panelStretchLayout id="psl1" dimensionsFrom="#{adfFacesContext.agent.capabilities['touchScreen'] eq 'none' ?'parent' : 'children' }">