C#
Volevo segnalare il mio tentativo di istituire la prima comunità italiana di utilizzatori di microcontrollori AVR® della Atmel®, appassionati di elettronica e di programmazione. Si prenderanno in considerazione prevalentemente i progetti e gli articoli riguardanti lo sviluppo di applicazioni, plug-in e librerie per l'interfacciamento del mondo dei micro AVR ed i personal computer con sistema operativo Microsoft® Windows®, prendendo come riferimento per lo sviluppo il Framework Microsoft® .NET, il linguaggio C# e Visual Studio.
Per gli interessati: http://avr.rmariotti.it
Spesso in rete trovo degli esempi di implementazione dell'interfaccia INotifyPropertyChanged che non mi piacciono per niente (anche su MSDN). In particolare sono interessato a come e quando generare l'evento di notifica della modifica di una proprietà. Sembra che quasi tutti ignorino il fatto di generare la notifica solo quando il valore della proprietà è stato effettivamente modificato.
Credo invece sia importante gestire correttamente tale notifica, per una serie di ragioni, prima su tutte le performance. Nelle mie implementazioni di entità gestisco l'impostazione del nuovo valore e la notifica in modo centralizzato, con un metodo protected implementato nella classe base da cui derivano tutte...
Sto realizzando l'ennesima versione di una classe base astratta da utilizzare per tutte le entità aziendali. Questa classe dovrà implementare alcune interfacce basilari, tra le quali INotifyPropertyChanged, e pensavo anche alla ISupportInitialize. Il dubbio che ho nell'implementare quest'ultima interfaccia è se devo generare o no gli eventi di notifica del cambio dei valori delle proprietà nel momento che a seguito della chiamata al metodo ISupportInitialize.EndInit() vado ad impostare tutti i valori delle proprietà modificate dopo la chiamata a ISupportInitialize.BeginInit().
Per chiarezza (?), segue il frammento dell'implementazione della classe ed in particolare la parte di implementazione dell'interfaccia ISupportInitialize.
#region ISupportInitialize implementation
public void BeginInit()
...