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

 

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

Dynamic Data και DisplayNameAttribute

Îåêßíçóå áðü ôï ìÝëïò cap. Τελευταία δημοσίευση από το μέλος cap στις 29-12-2008, 16:52. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-12-2008, 19:16 47130

    Dynamic Data και DisplayNameAttribute

    Αν και ξέρω οτι το DisplayNameAttribute γενικά δεν γίνεται apply μόνο στο Dynamic Data, εντέλει το ρωτώ σε αυτό το context γιατί αυτό με ενδιαφέρει:

    Αρχισα να παίζω τελευταία με το Dynamic Data, μετά την άριστη παρουσίαση του Κώστα Πάντου σε ένα από τα τελευταία DNZ Events. Ενα πράγμα λοιπόν που παρατήρησα και σίγουρα είναι από τα πρώτα ζητούμενα στο scaffolding, είναι η αλλαγή των ονομάτων των πεδίων και των πινάκων σε κάτι πιό ανθρώπινο από τα database names. Αυτό μπορεί να επιτευχθεί declaratively, με έναν λίγο άσχημο βέβαια τρόπο, μέσω partial classes, του MetaDataTypeAttribute και του DisplayNameAttribute το οποίο κάνει decorate διάφορα properties που φτιάχνουμε και αντιστοιχούν στα πεδία που παρήχθησαν από το Linq2SQL model.

    Το θέμα είναι οτι θα ήθελα κάτι πιό δυναμικό, π.χ. να διαβάζω ένα table με αντιστοιχίες (που είναι σχετικά εύκολο να αυτοματοποιηθεί η δημιουργία του) και να κάνω apply τα displaynames μαζικά, χωρίς κάποιος ταλαίπωρος να χρειάζεται να γράψει αλλο τόσο κώδικα σε partial classes για να γίνει αυτό.

    Υπάρχει κάτι τέτοιο ακόμα και ως σκέψη; Ολα όσα βρήκα να γράφονται μέχρι τώρα αφορούν σε dynamic (runtime) αλλαγή των displaynames. Εγώ όμως δεν θέλω runtime, αλλά once. Μόνο που τη θέλω αυτοματοποιημένη και όχι declarative.
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  23-12-2008, 19:32 47131 σε απάντηση της 47130

    Απ: Dynamic Data και DisplayNameAttribute

    Με άλλα λόγια θέλεις ένα generator για partial classes?

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-12-2008, 19:36 47132 σε απάντηση της 47131

    Απ: Dynamic Data και DisplayNameAttribute

    Ισως. Αλλά ίσως και όχι. Για κοίτα, πώς μερικές φορές 30 δευτερόλεπτα αφού γράψω ένα post έχω τη λύση. Θέλω κάτι τέτοιο:



     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  23-12-2008, 23:51 47134 σε απάντηση της 47132

    Απ: Dynamic Data και DisplayNameAttribute

    Χμμ, θυμάμαι κάποιον που δεν ήθελε να γίνεται η αλλαγή στο runtime? Νόμιζα ότι δεν ήθελες providers γιατί αυτός είναι ο τρόπος με τον οποίο δίνεις τα metadata στο runtime. Δες και το http://csharpbits.notaclue.net/2008/10/dynamic-data-custom-metadata-providers.html όπου ο Stephen Naughton προχωράει το παράδειγμα του Matt Berseth και προσθέτει Metadata και στις κλάσεις.

    Τα Metadata όμως δεν είναι το μόνο σημείο στο οποίο μπορείς να κάνεις την αλλαγή. Μπορείς άνετα να φτιάξεις τον δικό σου τύπο πεδίου ή να τροποποιήσεις τους υπάρχοντες για να κάνεις ακριβώς την ίδια δουλειά. Προσωπικά, θα προτιμούσα να φτιάξω multilingual πεδία παρά να πειράξω τα metadata γιατί το κείμενο που θέλω να εμφανίσω είναι θέμα UI και όχι μοντέλου. Από την άλλη, ο provider μου "κρύβει" τις λεπτομέρειες και αυτής της υλοποίησης από τον υπόλοιπο κώδικα. ΄
    Νομίζω ότι τελικά η καλύτερη λύση εξαρτάται από το τί θέλεις να κάνεις. Αν έχεις λίγα πεδία, μπορείς άνετα να τα τροποποιήσεις και να τα κάνεις "πολυγλωσσικά". Άν όμως έχεις πολλά πεδία, είναι ευκολότερο να φτιάξεις μία φορά τον provider και να τον χρησιμοποιήσεις automagically στην υπόλοιπη εφαρμογή.

    Εκεί όμως που ο provider θα έκανε πραγματικά τη διαφορά θα ήταν αν δημιουργούσε και τα ValidationHints δυναμικά. Έτσι θα μπορούσες σε διαφορετικές περιπτώσεις να χρησιμοποιήσεις διαφορετικά validations. Για παράδειγμα, μπορείς να έχεις λίγα υποχρεωτικά πεδία για ένα πιθανό πελάτη αλλά να απαιτήσεις να συμπληρωθούν περισσότερα αν αυτός αγοράσει ένα προϊόν.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  25-12-2008, 10:50 47150 σε απάντηση της 47134

    Απ: Dynamic Data και DisplayNameAttribute

    Προς αυτή την κατεύθυνση της δημιουργίας ενός in memory metadata provider, καθώς και ενός xml metadata provider, είχε ξεκινήσει μια προσπάθεια, στις πρώτες CTP των Dynamic Data (δες "Adding custom metadata providers in ASP.NET 3.5 Extensions Preview"). Αργότερα όταν τα Dynamic Data μπήκαν σε Beta, η ιδέα του XML provider εγκαταλήφθηκε πιστεύοντας ότι θα ήταν πολύπλοκη η υλοποίηση και δεν θα άξιζε (δες "Dynamic Data samples: Custom metadata providers").

    Η κατάληξη της δημοσίευσης ότι ο in memory metadata provider έχει ενσωματωθεί στο Dynamic Data Futures και θα είναι μέρος της επόμενης έκδοσης του Framework.

    Φαντάζομαι, ότι η αρχική σου ιδέα, σε συνδιασμό με την χρήση του Dynamic Data Futures, θα μπορείς να διαβάζεις metadata από ένα table της βάσης, και στην συνέχεια να φορτώνονται στον in memory meta data provider, και να γίνονται apply στο model στην συνέχεια, δεν είναι ένα εξωπραγματικό σενάριο...

     

    George J.

    George J


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  28-12-2008, 01:24 47223 σε απάντηση της 47150

    Απ: Dynamic Data και DisplayNameAttribute

    Αυτό ακριβώς θα ήταν η ευχή μου, Γιώργο. Ωραίο το στατικό μοντέλο των metadata, αλλά όταν θέλεις να έχεις quick (and not dirty) deployment το οποίο να μην χρειάζεται κάποιος με ιδιαίτερη εμπειρία στο .net για να το φέρει εις πέρας, τότε η ιδέα των metadata από ένα (ή περισσότερα) tables και η δυναμική εφαρμογή τους πάνω στο μοντέλο ακούγεται στα αυτιά μου σαν μονόδρομος.

    Να το θέσω αλλιως: Ο πελάτης x μου ζητάει ένα back end για την τάδε βάση του. Εχω 10 τέτοιους πελάτες, αλλά φυσικά ο καθένας θέλει τα δικά του πράγματα (λεκτικά, validations και δεν συμμαζεύεται).

    Αν αρχίσω να κατασκευάζω εγώ 10 back ends, είναι overkill.

    Αν επιλέξω να πληρώσω έναν junior να το κάνει αφού τον εκπαιδεύσω, τότε βλέπουμε πολλές ώρες coding και αναγκαστική χρήση του Visual Studio.

    Αν όμως μπορούσα να έχω έναν non-programmer να μου βάλει σε δυο tables τα βασικά (π.χ. λεκτικά) τότε και το κόστος μου μειώνεται, και πιό γρήγορα βγαίνει η δουλειά. Εντάξει, δεν περιμένω όλα να γίνουν μαγικά, αλλά ορισμένα πράγματα θα ήταν πιό εύκολα, δεν συμφωνείς;


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  29-12-2008, 16:46 47264 σε απάντηση της 47223

    Απ: Dynamic Data και DisplayNameAttribute

    Τελικά τι έκανες; Του έριξες κάποια ματιά ή απλά γκρινιάζεις στο Facebook? Big Smile

     

    George J.


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

    Απ: Dynamic Data και DisplayNameAttribute

    Θα του ρίξω! Σταμάτα βρε να γκρινιάζεις κι εσύ, γιορτινές μέρες είναι! :)


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems