Ado και ado.net, ομοιότητες και διαφορές

Πληροφορίες σχετικές με την ASP, ASP.NET και με τις εφαρμογές που είναι γραμμένες με αυτήν.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από skeftomilos » 24 Μαρ 2010 00:11

elorant έγραψε:Είναι λίγο μπέρδεμα με τα conversions αλλά σου δίνει πλήρη αυτονομία.
Αγαπητέ elorant λίγο καιρό αφότου έγραψα αυτό το βοήθημα απογοητεύτηκα από την τεχνολογία Web Controls της ASP.NET και επέστρεψα στην κλασική μέθοδο κατασκευής του UI με ASP delimiters <%...%>. Τα Web Controls είναι μέρος ενός οράματος της Microsoft που έχει πάψει να με εμπνέει, δηλαδή τη δημιουργία event-driven εφαρμογών με χρήση visual εργαλείων (drag-drop νιρβάνα). Η προτίμησή μου είναι να φτιάχνω εφαρμογές με το πληκτρολόγιο παρά με το mouse. Τα visual εργαλεία είναι ίσως κατάλληλα για τους αρχάριους προγραμματιστές, και για όσους έμπειρους είναι πρόθυμοι να ανταλλάξουν τον απόλυτο έλεγχο του παραγόμενου UI με αυξημένη παραγωγικότητα. Μια σχετική συζήτηση έχει γίνει εδώ: Κριτική στην ASP.NET.

elorant
Δημοσιεύσεις: 173
Εγγραφή: 23 Σεπ 2009 23:09

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από elorant » 24 Μαρ 2010 00:55

Διαφωνώ με τη διαπίστωση πως τα web controls είναι το όραμα της Microsoft για drag 'n' drop προγραμματισμό. Τα web controls είναι μια προσπάθεια να έρθει ο προγραμματισμός στο web πιο κοντά στα πρότυπα του desktop, με την παρουσία του viewstate το οποίο δίνει τη δυνατότητα να υπάρχουν events. Το τι αρέσει στον καθένα και τι όχι είναι θέμα προσωπικού του γούστου. Εμένα, πάλι, μ' αρέσει η markup μου να είναι καθαρή και να μην έχω spaghetti code. Και ίσα-ίσα που τα web controls για να τα φέρεις στα μέτρα σου πρέπει να γράψεις κώδικα.

Μπορείς επίσης να επιλέξεις την asp.net mvc, που είναι και πιο σύγχρονη, όπου δεν υπάρχουν καθόλου web controls.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από skeftomilos » 24 Μαρ 2010 01:31

elorant έγραψε:Τα web controls είναι μια προσπάθεια να έρθει ο προγραμματισμός στο web πιο κοντά στα πρότυπα του desktop.
Πες το κι έτσι. Παραδέχομαι ότι η προσπάθεια είναι εν μέρει επιτυχημένη, αλλά ταυτόχρονα περιττή. Στους καιρούς που ζούμε η πλατφόρμα στην οποία στοχεύουν τα περισσότερα προγράμματα δεν είναι τα windows αλλά το web. Η εποχή κατά την οποία οι windows προγραμματιστές μεταπηδούσαν στο web έχει παρέλθει. Τότε είχε νόημα η ύπαρξη μιας μεταβατικής τεχνολογίας που θα αξιοποιούσε τις υπάρχουσες γνώσεις τους για να διευκολύνει τη μετάβαση. Σήμερα μπορεί κανείς να ξεκινήσει κατευθείαν να προγραμματίζει στο web, χωρίς να περάσει πρώτα από τη φάση του προγραμματισμού στα windows. Αν λοιπόν κανείς ξεκινήσει να μαθαίνει με τη σωστή σειρά (HTML -> CSS -> JavaScript -> Server-side τεχνολογία της προτίμησής του) δεν έχει ανάγκη να μιμηθεί τα πρότυπα του desktop προγραμματισμού, μια μίμηση που δεν είναι ωφέλιμη για την ποιότητα των παραγόμενων web εφαρμογών.

Προσωπικά από τότε που ασχολήθηκα με το web έχω αντιστρέψει τελείως το στυλ προγραμματισμού μου. Αντί να προσπαθώ να ακολουθήσω το κάποτε οικείο drag-drop πρότυπο, αντίθετα γράφω windows εφαρμογές στα πρότυπα του web. Δηλαδή με HTML και JavaScript (HTA applications). Στην μεταστροφή αυτή συνέβαλε και μια ενόχληση στο δεξί μου χέρι (πιθανή τενοντίτιδα) λόγω κατάχρησης του mouse. Το πληκτρολόγιο έχει αποδειχτεί πιο υγιεινό για τα χέρια μου. :-)

elorant
Δημοσιεύσεις: 173
Εγγραφή: 23 Σεπ 2009 23:09

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από elorant » 24 Μαρ 2010 09:18

Η προσπάθεια να έρθει ο προγραμματισμός στο web πιο κοντά στα πρότυπα του desktop δεν γίνεται για να διευκολύνει τη μετάβαση των προγραμματιστών από τη μια πλατφόρμα στην άλλη. Γίνεται για να καλύψει εγγενείς αδυναμίες του web. H JavaScript για παράδειγμα δεν υποστηρίζει sockets. Αν επομένως θέλεις να φτιάξεις μια προηγμένη εφαρμογή chat θα πρέπει να πας σε τεχνολογίες over-the-browser, δηλαδή Java, Flash/Flex ή Silverlight. Δεν είναι θέμα γούστου, είναι θέμα αναγκών. Και μόνο περιττή δεν είναι. Αν ήταν περιττή δεν θα μιλάγαμε σήμερα για τεχνολογίες Ajax που καταργούν το refresh φέρνοντας το web πιο κοντά στον τρόπο που λειτουργεί μια εφαρμογή στο desktop.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από skeftomilos » 24 Μαρ 2010 21:47

Για τη Java, το Flash, το Silverlight και την AJAX θα μπορούσαμε να κάνουμε μια άλλη συζήτηση που θα αφορούσε τις client-side τεχνολογίες. Η απογοήτευσή μου από τα Web Controls της ASP.NET αφορά το αυτάρεσκο όραμα που πιστεύω ότι τα δημιούργησε, και δεν επεκτείνεται στην ASP.NET εν γένει. Είναι μια τεχνολογία που αγαπώ και χρησιμοποιώ αδιαλείπτως τα τελευταία 4-5 χρόνια. Απλά αντί να χρησιμοποιώ τα Web Controls για την παραγωγή της HTML που δομεί τις web σελίδες, χρησιμοποιώ το απλούστερο και πιο ευέλικτο εναλλακτικό μηχανισμό που υποστηρίζει εγγενώς η ίδια η ASP.NET. Δηλαδή τους κλασικούς delimiters που οριοθετούν τον κώδικα που εκτελείται server-side μέσα στις aspx σελίδες. Αυτό δεν καθιστά τον κώδικά μου σπαγγέτι. Σπαγγέτι θα ήταν αν ανακάτευα business logic με presentation και data access κώδικα όλα σε ένα. Δεν το κάνω. Μέσα στις aspx σελίδες υπάρχει μόνο ο κώδικας που αφορά το presentation. Και πουθενά αλλού. Δεν έχω κώδικα presentation στις code-behind κλάσεις, π.χ. θαμμένο μέσα σε ItemDataBound events.

elorant
Δημοσιεύσεις: 173
Εγγραφή: 23 Σεπ 2009 23:09

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από elorant » 24 Μαρ 2010 23:06

Οτιδήποτε γράφεις μέσα στο aspx που δεν είναι markup θεωρείται spaghetti code. Το να έχεις κώδικα presentation σε code-behind κλάσεις δεν είναι λάθος. Ο κώδικας ανήκει στο code-behind και η markup στο .aspx. Αντίστοιχη λογική υπάρχει και στην unobtrusive JavaScript.

Από εκεί και πέρα, δεν καταλαβαίνω γιατί το χαρακτηρίζεις ως αυτάρεσκο. Είναι μια αρχιτεκτονική κι όπως όλα τα πράγματα στην τεχνολογία έχει τα θετικά της και τα αρνητικά της. Ίσα-ίσα που η Microsoft αποδεχόμενη την κριτική γύρω από τα web controls έβγαλε το 2008 την asp.net mvc που ούτε web controls έχει, ούτε viewstate.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από skeftomilos » 25 Μαρ 2010 00:39

elorant έγραψε:Ο κώδικας ανήκει στο code-behind και η markup στο .aspx.
Είσαι σίγουρος; Ο παρακάτω κώδικας είναι δανεισμένος από μια σελίδα aspx ενός tutorial του επίσημου site της Microsoft για την πλατφόρμα ASP.NET MVC.

Κώδικας: Επιλογή όλων

<% foreach &#40;var dinner in Model&#41; &#123; %>
  <li>                
    <%=Html.Encode&#40;dinner.Title&#41; %>           
    on
    <%=Html.Encode&#40;dinner.EventDate.ToShortDateString&#40;&#41;&#41;%>
    @
    <%=Html.Encode&#40;dinner.EventDate.ToShortTimeString&#40;&#41;&#41;%>
  </li>
<% &#125; %>
Μπορεί να μην το κάνει ούτε πολύ συχνά ούτε πολύ έγκαιρα, αλλά όπως λες κι εσύ η Microsoft ενίοτε παραδέχεται τα λάθη της και τα διορθώνει.

Το όραμα το χαρακτήρισα αυτάρεσκο γιατί η Microsoft θεώρησε κάποτε ότι το web development ήταν χαλασμένο και χρειαζόταν διόρθωση. Για να το διορθώσει θεώρησε ότι έπρεπε να το προσαρμόσει στα δικά της πρότυπα, αυτά του windows development. Τελικά κατάλαβε ότι το web δεν είναι χαλασμένο, είναι απλά διαφορετικό.

elorant
Δημοσιεύσεις: 173
Εγγραφή: 23 Σεπ 2009 23:09

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από elorant » 25 Μαρ 2010 01:41

skeftomilos έγραψε:Είσαι σίγουρος; Ο παρακάτω κώδικας είναι δανεισμένος από μια σελίδα aspx ενός tutorial του επίσημου site της Microsoft για την πλατφόρμα ASP.NET MVC.
Η κύρια κριτική που γίνεται στην asp.net mvc είναι πως επαναφέρει το spaghetti code. Και ναι, είμαι σίγουρος, όταν στο markup έχεις κώδικα αυτό λέγεται spaghetti code. Αν εσένα σε βολεύει κάντο και με τις ευλογίες μου. Αλλά μην προσπαθείς να μου πεις πως είναι και το ιδεατό.
skeftomilos έγραψε:Μπορεί να μην το κάνει ούτε πολύ συχνά ούτε πολύ έγκαιρα, αλλά όπως λες κι εσύ η Microsoft ενίοτε παραδέχεται τα λάθη της και τα διορθώνει.
Από που προκύπτει πως πρόκειται για λάθος; Επειδή δεν αρέσει σε εσένα; Το mvc είναι μια διαφορετική φιλοσοφία. Ούτε καλύτερη, ούτε χειρότερη. Απλά διαφορετική.
skeftomilos έγραψε:Το όραμα το χαρακτήρισα αυτάρεσκο γιατί η Microsoft θεώρησε κάποτε ότι το web development ήταν χαλασμένο και χρειαζόταν διόρθωση. Για να το διορθώσει θεώρησε ότι έπρεπε να το προσαρμόσει στα δικά της πρότυπα, αυτά του windows development. Τελικά κατάλαβε ότι το web δεν είναι χαλασμένο, είναι απλά διαφορετικό.
Με τέτοιες γενικεύσεις και υπεραπλουστεύσεις στα όρια του φιλολογικού λυπάμαι αλλά δεν μπορώ να κάνω κουβέντα. Και δεν βλέπω και το νόημα. Ο καθένας έχεις τις απόψεις του για τη Microsoft και τις κατά καιρούς προθέσεις της κι οποιαδήποτε συζήτηση επ' αυτού δεν καταλήγει πουθενά.

Καλή σου μέρα.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από skeftomilos » 25 Μαρ 2010 02:45

Αγαπητέ Elorant φαίνεται ότι έχουμε διαφορετική γνώμη για την αξία των Web Controls ως αρχιτεκτονικής οργάνωσης κώδικα, και ως μοντέλο προγραμματισμού. Αλλά τυχαίνει επιπλέον να έχω διαμορφώσει μια άποψη για τα κίνητρα που ώθησαν την Microsoft να προωθήσει αυτή την τεχνολογία. Βλέπω σε αυτά τα κίνητρα έντονες τις αντανακλάσεις των επιθυμιών του τμήματος marketing και του τμήματος στρατηγικού σχεδιασμού. Καταλαβαίνω τους λόγους που η Microsoft προωθεί εργαλεία προγραμματισμού που επιτρέπουν σε junior προσωπικό να παράγει γρήγορα εφαρμογές οριακά λειτουργικές, μόνο που οι λόγοι αυτοί δεν με εμπνέουν ως προγραμματιστή. Ίσως έχεις δίκιο ότι μια τέτοια συζήτηση δεν καταλήγει πουθενά, οπότε καλημέρα κι από μένα. :-)

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από dpa » 20 Ιούλ 2010 10:44

Ρε παιδιά αξίζει να ασχοληθούμε με ASP.ΝΕΤ με την asp.net γράφεις 50 γραμμές για να εμφανίσεις δεδομένα από databases.

και με την php 5 γραμμές.

elorant
Δημοσιεύσεις: 173
Εγγραφή: 23 Σεπ 2009 23:09

Ado και ado.net, ομοιότητες και διαφορές

Δημοσίευση από elorant » 20 Ιούλ 2010 14:30

Που τις είδες τις πενήντα γραμμές για να εμφανίσεις δεδομένα; Εδώ γίνεται κριτική στην asp.net πως με τα drag 'n' drop controls ευτελίζει το development. Σε πολλές περιπτώσεις μπορείς να εμφανίσεις data χωρίς να γράψεις ούτε μια γραμμή κώδικα.

Απάντηση

Επιστροφή στο “ASP, ASP.NET”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης