DETAILSVIEW, MOSTRARE OGGETTO IN OGGETTO

giovedì 01 ottobre 2009 - 01.31

MagoDaniel1981 Profilo | Newbie

Buongiorno,
come ben saprete più s'impara, più si capisce quanto ancora c'è da sapere... e non si finisce mai!
Da qualche tempo ho iniziato a progettare le mie applicazioni web utilizzando il sistema del 3 tier (che poi è 4, contando anche il presentation layer) e sto apprezzando gli innumerevoli benefeci derivanti da questa tecnica, ma, al contempo, sto capendo che ci sono cose che non so e che vorrei approfondire. Una di queste riguarda il seguente problema: ho un oggetto diciamo "CHIAMATA" che viene ad essere compilato con i dati di una chiamata telefonica ad un Cliente. Per questo Cliente ho creato un altro ogetto, "CLIENTE" appunto. Ora, dall'esito della chiamata può scaturire un appuntamento, da qui il nuovo oggetto "APPUNTAMENTO".

Pertanto, la prima cosa che mi chiedo è se è corretto inserire all'interno dell'oggetto CHIAMATA una proprietà ed un campo _cliente che mi restituiscono un oggetto di tipo CLIENTE che è appunto il destinatario della chiamata o se è meglio, nell'oggetto CHIAMATA, prevedere un campo _idCliente, di tipo INT, dove memorizzare semplicemente l'ID del cliente da database, per poi andare a dimensionare il CLIENTE all'occorrenza mediante apposito metodo, tipo CLIENTE.GetById(CHIAMATA.idCliente).

Allo stesso modo accade per l'oggetto APPUNTAMENTO, che a sua volta conterrà (ma nella fattispece potrebbe anche non contenere) l'oggetto CHIAMATA, e di conseguenza l'oggetto CLIENTE. Ora, siccome i dati del Cliente, dal momento della chiamata (i dati anagrafici grezzi contenuti nel database dei nominativi) possono variare quando viene fissatto un appuntamento (ci si accorge per esempio, chiedendolo direttamente al Cliente, che l'indirizzo in nostro possesso è errato) io ho provveduto a persistere i nuovi dati nel database, nella tabella appuntamenti però. Cosa accade: che ora, siccome l'oggetto CHIAMATA contenuto in appuntamento potrebbe essere Nothing (appuntamento non fissato telefonicamente, ma in altro modo) io nell'appuntamento devo avere necessariamente un nuovo campo CLIENTE che mi conterrà i dati del Cliente così come sono stati salvati al momento in cui è stato fissato l'appuntamento. Questo appesantisce il tutto vero? Specie quando magari estraggo dal database una lista di 100 appuntamenti contemporaneamente (per ognuno infatti viene caricato il dato del CLIENTE di default e quello del salvato all'interno dell'oggetto CHIAMATA).

Ma, tutto questo, per dire cosa? Tornando all'oggetto del post: avere degli oggetti restituiti come proprietà di altri oggetti alla fin fine non mi pare molto utile in quanto, mediante ObjectDataSource, a quanto vedo, non posso bindare direttamente le proprietà dell'oggetto contenuto all'interno del mio oggetto principale, cioè nella fattispecie non potrei bindare automaticamente l'oggetto Cliente contenuto all'interno dell'oggetto appuntamento, è corretto? Cioè, lo posso fare a manina, da codice, ma così facendo o imposto autogeneraterows del gridview a true (e così facendo perdo la possibilità di editare in fase di costruzione della pagina il template di ogni singolo campo), opppure mi creo il template da zero, aggiungendo uno per uno tutti i controlli necessari alla visualizzazione di ogni valore; forse in tal senso allora è meglio addirittura FormView che se non ho capito male tra le altre cose si usa proprio quando è necessario definire l'ItemTemplate in modo manuale.

E' tutto FANTA.NET o qualcosa di corretto c'è? Qualcuno mi da qualche dritta su come è meglio procedere?

Grazie infinitamente a tutti coloro che avranno avuto voglia di leggere sino a qui.
Lo so, sono un po' prolisso...


Buon lavoro a tutti intanto.
Daniel
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5