Requisiti aziendali richiesti per creare un'architettura a strati e modulare. Così ho progettato un'architettura per renderla disaccoppiata e modulare possibile. Elencherò i miei livelli di seguito
- ASP .NET MVC Application (UI)
- Business Logic Layer (BLL)
- Data Access Layer (DAL)
Ho utilizzato ulteriormente IOC in cui ogni modulo BLL definisce i requisiti di accesso ai dati in termini di interfacce. Quindi DAL deve ora implementare queste interfacce.
È importante notare che
- Sia l'interfaccia utente sia DAL dipendono dalla BLL
- BLL non dipende da nessuna altra soluzione. Usando le interfacce ho fatto IOC quindi ora DAL dipende da BLL e non viceversa.
- BLL non è solo un progetto, ma una serie di progetti di librerie di classi - una libreria di classi ciascuna per ciascun modulo aziendale.
- DAL è un progetto di libreria a una sola classe "condiviso" da tutti i progetti BLL (poiché il Database è lo stesso e non aveva senso dividere il DAL in progetti separati).
Non entrerò nei dettagli qui, ma diciamo che c'era una decisione di usare EDMX. Comunque ora non vedo come EDMX si inserirà in questo mix. Credo di non essere l'unica persona che abbia mai diviso il BLL in diverse librerie di classi, ma che abbia un unico progetto DAL. Ma l'EDMX o l'ORM supportano tale architettura "distribuita"?