Skip to main content
edited tags
Link
Ixrec
  • 27.7k
  • 15
  • 84
  • 87
Source Link

Understanding a project architecture

If I develop an application, I'll often use a project structure like this:

MyApp.DataAccess.Implementation
MyApp.DataAccess.Contract
MyApp.Business.Implementation
MyApp.Business.Contract 
MyApp.CrossCutting.Implementation
MyApp.CrossCutting.Contract
MyApp.Application

For each layer I'll create two assemblies. One for the interfaces and one for the implementation itself. In the layer "CrossCutting" is everything like logging, entities, configuration... If the project is really big, I'll separate each component in the "CrossCutting" layer into a separate assembly. In the application layer, there's my console/ui/web project.

This project structure can be applied easy on bigger projects. But for small project I think that this is oversized. So, after some time searching with google, I found a simple structure for smaller projects.

Core
Data
Domain (or BusinessObjects)
Services
Utilities (or Helpers)

My problem with this structure is, I've no Idea what these layers represent. Can someone explain me these layers?