Πρώτες εντυπώσεις από το JBoss Seam

Share on:

Μέρος της δουλειάς πολλών είναι να προσπαθούν να δουν αν νέα framework και λύσεις μπορέι να χρησιμοποιηθούν σε ένα production - project. Να σας πω την αλήθεια ακόμα δεν έχω ιδέα αν το Seam είναι έτοιμο για ένα production και αν πραγματικά μπορείς να το πάρεις και να το σκίσεις με άλλα λόγια να για να καλύψει τις ανάγκες σου. Ο G.King είναι πραγματικά λαμπρό μυαλό και αρκετά έξυπνος για να καταλάβει που χωλαίνει μεγάλο μέρος του Enterprise Java Development. Μας έδωσε το Hibernate το οποίο άλλαξε για πάντα τον κόσμο του Database Access, τελικά έγινε και Spec και το EJB3 spec δανείστηκε αρκετά κομμάτια του. Στη συνέχεια προχώρησε με το JBoss Seam, σε έναν κόσμο που πολλές Java Enterprise εφαρμογές είναι είτε γραμμένες με απλά JSP/ Servlet ή με το Struts προτείνει έναν μηχανισμό ένα framework το οποίο έρχεται να δανειστεί χαρακτηριστικά από

Είμαι απο αυτούς που για καιρό όταν λέμε web layer το πρώτο πράγμα που έρχεται στο μυαλό είναι το Struts. Αν μάθεις τη λογική του ξεκινάς ακόμα και στο μυαλό σου να φαντάζεσαι τη δομή του project σου τα actions σου τα πάντα. Η δυσκολία με το JSF όταν ήρθε στη ζωή μας ήταν οτι η λογική του ήταν αρκετά μακριά απο αυτή που μας έχει μάθει το πολύ ΑΞΙΟΛΟΓΟ Struts, βάλε και μερικές άλλες προχειρότητες γενικά - ο κόσμος ξεκίνησε να γκρινιάζει!

To Seam έρχεται να μα δώσει μια ελαφρώς πιο ευγενική προσέγγιση στο JSF, να μας παρέχει τα αυτοματοποιημένα εργαλεία του Ruby On Rails, τη δύναμη και την απλότητα των EJBb3, τη λογική σε γενικές γραμμές του Struts (γενικά λέμε), πλήθος απο tag libraries, τα facelets και την υποστήριξη by default γνωστών εργαλείων όπως το Eclipse και το Netbeans.

Αυτά που μου αρέσουν για την ώρα είναι τα εξής!

  1. άριστο integration με EJB3 ακόμα και στο web layer (το ξέρω σας τα έχω πρήξει με αυτό - αλλά το θεωρώ τόσο σημαντικό)

  2. Η λογική του Struts και γενικότερα του Action δεν είναι τόσο διαφορετική σε γενικές γραμμες - πράγμα που κάνει εναν οποιονδήποτε Struts developer να νιώσει σχετικά comfortable.(ο G.King έλεγε γελώντας στο Session του στο JavaONE, ναι λέει ξέρω οτι εδω μέσα οι πιο πολλοί, αν δε σας αναφέρω τη λέξη Action στο web layer θα πάθετε κάτι, οπότε επειδή ο κόσμος αυτό καταλαβαίνει - αποφασίσαμε να προσθέσουμε στο Seam αυτό τόν όρο). Ο ίδιος μπορεί να μην το θεωρούσε σημαντικό αλλά για το δικό μου μυαλό αυτό ήταν ένα πολύ σημαντικό πράγμα. Εξάλλου το Struts δεν ήταν ένα κακό web framework- νομίζω οτι το γεγονός οτι πολλά πράγματα τα οποία έκανε το Struts γίνονται και στα νέα framework- δεν είναι τυχαίο!

  3. Η ενσωμάτωση της τεχνολογίας Facelets και η χρήση της XHMTL πραγματικά είναι αρκετά καλή! Ως Struts developer μου αρέσει εξαιρετικά το tiles framework με χαρά είδα οτι η αντίστοιχη λογική υπάρχει και στα facelets (δες template.xhtml).

4)Το Seam-gen είναι πολύεύκολοκαι μέσα σε λίγα δευτερόλεπτα σου δημιουργεί όλο τοproject και μάλιστα μπορείς να το κάνεις export σε project του Eclipse η του Netbeans

  1. Ο μηχανισμός του bijection, φαντάζει αρκετά χρήσιμος - αν και στην αρχή μπορεί να φανεί περίεργος - για το πως μπορουν να σεταρουν τα διαφορετικά layer data το ενα στο αλλο αυτόματα - χωρίς ιδιαίτερο κόπο απο τον προγραμματιστή.

  2. Facelets ξανά και XHTML πραγματικά πολύ πιο καθαρή κατάσταση!

  3. Τα navigation rules είναι αρκετά πιο φιλικά απο τον συνδιασμό struts-config, tiles-defs .

  4. Απλοϊκό project structure - poly straight forward!

  5. Αυτόματη δημιουργία απο τα seam εργαλεία - κώδικα για testing η αυτόματη δημιουργία της υποδομής για CRUD operations.Παίρνει τα entity beans και δημιουργεί όλη την υποδομή για απλά Create, Retrieve Update Delete. Πίστεψε με θα πεις οκ, σιγά και τι έγινε αλλά απο το να γράφεις μόνος σου πραγματικά έχεις κάτι να αρχίσει- άσε που μπορείς να τα αλλάξεις πιο εύκολα!

Τώρα που είπα CRUD αν χρησιμοποιείς Struts τότε ένας έλληνας και παλιός μου συνάδελφος έχει φιάξει κάτι αρκετά αξιόλογο και παρόμοιας φιλοσοφίας - το Project ονομάζεται MD4j και χρησιμοποιεί το Struts και EJB2.x τεχνολογία. Με παρόμοιας λογική όπως τα εργαλεία του Seam, αυτοματοποιεί τη δημιουργία του project - δημιουργεί σελίδες και όλες τις απαραίτητες υποδομές για CRUD operations - απλά και εύκολα - αρκετά αξιόλογη προσπάθεια και νομίζω οτι για όσους επιμένουν στο παλιό καλό Struts είναι πραγματικό boost παραγωγικότητας. Μπορείς να το βρεις εδώ.

Είμαι σχεδόν στα μέσα του JBoss Seam : Simplicity and Power beyond Java EE , το οποίο σας το προτείνω ανεπιφύλακτα αν θέλετε να κάνετε μια εισαγωγή ουσιαστική στο seam. Να μην ξεχάσω να τονίσω οτι ο συγγραφέας έχει κάνει αρκετά καλή δουλειά με τα online παραδείγματα - που είναι ολα έτοιμα projects για το IDE σας (στην περίπτωση μου το Netbeans). Το μόνο που πρέπει να κάνετε όταν ξε-ziparete τα folders είναι να δηλώσετε το JBoss_HOME για τον Jboss με EJb3 support. Τα υπόλοιπα τα αναλαμβάνει το Ant.

Θα επανέλθω με μερικούς πειραματισμούς με το Seam σύντομα!