2010-08-11 2 views
6

In che modo i profili ASP.NET gestiscono il controllo delle versioni? Lo so perché i dati sono serializzati questo potrebbe essere un problema dove con le tabelle non lo è.Versione profili ASP.NET?

Viene generata una sorta di errore di serializzazione?

Esempio: memorizzo un oggetto v1 nei profili. Aggiorno la mia applicazione web con una nuova versione v2 ma il database contiene ancora oggetti v1.

Cosa succede quando tento di deserializzare gli oggetti v1 negli oggetti v2? E quali sono le migliori soluzioni per questo problema?

risposta

3

In genere ASP.NET tratta i dati del profilo come un sacchetto di proprietà, quindi probabilmente salterà una proprietà (che è stata memorizzata nell'archivio dati) ma eliminata dalla configurazione. Allo stesso modo, per la nuova proprietà aggiunta, userebbe il valore predefinito. Ora, anche il tipo di proprietà avrà importanza: se il tipo di proprietà è la tua classe personalizzata, la sua serializzazione verrà gestita da XmlSerializer o BinaryFormatter. XmlSerializer è un predefinito e generalmente è un serializzatore tollerante (le proprietà mancanti verranno saltate, ecc.). È possibile utilizzare gli attributi per controllare la serializzazione xml. In caso di BinaryFormatter, è come la serializzazione di runtime e se si desidera supportare il controllo delle versioni, è meglio implementare ISerializable e gestire eventuali problemi di versioning. Non sono sicuro di cosa succederebbe in un caso in cui si ha una proprietà di profilo di qualche tipo A e quindi si cancella quel tipo. La mia ipotesi è che dovresti ricevere un errore ma non ne sono sicuro.

io in genere preferisco a rimboccarsi la mia implementazione per supportare funzionalità di profilo utente perché

  1. Cose come il controllo delle versioni, ecc può essere controllato come per i miei gusti
  2. Scelta del negozio e di stoccaggio dello schema può essere indipendente (questo è possibile nei profili ASP.NET per consuetudine fornitore profilo)
  3. può essere facilmente messo nelle di applicazione e di profilo dei dati stratificati è disponibile anche a qualsiasi non-web clienti, se necessario
  4. Anche se significa re-inventare la ruota e avere qualche sforzo in più, il suo valore per qualsiasi software che ha durata di più di 2-3 anni.
  5. Posso controllare con precisione quando a memorizzare/recuperare i dati del profilo da l'archivio dati.