Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Event Handlers Gone!!

Îåêßíçóå áðü ôï ìÝëïò pSychoK!LLer. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 20-10-2005, 10:42. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-10-2005, 09:45 6252

    Event Handlers Gone!!

    Καλημέρα,

    Δεν ξέρω αν είναι πρόβλημα των web εφαρμογών αλλά εγώ εδω το βρήκα.

    Δουλεύω τελευταία σε ένα web project το οποίο δεν το ξεκίνησα εγώ. Ορισμένες φορές όταν κάνω αλλαγές σε μια σελίδα, εξαφανίζονται, χωρίς κανένα λόγο οι συνδέσεις ( this.object.event += ...) μεταξύ των events και των handler τους. Έτσι τρέχοντας την εφαρμογή, κάνω κλικ σε κουμπί και δεν κάνει τίποτα. Μου έχουν πει ότι πολλούς από τους event handlers γράφτηκαν κατευθείαν στον κώδικα (χωρίς δηλαδή να κάνουν dblClick πάνω στo αντιστοιχο event)

    Έχει συμβεί σε κανέναν άλλον αυτό? Ξέρει κανεις που οφείλεται και κυρίως πως διορθώνεται??

    Thnx


    kost@s
  •  19-10-2005, 13:08 6256 σε απάντηση της 6252

    Απ: Event Handlers Gone!!

    Join the club Wink [;)] Ήταν μια εποχή που ασχολιόμουν με συγκεκριμένο Web Project όπου κόντεψα να αυτοκτονήσω για αυτό το λόγο. Σκέψου ότι τελικά έφτιαξα txt αρχεία στα οποία έκανα copy-paste τους event handlers για την περίπτωση που θα χανόντουσαν.

    Για τον λόγο που συμβαίνει αυτό δεν είμαι σίγουρος, αν και σίγουρα επηρεάζει το να βάζεις τους event handlers με το χέρι (το έκανα κι εγώ). Προφανώς το Visual Studio έχει κάποιο bug που εμφανίζεται σε αυτή την περίπτωση. Η λύση που έχω δώσει εγώ στο πρόβλημα αυτό είναι ότι δεν χρησιμοποιώ τον designer. Τελεία.

    Αν πάντως έχει κάποιος καλύτερη λύση από το "πονάει χέρι, κόψει χέρι" που έδωσα εγώ, θα ήταν ενδιαφέρον να την ακούσω
    Στερνή μου γνώση να σε είχα πρώτα...
  •  19-10-2005, 18:55 6265 σε απάντηση της 6252

    Απ: Event Handlers Gone!!

    ... δοκίμασε κανείς να κάνει add τους handlers σε μια ξεχωριστή μέθοδο, την οποία καλεί στο τέλος της InitialiseCompononents;;

    Απλώς μια σκέψη :]
    Angel
    O:]
  •  19-10-2005, 20:53 6267 σε απάντηση της 6265

    Απ: Event Handlers Gone!!

    Και εγώ πιστεύω ότι τα αίτια είναι τα αυτό... Κάποιος έγραφε κώδικα μέσα στην περιοχή που γράφει κώδικα ο Forms Designer... Big Smile [:D]

    Και έχει ένα ωραίο σχόλιο ακριβώς κάτω από την InitialiseComponents:




    //
    // TODO: Add any constructor code after InitializeComponent call
    //

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  19-10-2005, 21:06 6268 σε απάντηση της 6252

    Απ: Event Handlers Gone!!

    Αυτό συμβαίνει και σε windows forms στο Visual studio, το να εξαφανιστούν κάποια controls από το form, και να παρουσιαστούν ακατάληπτα μηνύματα λάθους. Μου συμβαίνει συχνά όταν αλλάζω ένα project από Release σε Debug ή και το αντίστροφο.
    Η μόνη λύση, είναι να κλείνω το αρχείο χωρίς να το σώσω, και να δοκιμάζω recompilation.
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  19-10-2005, 21:14 6269 σε απάντηση της 6268

    Απ: Event Handlers Gone!!

    Στα webforms το κάνει και χωρίς να έχει μπεί κώδικας από τον χρήστη ανάμεσα στο auto generated code. Η λύσεις για μένα είναι:

    1. Αποφυγή χρήσης του designer, και πάντα source safe από πίσω γιατί μπορεί να μην πάρεις χαμπάρι αμέσως ότι σου έφαγε τον κώδικα.
    2. Αποφυγή του code behind. Όταν έχει code behind file ναι μεν βάζει κώδικα μόνος του, αλλά τον παίρνει πίσω και μόνος του. Οπότε αν οι σελίδες κάνουν inherit κλάσεις που δεν είναι code behind, δεν τις αγγίζει.

    Στα winforms το πρόβλημα εντοπίζεται αλλού. Πολλές φορές ο designer προσπαθεί να φορτώσει user control και κλάσεις που ενδέχεται να τις έχουμε τροποποιήσει. Εκεί κάπου κολλάει το πράγμα, σαν να κλειδώνουν οι προσωρινές dlls που κάνει build τον κώδικα των controls και χάνει τ' αυγά και τα πασχάλια. Η λύση είναι η εξής: Όταν κάνουμε build ή γυρνάμε από release σε debug ή το ανάποδο, να είναι πάντα όλες οι σελίδες του designer κλειστές. Έτσι μπορεί να κάνει το build σωστά και όταν ξανανοίγουμε τον designer δεν μπλέκεται. Αυτό μειώνει τα προβλήματα που αναφέρατε κατά 95%. Έχει και ένα 5% αλλά είναι σπάνιο και δεν έχω καταλάβει γιατί συμβαίνει...


    Χρήστος Γεωργακόπουλος
  •  20-10-2005, 01:42 6277 σε απάντηση της 6252

    Απ: Event Handlers Gone!!

    Ελπίζω να διορθωθούν όλα αυτά στο Visual studio 2005. Δεν είναι δυνατόν να χάνουμε χρόνο προσπαθώντας να διορθώσουμε bugs που υπάρχουν εδώ και 3 χρόνια. Να είχαμε και abstract window forms...

    Ευχαριστώ cgeo, θα το δοκιμάσω και θα σου πω όταν μου ξανατύχει.
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  20-10-2005, 08:56 6279 σε απάντηση της 6277

    Απ: Event Handlers Gone!!

    Παίδες, τουλάχιστον σε windows forms εμένα δεν έχει εμφανιστεί ποτέ αυτό το πρόβλημα... Και πειράζω αρκετά τον windows generated code... To μόνο που έχω παρατηρήσει είναι ότι όταν έχεις ένα control με event handlers αυτοί χάνονται όταν αλλάζεις container στο control, δηλαδή αν ας πούμε αρχικά ήταν πάνω στη φόρμα και κατόπιν το βάλεις μέσα σε ένα panel. Γι αυτόν το λόγο, πάντοτε οργανώνω τον κώδικα σε λογικές ενότητες με χρήση των regions (πχ "Helper subs", "Event subs", κλπ) και έχω συνηθίσει πριν να κάνω μια τέτοια αλλαγή στο interface να βάζω σε ολόκληρη την ενότητα των event subs remarks.

    Sto VS2005 μάλλον δεν θα έχουμε τέτοια προβλήματα λόγω partial class.


    Vir prudens non contra ventum mingit
  •  20-10-2005, 10:42 6283 σε απάντηση της 6277

    Απ: Event Handlers Gone!!

    Ούτε κι εμένα μου έτυχε ποτέ! Ίσως βέβαια να βοηθάει και το ότι ποτέ δεν κρατάω ένα αρχείο checked-out παραπάνω απ' όσο χρειάζεται για να κάνω μία και μοναδική δουλειά. Μερικές ώρες αν διορθώνω ένα bug (ένα τη φορά, όχι κάτσε να τα διορθώσουμε όλα μαζί), άντε να φτάσει μία βδομάδα αν φτιάχνω κάτι βαρύ από το μηδέν!

    Πάντως μην περιμένετε να μπορέσει η Microsoft να διορθώσει ένα bug αν δεν μπορούμε να το περιγράψουμε!
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems