It’s been a while since my last post but this is simply because I’ve never been so busy in my life. Both Peter, myself, and the team have been working long hours 7 days a week, but… today I’m taking a moment to breathe and give you some insight what’s happening behind the scenes within the formation of our new company FOEX GmbH.
It’s all about plugins
We have built (and continue to build) a framework of plugins called FOEX that is essentially a new foundation layer for APEX application development. We have been modularly building these plugins for over 12 months and constantly refactoring them to work cohesively together or independently. Using several plugins or the entire suite, developers can build rich internet applications backed by the Sencha Ext JS 4 UI library and Application Express. Visit tryfoexnow.com to keep an eye on our progress.
But plugins are just the beginning
My personal drive for building plugins is not for the achievement/reward of writing them, but to use them, and use them in multiple different ways. The ultimate goal is so we can achieve any complex development requirement thrown at us. Now that we have the first version of the framework almost ready, we can start building applications. This is the exciting part which allows us to see a whole range of different possibilities and understand where we still need to improve to make things even better than they currently are.
In order to document and use the plugins we are working on ways to demo their features in a real world usable way. One of the most usable ways we can think of is to build a new application to assist the current APEX builder and look for ways to help improve developer productivity whilst building applications using our plugins. Both Peter and myself are devoted SQL Developer users and we want to bring some of those GUI capabilities to APEX. Here’s a screenshot from our LAB of our FBuilder project that we’re designing to do just that! (and built using just our plugins in APEX)
Inspiration has come from a lot of places, a special mention goes out to Noel Portugal for his OraTweet solution released a number of years ago… I hope Noel doesn’t mind us promoting his work and drawing inspiration from with our tweet deck inspired demo using our twitter and layout plugins.
To ensure we have the most secure plugins available we have formed an alliance with Recx Ltd but our partnership goes beyond that. We want people to build the most beautiful and secure applications possible, and to do that we want to evangelize how important security is and embed it within the cycle of your development process. But we aren’t security specialists and that’s why we called on the best in the business, Recx Ltd, to be part of a new era in APEX development setting a whole new standard.
It won’t be long before we’re releasing our new company website and opening an invitation up for interested parties willing to be involved in our hosted framework beta testing program, not dissimilar to apex.oracle.com, with a downloadable release to follow after completion of the beta trials. For those that have immediate project requirements we will be open to discussions to help get you moving ASAP before our official release launch.
Spreading the Word
Peter and I will both be at the Austrian User Group conference day in June, and will also be attending Kscope 12 and presenting. If your interested in what we are doing we urge you to come and meet us and talk with us. We’re both passionate about APEX development and want to plant the same seeds in you, that were planted in us.
The amount of work to get where we are has been huge, but it pales in comparison to the mountain that is ahead of us which we have started to climb. We’re on a long journey and sometimes we underestimate the amount of time it takes to get to the next base camp. The point to take away is that we’re always moving forwards and our first base camp is now in sight. We have an ambitious roadmap to bring new applications to life, release version 2.0, produce a Sencha Touch framework for APEX, introduce new modular solutions similar to interactive reports, the list goes on… and on…
So on a final note, as the saying goes “Rome wasn’t built in a day” and it wasn’t…. but soon your applications might be
Recently I’d started work on a new project in APEX 4.1 and a target browser of IE6. As part of the initial project setup I used the APEX Form Validation plugin provided by Guido Zeelen which is based on the jQuery validation plugin developed by Jörn Zaefferer from bassistance.de. Whilst I had no issue with the plugin in 4.0.x and IE6, I ran into a problem in APEX 4.1 which meant that on page submit all forms were passing as valid in IE6,7,8 even when they were invalid. However on Firefox, Chrome it was working perfectly… go figure!
There were a couple of red herrings that came up when I was looking for a solution, but in the end it was due to APEX running jQuery 1.6.2 and using v1.7 of the jQuery validation plugin which wasn’t a supported combination. The simple fix was to upgrade to v1.9.0 and I’m happy to say that it’s now working again on IE6,7,8…. well not entirely happy after losing a number of hours debugging, but hopefully you won’t if you run into the same problem
A couple of months ago I had a request to create a “Freeze Columns” dynamic action plugin for an interactive report which behaved like the following demo. Whilst I wasn’t sure whether it would be possible I knew that in APEX 4.0 we had some event hooks such as “After Refresh” which we could bind a dynamic action to. We could use this event to manipulate the Interactive Report HTML after every refresh to produce the required layout. Whilst the initial prototype was quick to implement, mainly thanks to jQuery, there were a number of challenges which I faced:
- Cross browser and version support since different flavours of IE handled the positioning of scrollbars differently. Achieving equal row heights when splitting the report into two HTML tables was tricky, each browser seemed to behave a little different.
- The header drop down menu’s would be placed incorrectly when horizontal scrolling occurred on the unfrozen set of columns, which unfortunately wasn’t as simple as the usual workaround for relative positioning.
After resolving the above and the addition of several enhancement requests i.e. adding in additional vertical scrolling whilst freezing the header (see this demo) and making it work with Clarifit’s existing column grouping plugin (demo), I’m proud to announce the release of publicly available commercial package to perform all 3 cosmetic changes in combination or independently of each other. Here’s a screenshot to give you a visual of the plugins in action:
Here’s a YouTube video which walks you through how to combine all 3 dynamic actions on the same interactive report.
Lastly here’s the demo application to see them in action, and download page. The added extra is that, thanks to the release of APEX 4.1 on apex.oracle.com last Friday, I have been able to certify the package against this new release of APEX