Δυστυχώς ανήκω στην τάξη αυτών που υποφέρουν ακόμα με VB. Τα τελευταία χρόνια χρειάστηκε πολλές φορές να κάνω κάτι που θα το έκανα πολύ ευκολότερα σε .ΝΕΤ χρησιμοποιώντας inheritance ή overloading, χρησιμοποιώντας κόλπα και χακιές. Επίσης, πολλά πράγματα απλά δεν γίνονται σε VB, π.χ. multithreading. Για μένα, τη θεραπεία τη χρείάζομαι τώρα για να συνεχίσω να δουλεύω σε VB6
. Αντίθετα, μπορώ να κάνω πολύ εύκολα τα ίδια πράγματα στο σπίτι με C# ή VB.NET. Αλλά τελικά δεν μπορώ να τα χρησιμοποιήσω!
Παραδείγματα:
- Σε παλιότερη δουλειά φτιάξαμε μια πλατφόρμα Workflow με VB components σε COM+. Για να μπορέσουμε να χρησιμοποιήσουμε object pooling για τις συνδέσεις στη βάση, αναγκαστήκαμε να κάνουμε ένα connection component σε C++. Πολύ διασκέδασα να προσπαθώ να καταλάβω ποιός έσβησε το BSTR και πως να γυρίσω το recordset στους clients. Αν υπήρχε τότε το .NET (ήταν σε beta) το όλο θέμα θα ήταν ανάξιο λόγου. Τελικά έχασα 1 μήνα.
- Έχω να δείξω κάποια στοιχεία πάνω σε ένα χάρτη. Π.χ. pins, βενζινάδικα, ξενοδοχεία κλπ. Τα περισσότερα αντικείμενα ζωγραφίζονται με τον ίδιο τρόπο εκτός από κάποια που αλλάζουν εμφάνιση ανάλογα με κάποια παράμετρο. Αν είχα inheritance θα μπορούσα να φτιάξω μια κλάση να ζωγραφίζει τα αντικείμενα και για τις ειδικές περιπτώσεις ένα subclass που θα ζωγραφίζει με το νέο τρόπο, καλώντας τις μεθόδους του γενικού αντικειμένου. Για να κάνω το ίδιο σε VB χρειάστηκαν 3 κλάσεις και τσάμπα κώδικας να παραπέμπει τα calls που δεν αλλάζουν στη γενική κλάση. Και το χειρότερο είναι ότι αν χρειαστούν αλλαγές παίρνουν πολύ περισσότερο χρόνο απ' ότι αν είχα χρησιμοποιήσει inheritance.
- Sorted arrays κανείς? Στη VB πρέπει να κάνω τα sort μόνος μου ενώ στο .NET είναι έτοιμα. Τον τελευταίο καιρό φτιάχνω μία λίστα από μηνύματα που θέλω να δείξω στο χρήστη σε συγκεκριμμένες χρονικές στιγμές. Με VB έφτιαξα ένα collection με τα μηνύματα και ένα χαζό bubblesort βάση του χρόνου όταν προσθέτω ένα νέο μήνυμα. Με .NET θα είχα έτοιμο το SortedList.
Και οι επιτυχίες (αναγκαστικά με κώδικα στο σπίτι):
- Password Manager σε .NET. Είχα προσπαθήσει και στο παρελθόν να φτιάξω μια εφαρμογή password manager τόσο σε C++, VB και C#. Ειδικά σε VB, η αποθήκευση μιας λίστας αντικειμένων (π.χ. passwords) και η κρυπτογράφησή τους είναι ολόκληρη ιστορία. Με το .NET όλη η ιστορία πήρε ένα πολύ χαλαρό Σαββατοκύριακο.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos