O Tom Hollander γράφει για την νέα έκδοση CTP του Enterprise Library v3 για το .NET Framework 2, η οποία περιέχει μερικές ευπρόσδεκτες αλλαγές και σημαντικά νέα application blocks.
Οι αλλαγές περιλαμβάνουν:
- Δυνατότητα εγκατάστασης του source code σε διαφορετικό folder από τα binaries. Ήταν λίγο ενοχλητικό να πρέπει κανείς να κάνει build τον κώδικα μέσα στο Program Files!
Strong-named binaries! Ως τώρα, αν ήθελε κανείς να φτιάξει ένα strong-named assembly που χρησιμοποιεί Enterprise Library (π.χ. για να μπορεί να το βάλει στο GAC) έπρεπε να υπογράψει και να κάνει build όλα τα assemblies του Enterprise Library. Καθόλου ευχάριστη διαδικασία!
- Τώρα μπορούν να χρησιμοποιηθούν το WMI και τα Group Policies ως configuration sources, για να μπορεί ένας administrator να τροποποιήσει το configuration σε πολλά μηχανήματα. Καλό!
- Στο Data Access Block, υποστηρίζεται ο SQL Server Compact, χρησιμοποιείται το TransactionScope για αυτόματο enlistment σε transactions, και είναι δυνατόν να ορίσει κανείς το μέγεθος των batch updates.
- Στο Logging, μπαίνει το Rolling Flat File listener, συνεργασία με τους μηχανισμούς Loggin του WCF, formatting του timestamp σε τοπική ώρα αντί για UTC (πλάκα που είχε όταν έβλεπες το Log και ανέφερε διαφορετική ώρα!)
- Υπάρχει πλέον integration με το Visual Studio, το οποίο επιτρέπει να αλλάξουμε το configuration μέσα από το Visual Studio.
Τα καινούρια περιλαμβάνουν:
- Validation Block! Αυτό κι αν είναι ωραίο! Μπορούμε να ορίσουμε validation rules για διάφορους τύπους αντικειμένων, properties, μεθόδων και να τα ομαδοποιήσουμε σε policies. Έτσι μπορούμε να έχουμε διαφορετικό set από rules για το ίδιο αντικείμενο, ανάλογα με το policy που θέλουμε να εφαρμοστεί. Και επιπλέον, υπάρχει integration με WinForms και ASP.NET έτσι ώστε τα validation rules να μπορούν να χρησιμοποιηθούν αυτόματα και από το UI!
- Policy Injection Block. Πως θα σας φαινόταν, αν ορίζαμε στο app.config ότι θέλουμε να εφαρμόζονται αυτά τα exception, validation, logging κλπ policies σε συγκεκριμένες κλάσεις ή μεθόδους? To Policy Injection Block κάνει αυτό ακριβώς χρησιμοποιώντας ένα μηχανισμό interception, ο οποίος εφαρμόζει τα κατάλληλα policies. Αν αυτό θυμίζει πολύ Aspect Oriented Programming, θα καταλάβει αμέσως πόσο σημαντικό είναι αυτό το block.
- Application Block Software Factory. Ή πως να φτιάξουμε εύκολα τα δικά μας application blocks.
Θα βρείτε το Enterprise Library στο http://www.codeplex.com/entlib
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos