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

 

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

PRISM είναι αποκλείστηκα για τους “advanced” developers ?

Îåêßíçóå áðü ôï ìÝëïò Underwater. Τελευταία δημοσίευση από το μέλος KelMan στις 23-03-2011, 13:45. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-03-2011, 18:54 64376

    PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    Διαβάζω πως το Prism (Composite Application Guidance for WPF and Silverlight) βοηθά (με εύκολο τρόπο?) να περιορίσει κανείς την περιπλοκότητα όταν γράφει μεγάλες εφαρμογές.

    Οταν φτιάχνω πολλά WPF User Controls που είναι μέσα σε ένα WPF Window (dashboard),  το handling των events γινεται κάπως περίπλοκο.  Όποτε η λύση που προτείνεται είναι ένα framework όπου υπάρχει ένα SHELL που κάνει manage όλα τα άλλα modules (Composite View Pattern).  Τα modules (views) δεν ξέρουν πως φορτώνονται, και ποια αλλα modules είναι στο dashboard.

    Μέχρι εδώ, η θεωρία είναι καθαρή και την καταλαβαίνω.  Όμως τα άρθρα που έχω δει (including τα “Getting Started”) αναφέρονται σε ακόμα άλλα patterns, frameworks οπως, Unity Application Block, Managed Extensibility Framework,  Inversion of Control and Dependency Injection, και δεν ξέρω τι άλλο .....

    Βασικά ήθελα να μάθω εάν το PRISM είναι αποκλείστηκα για τους “advanced  developers που είναι αρκετά γνώστες των design patterns κλπ, η αξίζει να το κοιτάμε και εμείς που δεν είμαστε και τόσο προχωρημένοι?


    “Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.”
    (Mosher’s Law)
  •  20-03-2011, 20:31 64380 σε απάντηση της 64376

    Απ: PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    Το έχεις πάρει λίγο ανάποδα. Δεν υπάρχει advanced και ξε-advanced developer. Η ανάπτυξη μεγάλων ή περίπλοκων εφαρμογών απαιτεί πείρα και την κατανόηση αρκετών patterns. Τα frameworks και οι βιβλιοθήκες υπάρχουν για να διευκολύνουν την κατάσταση αλλά προφανώς πρέπει να καταλάβεις τί κάνουν. Συνεπώς, αν θέλεις να ασχοληθείς με μεγάλες εφαρμογές, ε, πρέπει να διαβάσεις αρκετά.

    Από εκεί και πέρα, όταν κάποιος ξεκινάει έχει να ρίξει πολύ περισσότερο διάβασμα από κάποιον που έχει ήδη τις  βάσεις.

    Όσον αφορά το ίδιο το PRISM, σου το λέει και το κοπανάει και το κάνει καραμούζα είναι για COMPOSITE APPLICATIONS, όχι για οποιαδήποτε εφαρμογή. Composite είναι μία εφαρμογή η οποία στη μία οθόνη σου δίνει την καρτέλα από το CRM για ένα πελάτη, στη δεύτερη την κατάσταση της παραγγελίας από το ERP και στην τρίτη τις πληρωμές από κάποιο άλλο σύστημα.

    Αν θες να φτιάξεις μία διαφορετική εφαρμογή κοίτα άλλα frameworks για WPF όπως π.χ. το Caliburn.Micro, το οποίο κάνει πολύ ευκολότερη την ανάπτυξη WPF εφαρμογών.

    Το τί θα πει dependency injection, και τί κάνουν τα MEF και Unity θα πρέπει να τα μάθεις οπωσδήποτε, καθώς είναι πλέον βασικά στοιχεία οποιουδήποτε framework.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-03-2011, 20:50 64383 σε απάντηση της 64376

    Απ: PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    Καταρχήν ο χαρακτηρισμός "εύκολο" ή "δύσκολο" είναι υποκειμενικός και θα αποφύγω να πώ ότι είναι το ένα ή το άλλο, ωστόσο ας δούμε αυτά που λες μιας και πρόσφατα άρχισα να το κοιτάω κι εγώ.

    Underwater:
    να περιορίσει κανείς την περιπλοκότητα όταν γράφει μεγάλες εφαρμογές.
     

    Αυτό είναι σωστό ανάλογα με το τι εννοείς "περιπλοκότητα". Συνήθως οι μεγάλες εφαρμογές έχουν πολλά "components" που αλληλεπιδρούν. Το Prism σου δίνει τον τρόπο ώστε χρησιμοποιώντας τις συμβάσεις του, να μπορείς να γράψεις τα components αυτά (modules κατά το Prism) χωρίς να εξαρτάται το ένα από ο άλλο. Αυτό συνεπάγεται πιο συντηρήσιμο κώδικα, testability, κλπ.

    Underwater:
    Οταν φτιάχνω πολλά WPF User Controls που είναι μέσα σε ένα WPF Window (dashboard),  το handling των events γινεται κάπως περίπλοκο.  Όποτε η λύση που προτείνεται είναι ένα framework όπου υπάρχει ένα SHELL που κάνει manage όλα τα άλλα modules (Composite View Pattern).  Τα modules (views) δεν ξέρουν πως φορτώνονται, και ποια αλλα modules είναι στο dashboard.

    Το shell δεν προτείνεται ως απάντηση στην πολυπλοκότητα αλλά είναι μία από αυτές τις συμβάσεις που ανέφερα προηγουμένως. Είναι κάτι "εκ των ουκ άνευ" αφού έτσι κι αλλιώς θα οργανώσεις την εφαρμογή σε modules. Κάπως θα πρέπει να οργανώνονται αυτά. Από εκεί και πέρα, αν ένα module αποτελείται από πολλά user controls και γίνεται υπεροβολικά περίπλοκο, το Prism δεν μπορεί να σε βοηθήσει εκεί παρά μόνο αν σπάσεις αυτό το module σε άλλα μικρότερα.

    Underwater:
    Μέχρι εδώ, η θεωρία είναι καθαρή και την καταλαβαίνω.  Όμως τα άρθρα που έχω δει (including τα “Getting Started”) αναφέρονται σε ακόμα άλλα patterns, frameworks οπως, Unity Application Block, Managed Extensibility Framework,  Inversion of Control and Dependency Injection, και δεν ξέρω τι άλλο .....

    Αναφέρονται σε άλλα patterns γιατί το ίδιο το Prism έχει υλοποιηθεί με χρήση patterns και γι αυτό αναφέρονται συχνά. Για κάποιον που τα γνωρίζει είναι πιο εύκολο να αντιληφθεί το πώς δουλεύει. Από εκεί και πέρα κάποια άλλα patterns είναι πολύ βασικά και μάλιστα έχουν τον ίδιο στόχο με το Prism, το να γράφει κανείς σωστό κώδικα, εύκολο στη συντήρηση, στις αλλαγές, κλπ, κλπ. Άρα λοιπόν εννοείται ότι πριν πας στο Prism θα πρέπει να έχεις κάποιες βασικές γνώσεις γι αυτά.

    Underwater:
    Βασικά ήθελα να μάθω εάν το PRISM είναι αποκλείστηκα για τους “advanced”  developers που είναι αρκετά γνώστες των design patterns κλπ, η αξίζει να το κοιτάμε και εμείς που δεν είμαστε και τόσο προχωρημένοι?

    Σαφώς δεν είναι για τους "advanced" developers αλλά έχει και κάποιο learning curve. Χρειάζεται το διάβασμά του αλλά θα βγάλεις άκρη. Ψάξε τι είναι αυτά που δεν γνωρίζεις καθώς τα συναντάς και επέστρεψε πάλι στο Prism όταν τα έχεις αποσαφηνίσει. Όπως και να έχει, θα γίνεις καλύτερος developer μέσα από αυτή τη διαδικασία.

     


    Vir prudens non contra ventum mingit
  •  22-03-2011, 21:12 64475 σε απάντηση της 64383

    Απ: PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    To PRISM μαλλον θα είναι υπερβολικό για πρώτο μου βήμα, και ισως για ξεκινημα η κατανωηση του MVVM Pattern ειναι pre-requisite (για μια ποιο σωστή προσέγγιση για WPF εφαρμογές). 

    Έχοντας κοιτάξει και το βιβλίο της Apress «Pro WPF και το Silverlight MVVM» - http://apress.com/book/view/1430231629 ) καθώς και το πολύ καινοτόμο «In-The-Box MVVM Training» (http://karlshifflett.wordpress.com/2010/11/07/in-the-box-ndash-mvvm-training/) εχω την αίσθηση ότι, παρόλο που τα κίνητρα είναι κατανοητά, οι λεπτομέρειες των interactions (ανάμεσα στα ICommands, RelayCommandς, Command Manager κλπ)  θα χρεωστούν αρκετό χρόνο μέχρι να γίνουν αυθόρμητες επιλογές.


    “Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.”
    (Mosher’s Law)
  •  23-03-2011, 12:27 64516 σε απάντηση της 64475

    Απ: PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    Βρήκα αυτή την παρουσίαση για αυτούς που μόλις αρχίζουν με MVVM, και σκέφτηκα να το κάνω Post εδώ

    http://channel9.msdn.com/Events/MIX/MIX10/EX14

     


    “Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.”
    (Mosher’s Law)
  •  23-03-2011, 13:45 64527 σε απάντηση της 64516

    Απ: PRISM είναι αποκλείστηκα για τους “advanced” developers ?

    Εδώ πάει χαμένο το ref γιατί το topic αναφέρεται στο Prism. Καλύτερα να το βάλεις κάπου αλλού για να τύχει της κατάλληλης προβολής.

     


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems