Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Rule of thumb. Αν κάποιος γράφει κώδικα για να σχεδιάσει το GUI σε .ΝΕΤ, έχει τρομερό πρόβλημα γνώσεων, και λογικής. Εγώ προσωπικά ως εταιρία, δεν θα τον είχα προσλάβει.

 

Πεθαίνω από την περιέργεια να δω το πώς ακριβώς θα έκανες ένα UI που είναι configurable at runtime (όπως αυτό του Downloadpercent) χωρίς να γράψεις κώδικα.

  • Απαντ. 53
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.
Αλλά αν τώρα ξεκινάς και θές να μάθεις, μάθε WPF (και back γλώσσα όποια θες μεταξύ C# ή VB).

 

Αν δεν γνωρίζω ήδη κάποια από τις γλώσσες, μπορώ να ξεκινήσω με WPF;

Ποιόν "δρόμο" θα πρότεινες;

Έχεις βιβλία να προτείνεις;

 

Ευχαριστώ,

Δημοσ.

[/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#.

Δημοσ.

Η όλη συζήτηση ήταν για 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).

Δημοσ.
[..]

Θα έπρεπε να γράψεις ότι σε .ΝΕΤ δεν χρειάζεται να γράψεις τίποτα όσον αφορά τον σχεδιασμό του GUI.

[..]

Rule of thumb. Αν κάποιος γράφει κώδικα για να σχεδιάσει το GUI σε .ΝΕΤ, έχει τρομερό πρόβλημα γνώσεων, και λογικής. Εγώ προσωπικά ως εταιρία, δεν θα τον είχα προσλάβει.

Δεν χωρά αμφιβολία ότι ένα σημαντικό μέρος της ανάπτυξης του UI μπορεί να γίνει οπτικά μέσο του WinForm Editor (οπότε ως εδώ συμφωνώ απόλυτα μαζί σου) όμως όσο περισσότερο επιθυμείς να ξεχωρίσεις το UI σου και να κάνει κάτι παραπάνω από τα αναμενόμενα (δίχως να ξανά γράψεις βεβαίως από το μηδέν ένα ολόκληρο control) οφείλεις να γράψεις κώδικα επεμβαίνοντας στα σημεία που θεωρείς απαραίτητο (και που φυσικά σου επιτρέπει να παρεμβληθείς το ίδιο το control).

 

Για παράδειγμα..

 

 

post-41640-0-35012900-1344857026_thumb.png

Το έγραψα σε C# τροποποιώντας το owner-draw του ListView control, τώρα αν υπάρχει κάποιο έτοιμο property που μπορεί να παράξει το ίδιο οπτικό αποτέλεσμα δίχως κώδικα σε C#/.NET ειλικρινά μου διαφεύγει αλλά θα χαρώ να το μάθω :D

 

 

Δημοσ.

 

@defacer : Άλλο να θέσεις κάποιο property ενός control στον κώδικα, και άλλο να το σχεδιάζεις από τον κώδικα συμπεριλαμβανομένου το location όπως στα παραδείγματα που αναφέρθηκα.

 

Το ότι MVVM χρειάζεται περισσότερη πληκτρολόγηση, δεν το κάνει χειρότερο by default. Τα κέρδη που έχεις σχετικά, είναι μεγάλα.

Η γενικοποίηση του GUI αλλά και της αρχιτεκτονικής (π.χ. χρησιμοποιώ PRISM γιατί ποτέ δεν ξέρεις τί άλλο θα ζητήσουν αργότερα) , μίας εφαρμογής, επιτρέπει την εύκολη συντήρηση και ανάπτυξη στο μέλλον. Γιατί να φτιάξω έναν μονόλιθο, όταν υπάρχει πιθανότητα αύριο να ζητήσουν να δουλεύει με νέες ή διαφορετικές παραμέτρους και περιβάλλοντα; Επίσης, καλύτερα να κάνω τον υδραυλικό (σε MVVM αυτό είσαι βασικά) παρά να προσπαθώ να κάνω τα πάντα από την αρχή.

 

Προσωπικά, βγάζω περισσότερη δουλειά έτσι, και γι αυτό αυτά έχουν φτιαχτεί. Για να μπορείς να βγάζεις περισσότερη δουλειά στην εταιρία.

 

 

@DirectX, στην απάντησή μου #48 εξηγώ, ότι άλλο αν φτιάχνεις custom control και άλλο γενική φόρμα που ήταν τα παραδείγματα.

Όσον αφορά το Rank ListView, που έχεις φτιάξει, σε winforms είναι μανίκι. Αλλά από την γενική συζήτηση των παραδειγμάτων μεταξύ γλωσσών και περιβάλλοντος, έχουμε πέσει σε ειδικές περιπτώσεις custom made controls. (ΥΓ το συγκεκριμένο control στο WPF είναι πιο εύκολο να το κάνεις).

Δημοσ.

@defacer : Άλλο να θέσεις κάποιο property ενός control στον κώδικα, και άλλο να το σχεδιάζεις από τον κώδικα συμπεριλαμβανομένου το location όπως στα παραδείγματα που αναφέρθηκα.

 

Ναι, αλλά με τον τρόπο αυτό μπορείς να βάλεις και multiples από το control. Και εδώ έχεις κάθε δίκιο να πεις "και ποιός μας λέει ότι θέλουμε multiples" όμως και γω μπορώ να απαντήσω "και ποιός μας λέει ότι δεν θέλουμε". Εφόσον δηλαδή δεν υπήρχε "εκφώνηση" = συγκεκριμένος στόχος που θέλουμε να πετύχουμε, νομίζω πως η (υπό συνθήκες σωστή) κριτική σου ήταν υπέρ του δεόντως... κριτικαριστική. :)

 

Το ότι MVVM χρειάζεται περισσότερη πληκτρολόγηση, δεν το κάνει χειρότερο by default. Τα κέρδη που έχεις σχετικά, είναι μεγάλα.

Η γενικοποίηση του GUI αλλά και της αρχιτεκτονικής (π.χ. χρησιμοποιώ PRISM γιατί ποτέ δεν ξέρεις τί άλλο θα ζητήσουν αργότερα) , μίας εφαρμογής, επιτρέπει την εύκολη συντήρηση και ανάπτυξη στο μέλλον. Γιατί να φτιάξω έναν μονόλιθο, όταν υπάρχει πιθανότητα αύριο να ζητήσουν να δουλεύει με νέες ή διαφορετικές παραμέτρους και περιβάλλοντα; Επίσης, καλύτερα να κάνω τον υδραυλικό (σε MVVM αυτό είσαι βασικά) παρά να προσπαθώ να κάνω τα πάντα από την αρχή.

 

Προσωπικά, βγάζω περισσότερη δουλειά έτσι, και γι αυτό αυτά έχουν φτιαχτεί. Για να μπορείς να βγάζεις περισσότερη δουλειά στην εταιρία.

 

Όπως και κάθε abstraction layer στην πράξη, έτσι και το MVVM βγάζει τα λεφτά του αν χρησιμοποιήσεις την παραπάνω ευελιξία ή είναι τζάμπα δουλειά αν δεν τη χρησιμοποιήσεις.

 

Προσωπική μου άποψη μετά από πολλή ενασχόληση (με Prism v2 και v4) ότι αν δεν κάνεις unit tests για τα viewmodels είναι πολύ πιθανό να έχεις κάνει τζάμπα δουλειά. Παρόλο που είμαι "αρχιτεκτονάκιας" και χαίρομαι να βλέπω και να γράφω τέτοιου είδους κώδικα.

Δημοσ.
[..]@DirectX, στην απάντησή μου #48 εξηγώ, ότι άλλο αν φτιάχνεις custom control και άλλο γενική φόρμα που ήταν τα παραδείγματα.

Ok.

Όσον αφορά το Rank ListView, που έχεις φτιάξει, σε winforms είναι μανίκι. Αλλά από την γενική συζήτηση των παραδειγμάτων μεταξύ γλωσσών και περιβάλλοντος, έχουμε πέσει σε ειδικές περιπτώσεις custom made controls. (ΥΓ το συγκεκριμένο control στο WPF είναι πιο εύκολο να το κάνεις).

Με WPF δεν έχω ασχοληθεί αλλά από τα λίγα πράματα που έχω δει συμφωνώ μαζί σου, σε WinForms δεν λέω ότι είναι απλό αλλά όσο ασχολήσε συνηθίζεις.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...