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?