
Ψάχνω για οδηγίες σχετικά με τη βέλτιστη πρακτική γύρω από τη χρήση του χαρακτηριστικού προφίλ στο ASP.NET.


Πώς μπορείτε να αποφασίσετε τι πρέπει να διατηρούνται στο ενσωματωμένο προφίλ χρήστη, ή αν θα πρέπει να δημιουργήσετε το δικό σας πίνακα της βάσης δεδομένων και να προσθέσετε μια στήλη για τα επιθυμητά πεδία; Για παράδειγμα, ένας χρήστης έχει έναν ταχυδρομικό κώδικα, θα πρέπει να αποθηκεύσετε τον ταχυδρομικό κώδικα στο δικό μου τραπέζι, ή θα πρέπει να το προσθέσετε στο προφίλ xml web.config και αποκτήστε πρόσβαση σε αυτό μέσω του μηχανισμού του προφίλ των χρηστών ASP.NET;


Τα πλεονεκτήματα / μειονεκτήματα που μπορώ να σκεφτώ αυτή τη στιγμή είναι ότι από τότε που δεν γνωρίζουν το προφίλ πολύ καλά (αυτό είναι ένα κομμάτι από ένα *Matrix* τώρα), εγώ κατά πάσα πιθανότητα να κάνω ό, τι θέλω, αν πάω τη διαδρομή πίνακα (π.χ., SQL για να πάρει όλους τους χρήστες με τον ίδιο ταχυδρομικό κώδικα ως τον τρέχοντα χρήστη). Δεν ξέρω αν μπορώ να κάνω το ίδιο, αν μπορώ να χρησιμοποιήσω το προφίλ ASP.NET.

 
ASP.NET που χτίστηκε το προφίλ του χρήστη σε σχέση με παλιό στυλ τάξης του χρήστη / τραπέζια
============================================================================================



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


Αυτό λειτούργησε καλά μέχρι ο πελάτης μας ήθελε να είναι σε θέση να βρείτε ένα χρήστη από έναν από αυτούς τους τομείς. Αναζήτηση εμπλέκονται looping μέσα από **κάθε** προφίλ χρηστών και συγκρίνοντας τα στοιχεία με τα κριτήρια αναζήτησης. Καθώς η βάση χρηστών αυξήθηκε ο χρόνος αναζήτησης έγινε αποδεκτή από τον πελάτη μας. Η μόνη λύση ήταν να δημιουργήσουμε έναν πίνακα για την αποθήκευση των πληροφοριών των χρηστών. Ταχύτητα Αναζήτηση αυξήθηκε πάρα πολύ.


Θα ήθελα να συστήσω την αποθήκευση αυτού του είδους των πληροφοριών στο δικό του πίνακα.

 

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

 

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


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


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


Επεξεργασία: Επίσης, τα προφίλ δεν αποθηκεύονται προσωρινά, έτσι ώστε κάθε πρόσβαση σε ένα προφίλ πηγαίνει στη βάση δεδομένων πρώτο (αυτό είναι στη συνέχεια αποθηκεύονται προσωρινά για το αίτημα αυτό, αλλά το επόμενο αίτημα θα το πάρει από τη βάση δεδομένων και πάλι)


Αν σκέφτεστε να γράφει τη δική σας πράγμα, ίσως μια [Provider προσαρμοσμένο προφίλ](http://msdn.microsoft.com/en-us/library/0580x1f5(VS.80).aspx) σας δίνει το καλύτερο και των δύο κόσμων - απρόσκοπτη ενσωμάτωση, όμως το έθιμο πράγματα που θέλετε να κάνετε.

 

προφίλ χρήστη είναι ένα ωραίο καθαρό πλαίσιο για την ατομική προσαρμογή (AKA. Προφίλ Ακίνητα). (Π.χ. iGoogle) το πρόβλημα του είναι του δεν έχουν σχεδιαστεί για το ερώτημα και δεν είναι ιδανικό για να μοιράζεστε τη δημόσια χρήστη δεδομένα. (Και πάλι θα είναι σε θέση να το κάνει, με χαμηλή απόδοση)


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

 

Νομίζω ότι είναι καλύτερα να το χρησιμοποιεί για συμπληρωματικά στοιχεία τα οποία δεν είναι κρίσιμη για το χρήστη που κανονικά είναι σημαντική μόνο όταν ο χρήστης συνδέεται στο ούτως ή άλλως. Σκεφτείτε τα δεδομένα που δεν θα σπάσει τίποτα σημαντικό αν ήταν όλα εξαφανιστεί.


Φυσικά αυτό είναι προσωπική προτίμηση, αλλά άλλοι έχουν εγείρει ορισμένα άλλα σημαντικά ζητήματα.


Επίσης πολύ χρήσιμο θεωρώντας ότι μπορεί να χρησιμοποιηθεί για έλεγχο ταυτότητας χρήστη του οποίου το προφίλ διατηρείται με ένα ανώνυμο cookie.

 