Δεν είναι σύνηθες το να υπάρχει τόσο μεγάλος αριθμός αναγνώσεων και να μην δίνεται απάντηση, μπορώ όμως να εκτιμήσω πιθανούς λόγους που συνέβη αυτό. Ισως η μεγάλη σου (και λεπτομερής, ομολογουμένως) ανάλυση της κατάστασης να "τρόμαξε" μερικούς. (Σε αυτούς συμπεριλαμβάνομαι και εγώ, ο οποίος δεν ήξερα από που να ξεκινήσω και τι να πρωτοαναφέρω). Θα κάνω λοιπόν μια προσπάθεια, και μπορούμε να την "τρέξουμε" σε μεγαλύτερη λεπτομέρεια ανάλογα με το τι απο αυτά που θα σου πω σε καλύπτει και σε τι θα ήθελες περισσότερες πληροφορίες.
Να ξεκαθαρίσω εξ'αρχής οτι δεν θα προτείνω βιβλία, για το λόγο οτι δεν έχω κάποια πρόσφατη εμπειρία από βιβλία για νέους στο χώρο, και συνεπώς δεν θέλω να προτείνω κάτι κακό. Εγώ, προσωπικά, συχνα-πυκνά δοκίμαζα τα γνωστά σε όλους 'κοκκινα' βιβλία της Wrox και έχω μείνει αρκετά ικανοποιημένος ως τώρα.
Στα υπόλοιπα τώρα:
Χωρίς να θέλω να σε "προσηλυτίσω", να πω απλά οτι εμπειρικά έχω δει πως οι περισσότεροι φοιτητές δημόσιων εκπαιδευτικών ιδρυμάτων στην Ελλάδα έχουν μια σαφή τάση προς το open source. Αυτό εκτιμώ οτι συμβαίνει γιατί αποκτούν την πρώτη τους εμπειρία πάνω σε σχετικές τεχνολογίες εντός των ίδιων των ιδρυμάτων. Αντιθέτως, όσοι έχουν "παίξει" λίγο παραπάνω μόνοι τους, είναι λιγότερο απόλυτοι ως προς την επιλογή κατεύθυνσης. (Μην ξεχνάμε πως δεν υπάρχει μόνο open source και Microsoft - παλιότερα πολλοί πήγαιναν προς Delphi μεριά).
Αρα σε αυτό τον τομέα, απλά θα πρότεινα να εξετάσεις λεπτομερέστερα (και ίσως όταν ενισχύσεις το τεχνικό μέρος των γνώσεών σου) τους λόγους για τους οποίους θα επιλέξεις τη μια ή την άλλη πλατφόρμα, όποια και αν είναι, προκειμένου να είσαι σίγουρος οτι θα κάνεις τη σωστή επιλογή, η οποία θα κριθεί ως σωστή ή οχι βάσει των κριτηρίων που θα επιλέξεις εσύ ο ίδιος.
Υποψιάζομαι οτι, εχοντας αποκτήσει μια εμπειρία από αντικειμενοστραφή προγραμματισμό "στραβωσες" στη VB6 και πολύ καλά έκανες. Ομως, από την άλλη μεριά, αν έχεις δουλέψει Java, τότε θα βρείς πολλά κοινά σημεία στον τρόπο με τον οποίο μπορείς να γράψεις C#. Βεβαια, οι ομοιότητες τελειώνουν εκεί, μια και το user interface design στο .NET Framework με το Visual Studio 2003 ή 2005 δεν είναι και τόσο κοινό με τα AWT και τα λοιπά εξωτικά της Java.
Το .NET Framework έχει τη λογική οτι παράγεις εκτελέσιμο κώδικα από οποιαδήποτε γλώσσα υποστηρίζεται (και είναι πολλές, με τις δημοφιλέστερες να είναι οι C# και VB.NET - οχι, καμμία σχέση με τη VB6). Μαλιστα, μπορείς να γράψεις κομμάτια μιας εφαρμογής (δυνητικά) σε διαφορετικές γλώσσες - π.χ. κάποιο library να είναι γραμμένο σε C# ενώ η υπόλοιπη εφαρμογή σε J# ή VB.NEΤ!
Από την άλλη μεριά η Microsoft έχει κάνει αρκετή δουλειά στο χειρισμό των data με το ADO.NET, η χρήση του οποίου είναι κοινή όποια γλώσσα και αν επιλέξεις για να δουλέψεις μια και όπως είπαμε ήδη η πλατφόρμα είναι multi-language (σε αντίθεση με το - αμφιλεγόμενο στην πράξη - write once, run everywhere της Java, το .NET Framework είναι κάτι σαν "write in any language - run on Windows").
Το να γράφεις εφαρμογές αποκλειστικά για Windows έχει και τα πλεονεκτήματά του. Οι γλώσσες είναι περισσότερο "δεμένες" με το λειτουργικό σύστημα και εκμεταλλεύονται καλύτερα τις δυνατότητές του. Από την άλλη μεριά, το ADO.NET σίγουρα δουλεύει καλά με τον SQL Server, αλλά η αρχιτεκτονική του είναι τέτοια που μπορεί να συνεργαστεί με σχεδόν κάθε άλλο σύστημα RDBMS.
Από εκεί και πέρα, το κλειδί είναι τα πρότυπα και οι standard τεχνολογίες. Web services, XML/XSLT, CSS κλπ. από τεχνολογίες, καθώς και η εφαρμογή design patterns, και ο OOP, όλα βρίσκουν εφαρμογή στην πλατφόρμα .NET όπως ακριβώς και σε άλλες πλατφόρμες. Αυτό που θα μπορούσα να συμβουλέψω εγώ τουλάχιστον είναι να "κολλήσεις" στην αρχή με μία γλώσσα και να μην προσπαθήσεις να μάθεις περισσότερες, αν θέλεις να εξειδικευτείς, γιατί η καμπύλη εκμάθησης ειναι ιδιαίτερα μεγάλη στην αρχή και ενδέχεται να αποθαρρυνθείς αν επιχειρήσεις να τα κάνεις όλα μαζί.
Επίσης να πιάσεις ένα κομμάτι τη φορά. Αφού διαλέξεις τη γλώσσα, διάλεξε τι είδους εφαρμογές θέλεις να φτιάχνεις. Windows forms; Web εφαρμογές; Distributed εφαρμογές; Client/Server; Services; Στη συνέχεια δες τι σε "τραβάει" περισσότερο. Το presentation tier ή το middle tier; (ναι, υπάρχει ακόμα και στις client/server εφαρμογές κατα μια έννοια!) Ετσι θα αρχίσεις να οριοθετείς τον εαυτό σου και να φτιάχνεις τη δική σου "προγραμματιστική προσωπικότητα". Οποια γλώσσα και πλατφόρμα και αν έχεις επιλέξει στην αρχή, με αυτή τη γνώση που θα αποκτήσεις θα έχεις δημιουργήσει σε βάθος χρόνου καλύτερη κρίση για το τι σου ταιριάζει, χωρις να επηρεάζεσαι από άλλους παράγοντες, για να μπορέσεις στη συνέχεια να τοποθετηθείς.
Ξερω οτι τα είπα λίγο "σπαγγέτι", και μπορεί να σε μπερδεψω, όμως θα είναι καλό να δεις μεσα από όλο αυτό το κατεβατό που σου έγραψα σε τι θα ήθελες να επικεντρωθούμε περισσότερο και να συνεχίσουμε κατά αυτό τον τρόπο.
Σωτήρης Φιλιππίδης
DotSee Web Services