GianmarcoInFossa ha scritto:
Vi parlo della directory MVC che per convenzione contine gli oggetti del db e il contex per la connessione al db...
Da core 2 viene creata una nuova directory Data che per convenzione dovrebbe avere solita funzione...
ho capito bene?
La convenzione prevede che la cartella
Models contenga i tipi che costituiscono la "business logic" dell'applicazione, ovvero tutto ciò che esula dal contesto MVC e rappresenta la logica del sistema da implementare, che deve essere indipendente da come questa viene poi esposta, ad esempio tramite l'interfaccia utente realizzata con una applicazione Web ASP.NET MVC.
Tuttavia, questa indicazione è molto blanda, tant'è che io utilizzo quella cartella solo per i modelli da passare alle viste:
la logica di business dovrebbe essere invece implementata creando dei progetti separati, ovvero delle
Class Library, affinché possa essere potenzialmente utilizzata al di fuori dell'applicazione ASP.NET MVC.
A quel punto, è possibile creare diversi progetti a seconda dell'ambito da implementare: uno per le entità di base ed eventuali DTO, uno per le classi che costituiscono la logica, uno che fornisce l'implementazione dei servizi per l'accesso ai dati, uno per i servizi esterni (es. invio mail, ecc.) e così via, separando nettamente tutto ciò che fa parte del "core" da quello che invece è una implementazione specifica (basata su librerie e dipendenze particolari, oppure focalizzata a un ambito circostanziato).
Ciao!