Fusion Design Fundamentals

Duncan Mills gave a great presentation on ODTUG regarding the Fusion Design Fundamentals which gave more insight in how to manage and start in Fusion Development.

The key take aways I found very interesting:

  • The Groundwork: 1. understand the fundamentals of the UI in which you’re aware of what ADF can and can’t do (don’t start designing in dreamweaver because you need to be able to hook it up into ADF. 2. Prototype it and make it sufficiently real which will also give your team and the customer a real case study of what the application can become. 3. Approach the framework and architecture with an open mind because the architectural approach is key.
  • What is the fusion blue print = View – Business Logic – Data (as what you would think working with an MVC-framework.
  • Educate your UI Designers: Use the Placeholder Data Control to mock data and services + show them the rea-site in which you have a sandbox available to plug and play with the different components + behaviour of the design is key when designing User Interfaces (e.g. what happens to the application when I resize the window)
  • Team organisation: a. Optimize team size so you can have expertise in specific technology areas (you can’t do that if the team’s to small, in that case they need to know more about the framework, as well UI as business logic for example). b. try to partition the skills: UI specialist, Service specialist, Orchestration Specialist, DB Specialist, SCM-build and release management. => more separation within the team so developers can specialize.
  • 2 trains of training: a. Create Subject Matter Experts that can mentor large teams (they create POC’s and get to know the framework). b. SWAT-team: mixture of architects and PM’s to get high level view of development teams and decide when to move up and escalate, e.g. in case of a bug
  • Source control and release management need a separate team in which Master Data Management is an integral part of dependency managment
  • Specific things you can do with the stack: a. Create your own Superclasses (Application Super Classes for ADF BC + UI Event Handler Superclasses). b. Use templates for the UI and taskflow using your pre-defined exception handlers. c. Use the skinning-technology to be able to change the look and feel of the UI in a general, generic way. d. Learn to love ADF Taskflows which is fundamental to create reusable stuff and to encapsulate a flow of information ( ADF Taskflow = Page flow on steriods; used for chunks of reusable UI with transactional state, private memory areas, … the true Web 2.0 experience). e. Work with the UI, not against it (think of geometry management, e.g. use decorativeBix which can be resized and stretched depending on the UI Specs) => don’t use absolute sizing or positioning. f. Document the UI patterns you’re using: e.g. master-detail, wizards, … the common patterns are documented on OTN: ADF Functional Patterns.
  • ADF 11G: You will have different source of template patterns to choose from (this is an awesome functionality in which you can choose to work with 1, 2 or 3 columns and each area can be defined upfront as being locked, stretchable, scrollable, …)

Another interesting part of the presentation, 5 laws to live by ;o):

  • Don’t write javascript because anything in Javascript can be hacked or bypassed (make use of the Client Side and Server Side Listener functionalities)
  • Don’t mix in html => stick to the components, avoid JSP Constructs (e.g. JSP include or JSTL) => in this way you can use any controller-layer possible and uplift performance
  • Minimize Use of CSS => use skinning technology and define custom styles in skin
  • Don’t write Custom SQL => try to do it declaratively using view and entity objects
  • Communicate ! Demo, document and share experiences

This was a really interesting presentation regarding the organisation of teams, how to use ADF and what the pitfalls can be.

A Canonical Data Model, the missing link within a Service Oriented Environment

Chris Judson has given an interesting presentation regarding a Canonical Data Model within a Service Oriented Architecture.

First he gave an example of the different aspects and problems you could be facing when defining the existing arhictecture and business flows within an organisation.

One of the aspects that’s needed to accomplish this, is getting IT and business to consolidate and collaborate with eachother to have a clear understaning of today’s architecture and the goals defined for the future.

The Canonical Data Model will define a common format to describe business entity within the enterprise wide organisation, as well for business as IT.

Take aways from this session:

  • The CDM will reduce the interface maintenance and encapsulate business logic in one central place
  • Put the CDM on the bus: you can plug in new applications to listen to existing events, without the need to define a new format for the new consumer + there’s a common understanding of the data model for as well business as it
  • Use the 80/20 rule to define a CDM: First you take all the unique identifiers combined with a super set of data which will be used by most consumers. In other words, if 80% of the consumers have the needed data within the CDM, the 20% can be delivered using the enrichment pattern, without the need to enlarge the payload of the CDM
  • Managing change is hard within such a model, because the dependencies between several applications are mostly high. To manage change, the 80/20 rule is applicable as well. When 80% of the consumers need new attributes, changes in the existing attributes, … the CDM can be changed. The other consumers can be delivered the same functionality using the enrichment pattern again.
  • For schema versioning the Format Indicator Pattern is mostly used
  • Use generic XML types for the XSD instead of DB specific types
  • Use declarative namespaces to manage data domains to have a generic enterprise wide data definition strategy in place

The presentation of Chris was very enlightning, because a lot of these tips & tricks are valuable for each design or implementation using XML type data and service enablement.

ADF 11g – Take Aways

Monday morning I followed the session of Lucas Jellema, Putting a Smile on ADF Faces. The presentation was great, especially because Lucas created a demo with some of the features integrated that Steve Miranda had shown in the keynote session regarding Fusion Apps.

Take aways from this session:

  • A table can fetch data in an asynchronous request, so you can scroll throug records and the server will get more data as needed. In other words you don’t need to use the pre-defined row-set anymore which was necessary in previous versions, e.g. show 10 records at a time)
  • Client Side and Server Side support has been greatly improved so developers can tackle functionality where it’s supposed to happen. API’s are available to be able to work only on the Client Side or Server Side using Listeners. Using the Client Side scripting for example, you can now use javascript and client Side API’s instead of needing to use backing beans or managed beans. For Example using propertyListeners on the client side to trigger events.
  • You can embed tables inside the panelCollection-component to be able to change to look and feel of a table component, e.g. detach the table to a separate region to have more display-functionality. What you can do know is hide columns, filter on records at run-time which can give you the same dynamic look and feel as with using interactive reporting within Apex
  • Autosuggest-functionality to be able to get a list of valies according to the information the end-user has putted in. The event keys kan be intercepted by the Client Side Listener, calling the Server Side Listener which can then push the data to the Client Side
  • The Data Push mechanism or Active Data Services give you the ability to work on real-time data without the need to fetch the data yourself which is a great enhancement

And of course there’s lots more in the ADF 11g release that will enhance user friendliness and capabilities for the developer to give you a true Web 2.0 experience. The hierarchy viewer-component can be viewed already on the rea-side. Have a look at what ADF has to offer you in a sandbox-environment where you can start playing around with the functionality.

ODTUG first day ApEx roundup

The ApEx Symposium on the first day of ODTUG is over. It was a great day full of very interesting presentations. The day started with Joell Kallman presenting the keynote: Application Express: Ahead of the Curve. A very interesting and amusing presentation about the possible future of ApEx.

After Joell it was my time to present ‘APEX at Brussels Airport‘. I had a limited time slot of 30 minutes but at the end I had a good feeling about my presentation. Seeing I got several questions after the presentation, I hope I helped some people with giving them new ideas for possible technical solutions.

During the symposium I saw some very nice presentations giving all sorts of approaches for developing ApEx applications. At the end of the day there was an ApEx Panel Discussion with:
- David Peak
- Joell Kallman
- Patrick Wolf
- John Scott

Everyone (including moderator Scott Spendolini) got a chance to ask questions about ApEx with some interesting discussions following.

I’m looking forward to monday where Michael Hitchwa will be presenting Oracle Application Express 4.0.

ADF EMG at ODTUG, OKUG, google-group …

This group is a place to discuss best practices and methodologies for JDeveloper ADF Enterprise development, including effort by “experts” in ADF to discuss high level issues than those discussed on the OTN JDeveloper Forums.

This effort is an overall part of getting ADF experts, advocates and programmers to start collaborating at user group events and OOW to get “ADF out there”.

What does the ADF EMG stand for?

Meanwhile, for those who are looking for something of substance, we’ve recently centralised previous efforts of the group from the Oracle Wiki to this group.

If you select the “Pages” link to the right of the Group window, it’ll list useful content including:

During the Middleware and SOA Session at the Sundown Sessions, we will be further discussing these deliverables and other aspects that have been mentioned on our group.

You can find more information regarding ADF EMG and the ACE program during ODTUG, at: http://www.odtugkaleidoscope.com/acedirector.html

Simon Haslam has submitted an Abstract regarding the ADF EMG take aways for OKUG as well. So if you can’t attend ODTUG, you certainly need to attend OKUG!

ODTUG : ApEx Symposium

ODTUG 2009 in Kaleidoscope is coming very close. I will be presenting: Mission Critical APEX – APEX at Brussels Airport in the category Customer Success.

The ApEx Symposium will start on Sunday 21 JUN and I will be first after the keynote of Joel Kallman.

I started to prepare quite late as I never got an answer on my abstract BUT it seemed that all mails from ODTUG for some reason came into my junk mail folder. A good reason to not just delete any message that lands into it, totally my own fault.

A colleague found my name on this website, from then on I could confirm for ODTUG.

I’m looking forward to the next sessions:

- Dietmar Aust: PDF Printing with APEX—A Cost-free Alternative
- Roel Hartman: How to Integrate APEX and Oracle Forms?
- John Scott: Increasing Scalability with Oracle Application Express
- Patrick Wolf: The Quest for the Hidden Treasure of Oracle APEX

And there are at least 10 other sessions I want to attend to, there are so many session that it is very difficult to choose from them.

See you at ODTUG!!