Η υποδομή που παρέχει το CSLA είναι της ίδιας κατηγορίας με το Enterprise Library και δεν καλύπτει καθόλου το business logic. Όσα παρέχει, data binding, validation, undo, data portal είναι και αυτά services ή data layer. Η διαφορά είναι ότι στο CSLA αυτά είναι δεμένα μεταξύ τους και εξαιρετικά δύσκολο να τροποποιηθούν. Το CAB, SCSF και Enterprise Library χρησιμοποιούν το dependency injection στη μορφή του ObjectBuilder και τώρα του Unity ακριβώς για να αποφύγουν αυτό το πρόβλημα. Δεν είναι τυχαίο που τα Software Factories και Guidance που βγαίνουν από το P&P κινούνται σε τόσο διαφορετική κατεύθυνση από το CSLA.
Όσο για το P & P group? Έχει τύχει να συζητήσω με αρκετά από τα μέλη του σε διάφορες Teched (και αλλού) και παρακολουθώ τα blog τους, έτσι ξέρω τί προτάσεις έχουν γίνει κατά καιρούς, που κατέληξαν και που εστιάζουν το ενδιαφέρον τους. Αναγνωρίζουν π.χ. ότι το CAB είχε προβληματάκια και ήταν αρκετά περίπλοκο, γι αυτό και φρόντισαν το Prism να είναι αρκετά πιο modular. Το CAB είχε φτιαχτεί για εταιρείες όπως η Boeing, και αποδείχτηκε ιδιαίτερα περίπλοκο για τους περισσότερους.
Μπορεί πριν 2 χρόνια να είχε συζητηθεί η προσθήκη business layer, αλλά από τότε πέρασαν άλλες δύο εκδόσεις (SCSF και Prism) χωρίς να προστεθεί κάτι. Ένας σημαντικός λόγος ήταν ότι τα CAB, SCSF και Prism ασχολούνται με δύο θέματα: presentation και composition για smart client εφαρμογές. Το business layer όμως εμφανίζεται σε όλες τις εφαρμογές ανεξάρτητα από το presentation τους (smart client, web, web services) τροποποιείται σημαντικά όμως ανάλογα με την εφαρμογή. Τελείως διαφορετική υποδομή χρειάζεται μία εμπορική client/server εφαρμογή και τελείως διαφορετική ένα σύστημα εφαρμογών και web services το οποίο πρέπει να εκτελεί πολλά transactions το δευτερόλεπτο.
Ένας άλλος σημαντικός λόγος είναι ότι τα σημαντικά στοιχεία που χρειάζεται κανείς σε ένα business layer έχουν εμφανιστεί εδώ και ένα μόλις χρόνο. Το Workflow foundation μας έδωσε ένα workflow και business rule engine. Το Entity Framework δίνει κάποια από τα services για τη δημιουργία ενός domain model. To Oslo ουσιαστικά θα μας δώσει τα στοιχεία του model-driven development που λείπουν τόσα χρόνια.
Η αλήθεια είναι ότι η στάση της Microsoft σε σχέση με το model-driven development έχει αλλάξει τα τελευταία χρόνια. Το 2005 λέγανε ότι οι κολώνες του .NET vNext θα ήταν WCF, WPF, WF, Cardspace (με άλλα ονόματα τότε). Και το Business κομμάτι? Μα, λέγανε, αυτό μπορείς να το κάνεις μόνος σου. Ή, αυτό εμπεριέχεται στις άλλες κολώνες. Τώρα, το Entity Framework βγαίνει μέσα στο καλοκαίρι και ετοιμάζεται το Oslo, το οποίο θα φέρει το model-driven development στις SOA εφαρμογές - και όχι μόνο.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos