Spesso nelle applicazioni web si preferisce utilizzare tecniche di aggiornamento dei dati con concorrenza ottimistica, per evitare che l'utilizzo contemporaneo da parte di più utenti possa interferire sulla congruità dei dati.
L'implementazione in questi casi consiste nella verifica che i valori originali delle informazioni che si stanno modificando siano ancora quelli caricati insieme alla pagina, evitando di modificare dati che non sono più validi.
ASP.NET 2.0 supporta questa modalità attraverso i Data Source Control e soprattutto con SqlDataSource c'è un supporto praticamente automatico.
Considerando che, come già ripetuto più volte, l'utilizzo di ObjectDataSource e di un modello ad oggetti è da preferire, è interessante notare come debba essere impostata questa caratteristica in presenza di questo controllo.
<asp:ObjectDataSource ID="AuthorsDataSource" runat="server" DataObjectTypeName="ASPItalia.com.ObjectModel.Author" ConflictDetection="CompareAllValues" OldValuesParameterFormatString="original_{0}" SelectMethod="GetAuthors" TypeName="ASPItalia.com.BizLogic.AuthorManager" UpdateMethod="UpdateAuthor"> </asp:ObjectDataSource>
Come si può notare è necessario specificare le proprietà ConfictDetection, DataObjectTypeName e OldValuesParameterFormatString, per poi modificare la nostra classe di business in maniera tale che possa ricevere due istanze del nostro oggetto, di cui la prima contiene quella con i dati modificati e la seconda quelli originali:
namespace ASPItalia.com.BizLogic { public class AuthorManager { public bool UpdateAuthor(Book book, Book original_book) { // modifica vincolata all'uso dei valori originali return true; } } }
Per maggiori informazioni sui Data Source Control si veda:
Controlli DataSource in ASP.NET 2.0
https://www.aspitalia.com/articoli/asp.net2/DataSource.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Tutorial Entity Framework 6
- Tutorial Entity Framework
- Tutorial HTML5
- RT @aspitalia Partecipa al nostro evento #RCD4, fai un RT e sarai estratto per 1 copia di #sl3guidacompleta! http://u.aspitalia.com/bw
- Migliorare l'organizzazione delle risorse con Azure Policy
- Configurare più site su unico web role di Windows Azure
- Windows Phone 8 Developer Day - Milano
- ReBuild 2020 Live - Online
- ASPItalia.com Network: si aggiungono LINQItalia.com e SilverlightItalia.com
- Rilasciata la versione 1.0 di ASP.NET MVC