Ieri sera, prima di tornare in albergo, ho seguito una sessione di livello 400 su ObjectDataSource. Da premettere che secondo me il livello era errato, però i contenuti sono stati comunque interessanti.
L'ODS è l'unico modo sensato, se volete fare applicazioni decenti dal punto di vista dell'architettura, di utilizzare i nuovi data controls di ASP.NET 2.0. Insomma, il SqlDataSource sta lì per far venire bene le demo (ed in effetti mi viene benissimo questa in particolare :D) ma ci hanno insegnato che nel mondo reale si usano le collection e tutto il resto che ormai conoscete a menadito.
Un po' di tempo fa durante una calda sera milanese, per non avere altro meglio da fare, io ed Andrea ci siamo arrovellati sul supporto, in fase di inserimento/modifica/cancellazione, dell'entità anzichè delle sue proprietà. Il motivo è semplice: se cambia qualcosa nella mia entità, non devo stare lì a ricambiare tutto...
Ebbene, la scoperta più importante è che sì, l'ODS è in grado di lavorare direttamente sull'entità, garantendo dunque una certa flessibilità (ed una migliore architettura) all'applicazione.
Per il resto, la sessione mi è servita per ripassarmi un po' di cose: SqlCacheDepedency (vabbè, stendiamo un velo pietoso su cosa è diventa nella RTM...), aggiornamenti sfruttando gli eventi quando si ha bisogno di personalizzazione e più in generale, un po' di dettagli che non fanno mai male ripassare.
novecento wrote:
cosa intendi per "sul supporto, in fase di
inserimento/modifica/cancellazione, dell'entità anzichè delle sue proprietà" ?
che il tuo metodo può essere qualcosa come:
Update(author as Author)
come pure
Update(username as string, x as Y.... etc)
nel primo caso accetta direttamente l'entity, nel secondo l'elenco delle proprietà. inutile dire che la prima è la scelta migliore, anche dal punto di vista dell'OO, ma soprattuto dal punto di vista della flessibilità: se aggiungi proprietà all'entity, non devi cambiare quel metodo
(grazie per la precisazione sul testo del messaggio di password_recovery, a dire il vero quando hai citato .txt mi è venuto in mente qualcosa che avaeva già scritto AZ ...)
è che con tutte le novità che ci sono, certe volte faccio davvero fatica a ricordarmi tutto e per evitare di dire fesserie, preferisco controllare
a parte il forte legame con tutta la famiglia dei controlli data-bound, con i quali i vantaggi sono incredibili, l'unico aspetto che porta a sforzarmi verso ObjectDataSource è per usare il modello ad eventi preparato in questo oggetto da microsoft , quindi mi viene di trattare ObjectDataSource come classe Manager ad una classe business stratificando :
- pagina con ObjectDataSource;
- (businessAuthor) : oggetto che contiene la logica business di manipolazione di (Author) ;
- (Author) ;
- data provider ;
tuttavia ho dei dubbi su questo uso di ObjectDataSource al di fuori di oggetti strettamente data-bound, prima avrei fatto
protected void Insert_Click(object sender, EventArgs e)
{
Business.Author _Author = new Business.Author();
_Author.Name = NameTextBox.Text;
_Author.Insert();
}
adesso:
<asp:ObjectDataSource
ID="ObjectDataSourceUsersGroup"
runat="server"
TypeName="TP.UsersGroupODS"
InsertMethod="Insert"
OnInserting="ObjectDataSourceUsersGroup_Inserting"
OnInserted="ObjectDataSourceUsersGroup_Inserted">
</asp:ObjectDataSource>
protected void SaveButton_Click(object sender, EventArgs e)
{
ObjectDataSourceUsersGroup.Insert();
}
protected void ObjectDataSourceUsersGroup_Inserting(object source, ObjectDataSourceMethodEventArgs e)
{
IDictionary _Params = e.InputParameters;
Business.Author _Author = new Business.Author();
_Author.Name = "pippo";
_Params.Clear();
_Params.Add("_pAuthor", _Author);
}
però ho facilmente una serie di eventi per i messaggi di errore, esito ecc.
quanto sono reali le mie perplessità e quanto è sbagliato fare come sopra descritto e trattare InputParameters in questo modo?
come per ogni novità , ho un sacco di perplessità ..
buona serata a tutti
novecento wrote:
a parte il forte legame con tutta la famiglia dei controlli data-bound, con i quali i vantaggi sono incredibili, l'unico aspetto che porta a sforzarmi verso ObjectDataSource è per usare il modello ad eventi preparato in questo oggetto da microsoft , quindi mi viene di trattare ObjectDataSource come classe Manager ad una classe business stratificando :
beh, è proprio (più o meno) quello che è il modello del sistema
quanto sono reali le mie perplessità e quanto è sbagliato fare come sopra descritto e trattare InputParameters in questo modo?
perdi il vantaggio di avere tutto fatto in automatico dall'ODS, che è il motivo per cui è nato. così in realtà torni ad un approccio meno "data bound", mentre con l'uso dei metodi definiti nell'ODS viene creata una nuova istanza del tuo oggetto di business e passato al tuo metodo (nel quale poi puoi fare .Insert()).
io lo preferisco come approccio, perchè è centralizzato e lo puoi usare anche per altri ambiti che non siano l'ODS.
come per ogni novità , ho un sacco di perplessità ..
è normale
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




Stampa
Download 
10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!

ciao,
cosa intendi per "sul supporto, in fase di inserimento/modifica/cancellazione, dell'entità anzichè delle sue proprietà" ?
(grazie per la precisazione sul testo del messaggio di password_recovery, a dire il vero quando hai citato .txt mi è venuto in mente qualcosa che avaeva già scritto AZ ... :D)
Continua »»» | Rispondi »»»