I started this review whilst I’m leaving Rotterdam, on the train heading to the Schiphol airport reflecting on what I think was, by far, my favourite event to date: APEX World 2017. It is probably the best Oracle event I have attended – aside from KScope, which I have to exclude since it is a very special event which you cannot compare.
My reasoning for such a glowing review? Firstly, it was the content. I’ll give a recap on that in a minute, but it was first class, delivered by world class developers.
Next was the location and people, I made many new friends and met up with old ones. Rotterdam is a great event location, organised by a great committee, easy to get to, hosted on a ship with great facilities and attended by one of the biggest crowd of APEX devs I have seen. I find Dutch people to be very approachable funny and down to earth, and really knowledgeable about Oracle and specifically APEX. I learnt a lot from every presentation I attended and have a lot to take away with me.
My presentation on the APEX plugin architecture using a region plugin which introduces last loading, lazy rendering, load on scroll and client side tempting to boost application performance was well attended.
Thankfully my mortal fear of presenting didn’t get the better of me.
My colleague Dietmar did a great job in his first APEX World presentation, talking about the challenges of finding, recruiting and training new developers, including his 3 week training experience in Oman.
He also mentioned that even our marketing guru is now proficient in APEX development. Could we say the same if we were a Java shop? I don’t think so!
The APEX World crowd itself is becoming more international, for instance I met a guy called Sandro from Chicago in the USA. Sandro told me, that for him, it was more affordable to come to APEX World in the Netherlands than attend KScope, Open World, or Collaborate. Plus he said it was also an adventure. So take note of that people, this conference, whilst Dutch, is 80% presented in English so you should put it in you schedule for next year, come to the Netherlands and have an experience you will remember forever!
It was also great to see a bunch of people in their early twenties attending. APEX, and PLSQL can still compete with all the cool kids aka. Angular, React, etc.
The Overall Message
Back to the topic of the presentation content, I can’t believe how quickly APEX is advancing. The presentations from the APEX team themselves, Mike Hichwa (the APEX Godfather) on the past/present/future of APEX, Quick SQL, and Blueprints. Hilary on JET Charts, Colm Dilvy on ORDS/JET/REST, and Shakeeb on the Universal Theme. I haven’t left a conference this excited about the future of my development career EVER! Then there were the topics on Docker, Oracle Cloud, for easy deployment and management of your environments.
If I were to sum up the overall message from the conference in one word I would say: Productivity. Not just the advances in the speed of development with the new release of 5.1, but everything else that goes into your development process and the running and maintaining of your environment. Whether it’s quickly spinning up your docker instance or accessing your cloud environment to then rapidly generate your Data Model using the new “Quick SQL” app. Did I mention this app was built exclusively by Mike Hichwa?
Then when it comes to building interactive dashboards, there’s the new JET charts, wow these have such impressive functionality and just look really damn professional. It was great to see that the APEX team has provided customisation capability for advanced developers. Thank you!
Mike Hichwa is great example of productivity, this is a man who started APEX to speed up web development (hundreds of thousands of devs now stand on his shoulders). He manages several teams in Oracle, and still has the time to build an app with the sole purpose of speeding up data model generation. Where does he find the time?
Quick SQL & Blueprints
I do have to admit that my first reaction to hearing about this “Quick SQL” tool before seeing it live in action was: mark down for SQL, pfff I have to learn the syntax to create the DDL for a few tables which , the app itself looked pretty basic, so really… how useful is this really going to be for me.
Well what can I say after seeing the demo? Lets just say I was eating my own words. I’m just blown away that this can take 35 lines of SQL Markdown and transform this into 5K+ lines of DDL & DML. I’m talking drop statements, table, index, check constraints, trigger, view, DDL insert DML (random data generator), PLSQL TAPI’s, auditing, and there’s still more. All this whilst taking into consideration naming standards and saving this stuff.
This is not just seriously impressive, but a really amazing time saving tool which I haven’t seen in a long time when it comes to creating a data model.Plus it’s much more simpler and more fun to use than data modeller. If you haven’t checked it out, do it, do it now!
The next productivity enhancement Mike showed was the new APEX Blueprints functionality exclusively on apex.oracle.com. He literally built an app and demo’d it, by stepping through a comprehensive customisation wizard process. All this in less than 30 minutes with dashboards, master detail setups and a full application administration module sitting on a data model and dataset created by “Quick SQL”. These blueprints can be saved (they are in JSON format) and you can even edit the JSON directly if you think this approach is easier or faster for you. I’d like us to work on this idea and build FOEX style applications with the same blueprint.
Alex Nuijten, Roel Hartman, and Hilary Farrell each gave great talks on the JET Chart usage in APEX. Alex pointed out some peculiarities you should be aware of. For instance, if you have multiple series, make sure all your queries return the same number of rows and in the same order. He also showed a nice use of “partition by” in your WHERE clause to correctly get the data. I suggest you download his slides to find out more. Unfortunately I missed Roel’s presentation, but Hilary’s showed a lot of advanced usages of JET charts which were really interesting.
If you’re upgrading to 5.1, migrate everything to these charts and also evaluate whether you can introduce some new ones like the timeline, candlestick zoomed and more. Not only are these charts beautiful to look at, but they are also animated and fully customisable. Personally, I’d like to see a suite of dynamic actions to manage the additional runtime customisation capability.
JET & ORDS
One of my favourite highlights on the list was Docker, by Roel Hartman. Mr Cool showed us just how much better Docker is than Virtualbox. Internally in our company, Peter has switched to Docker, and whilst I thought I didn’t have the time to look at it, well Roel just fixed that and I’m switching on right away because it’s just so damn easy, fast and more flexible. It takes no time at all to setup. The key point though is to not mixup the “run” and “start” commands, otherwise you’ll be in for the nasty surprise of losing some data.
Dimitri Gielis gave a great summary of the Oracle Public cloud and his experience with Exadata Express Server (it’s basically a PDB that you get). It’s an affordable solution especially consider that this is a fully managed service which you can have 100% trust in. Database administration is costly in both time and skills and it just takes away time from development. It’s great for small companies, enterprises are probably going to go with a bigger cloud offering but this is perfect for contained applications. Dimitri gave a great live demonstration on just how easy it is to use SQL Developer to connect andmove your data to the cloud.
Shakeeb wrapped up the conference with the new 5.1 Universal Theme improvements. The highlights for me were FontApex with the modifiers, live template options, and preference capability to show a different theme style per user.
In total there are 100+ improvements so make sure that you check out the updated UT documentation app. It’s a productivity booster, especially with the icon finder and styler! Cristian Rokitta also had a good session about how you can add Bootstrap to the Universal Theme to make it even more customisable.
The talk I gave on plugin development was to show that functionality limitations in APEX can be solved with minimal effort and low costs. The emphasis was that every problem you face, has been solved before, you just need to do your research to find the best solution to your problem. Then take these findings/solutions and integrate them into APEX using the plugin interface so that you solve the problem just once and simply reuse this solution next time you face a similar situation.
If you focus on making it as generic as possible you can solve more than just your current problem. The key point I want people to understand is that even if you don’t have the skills to create plugins to solve your business/application problems, there are plenty of skilled freelancers and companies out there (like ourselves) who can help.
I also recommend that you check out the open source “APEX Front End boost” from Insum. You’ll save a load of time with the management of external files and your build process.
There were several important screens with very high usage which required fast page render times since they were switched between very often. It is this type of constant page switching of page rendering->processing->rendering which made me think that our framework could have been the ideal choice in this situation, as well as the support we provide for very complex page layouts, lazy rendering and lazy loading, which they had to code themselves.
Forms Migration to APEX
We recommend to all people switching from Forms to APEX to build a prototype of their most important/complex screens, using APEX & FOEX vs. just standard APEX, to perform a proper comparison before making their final decision. Besides, when working with the FOEX Plugin Framework you get everything that APEX has to offer as well, so in our (biased) opinion it should be a no-brainer… shouldn’t it?
It was a great couple of days, with some great people and great weather, which has really re-energized me. It’s satisfying to see that APEX keeps advancing in all the right areas and that there is an enthusiastic and passionate community behind it.
Personally I can’t wait to dive into all these areas to get my hands dirty and see how we can combine APEX & FOEX to make our solution even better for our customers, partners and expand on our community efforts.
As I stated earlier, this conference, whilst Dutch, is 80% presented in English so you should put it in you schedule for next year to come to the Netherlands and have an experience you will remember forever!