Se sviluppo un'applicazione, userò spesso una struttura di progetto come questa:
MyApp.DataAccess.Implementation
MyApp.DataAccess.Contract
MyApp.Business.Implementation
MyApp.Business.Contract
MyApp.CrossCutting.Implementation
MyApp.CrossCutting.Contract
MyApp.Application
Per ogni livello creerò due assiemi. Uno per le interfacce e uno per l'implementazione stessa. Nel livello "CrossCutting" è tutto come la registrazione, le entità, la configurazione ... Se il progetto è veramente grande, separerò ogni componente nel livello "CrossCutting" in un assieme separato. Nel livello applicazione, c'è la mia console / progetto ui / web.
Questa struttura di progetto può essere applicata facilmente su progetti più grandi. Ma per un piccolo progetto penso che questo sia troppo grande. Quindi, dopo un po 'di tempo con Google, ho trovato una struttura semplice per progetti più piccoli.
Core
Data
Domain (or BusinessObjects)
Services
Utilities (or Helpers)
Il mio problema con questa struttura è, non ho idea di ciò che questi livelli rappresentano. Qualcuno può spiegarmi questi strati?