ASP.NET in Benutzerprofil vs. alten Stil Benutzerklasse / Tabellen gebaut

stimmen
18

Ich suche nach Orientierung in Bezug auf die beste Praxis rund um die Nutzung des Profils Feature in ASP.NET.

Wie entscheiden Sie, was in dem integrierten Benutzerprofil gehalten werden sollte, oder wenn Sie Ihre eigene Datenbanktabelle erstellen sollen und eine Spalte für die gewünschten Felder hinzufügen? Zum Beispiel hat ein Benutzer eine Postleitzahl, soll ich die Postleitzahl in meiner eigenen Tabelle zu speichern, oder soll ich es in das web.config xml Profil hinzufügen und es über den Mechanismus Benutzerprofil ASP.NET zugreifen?

Die Vor / Nachteile ich jetzt denken kann , sind, da ich das Profil nicht wissen , sehr gut (es ist ein bisschen eine ist Matrix jetzt), ich kann wohl tun , was ich will , wenn ich die Tabelle Route (zB gehen, SQL erhalten alle Benutzer in der gleichen Postleitzahl als den aktuellen Benutzer). Ich weiß nicht , ob ich das gleiche tun , wenn ich das ASP.NET - Profil verwenden.

Veröffentlicht am 05/08/2008 um 00:06
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
10

Ive gebaut nur zwei Anwendungen, die den Profilanbieter verwendet. Seitdem habe ich blieb von dessen Verwendung entfernt. Für beide der apps ich es Informationen über die Benutzer wie ihre Firmennamen zu speichern, verwendet, Adresse und Telefonnummer.

Das funktionierte gut , bis unser Kunde einen Benutzer von einem dieser Felder in der Lage sein finden wollte. Eine Durchsuchung beteiligten Looping alle Benutzer - Profile und das Vergleichen der Informationen zu den Suchkriterien. Da die Benutzerbasis wuchs wurde die Suchzeit zu unseren Kunden nicht akzeptabel. Die einzige Lösung war eine Tabelle zu erstellen , die Benutzer Informationen zu speichern. Suchgeschwindigkeit wurde enorm erhöht.

Ich würde empfehlen, diese Art von Informationen in einer eigenen Tabelle zu speichern.

Beantwortet am 06/08/2008 um 03:26
quelle vom benutzer

stimmen
1

Benutzerprofil ist ein schöner, sauberer Rahmen für die individuelle Anpassung (AKA. Profileigenschaften). (ZB iGoogle) das Problem daran ist, es ist nicht für die Suche entwickelt und nicht ideal für die Daten für die öffentlichen Benutzer zu teilen. (Sie würden noch in der Lage sein, es zu tun, mit geringer Leistung)

so, wenn Sie die angepasste Benutzerfreundlichkeit verbessern mögen, würde Benutzerprofil ein guter Weg zu gehen. andernfalls Ihre eigene Klasse verwenden und Tisch eine viel bessere Lösung wäre.

Beantwortet am 30/10/2009 um 00:42
quelle vom benutzer

stimmen
1

Ich denke, das hängt davon ab, wie viele Felder, die Sie benötigen. Mein Wissen Profile sind im Wesentlichen eine lange Zeichenfolge, die bei den gegebenen Feldgrößen aufgeteilt werden, was bedeutet, dass sie nicht sehr gut skalieren, wenn Sie viele Felder und Benutzer haben.

Auf der anderen Seite sind sie eingebaut, so ist es eine einfache und standardisierte Art und Weise, die es bedeutet, ist keine große Lernkurve und Sie können es in Zukunft Apps nutzen, auch ohne dass es zu einer neuen Tabellenstruktur zu optimieren.

Ihr eigenes Ding rollen können Sie es in einer ordnungsgemäß normalisierte Datenbank setzen, die drastisch die Leistung verbessert, aber Sie haben sich so ziemlich alle Profilmanagement-Code zu schreiben.

Edit: Auch Profile nicht im Cache gespeichert werden, so dass jeder Zugriff auf ein Profil geht in die Datenbank zuerst (es ist dann für diese Anforderung zwischengespeichert, aber die nächste Anforderung wird es aus der Datenbank erhält wieder)

Wenn Sie sich Gedanken über Ihre eigene Sache zu schreiben, vielleicht ein benutzerdefiniertes Profil Provider gibt Ihnen das Beste aus beiden Welten - die nahtlosen Integration, aber das benutzerdefinierte Zeug Sie tun mögen.

Beantwortet am 05/08/2008 um 00:10
quelle vom benutzer

stimmen
1

Meiner Erfahrung nach seiner besten eine die Informationen im Profil auf ein absolutes Minimum zu halten, setzen nur das Wesentliche darin, die für die Authentifizierung direkt benötigt werden. Weitere Informationen wie Adressen in Ihrer eigenen Datenbank, indem Sie Ihre eigene Anwendungslogik gespeichert werden sollen, ist dieser Ansatz mehr erweiterbar und wartbar.

Beantwortet am 05/08/2008 um 00:10
quelle vom benutzer

stimmen
0

Ich denke, es ist besser, es für ergänzende Daten verwenden, die nicht kritisch für den Anwender ist, die normalerweise nur wichtig ist, wenn der Benutzer in irgendeiner Weise anmeldet. Denken Sie Daten, die nichts Wichtiges brechen würde, wenn sie alle ausgelöscht wurde.

natürlich das ist persönliche Präferenz, aber andere haben einige andere wichtige Fragen aufgeworfen.

Ebenfalls sehr nützlich wenn man bedenkt es kann für ein nicht authentifizierter Benutzer, dessen Profil verwendet werden, mit einem anonymen Cookie gehalten.

Beantwortet am 05/12/2009 um 21:19
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more