Al lavoro, un architettura a 3 strati è il punto di riferimento ogni volta che un'applicazione web è necessaria.
Non mi dispiace, ma molte delle applicazioni che iniziamo, non sembrano avere una necessità iniziale per questo. Queste applicazioni sono praticamente solo un'interfaccia utente per il database. Ciò si traduce in un sacco di logica aziendale che invia i dati dal livello dati al livello di presentazione.
Ho trovato un'alternativa, tuttavia non l'ho ancora provato.
Architettura normale a 3 strati: (le frecce indicano la dipendenza)
Designaggiornato:
Invecepossofarlo,permettendomidimantenereunostratodiriferimentoindiretto,maavendoessosololeinterfacce,ilcostodiimplementazione(elapossibilitàdierrore)èridotto.
Designaggiornato,quandoleattivitàdiventanorilevantiinunafasesuccessiva:
Questo sarebbe simile a questo:
public class BusinessClass : IDataAccessInterface<string>
{
public BusinessClass(IDataAccessInterface<string> dataRepository)
{
this.dataRepository = dataRepository;
}
public string Read()
{
var something = dataRepository.Read();
//Do something with something
return something;
}
}
E il mio DI si sarebbe semplicemente iniettato un'implementazione da DataAccess implementation
nel mio business class
e il mio business class
nella mia presentazione, che stava già utilizzando la stessa interfaccia.
La mia domanda è:
- Ci sono degli inconvenienti a cui sono cieco?
- Usi questo approccio (è ben distribuito)?
- Qualche altro argomento che potrei portare con me al lavoro?