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

 

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

Composite Entities

Îåêßíçóå áðü ôï ìÝëïò infoCENTER. Τελευταία δημοσίευση από το μέλος Markos στις 03-10-2010, 23:41. Υπάρχουν 18 απαντήσεις.
Σελίδα 2 από 2 (19 εγγραφές)   < 1 2
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-08-2010, 20:14 59824 σε απάντηση της 59823

    Απ: Composite Entities

    Markos:

    Εγώ γιατί έχω καταλάβει ότι δεν αναφέρεται σ' αυτό; Δε νομίζω ότι ρωτάει πως ο ένας χρήστης θα βλέπει τις αλλαγές που κάνει ο άλλος. Θέλει έναν τρόπο να συγχρονίζει τα δεδομένα στις φόρμες του ίδιου χρήστη. Ο ίδιος χρήστης να μπορεί ν' ανοίγει πολλαπλές φόρμες (άλλες grid, άλλες detail), με τα κοινά δεδομένα, και οι αλλαγές που γίνονται στα properties ενός entity - αν αυτό το entity υπάρχει και στις υπόλοιπες φόρμες - να εμφανίζονται ταυτόχρονα κι εκεί, με όλα όσα αυτό συνεπάγεται στο γενικότερο συγχρονισμό των φορμών (π.χ. validation). Το πλήθος των φορμών δεν είναι γνωστό από την αρχή και η πιο ακραία περίπτωση είναι ένας χρήστης να παίζει με το button του "open form" και ν' ανοίγει πολλαπλές detail φόρμες για το ίδιο entity. Αφού βαρεθεί να παίζει, να μπορεί να στείλει τις αλλαγές στη βάση απ' όποια φόρμα θέλει και όλες οι υπόλοιπες detail φόρμες να ξέρουν ότι το state του entity δεν είναι πια modified, αλλά current. Αν η αποθήκευση δεν πραγματοποιηθεί, όλες οι φόρμες να ενημερωθούν γι' το σφάλμα κ.λπ, κ.λπ.


    Και πως αυτό το κάνει διαφορετικό, από το ανοίγουν πολλοί χρήστες, την ίδια φόρμα; 

    Η περίπτωση του "πολλοί χρήστες που επεξεργάζονται το ίδιο entity", είναι μια πιο γενική περίπτωση του "ένας χρήστης επεξεργάζεται το ίδιο entity περισσότερες από μία φορές", ή κάνω λάθος;


    George J.


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

    Απ: Composite Entities

    George J. Capnias:

    Και πως αυτό το κάνει διαφορετικό, από το ανοίγουν πολλοί χρήστες, την ίδια φόρμα; 

    Η περίπτωση του "πολλοί χρήστες που επεξεργάζονται το ίδιο entity", είναι μια πιο γενική περίπτωση του "ένας χρήστης επεξεργάζεται το ίδιο entity περισσότερες από μία φορές", ή κάνω λάθος;


    George J.

    Ένα - ένα τα προβλήματα... Οι αλλαγές που έχει κάνει ένας άλλος χρήστης έχουν ήδη περαστεί στη βάση, είναι committed και ο άλλος χρήστης λαμβάνει γνώση γι' αυτές μέσω κάποιου μηχανισμού (poll ή ένα message από τον server, όπως έγραψες). Πρόκειται για ένα βήμα παραπέρα. Το πρόβλημα του "επεξεργάζομαι το ίδιο entity πολλές φορές, σε διαφορετικές φόρμες, άλλες grid - άλλες detail και όλ' αυτά θέλω να συγχρονίζονται στο UI" είναι κατά τη γνώμη μου άλλης φύσης. Οι αλλαγές μπορεί να γίνουν commit, μπορεί και όχι (αλλά πρέπει να φαίνονται σε όλες τις "εμπλεκόμενες" φόρμες). Ενδέχεται να ανοίξω μια detail φόρμα για fast entry και να κάνω add σε entities, αλλά θέλω τα additions να φαίνονται στο grid που έχω "πίσω μου" και που εμφανίζει όλες τις εγγραφές μαζί. Αλλάζω, όμως γνώμη τελευταία στιγμή και κάνω cancel στις προσθήκες. Άλλo παράδειγμα: Έχω ανοιχτή μια detail φόρμα που επεξεργάζομαι ένα entity, το οποίο υπάρχει σε άλλη φόρμα σε ένα grid. Κάτι συμβαίνει διακόπτω την εργασία μου και όταν γυρίζω, "μπαίνω" στο grid, διαγράφω το entity και κάνω commit τη διαγραφή. Περιμένω, λοιπόν, να κλείσει και η φόρμα του detail χωρίς να κάνω κάποια περαιτέρω ενέργεια. Μιλάμε δηλαδή για ένα UI στο οποίο συμβαίνουν πολύ ωραία πραγματάκια ταυτόχρονα. Νομίζω, λοιπόν, ότι η ερώτηση που έκανε το μέλος είναι για το πως μπορεί να υλοποιηθεί ένας τέτοιος μηχανισμός, ώστε να επιτυγχάνεται μιας τέτοιας μορφής synchonization στο UI. Βεβαίως, ρώτησε και πως να σχεδιάσει τα objects του για να γίνει το εγχείρημα πιο εύκολο. Τώρα, αν σ' αυτό το "χαμό" βάλουμε και τα notifications από τη βάση... Ομολογώ, δεν το έχω ξανακάνει και απλά καταθέτω κάποιες σκέψεις για το πως μπορεί να επιτευχθεί. Κάποιος που το έχει ξανακάνει μπορεί να γίνει πολύ πιο συγκεκριμένος και να μας βάλει στο σωστό δρόμο.


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  31-08-2010, 10:42 59838 σε απάντηση της 59827

    Απ: Composite Entities

    Μόλις γύρισα από τις ολιγοήμερες διακοπές μου και είδα ότι όσο χρόνο έλειπα το Thread δεν πέθανε.

    Και οι δύο πιάσατε ακριβώς το πρόβλημα. Και ο Markos έχει δίκιο σε αυτό που γράφει αλλά και ο George επίσης. Είναι το πιο δύσκολο UI που θα έχω φτιάξει μέχρι τώρα και αυτό το κατάλαβα από νωρίς. Να πω μερικά πράγματα σχεδιασμού ακόμα.

    Το σενάριο μεταξύ δύο χρηστών όπου ο ένας κάνει μία αλλαγή πότε θα την δει ο άλλος. Εδώ και αρκετό καιρό έχω φτιάξει ένα προγραμματάκι το οποίο στήνεται στον Server και λαμβάνει μηνύματα από τους clients. Επειδή το πρόβλημα των αλλαγών των χρηστών δεν εμφανίζεται μόνο σε αυτό το πρόγραμμα αλλά και σε άλλα είχα αποφασίσει πριν καιρό να φτίάξω αυτό το πρόγραμμα, το οποίο όταν γίνει κάποια αποθήκευση από κάποιον client ενημερώνεται με message από το συγκεκριμένο client και στην συνέχεια ενημερώνει τα υπόλοιπα clients του δικτύου με ένα μήνυμα τύπου Entity-Client, Id-104, Action-Created. Ο κάθε client ανάλογα με το μήνυμα θα κάνει και την ανάλογη ενέργεια για να ενημερώσει το UI του χρήστη. Το πρόγραμμα αυτό με έχει βολέψει πάρα πολύ και πρόσφατα του πρόσθεσα και την δυνατότητα να κρατάει log κινήσεων κτλ. Οπότε σκεφτόμουν να χρησιμοποιήσω την ίδια προσέγγιση για την λύση του προβλήματος των χρηστών και τις αλλαγές μεταξύ τους.

    Στο UI τώρα ο Markos το έχει πιάσει ακριβώς. Έτσι το σκέφτομαι και έτσι θα ήθελα να το κάνω. Νόμιζα και νομίζω ότι το Binding θα πρέπει να είναι μία τεχνολογία που πρέπει να χρησιμοποιήσω. Μου λύνει το πρόβλημα των Notification μεταξύ των φορμών και των entity. Αλλάζω κάτι σε ένα entity σε μία φόρμα, αυτόματα η αλλαγή φαίνεται και σε άλλο σημείο του UI. Επίσης μου λύνει το πρόβλημα της εμφάνισης λαθών που υπάρχουν μέσα στα entities μου. To Binding όμως θέλει DataTables ή Classes που να έχουν properties. Τα DataTables τα άφησα στην άκρη και πήγα στις Classes. Έτσι κατέληξα σε αυτό που λέω Composite Entities. Είναι όμως η σωστή προσέγγιση; Δεν ξέρω.

    Επίσης μην αναφέρεται WPF. Αν και έχω αρχίσει ήδη να ασχολούμαι με αυτό δεν μπορώ να πω ότι αισθάνομαι άνετα ακόμα για ανάπτυξη εφαρμογής. Το project είναι καθαρά Winforms.   

  •  03-10-2010, 23:41 60405 σε απάντηση της 59838

    Απ: Composite Entities

    Τελικά τι γίνεται με αυτό το πρόβλημα; Η λύση περπατάει;
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
Σελίδα 2 από 2 (19 εγγραφές)   < 1 2
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems