Περίεργη και ωραία συζήτηση πιάσαμε.
Βασικά έχω να χρησιμοποιήσω το drag-n-drop από τα πρώτα μου βήματα στο VS.NET οπότε νομίζω πως έχω ξεκαθαρίσει τι πιστεύω.
Όμως για νέους προγραμματιστές θα πρότεινα να ασχοληθούν με την τεχνική αυτή στην αρχή. Ο έτοιμος κώδικας, το γρήγορο αποτέλεσμα αφήνουν πολύ ελεύθερο χρόνο στον νέο προγραμματιστή να ενθουσιαστεί με αυτά που κάνει και στην συνέχεια να το ψάξει λίγο παραπάνω αν θέλει να δει τι γίνεται παρακάτω. Φυσικά στην πορεία θα έρθει ένα σημείο όπου εκεί θα δει ότι με την τεχνική αυτή δεν μπορεί να προχωρήσει σε λιγάκη πιο απαιτητικές εφαρμογές, αλλά σίγουρα θα τον βρει τον δρόμο όταν κοιτάξει τον έτοιμο κώδικα και αρχίζει να τον τροποποιεί λιγάκι. Το επόμενο στάδιο είναι να φύγει τελείος από το drag-n-drop και να πάει σε άλλες τεχνικές, όμως μέχρι τότε θα τον έχει κερδίσει το εργαλείο και θα προσπαθήσει για κάτι πιο δύσκολο.
Άλλωστε να πούμε και την αλήθεια ακόμα και οι πιο προχωρημένοι το χρησιμοποιούν. Απλά αυτοί ξέρουν τι κάνουν. Δηλαδή αν έχετε ένα custom object και θέλετε να σχεδιάσετε μία φόρμα που να απεικονίζει τις τιμές των properties του object θα περνούσατε ένα ένα τα controls στην φόρμα ή θα κάνατε drag-n-drop; Αυτό δεν νομίζω να πειράζει. Αλλά νομίζω δεν αναφερόμαστε σε αυτό.
'Οσο για το input validation με το binding που γίνεται, τουλάχιστον μπορεί να σε προστατέψει για τον τύπο τις τιμής που εκχωρείς. Παράδειγμα σε αριθμητικό πεδίο δεν θα σε αφήσει να περάσεις γράμμα, η σε πεδίο ημερομηνίας άκυρη ημερομηνία. Τώρα αν μιλήσουμε για business validation δηλαδή να μην μπορούμε να περάσουμε υπάλληλο με έτος γέννησης το 1700, ε αυτό πια γράφεται με κώδικα, αλλά κώδικα που προστίθεται στον έτοιμο κώδικα που έχει ήδη δημιουργηθεί με την τεχνική του drag-n-drop.
Όσο για τα conflicts ακόμα και εκεί με διάφορες μικρές αλλαγές στον έτοιμο κώδικα μπορείς να πάρεις και εικόνα τι πεδία έχουν αλλάξει στην βάση σου στο συγκεκριμένο record σε σχέση με αυτό που θέλεις να κάνεις save.
Για το error handling, μπορείς και πάλι με λίγες γραμμές κώδικα να προσθέσεις έστω ένα MessageBox και όσο για τη διαχείριση των connections φαντάζομαι αναφέρεσαι στην δημιουργία, διαγραφή, μεταβολή οπότε εκεί ναι θα έλεγα αυτό είναι πιο προχωρημένο. Το θέμα όμως είναι ότι έχουν φτιαχτεί τόσα άλλα πράγματα στην εφαρμογή, ο νέος προγραμματιστής έχει γλυκαθεί και για να δώσει αυτές τις μικρές πινελιές που αναφέρατε και ανέφερα θα πρέπει να αρχίσει να ψάχνει τον κώδικα. Και εκεί θα κερδίσει με το να δει τι γίνεται από κάτω.
Τώρα αν νομίζει, μιλάω γενικά, ότι επειδή έκανε τρεις φόρμες και 15 datasets ότι είναι προγραμματιστής και έτοιμος να βγει στην αγορά ε! εκεί πια αφήστε τον να το φάει το κεφάλι του, ίσως αυτό φοβάμαι πιο πολύ παρά όλα τα άλλα. Άλλωστε παραδείγματα υπάρχουν, νομίζω και άλλοι θα έχετε βιώσει ή ακούσει στην δουλειά σας.
Δεν νομίζω ότι είναι άσχημο ξεκίνημα. Αλλά να μείνει εκεί στο ξεκίνημα όχι και στη συνέχεια. Είναι γλυκό το drag-n-drop και σε παρασύρει αλλά θα πρέπει κάποια στιγμή να βάλεις ένα τέλος. Τουλάχιστον μέχρι τότε θα υπάρχει μία μικρή τριβή με τον κώδικα και με το εργαλείο που δεν θα το παρατήσει εύκολα.
Αυτή είναι η γνώμη μου και σεβαστή όλων των υπολοίπων.