I database vengono superati e i fornitori smettono di supportare le versioni precedenti. L'interfaccia utente è obsoleta (è molto difficile supportare la versione precedente di ASP / ASP.net). Ci sono nuovi requisiti per l'interfaccia utente in questi giorni con l'avvento degli smartphone. Se è necessario sostituire uno di questi, non si desidera sostituire tutta la logica aziendale. La logica di business è l'elemento che rischia di durare più a lungo (basti pensare alle applicazioni Cobol di 30 anni che sono ancora in esecuzione!). A un certo punto potresti anche voler orientare l'applicazione e questo sarà più facile se puoi accedere direttamente alla logica di business.
Inoltre, il layering lo rende molto più gestibile e scalabile, ma lo rende anche molto più logicamente strutturato e leggibile. Sai esattamente dove tutto deve andare, e quando torni a farlo, sai dov'è. Ad esempio, ho lavorato su molte applicazioni 'forms over stored procedure' (questa è un'alternativa comune a un'applicazione a più livelli) e trovo la logica aziendale sparsa tra l'interfaccia utente e le stored procedure. Se c'è un BLL, non ci sono scuse per essere in nessun altro posto oltre al BLL (OK, tranne in circostanze eccezionali).
Inoltre, discuto sul fatto che un'applicazione a livello n richiede veramente che molto più sforzo per svilupparsi? Credo che il sovraccarico di sviluppo sia ampiamente ripagato dalla manutenibilità.
Non tutte le applicazioni richiedono un'architettura a livello di n, ma immagino che qualsiasi cosa abbia richiesto un anno di sviluppo sarebbe.