Είναι καταπληκτικό πόσο κώδικα και μπελά γλυτώνει κανείς χρησιμοποιώντας ένα καλό data layer. Υπάρχουν τόσα καλά data layer για το .NET που σε κάνουν να αναρωτιέσαι αν έχει πλέον νόημα να γράφεις ξανά-μανά data access κώδικα!
Καταρχήν, υπάρχουν πολλά καλά open-source data layers.
Για όσους θέλουν να έχουν ένα καθαρό Object Model ανεξάρτητο από τη βάση, υπάρχει το nHibernate, το οποίο περιέχει και δυνατότητες lazy loading, caching και logging.
Για όσους θα προτιμούσαν ένα αντικείμενο ανά πίνακα, υπάρχει το ActiveRecord , το οποίο βασίζεται μεν στο nHibernate για την επικοινωνία με τη βάση, προσθέτει όμως τις απαραίτητες μεθόδους για ανάκτηση και αποθήκευση των αντικειμένων ως static μεθόδους στα ίδια τα αντικείμενα.
Ένα ακόμα framework είναι τα Business Objects του Rockford Lhotka , το οποίο πέρα από το persistence ασχολείται και με validation των αντικειμένων, authorization (αυτός ο χρήστης μπορείς να πειράξει αυτό το property ?) και αντιμετωπίζει κάποια από τα προβλήματα του object binding στα Windows Forms, ενώ υποστηρίζει και τη χρήση Enterprise Services αν χρειαστεί.
Από εμπορικά data layers, υπάρχει το πολύ καλό LLBLGen Pro , το οποίο χρησιμοποιεί code generation αντί για metadata για να δημιουργήσει κώδικα data access και business support από το schema μίας βάσης.
Για όσους τέλος θέλουν κάτι απλό, υπάρχει και το WilsonORMapper, "the simplest .NET OR Mapper".
Ένας πολύ καλός κατάλογος των περισσότερων OR Mappers υπάρχει στο "Object Relational Mappers for .NET". Η βοήθεια του ήταν ανεκτίμητη όταν χρειάστηκε να επιλέξω OR Mapper για το έργο που δουλεύω τώρα!
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos