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

 

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

Model-View-Presenter (MVP) pattern

Îåêßíçóå áðü ôï ìÝëïò pap. Τελευταία δημοσίευση από το μέλος pap στις 22-02-2009, 15:40. Υπάρχουν 19 απαντήσεις.
Σελίδα 1 από 2 (20 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-02-2009, 10:46 48355

    Model-View-Presenter (MVP) pattern

    Τελευταία ξεκίνησα να διαβάζω για software design patterns και έχω κολλήσει λιγάκι σε κάποια σημεία ως προς την υλοποίηση. Ξεκίνησα να φτιάξω μια μικρή εφαρμογή ώστε να υλοποιήσω το Model-View-Presenter pattern αλλά δε μου βγαίνει Angry...

    Έχω σε μια database έναν μόνο πίνακα Contact (id, lastName, firstName, city). Η υποτυπώδης εφαρμογή που κάνω θέλω να έχει απλά σε μια φόρμα ένα datagrid που θα εμφανίζει τα data του table Contact, και να έχει ένα button Add... το οποίο πατώντας το θα εμφανίζει τη φόρμα εισαγωγής των data. Και πολύ απλά αυτή η φόρμα θα έχει τα text boxes και ένα button που θα εκτελεί την εισαγωγή των data. Χωρίς το MVP pattern είναι εύκολο να γίνει, μαζί με το pattern όμως...;;;

    Έχω βρει διάφορα μικρά projects στο internet, αλλά ομολογώ ότι αντί να ξεδιαλύνω τα πράγματα τα μπέρδεψα περισσότερο. Αν μπορεί κάποιος να δώσει ένα απλό παράδειγμα υλοποίησης καλό θα ήταν...Cool

  •  11-02-2009, 11:10 48356 σε απάντηση της 48355

    Απ: Model-View-Presenter (MVP) pattern

    Στις 18 του Φλεβάρη θα έχουμε event αφιερωμένο στα presentation patterns, δεν έχει ανακοινωθεί ακόμα, θα το ανεβάσουμε οσονούπω. Αν μπορείς να κάνεις υπομονή και να έρθεις...


    Vir prudens non contra ventum mingit
  •  11-02-2009, 11:16 48357 σε απάντηση της 48356

    Απ: Model-View-Presenter (MVP) pattern

    Ooops! Τώρα είδα ότι είσαι Θεσσαλονίκη. Μάλλον θα χρειαστεί να περιμένεις μέχρι να βγει η κονσέρβα, εκτός αν θα παίξει το live.
    Vir prudens non contra ventum mingit
  •  11-02-2009, 11:34 48358 σε απάντηση της 48357

    Απ: Model-View-Presenter (MVP) pattern

    Καλά θα είναι αν παίξει το live να το δω, αλλά και η "κονσέρβα" δε με χαλάειBig Smile. Πάντως το presentation model ή Model-View-ViewModel μου φαίνεται πιο εύκολα υλοποιήσιμο, αλλά απ' ότι διάβασα συνίσταται περισσότερο για WPF applications.

  •  11-02-2009, 13:15 48359 σε απάντηση της 48358

    Απ: Model-View-Presenter (MVP) pattern

    Ναι, τo MVVM είναι ένα enhanced MVP και η ευκολία του βασίζεται στις ιδιαίτερες δυνατότητες που έχει το WPF στο θέμα του data binding. Που σημαίνει ότι δεν μπορείς να το χρησιμοποιήσεις αλλού. Υποθέτω κάνεις windows forms app?
    Vir prudens non contra ventum mingit
  •  11-02-2009, 14:03 48360 σε απάντηση της 48359

    Απ: Model-View-Presenter (MVP) pattern

    Ναι, θέλω να εφαρμόσω το MVP Pattern σε ένα winform project που έχω και έτσι για να μάθω απλά να το χρησιμοποιώ, φτιάχνω ένα mini app. Αφού μάθω καλά πως εφαρμόζεται, θα κάνω το ίδιο και στο project. Βέβαια δεν ξέρω κατά πόσο θα είναι εύκολο να γίνει αυτό, διότι έχω αρκετά forms, αρκετά user controls, classes κλπ.

  •  12-02-2009, 00:27 48369 σε απάντηση της 48356

    Απ: Model-View-Presenter (MVP) pattern

    KelMan:

    Στις 18 του Φλεβάρη θα έχουμε event αφιερωμένο στα presentation patterns, δεν έχει ανακοινωθεί ακόμα, θα το ανεβάσουμε οσονούπω. Αν μπορείς να κάνεις υπομονή και να έρθεις...



    Σόρρυ κιόλας, αλλά μήπως θα μπορούσατε να το πάτε καμιά βδομάδα πιο μετά γιατι την προηγούμενη θα τρέχουμε στης Microsoft τo Innovation Day;
    Με ενδιαφέρει πολύ το θέμα, αλλά θα πέσει παντόφλα αν λείπω 2 συνεχόμενες ημέρες από το σπίτι! :P
    In dark places we will be
    forever beyond the light
    In dark places we will be free
    from the pain that fills our lives
  •  12-02-2009, 08:49 48376 σε απάντηση της 48369

    Απ: Model-View-Presenter (MVP) pattern

    Δυστυχώς δεν γίνεται. Ήδη το έχουμε κανονίσει και ανακοινώσει... Υπάρχουν και τα logistics στη μέση και δεν είναι εύκολο να αλλάζουμε ημερομηνίες.

    Οπότε έλα στο event και πάρε και το κράνος να μη σε πονέσει η παντόφλα όταν γυρίσεις Big Smile


    Vir prudens non contra ventum mingit
  •  12-02-2009, 09:21 48377 σε απάντηση της 48376

    Απ: Model-View-Presenter (MVP) pattern

    Τελικά εβρέθη μια άκρη, παρόλα αυτά θα περιμένω να γίνει το event και να κάνω download αργότερα τα example projects ή/και ακόμα αν υπάρξει η δυνατότητα να το δω live.
  •  12-02-2009, 12:37 48381 σε απάντηση της 48377

    Απ: Model-View-Presenter (MVP) pattern

    Βλέπω από την αρχή μπήκες στα δύσκολα.

    Το MVP δεν είναι θα έλεγα ένα από τα Patterns που θα έπρεπε να μάθει κάποιος που ξεκινάει τώρα. Ναι μπορεί να θέλεις να κάνεις ένα απλό πρόγραμμα με βάση αυτό το pattern αλλά το ίδιο το pattern είναι συνδυασμός άλλον Pattern τα οποία υποψιάζομαι δεν έχεις μάθει ακόμα.

    Ξεκίνα από τα απλά, τα βασικά και στην συνέχεια θα δεις θα φτάσεις και σε αυτό. Άσε που μαθάινοντας τα άλλα σταδιακά χρησιμοποιώντας τα μέσα στον κώδικά σου σιγά σιγά θα αρχίζεις να υλοποιείς κατά ένα ποσοστό το MVP. Όσοι προσπάθησαν ανάποδα δυσκολεύτηκαν πολύ.

  •  12-02-2009, 13:51 48385 σε απάντηση της 48381

    Απ: Model-View-Presenter (MVP) pattern

    Βασικά δεν είχα διαβάσει παλιότερα για patterns. Δεν ξέρω αν εννοείς patterns όπως Singleton, Bridge κλπ. ή τα presentation patterns. Ένα τρόπος που εφάρμοζα σε applications βάση καθοδήγησης ενός πιο έμπειρου από εμένα ήταν ο εξής:

    Έχω μια κλάση για κάθε έναν πίνακα της database. Σε αυτές τις κλάσεις υπάρχει ότι έχει να κάνει με την επικοινωνία με τη βάση. Δηλαδή, γέμισμα των datasets, setting των SqlCommands κλπ. Τα instance αυτών των κλάσεων τα χρησιμοποιώ σε κάποια user controls ή winforms για να κάνω το presentation (πχ. dataGrid.DataSource = customer.GetDataSource()). Με αυτή τη λογική δηλαδή. Αλλά είδα ότι σε κάποιο σημείο σε ένα project που κάνω τώρα αρχίζει και επικρατεί το χάος, και έτσι έψαξα για patterns και τα λοιπά.

    Ποια εννοείς σαν βασικά; Τα presentation patterns προ του MVP;

  •  12-02-2009, 14:52 48386 σε απάντηση της 48385

    Απ: Model-View-Presenter (MVP) pattern

    Αν ο λόγος για τον οποίο θα ήθελες να μάθεις το MVP είναι ο παραπάνω που μου περιέγραψες τότε σε ενημερώνω πως αυτό το Pattern δεν θα σου φανεί χρήσιμο.

    Ο τρόπος αυτός επικοινωνίας δεν είναι ο πιο βολικός για να αρχίσεις να εξηγείς πράγματα και καταστάσεις και κυρίως όταν σε πιέζει και ο χρόνος. Το θέμα που ανοίξαμε είναι αρκετά μεγάλο. Αν μπορούσα να τα βάλω σε μία κλίμακα θα έλεγα

    1. Βασικές αρχές OOP.
    2. Καλή γνώση και εφαρμογή OOP.
    3. Χρησιμοποιήσει Patterns για επίλυση κοινών προβλημάτων.
    4. Χρησιμοποίησει Patterns για σχεδιασμό UI.

    Εσύ τώρα θέλεις να πας στο 4 ενώ η γνώμη μου είναι ότι κατέχεις το 1 αλλά όχι το 2. Ένα από τα πράγματα που λέει το 2 είναι ότι δεν δίνουμε παραπάνω από μία αρμοδιότητα σε μία κλάσση. Εσύ λοιπόν στο παράδειγμα που μου έδωσες έχεις μία κλάση για να περιγράψεις την οντότητα και μέσα στην ίδια κλάση βάζεις και τον κώδικα για να αποθηκευτεί η οντότητα στην βάση. Έχεις δώσει 2 αρμοδιότητες προς το παρόν και δεν ξέρω τι άλλο θα έχεις βάλει εκεί μέσα. Μπορεί σε επίπεδο κλάσης η μικρή αυτή παρατήρηση να φαίνεται αστεία αλλά σε επίπεδο εφαρμογής αρχίζεις να τα χάνεις και κυρίως όταν ο πελάτης θελήσει να γίνουν κάποιες αλλαγές.

    Οπότε όπως καταλαβαίνεις το θέμα είναι αρκετά μεγάλο για να αναλυθεί σε ένα forum.

  •  12-02-2009, 15:46 48387 σε απάντηση της 48386

    Απ: Model-View-Presenter (MVP) pattern

    Μάλιστα. Γενικά σε μια διαχειριστική εφαρμογή τύπου microsoft outlook ας πούμε, ποιος είναι ο ενδεικτικός τρόπος υλοποίησης;
  •  12-02-2009, 18:35 48395 σε απάντηση της 48386

    Απ: Model-View-Presenter (MVP) pattern

    Καλό είναι να μην αποθαρρύνουμε κανένα να ασχοληθεί με κάτι που τον ενδιαφέρει. Αρκεί να του υποδεικνύουμε την μεθοδολογία για να κάνει master αυτό που έχει βάλει στόχο, να του συμπληρώνουμε το ΤΟ-READ list με τα κατάλληλα θέματα και να τον βοηθούμε να ξεκολάει στην κατανόηση των εννοιών. Επιμονή και υπομονή χρειάζεται καθώε και όταν κολλάς να βλέπεις τι δεν κατάλαβες και να γυρίζεις προς τα πίσω μέσα στη δομή-κρεμύδι των εννοιών που συνθέτουν τον στόχο σου.

    Σε ό,τι αφορά τα design patterns, υπάρχουν εύκολα και δύσκολα. Δεν είναι ανάγκη να κατέχει κανείς όλη την OO θεωρία για να ξεκινήσει με τα design patterns. Ίσα-ίσα, πιστεύω ότι μέσα από τα design patterns μπορεί κάποιος να έχει πολλές "Α-ΗΑΑ" στιγμές και να κατανοήσει τον OO προγραμματισμό. Προσωπικά, θυμάμαι ότι η πρώτη φορά που ήρθα σε επαδή με τα patterns ήταν γιατί έψαχνα έναν τρόπο ώστε μια ρουτίνα να μπορεί να εκτελεστεί από πολλαπλά events (πχ MenuItem click, Toolbar click, Tasklist click) και ταυτόχρονα να μπορώ να τα κάνω όλα μαζί enable/disable εύκολα. Δηλαδή το Command pattern. Ως προς τα presentation patterns, το MVC για παράδειγμα είναι σχετικά απλό στην υλοποίηση, δεν απαιτεί πολλές γνώσεις ΟΟP και παράλληλα είναι ένα πρώτο βήμα στο concept "Separation of Concerns". Έχοντας κάνει αυτό για το UI, το να πεις "για στάσου, κάτι ανάλογο μπορώ να κάνω και με αυτή την κλάση που είναι τέρας" είναι το φυσικό και λογικό επόμενο βήμα.


    Vir prudens non contra ventum mingit
  •  13-02-2009, 11:17 48403 σε απάντηση της 48355

    Απ: Model-View-Presenter (MVP) pattern

    Να καταθέσω και εγώ τη δική μας εμπειρία από τη χρήση Model-View-Presenter. Το χρησιμοποιήσαμε σαν μέρος των WCSF και SCSF και μπορώ να πω ότι είναι σχετικά πολύπλοκο UI pattern σε συνάρτηση βέβαια με τα framework που το υλοποιούν, φαίνεται να έχει αρκετά συν σε σχέση με άλλα patterns κυρίως στο unit testing. Θα συμφωνήσω όμως με την άποψη ότι αξίζει να το υλοποιήσεις σε σχετικά complex forms (διάβασε την αντίστοιχη παράγραφο  Should We Use Model-View-Presenter for Every Screen? A Personal View). Πάντως όπως και να έχει MVP, MVC, MVVM για "καλές" υλοποιήσεις πήγαινε οπωσδήποτε με UI pattern.

    Nikos Κ.
    ALT.NET
Σελίδα 1 από 2 (20 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems