Είναι καλύτερα να δημιουργήσουν τάξεις Μοντέλο ή κολλήσει με γενική κατηγορία χρησιμότητα της βάσης δεδομένων;

ψήφοι
5

Έχουμε μια απλή κλάση χρησιμότητα in-house για τις κλήσεις βάση δεδομένων μας (ένα ελαφρύ περίβλημα γύρω από ADO.NET), αλλά σκέφτομαι τη δημιουργία κατηγοριών για κάθε βάση δεδομένων / αντικειμένων. Θα ήταν έξυπνο πράγμα που κάνει, ή θα την ωφελήσει μόνο αν χρησιμοποιούσαν το πλήρες πλαίσιο MVC για ASP.NET;

Έτσι έχουμε το εξής:

SQLWrapper.GetRecordset(connstr-alias, sql-statement, parameters);
SQLWrapper.GetDataset(connstr-alias, sql-statement, parameters);
SQLWrapper.Execute(connstr-alias, sql-statement, parameters);

Σκέψη για να γίνει αυτό:

Person p = Person.get(id);
p.fname = jon;
p.lname = smith;
p.Save();

ή για ένα νέο ρεκόρ -

Person p = new Person();
p.fname = Jon;
p.lname = Smith;
p.Save();
p.Delete();

Θα μπορούσε αυτό να είναι έξυπνος, ή θα ήταν υπερβολή; Μπορώ να δω το όφελος για την επαναχρησιμοποίηση, την αλλαγή της βάσης δεδομένων, καθώς και τη συντήρηση / αναγνωσιμότητα.

Δημοσιεύθηκε 05/08/2008 στις 21:10
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
8

Αυτή η ερώτηση είναι φορτωμένο, τα δεδομένα με γνώμονα το σχεδιασμό vs τομέα με γνώμονα το σχεδιασμό. Για κάθε εφαρμογή που έχει ένα καλό ποσό της συμπεριφοράς, τότε τομέα με γνώμονα το σχεδιασμό θα πρέπει να προτιμώνται. Αναφορά ή εφαρμογές χρησιμότητα τείνουν να λειτουργούν καλύτερα (ή πιο γρήγορα για την ανάπτυξη) με τα δεδομένα με γνώμονα το σχεδιασμό.

Αυτό που ζητάς είναι «πρέπει η εταιρεία μου να κάνει μια ριζική αλλαγή στον τρόπο με τον οποίο σχεδιάζουμε κώδικα μας». Ως έναν τομέα-τέρας, ενστικτώδης αντίδραση μου είναι να ουρλιάζουν ναι . Ωστόσο, από την απλή φύση της ερώτησής σας, δεν είμαι σίγουρος ότι έχετε κατανοήσει πλήρως το περιεχόμενο της αλλαγής που προτείνετε. Νομίζω ότι θα πρέπει να μιλήσουμε περισσότερο για την ομάδα σας γι 'αυτό.

Πάρτε κάποια βιβλιογραφία, όπως DDD Evan του βιβλίου, ή στην ελεύθερη θεμέλια ebook , και στη συνέχεια θα είστε σε καλύτερη θέση να κρίνουν ποια κατεύθυνση πρέπει να πάτε.

Απαντήθηκε 05/08/2008 στις 21:28
πηγή χρήστη

ψήφοι
2

Η προσέγγιση θα συζητήσει θεωρείται ένα καλό αποτέλεσμα από πολλούς λαϊκούς, περιλαμβάνονται μου! Μαθαίνοντας την προσέγγιση αυτή θα απαιτήσει κάποια προσπάθεια, αλλά μην αφήσετε να σας βάλει μακριά!

Τι γίνεται ακριβώς που προσπαθεί ένα μικρό έργο με LINQ σε SQL ; Ίσως βρείτε ένα ωραίο έργο αναφοράς για κώδικα google , και να μελετήσει πώς οι άλλοι έχουν συνεργαστεί μαζί της.

Είναι ένα απλό εργαλείο, και θα σας επιτρέψει να εξοικειωθούν με μερικά από τα θέματα που έρχονται με τα αντικείμενα χαρτογράφησης σε βάσεις δεδομένων.

Στη συνέχεια, θα είστε σε θέση να πάρετε μια ιδέα για αυτό , και να αποφασίσει αν αξίζει η καμπύλη εκμάθησης.

Θα υπάρξουν νέες ιδέες για να κατανοήσουν και να πειραματιστούν με, τα πράγματα όπως:

  • Μονάδα Εργασίας : Όταν εκτελείτε Αποθήκευση και Διαγραφή κλπ, ένα ORM τείνει να μην το κάνετε αυτό αμέσως, ενώ ένα σύνολο εγγραφών με βάση DAL βούληση. Αυτό μπορεί να προκαλεί έκπληξη, έτσι θα πρέπει να μάθετε λίγο για αυτό. Διαβάστε σχετικά με τη μονάδα του σχεδίου εργασίας για να πάρετε μια κατανόηση αυτού.
  • Μαζικές ενέργειες είναι ένα θέμα με το Η / Μ. Ένας αναγνώστης δεδομένα μπορούν αποτελεσματικά επαναλαμβάνεται σε χιλιάδες γραμμές, αλλά με ένα ORM πρέπει να είστε προσεκτικοί όταν ασχολούνται με μεγάλες παρτίδες των αντικειμένων. Και πάλι, το ένα για να διαβάσετε σχετικά.
  • Σύλλογοι φαίνεται μεγάλη, όταν μπορεί να κάνει τέτοια πράγματα customer.Orders.Count, αλλά είναι επίσης η αιτία πολλών προβλημάτων. Θα πρέπει να βρείτε μερικές πρακτικές ασφαλούς να ακολουθήσει κατά την εργασία με τις ενώσεις.

... για να αναφέρουμε μερικές.

Για ορεκτικά, μην ανησυχείτε για την κληρονομιά και την ουσία, μόλις αρχίσει απλό και να έχουν απλές οντότητες που αντιστοιχούν σε πίνακες.

Δοκιμάστε να χρησιμοποιήσετε τους με τον ίδιο τρόπο που θα χρησιμοποιήσετε τις υπάρχουσες DAL σας. Στη συνέχεια αρχίσουν να πειραματίζονται με τις ενώσεις.

Τότε ίσως δοκιμάστε να βάλετε περισσότερα συμπεριφορά σε οντότητες σας. Αν ξεκινήσετε αρέσει αυτό, και αισθάνεστε ότι χρειάζεστε περισσότερες δυνατότητες, να εξετάσει δοκιμάζοντας ένα πιο πλούσιο σε χαρακτηριστικά ORM όπως Lightspeed ή NHibernate .

Η ελπίδα αυτό βοηθά!

Απαντήθηκε 03/10/2008 στις 11:07
πηγή χρήστη

ψήφοι
2

Με κανένα τρόπο δεν είναι MVC το μόνο πρότυπο σχεδιασμού για το διαδίκτυο, αλλά είναι μια χρήσιμη.

Υιοθετώντας μόνο το «Μ» θα αποδώσει καρπούς, κατά τη γνώμη μου, ακόμα κι αν δεν μπορεί / δεν θα υιοθετήσουν το «V» ή «C».

Απαντήθηκε 05/08/2008 στις 21:13
πηγή χρήστη

ψήφοι
0

Για μένα φαίνεται σαν να προσπαθεί να κάνει ό, τι μπορεί να κάνει ήδη LINQ για σας. Αν είστε κολλημένοι σε ένα παλαιότερο πλαίσιο στο οποίο δεν μπορείτε να το χρησιμοποιήσετε, θα μπορούσα να προτείνω να χρησιμοποιήσετε Subconic ( http://subsonicproject.com/ ) αντί να πρέπει να δημιουργήσετε με μη αυτόματο τρόπο όλα αυτά τα αντικείμενα μοντέλο με το χέρι.

Είχα ένα έργο στο οποίο ήμουν σε παρόμοια κατάσταση και άλλαξε σε υποηχητική στα μέσα με τα φανταστικά αποτελέσματα. Ταχύτερη ανάπτυξη και πολύ πιο εύκολο να διαβάσει τον κωδικό / χρήση.

Απαντήθηκε 26/09/2008 στις 15:41
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more