Sono attualmente coinvolto in una migrazione a TFS da SVN di un grande progetto che sarà suddiviso in cinque siti diversi. Questo progetto consente ad alcuni provider di inserire cinque diversi dati di prodotto nel DB aziendale. Come molte aziende là fuori, abbiamo un debito tecnologico che dovrebbe essere risolto (o almeno ridotto) con questa nuova organizzazione di progetto. Tuttavia, sono abbastanza nuovo per ASP.NET e anche il nostro software è ancora in esecuzione 2.0 .NET, quindi forse mi manca qualcosa o le cose dovrebbero essere fatte in un modo diverso al giorno d'oggi con 3.5 +.
Una di queste cinque parti sarà una nuova. Questo è quello che svilupperò. Per ottenere un alto grado di modularità, il codice del progetto corrente è suddiviso in diversi DAO ( Oggetto accesso ai dati ) in App_Code, *.ascx
moduli che vivono in diverse parti della struttura del progetto, classi VB che ereditano da System.Web.UI.*
(per ogni controllo visualizzato sul web) in App_Code e da molte stored procedure per fornire dati ai controlli. Inoltre, abbiamo diversi *.aspx
che utilizzano <asp:PlaceHolder />
per visualizzare ciascuno dei controlli che ereditano da System.Web.UI.
La domanda arriva quando, per creare un semplice elenco a discesa <select>
per visualizzare un elenco di provider, vedo che devo fare i seguenti passaggi:
- Crea una classe
cProvider
all'interno di App_Code, che eredita in definitiva da System.Web.UI, con un metodo che chiama il seguente oggetto DAOProvider. - Crate un oggetto DAO specifico per connettersi al DB che ho bisogno.
- Crea un altro oggetto DAO, chiamato DAOProvider, che eredita dal precedente, con la chiamata a una stored procedure che recupera l'elenco dei provider.
- Crea quella stored procedure nel database.
- Crea un controllo
.ascx
per visualizzare<select>
con le opzioni ottenute dacProvider
.
Se sei ancora lì, ecco la mia domanda: è questo il modo giusto di fare le cose? Questo livello di modularità alto è il modo corretto di sviluppare applicazioni .NET mantainable? Devo seguire questo stile e organizzazione o dovrei prenderne un altro (per favore mi dia i suoi consigli)?
Dal mio punto di vista, dover fare tutti quei passaggi per dipingere un semplice elenco a discesa non segue affatto i principi KISS e diventa irraggiungibile se qualcun altro deve prendere questo progetto, sapendo che il codice è l'unica documentazione abbiamo.
EDIT: i collegamenti alla documentazione su questo argomento sarebbero molto apprezzati.