2010-08-11 13 views
6

Wie gehen ASP.NET-Profile mit Versionsverwaltung um? Ich weiß, weil die Daten serialisiert sind, könnte dies ein Problem sein, wo es mit Tabellen nicht ist.Versionierung von ASP.NET-Profilen?

Wird es eine Art Serialisierungsfehler werfen?

Beispiel: Ich speichere ein v1-Objekt in den Profilen. Ich aktualisiere meine Webanwendung mit einer neuen v2-Version, aber die Datenbank enthält immer noch v1-Objekte.

Was passiert, wenn ich versuche, die v1-Objekte in die v2-Objekte zu deserialisieren? Und was sind die besten Lösungen für dieses Problem?

Antwort

3

In der Regel behandelt ASP.NET Profildaten als Eigenschaftstasche - daher würde wahrscheinlich eine Eigenschaft (die im Datenspeicher gespeichert wurde) übersprungen, aber aus der Konfiguration gelöscht. In ähnlicher Weise würde für neu hinzugefügte Eigenschaften der Standardwert verwendet. Jetzt spielt auch der Typ der Eigenschaften eine Rolle - wenn der Eigenschaftstyp Ihre benutzerdefinierte Klasse ist, wird die Serialisierung entweder von XmlSerializer oder von BinaryFormatter verarbeitet. XmlSerializer ist ein Standard und im Allgemeinen ein toleranter Serializer (fehlende Eigenschaften werden übersprungen usw.). Sie können Attribute verwenden, um die XML-Serialisierung zu steuern. Im Falle von BinaryFormatter ist es dasselbe wie Runtime-Serialisierung und wenn Sie die Versionierung unterstützen möchten, ist es am besten, dass Sie ISerializable implementieren und Versionsverwaltungsprobleme behandeln. Ich bin mir nicht sicher, was passieren würde, wenn Sie eine Profileigenschaft eines Typs A haben und dann diesen Typ löschen. Meine Vermutung ist, dass Sie einen Fehler bekommen sollten, aber ich bin nicht daran interessiert.

ziehe ich normalerweise meine eigene Implementierung unterstützt Benutzerprofil-Funktion zu rollen, weil

  1. Dinge wie Versionierung usw. kann wie pro meinen Geschmack
  2. Wahl der Speicher und Speicherschema gesteuert werden unabhängig sein kann (dies ist möglich in ASP.NET Profile von benutzerdefinierten Profilanbieter)
  3. Es kann leicht in die geschichteten Anwendung und Profildaten gesetzt werden ist ebenfalls verfügbar etwaig Kunden nicht für das Web, wenn
  4. Obwohl es heißt, neu zu erfinden das Rad und mit etwas mehr Aufwand nötig, seinen Wert für jede Software, die Haltbarkeit von mehr als 2-3 Jahren.
  5. Ich kann genau steuern, wenn zu die Profildaten von den Datenspeicher speichern/abrufen.