defacer Δημοσ. 12 Αυγούστου 2012 Δημοσ. 12 Αυγούστου 2012 Rule of thumb. Αν κάποιος γράφει κώδικα για να σχεδιάσει το GUI σε .ΝΕΤ, έχει τρομερό πρόβλημα γνώσεων, και λογικής. Εγώ προσωπικά ως εταιρία, δεν θα τον είχα προσλάβει. Πεθαίνω από την περιέργεια να δω το πώς ακριβώς θα έκανες ένα UI που είναι configurable at runtime (όπως αυτό του Downloadpercent) χωρίς να γράψεις κώδικα.
dolph Δημοσ. 12 Αυγούστου 2012 Δημοσ. 12 Αυγούστου 2012 Αλλά αν τώρα ξεκινάς και θές να μάθεις, μάθε WPF (και back γλώσσα όποια θες μεταξύ C# ή VB). Αν δεν γνωρίζω ήδη κάποια από τις γλώσσες, μπορώ να ξεκινήσω με WPF; Ποιόν "δρόμο" θα πρότεινες; Έχεις βιβλία να προτείνεις; Ευχαριστώ,
Apoll Δημοσ. 12 Αυγούστου 2012 Δημοσ. 12 Αυγούστου 2012 [/font][/color] Αν δεν γνωρίζω ήδη κάποια από τις γλώσσες, μπορώ να ξεκινήσω με WPF; Ποιόν "δρόμο" θα πρότεινες; Έχεις βιβλία να προτείνεις; Ευχαριστώ, Μιας και τώρα ξεκινάς, θα χρειαστείς τουλάχιστον το πρώτο για αρχή. Sams Teach Yourself WPF in 24 Hours - ISBN-10: 0672329859 | ISBN-13: 978-0672329852 και αργότερα WPF 4 Unleashed - ISBN-10: 0672331195 | ISBN-13: 978-0672331190 Πεθαίνω από την περιέργεια να δω το πώς ακριβώς θα έκανες ένα UI που είναι configurable at runtime (όπως αυτό του Downloadpercent) χωρίς να γράψεις κώδικα. Η όλη συζήτηση ήταν για winforms και σύγκριση .NET με C++ και οτι δεν χρειάζεται να ανακαλύπτεις τον τροχό. Εσύ αναφέρεσαι σε συγκεκριμένο custom object. (δεν έχω ιδέα σε τί αναφέρεσαι ρίξε λινκ να γίνω πιο συγκεκριμένος) Αν εννοείς στην Progress Bar, αυτό είναι control και περνάς μία τιμή. Αν είναι αναφέρεσαι σε κάποιο UI εφαρμογής, και οι προγραμματιστές του δεν ήταν μαζόχες, τότε χρησιμοποιεί MVC/MVVM λογική-patterns-μοντέλα, και WPF, Silverlight. Ή κάποιο εργαλείο από Component One ή codeplex (το οποίο θα είναι σε WPF πολύ πιθανόν). Ρίξε λινκ και θα σου πω, πως πιθανόν το έχουν φτιάξει, χωρίς να γράψουν ούτε μία γραμμή κώδικα για το GUI σε VB/C#.
defacer Δημοσ. 13 Αυγούστου 2012 Δημοσ. 13 Αυγούστου 2012 Η όλη συζήτηση ήταν για winforms και σύγκριση .NET με C++ και οτι δεν χρειάζεται να ανακαλύπτεις τον τροχό. Εσύ αναφέρεσαι σε συγκεκριμένο custom object. (δεν έχω ιδέα σε τί αναφέρεσαι ρίξε λινκ να γίνω πιο συγκεκριμένος) Αν εννοείς στην Progress Bar, αυτό είναι control και περνάς μία τιμή. Αν είναι αναφέρεσαι σε κάποιο UI εφαρμογής, και οι προγραμματιστές του δεν ήταν μαζόχες, τότε χρησιμοποιεί MVC/MVVM λογική-patterns-μοντέλα, και WPF, Silverlight. Ή κάποιο εργαλείο από Component One ή codeplex (το οποίο θα είναι σε WPF πολύ πιθανόν). Ρίξε λινκ και θα σου πω, πως πιθανόν το έχουν φτιάξει, χωρίς να γράψουν ούτε μία γραμμή κώδικα για το GUI σε VB/C#. Βασικά εννοώ ότι το παράδειγμα του downloadpercent (το οποίο σου επιτρέπει να αποφασίσεις πού θα τοποθετηθεί το κουμπί at runtime, σε αντίθεση με κώδικα από τον winforms designer) δεν άξιζε κατά τη γνώμη μου την αρνητική κριτική -- ακριβώς επειδή το θέμα της συζήτησης απέχει πάρα πολύ από το πώς π.χ. να κάνεις WPF interfaces με το Blend. Στην τελική αν έκανε copy paste τον κώδικα του designer θα ήταν καλύτερα για όσους διαβάσουν το post εδώ; Δε νομίζω. Συμφωνώ με το γενικότερο πνεύμα σου αλλά IMHO η κριτική ήταν άστοχη και το "UI χωρίς κώδικα" ακούγεται πολύ παραπλανητικό. Μπορούμε να συζητάμε σε μάκρος για το αν κάτι είναι "UI code" ή όχι, αλλά πρακτικά π.χ. στο MVVM πρέπει να γράψεις τόσο πολύ "τζάμπα κώδικα" για viewmodels και interfaces που αν το κριτήριο είναι ο αριθμός των keystrokes δεν αξίζει με την καμία (φυσικά δε γράφεις MVVM γι' αυτό το λόγο, just saying).
Directx Δημοσ. 13 Αυγούστου 2012 Δημοσ. 13 Αυγούστου 2012 [..]Θα έπρεπε να γράψεις ότι σε .ΝΕΤ δεν χρειάζεται να γράψεις τίποτα όσον αφορά τον σχεδιασμό του GUI. [..] Rule of thumb. Αν κάποιος γράφει κώδικα για να σχεδιάσει το GUI σε .ΝΕΤ, έχει τρομερό πρόβλημα γνώσεων, και λογικής. Εγώ προσωπικά ως εταιρία, δεν θα τον είχα προσλάβει. Δεν χωρά αμφιβολία ότι ένα σημαντικό μέρος της ανάπτυξης του UI μπορεί να γίνει οπτικά μέσο του WinForm Editor (οπότε ως εδώ συμφωνώ απόλυτα μαζί σου) όμως όσο περισσότερο επιθυμείς να ξεχωρίσεις το UI σου και να κάνει κάτι παραπάνω από τα αναμενόμενα (δίχως να ξανά γράψεις βεβαίως από το μηδέν ένα ολόκληρο control) οφείλεις να γράψεις κώδικα επεμβαίνοντας στα σημεία που θεωρείς απαραίτητο (και που φυσικά σου επιτρέπει να παρεμβληθείς το ίδιο το control). Για παράδειγμα.. Το έγραψα σε C# τροποποιώντας το owner-draw του ListView control, τώρα αν υπάρχει κάποιο έτοιμο property που μπορεί να παράξει το ίδιο οπτικό αποτέλεσμα δίχως κώδικα σε C#/.NET ειλικρινά μου διαφεύγει αλλά θα χαρώ να το μάθω
Apoll Δημοσ. 13 Αυγούστου 2012 Δημοσ. 13 Αυγούστου 2012 @defacer : Άλλο να θέσεις κάποιο property ενός control στον κώδικα, και άλλο να το σχεδιάζεις από τον κώδικα συμπεριλαμβανομένου το location όπως στα παραδείγματα που αναφέρθηκα. Το ότι MVVM χρειάζεται περισσότερη πληκτρολόγηση, δεν το κάνει χειρότερο by default. Τα κέρδη που έχεις σχετικά, είναι μεγάλα. Η γενικοποίηση του GUI αλλά και της αρχιτεκτονικής (π.χ. χρησιμοποιώ PRISM γιατί ποτέ δεν ξέρεις τί άλλο θα ζητήσουν αργότερα) , μίας εφαρμογής, επιτρέπει την εύκολη συντήρηση και ανάπτυξη στο μέλλον. Γιατί να φτιάξω έναν μονόλιθο, όταν υπάρχει πιθανότητα αύριο να ζητήσουν να δουλεύει με νέες ή διαφορετικές παραμέτρους και περιβάλλοντα; Επίσης, καλύτερα να κάνω τον υδραυλικό (σε MVVM αυτό είσαι βασικά) παρά να προσπαθώ να κάνω τα πάντα από την αρχή. Προσωπικά, βγάζω περισσότερη δουλειά έτσι, και γι αυτό αυτά έχουν φτιαχτεί. Για να μπορείς να βγάζεις περισσότερη δουλειά στην εταιρία. @DirectX, στην απάντησή μου #48 εξηγώ, ότι άλλο αν φτιάχνεις custom control και άλλο γενική φόρμα που ήταν τα παραδείγματα. Όσον αφορά το Rank ListView, που έχεις φτιάξει, σε winforms είναι μανίκι. Αλλά από την γενική συζήτηση των παραδειγμάτων μεταξύ γλωσσών και περιβάλλοντος, έχουμε πέσει σε ειδικές περιπτώσεις custom made controls. (ΥΓ το συγκεκριμένο control στο WPF είναι πιο εύκολο να το κάνεις).
defacer Δημοσ. 13 Αυγούστου 2012 Δημοσ. 13 Αυγούστου 2012 @defacer : Άλλο να θέσεις κάποιο property ενός control στον κώδικα, και άλλο να το σχεδιάζεις από τον κώδικα συμπεριλαμβανομένου το location όπως στα παραδείγματα που αναφέρθηκα. Ναι, αλλά με τον τρόπο αυτό μπορείς να βάλεις και multiples από το control. Και εδώ έχεις κάθε δίκιο να πεις "και ποιός μας λέει ότι θέλουμε multiples" όμως και γω μπορώ να απαντήσω "και ποιός μας λέει ότι δεν θέλουμε". Εφόσον δηλαδή δεν υπήρχε "εκφώνηση" = συγκεκριμένος στόχος που θέλουμε να πετύχουμε, νομίζω πως η (υπό συνθήκες σωστή) κριτική σου ήταν υπέρ του δεόντως... κριτικαριστική. Το ότι MVVM χρειάζεται περισσότερη πληκτρολόγηση, δεν το κάνει χειρότερο by default. Τα κέρδη που έχεις σχετικά, είναι μεγάλα. Η γενικοποίηση του GUI αλλά και της αρχιτεκτονικής (π.χ. χρησιμοποιώ PRISM γιατί ποτέ δεν ξέρεις τί άλλο θα ζητήσουν αργότερα) , μίας εφαρμογής, επιτρέπει την εύκολη συντήρηση και ανάπτυξη στο μέλλον. Γιατί να φτιάξω έναν μονόλιθο, όταν υπάρχει πιθανότητα αύριο να ζητήσουν να δουλεύει με νέες ή διαφορετικές παραμέτρους και περιβάλλοντα; Επίσης, καλύτερα να κάνω τον υδραυλικό (σε MVVM αυτό είσαι βασικά) παρά να προσπαθώ να κάνω τα πάντα από την αρχή. Προσωπικά, βγάζω περισσότερη δουλειά έτσι, και γι αυτό αυτά έχουν φτιαχτεί. Για να μπορείς να βγάζεις περισσότερη δουλειά στην εταιρία. Όπως και κάθε abstraction layer στην πράξη, έτσι και το MVVM βγάζει τα λεφτά του αν χρησιμοποιήσεις την παραπάνω ευελιξία ή είναι τζάμπα δουλειά αν δεν τη χρησιμοποιήσεις. Προσωπική μου άποψη μετά από πολλή ενασχόληση (με Prism v2 και v4) ότι αν δεν κάνεις unit tests για τα viewmodels είναι πολύ πιθανό να έχεις κάνει τζάμπα δουλειά. Παρόλο που είμαι "αρχιτεκτονάκιας" και χαίρομαι να βλέπω και να γράφω τέτοιου είδους κώδικα.
Apoll Δημοσ. 13 Αυγούστου 2012 Δημοσ. 13 Αυγούστου 2012 Ευτυχώς που στα κεντρικά της εταιρίας στην Κοπενχάγη, υπάρχει ολόκληρο QA τμήμα
Directx Δημοσ. 14 Αυγούστου 2012 Δημοσ. 14 Αυγούστου 2012 [..]@DirectX, στην απάντησή μου #48 εξηγώ, ότι άλλο αν φτιάχνεις custom control και άλλο γενική φόρμα που ήταν τα παραδείγματα. Ok. Όσον αφορά το Rank ListView, που έχεις φτιάξει, σε winforms είναι μανίκι. Αλλά από την γενική συζήτηση των παραδειγμάτων μεταξύ γλωσσών και περιβάλλοντος, έχουμε πέσει σε ειδικές περιπτώσεις custom made controls. (ΥΓ το συγκεκριμένο control στο WPF είναι πιο εύκολο να το κάνεις). Με WPF δεν έχω ασχοληθεί αλλά από τα λίγα πράματα που έχω δει συμφωνώ μαζί σου, σε WinForms δεν λέω ότι είναι απλό αλλά όσο ασχολήσε συνηθίζεις.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα