Sunday, June 17, 2007

ODTUG Kalidescope Conference

I attended the Advanced APEXposed 2007 training and the ODTUG Kaleidoscope conference. Both the beginning and advanced Oracle Application Express (ApEx) training were sold out.
On the conference web page there is a listing of all the conference’s technical sessions. I copies of these papers on CD if you are interested.
For each training or technical session I attended, I have listed below the abstract of the session along with what we did or special things of note from the session.

ODTUG ApExposed (Advanced Oracle Application Express Training)

Welcome & Keynote
Mike Hichwa, Oracle Corporation

Hands-On Ajax and JavaScript
Scott Spendolini, Sumner Technologies, LLC

Web applications are quickly maturing. More client/server-like functionality is appearing on the Web each day, making sites easier to use and navigate. APEX itself included several libraries which make adding these types of features much easier. This session will outline when and when not to use Ajax and JavaScript in your APEX applications. It will provide an overview of the built-in APEX JavaScript libraries. You will build a number of different Ajax and JavaScript components, from instantaneous validations to dynamic select lists, and learn how to deploy them in your own APEX applications.
• Added “is required” validation to an application so the user does not have to submit the whole page to the server just to get a “field … is required” error message. The user get the error message as they attempt to exit the field.
• Added automatic uppercasing of fields which fires when the user moves out of a field.
• Added hiding and showing of page items based on the value of other items on the page.
• Added hiding and showing of a field and its label.
• Added “check all” option for checkboxes in a multiple row region.
• Added a pop-up window.
• Added a confirm message (OK or Cancel).
• Added an on-demand process so when a value is changed on the page its description is automatically updated without requiring the user to submit the page to the server.
• Added an on-demand process so when a value is changed on the page a select list’s list of values is automatically updated without requiring the user to submit the page to the server.
• Added logic to refresh a report region without having to rerender the whole page.
• NOTE: User ApEx validation processes in connection with Javascript validations because users can turn Javascript off in their browser.


UI and Design
Scott Spendolini, Sumner Technologies, LLC

Most developers are not graphic designers, and most graphic designers are not developers. And with good reason! Despite this, the expectations to create a well-designed site often lie squarely on the developer’s shoulders. This session will demonstrate the entire process of replicating an existing user interface in APEX. It will discuss the methodology used when creating the templates, discuss the different tools available, and cover Section 508 concerns.
• To create a new theme start with a copy of the built-in theme #4.
• Use subscriptions when standardizing themes across applications.
• Do not load theme images in the /i/ directory. Create your own virtual directory off of the /i/ directory.
• Use TABINDEX to control proper ordering of tabbing from item to item in a page.


Security
Raj Mattamal, Sumner Technologies, LLC

As important as it is, security is almost always added to an application as a last step, if at all. Designing your APEX application with security in mind is critical and should not be overlooked. This session will discuss how to build secure APEX applications from the ground up so that a hacker cannot exploit them. Time will also be spent on discussing how to segment functionality inside of an APEX application so that only authorized users can perform specific tasks. It will examine what can be done to secure the underlying data of an APEX application. Finally, it will outline a list of things that need to be secured in an installation of APEX, as well as the associated infrastructure components.
• For testing use “Open Door” authentication. It allows you to login and any user ID.
• Turn on session state protection.
• Check for SQL Injection on regions which refer to search field(s) or regions based on a SELECT statement generated by PL/SQL.
• Check for what I call “Javascript Injection”. User enters Javascript into a data entry field and submits the page. When the page is rendered, the Javascript he entered is functional. To counter this in PL/SQL there is the UTL_URL.ESCAPE function or the Javascript escape and encode functions.

High Fidelity Reporting: Hands-On PL/PDF
Josh Millinger, Sumner Technologies, LLC

With APEX 3.0, creating PDF reports will be as simple as just a couple of clicks. However, there are some limitations to the mechanism used in APEX 3.0 which will limit what it can be used for. PL/PDF, a third-party product, is a PL/SQL-based solution that enables you to generate PDF documents from the Oracle Database. PL/PDF, like APEX, is PL/SQL based, does not require any additional hardware, and is extremely flexible. This hands-on session will outline when to use PL/PDF vs. the built-in PDF engine in APEX 3.0. It will also provide a quick overview on how to install PL/PDF, and will then walk you through the creation and deployment of a PL/PDF report integrated with APEX.
• PDF reports are created in PL/SQL procedures.
• There is no visual editor of the report.
• Can start with PDF and overlay information on it for filling in printable forms.
• PL/PDF costs $500 per database

Managing APEX
Joel Kallman, Oracle Corporation

You’ve installed APEX at your organization, people have started to build and deploy applications with it, and before you know it, you have another mission-critical component that needs to be managed. In this session, the Oracle APEX team will discuss the architecture of APEX, how it was designed with scalability in mind, and how to use features of the database and APEX itself to assist in managing it. It will also discuss how to manage the APEX e-mail queue, identify and enhance the performance of slow queries, and prevent poorly written ones from degrading the performance of your system.

APEX APIs
Raj Mattamal, Sumner Technologies, LLC

The APIs provided with APEX are quite powerful. They extend the functionality of APEX so that it can be integrated into named PL/SQL procedures and functions, create data-driven dynamic forms, allow for custom authentication functions, and integrate with LDAP, to name a few. This session will examine the most popular features of the APEX APIs and provide working examples to illustrate how to invoke them. It will also discuss the benefits of and when to use data-driven forms in your applications.

2007 ODTUG Kaleidoscope Conference Presentations I Attended

Database Tasks with Oracle SQL Developer
Sue Harper, Oracle Corporation

Oracle SQL Developer provides the database developer with a convenient way to perform basic database tasks. Connected to an Oracle database, users can browse, create, edit, and delete database objects; create, edit, and debug SQL and PL/SQL code; manipulate and export data; and create reports. This demonstration-rich session briefly positions the tool, and then quickly walks through a series of activities that a user might do in any day-to-day activity; from creating a connection, to creating basic objects and then writing and debugging PL/SQL code. With particular focus on new features in SQL Developer 1.1, this talk will also address more complex aspects, such as extending the tool, and a few plans for the future.


APEX and Project Management
Patrick Cimolini, Cayman Islands Government

Application Express (APEX) is a robust and productive development tool, however, even APEX projects can be late, over budget, and of dubious quality if they are not well managed. Looking at APEX from a project manager's perspective, the following questions are addressed: How long will a project take? What tasks needs to be done? How long will a single task take? When should the tasks be done and in what order? Who performs the tasks? What skills are required? How are source code and versions managed? What quality can be promised and delivered to the customer? Quantitative metrics and a production application will be used to illustrate the points.


Polishing Below the Surface with Ajax
David Schleis, Wisconsin State Laboratory of Hygiene

It has been suggested by the world’s premier Oracle development users group that decisions concerning hardware and operating system are secondary, and now “it’s all about the web.” The technology that allows for the creation of sophisticated Web-based applications that behave like desktop applications is Ajax, or Asynchronous JavaScript and XML. Ajax allows for some very flashy user interface features to be included on a Web page, but it can also be used to perform less glamorous duties. This presentation provides an introduction to Ajax, including a brief overview of its component technologies, as well as examples of under-the-covers functionality that can be designed into new pages or used to enhance existing applications.


Getting XML Data into and out of Oracle with PL/SQL
Ken Atkins, Creative Design Associates

XML is very powerful as a method of transporting data between different applications or databases. Because of this, PL/SQL developers are often faced with the task of creating XML documents from data in normalized Oracle tables, or of storing the data in XML documents back into normalized Oracle tables. This session will present various tools and techniques that are available to the PL/SQL developer to read, write, and manipulate XML documents with the express purpose of getting the XML information into and out of standard Oracle tables.


Flex Your APEX: Implementing Oracle E-Business Suite Flexfields in Application Express
Shane Bentz, InterVarsity Christian Fellowship/USA

With every passing day, the functional boundaries between traditional client-server applications and Web applications decrease. New technologies such as SOAP and Ajax enable Web applications to function and perform like traditional fat-client software. In this session, I will show how to integrate the E-Business Suite flexfield functionality into Application Express. By leveraging the power of Ajax, Application Express can use descriptive flexfields to create rich Web applications—applications that can change shape and purpose on-the-fly, enhancing the user experience by not reloading the page and minimizing future coding by developers.


APEX by Example: Shared Components
Dimitri Gielis, Ordina Belgium

Oracle Application Express (APEX) is a quickly growing development environment. The initial goal of APEX was to have something 'simple', a wizard-driven development environment to compete with MS Access or to replace Excel files. People still use the wizard a lot, but if you would really like to use the force of APEX, you can use Shared Components. This session covers all available Shared Components; it tells you what it is for, why to use it, and how to use it in a real environment with the "DG Tournament" application.


Advanced Database Development with Oracle SQL Developer
Sue Harper, Oracle Corporation

SQL Developer provides a convenient way to perform basic database tasks. Here we look at some of the activities you might perform, running complex scripts, normalizing data, and remote debugging. Advanced reporting capabilities include graphical displays and master-detail reports. We demonstrate a few existing extensions to SQL Developer and show you how to build and include your own extensions.


Advanced Application Express Programming Techniques
Michael Hichwa, Oracle Corporation

Learn Michael Hichwa's perspective on how to develop Application Express (APEX) applications from data model to user interface. Get recommendations for source code management, upgrades, and customizations. See how to exploit new Oracle APEX 3.0 features. See techniques to improve and test performance.


Building Interactive Web Reports with Application Express
Jeff Hohman, Oracle Corporation

This presentation will show the reporting abilities of Applications Express, will demonstrate how to have multiple SQL statements displayed on one page going to different data sources, and will demonstrate the drilling and manner of which variables can be passed around to other reports. It will also show other Applications Express components (ex. Graphs, Forms, etc.) integrated into the same dashboard.


APEX Lessons from the Trenches
Bill Holtzman, National Air Traffic Controllers Association

Application Express enables rapid and efficient development of secure and enterprise-level Web applications. Like any platform, there are numerous tricks of the trade that one learns only after getting waist-deep in the coding. The National Air Traffic Controllers Association (NATCA) has been digging successfully in the APEX gold mine for three years and has a wide assortment of coding techniques to share with those undertaking or considering expanding their use of APEX.


Managing Large Application Development Using Oracle Application Express
David Peake, Oracle Corporation

This presentation will outline developing large applications using Oracle Application Express (APEX). It will be based on personal experience managing a diverse team of developers and personally developing APEX Applications on a comprehensive system with close to 1000 individual applications. Development on this application started over four years ago and has successfully been implemented as the primary enterprise-wide OLTP system for a large law enforcement agency with thousands of users.

2 comments:

Andrew Woodward said...

Hi Mike

Good to meet you at the conference - all very interesting, and good to meet so many fellow Apex people. Hope you got back home Ok.

I was interested to see that you're planning a piece about the relationship between Forms and Apex concepts - I put in a paper for the UKOUG in December, which should cover a lot of similar ground. This was the abstract I submitted:

Programming real applications with Application Express

Oracle's Application Express (Apex) development tool has waded into competition with MS Access and Excel for small desktop database applications. Simple Web-based applications can be created in minutes, with no particular knowledge of HTML or Web technologies.

But what happens if you want to go beyond the wizards and create larger-scale applications? How feasible is it with Apex? Is it a serious programmer's environment?

This presentation looks at some of the ideas that you need to get your head round if you want to use Apex as a proper programming tool. It will also highlight the way that some Forms-related concepts translate into Apex. These include: authentication, authorization, page rendering and processing, validation, branching, navigation, use of images and stylesheets, application items and processes and sharing of components and processes throughout an application.

I should find out if the paper is accepted in the next few weeks, but I would be interested to see what you write, and to share what I come up with with you. Hope it does get accepted - I've really enjoyed going to the conference the last couple of years.

Best wishes
Andrew
UK

Michael A. Rife said...

Andrew,

How are you? I did not get your email address at the conference. Please email me at Rife@sssnet.com If interested I would love to help you. Are you going to Oracle OpenWorld?

Mike