Sto lavorando a un progetto greenfields con altri due sviluppatori. Siamo tutti appaltatori, e io e un altro abbiamo appena iniziato a lavorare sul progetto mentre l'originale ha fatto la maggior parte della codifica di base del framework. Nel mese scorso, il mio collega programmatore ed io siamo stati semplicemente frustrati dalle descrizioni progettuali fatte dal nostro collaboratore.
Ecco alcune informazioni di base:
L'applicazione al valore nominale sembrava essere la tua applicazione web standard a più livelli usando C # sul framework 3.5. Abbiamo un livello dati, un livello aziendale e un'interfaccia web. Ma man mano che avanzavamo nel progetto, abbiamo trovato alcune cose molto interessanti che ci hanno causato alcuni problemi. Esiste una base di tipo sqlHelper per l'accesso ai dati personalizzato che accetta solo voci chiave / valori di dizionario e restituisce solo tabelle di dati. Non ci sono oggetti entità, ma ci sono alcuni oggetti massicci che fanno tutto e poi vengono lanciati in sessione per persistenza.
L'idea generale è che le pagine (.aspx) non facciano nulla, mentre i controlli (.ascx) fanno tutto. Il flusso generale è quello un client fa clic su un pulsante, che va a una base di controllo utente che passa una richiesta di processo alla classe 'BLL' che va al processore di pagina, che poi va a un getControlProcessor, che alla fine elabora effettivamente la richiesta. La richiesta stessa è composta da un dizionario che sta passando un nome del metodo con valori stringa, il nome della stored procedure, un nome di controllo e probabilmente un valore. Tutto il passaggio all'elaborazione avviene confrontando i valori stringa dei nomi dei controlli e dei metodi.
Le pagine sono collegate tra loro tramite un controllo di intestazione comune che utilizza una combinazione di javascript e tabelle per creare un effetto collegamento ipertestuale. E come ho scoperto ieri, un semplice collegamento ipertestuale tra una pagina e l'altra non funziona a causa della necessità di avere un bel po 'di informazioni in sessione per determinare quale controllo visualizzare su una pagina.
I miei colleghi programmatori e io crediamo entrambi che questo sia uno strano e insolito approccio allo sviluppo di applicazioni web. Entrambi siamo stati in questo business da oltre cinque anni e nessuno di noi ha visto questo approccio.
La mia domanda è questa, come potremmo rivolgerci al nostro collega e dare voce alle nostre preoccupazioni e cosa dovremmo fare se non volesse accettare il criteico? Entrambi non vogliamo insultare il lavoro che è stato fatto, ma sentiamo che andando avanti creerà un incubo per lo sviluppo.
Grazie per i tuoi commenti.