The King is dead! RIP 2006-2012

Ένα μεγάλο ευχαριστώ σε όλη την παρέα
Περισσότερα στο lexx.gr

ADF? Όχι ευχαριστώ!

27 Feb 2008 by PanosJee

Ένα από τα πολλά μου στρατιωτικά καθήκοντα πέρα αγγαρείας, καλλιόπης και σκοπέτας είναι και η χρήση του ADF (Application Development Framework) της Oracle. Πρόκειται για ένα υπερσύνολο του JSF (Java ServerFaces) με πολλά καλούδια της Oracle όπως ενσωματωμένο MVC (Model-View-Controller) χάρη στο Struts αλλά και ORM (object relation mapping) χάρη στο δικό της TopLink. Επίσης συμπεριλαμβάνεται το ADF UIX που δημιουργεί πιο ‘πλούσιο’ περιβάλλον αλλά προσωπικά το βρίσκω απαρχαιωμένο και πολύ άσχημο. Πολλές από αυτές τις λειτουργίες είναι εντελώς custom και φυσικά ‘δεμένα’ στον JDeveloper αλλά η Oracle πρόσφατα κυκλοφόρησε το ADF με Open Source άδεια υπό το όνομα Trinidad.

Να πούμε εδώ ότι to ADF είναι αρκετά φιλελεύθερο από δεν επιβάλει τη χρήση κάποιας συγκεκριμένης τεχνολογίας σε κανένα επίπεδο. Οπότε στο μοντέλο μπορείτε να έχετε απλά αντικείμενα Java (POJO) ή τα δικά της Entity Beans ή στο επίπεδο εμφάνισης μπορεί να είναι JSP, JSF, JSF + UIX, Swing.

adf-stack.PNG

Μία από τις ενδιαφέροντες χρήσεις για εμένα είναι ότι το ίδιο business logic μπορεί για διεπαφή να έχει είτε web based frotned είτε desktop χάρη στον πελάτη Swing.

Μερικά από τα πλούσια εργαλεία του JDeveloper και από αυτά ένα από τα πιο εντυπωσιακά είναι η σχεδίαση του control flow σε UML και στη συνέχεια η παραγωγή των αρχείων κώδικά με την κατάλληλη αναμεταξύ τους σύνδεση.

jdeveloper.PNG

Σίγουρα το ADF σε συνδυασμό με το JDeveloper είναι η απόλυτη corporate λύση, αλλά γιατί εγώ να το μισώ; Ίσως γιατί

  1. Εγώ έχω υπόβαθρο σε web development και έχω μάθει να κατευθύνω με το χέρι το control flow και να φτιάχνω τα links που ξέρω που θα πάνε και γιατί.
  2. Γιατί φτιάχνω το layout όπως θέλω με CSS και δε μπλέκω πρώτα με skins και άπειρη XML
  3. Γιατί μπορώ να φτιάξω όσο πλούσιο περιβάλλον θέλω με όποια Javascript βιβλιοθήκη θέλω
  4. Γιατί δε θέλω να μπλέκω με χιλιάδες γραμμές XML και αν χρειαστεί αν προσθέσω ή να τροποποιήσω μια σελίδα (ξεπερασμένος όρος, ένα view με το αντίστοιχο logic) να πρέπει να αλλάξω όλα τα διαγράμματα
  5. Γιατί θέλω κάθε εφαρμογή μου να είναι διαφορετική
  6. Γιατί ξεχνά αυτά που ξέρω αφού τα πάντα είναι proprietary tags είτε για ΗΤΜL, JSF κλπ
  7. Γιατί για μένα αποτελεί κάτι σαν το Swing παρά web development

Αν πάλι βέβαια δούλευα απλά σε έναν οργανισμό και απλά θέλαμε να φτιάξουμε το frontend της βάσης δεδομένων μας, χωρίς πολλά φρουφρού και αρώματα και αν η βάση ήταν Oracle με legacy procedures, functions κλπ ε ναι τότε ADF και JDeveloper all the way. Άλλωστε είναι the only way αφού τα Oracle Forms βλέπουν θυμαράκια και το ADF γίνεται η βιτρίνα των δεδομένων.