Questo post è simile a in MVC/MVP/MVPC where do you put your business logic?, ma sto cercando ulteriori dettagli. Ho acquistato nel modello il luogo in cui dovrebbe risiedere la maggior parte della logica aziendale. Tuttavia, il modello, per quanto ho capito, ha molto da fare al suo interno: gestione dello stato dell'applicazione, persistenza dei dati, repository, oggetti di trasferimento dati e probabilmente altre cose.MVC/MVP/MVVM - Come organizzare la business logic
Possiedo un'applicazione con regole aziendali estremamente complesse. Quando l'utente tenta di eseguire una determinata azione in una vista, esistono circa 20 regole diverse che devono convalidare se tale azione deve essere consentita o se all'utente devono essere richieste informazioni aggiuntive. Mi piacerebbe codificare queste regole di business one-per-method in modo da supportare testabilità e documentazione. Queste regole dovrebbero essere in una classe di repository? Forse in un livello di servizi sopra i repository? Qual è la migliore pratica qui tenendo presente che sto usando una soluzione ORM come Linq a SQL, EF o ibernate?
Apprezzo la risposta, ma voglio essere in grado di testare questi metodi con NUnit o in un altro framework di test, e mettendo le regole nel database renderà questo molto più difficile. – Andy
Inoltre, con la complessità di queste regole, sarebbe estremamente difficile gestirle tutte nel database. – Andy