Ho partecipato alla track extreme. Complimenti siete stati tutti molto professionali. Ve la siete cavata molto bene nonostante i crash di Virtual PC per
Lorenzo Barbieri e il portatile di fortuna di
Riccardo Golia .
Complimenti anche ad Andrea Saltarello per la sua chiarezza espositiva.
Vorrei portare il mio contributo sul Lazy Load introdotto nella sessione Real world .NET architectures.
Analizziamo il caso della classe LazyLoadedEmployee:
internal sealed class LazyLoadedEmployee : Employee
{
public override string Notes
{
get
{
EmployeeDataProvider dataProvider = new EmployeeDataProvider();
return dataProvider.GetNotesById(this.Id);
}
set
{
base.Notes = value;
}
}
}
Quando utilizzo la property Notes, mi aspetto che la sua esecuzione sia istantanea e abbia un costo di esecuzione paragonabile alla lettura del valore di una variabile locale. Meno ancora mi aspetto che possa sollevare un eccezione, invece in questo caso la prima volta che viene letta viene fatto un accesso al database.
Questo lo dico per esperienza sul nostro dal aziendale perchè capita di utilizzare una property senza accorgersi del lavoro che viene fatto dietro. La mia proposta è quella di sostituire la property con un metodo Es: (GetNotes o LoadNotes), infatti, mi viene naturale pensare che un metodo possa sollevare un eccezione e che possa avere un costo di esecuzione non trascurabile.
powered by IMHO 1.3