L'arte di lavorare con le WebPart - #4

Scenario:

avete sviluppato un portale web utilizzando il WebPart Framework, avete eseguito la fase di test e avete rilasciato il sistema al cliente, che lo sta collaudando inserendo dati a iosa nel db mediante le vostre webpart. Il cliente vi chiede delle modifiche e siete costretti a sostituire alcune properties dichiarate [Personalizable] con delle altre che gestiscono dati in maniera differente.

...e i dati già inseriti dal cliente e da noi persistiti nelle tabelle di ASP.NET ??!?? Sappiamo benissimo che sostituendo proprietà di personalizzazione rendiamo "orfani" i dati scritti nelle tabelle di personalizzazione. Come fare per agganciarli nuovamente e "travasarli" nelle nuove properties?

 

Soluzione:

Lavoriamo con l'interfaccia IVersioningPersonalizable. Espone un unico metodo:

implementando questa interfaccia avete la possibilità di mappare i dati di una proprietà e, se questa viene rimossa, "spostarli" in un'altra. Il metodo Load riceve un dizionario contenente tutti i dati orfani inseriti in tabella dalla proprietà non più esistente.

public new void Load(IDictionary datiOrfani)
{
    
foreach (DictionaryEntry de in datiOrfani)
    {
        
if (de.Key.ToString() == "Prop1")
        {
            _prop3 = de.Value.ToString();
        }    
    
}
}

Nel codice di esempio se i dati orfani sono stati in precedenza scritti dalla property Prop1, i suoi dati sono ora mappati nella property Prop3.

 

powered by IMHO 1.3

posted @ giovedì 9 novembre 2006 02:50

Print
Comments have been closed on this topic.
«gennaio»
domlunmarmergiovensab
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234