Naming Convention: ( Most used ):
- Entities: As it is part of the domain package, no prefixes or suffixes here: Ex: Car, Client, etc.
- Repository: Usually a suffix
- ValueObject: Value objects are part of the domain so it follows entity´s convention. Ex: Money, Address, etc.
- DTO: Usually a suffix
- Service: Usually a suffix
Namespace Convention: (My Suggestion)
Entities, ValueObjects, Repositories Interfaces, Domain Services (Domain Layer)
Ex: Acme.Finantial.Domain.Debt,
Acme.HR.Domain.CheckOvertimeService,
Acme.Core.Domain.IPersonRepository
Application Services
Ex: Acme.Sales.Service.ClientRegistrationService
Presentation Layer
Ex: Acme.HR.Presentation.IClientRegistrationView, Acme.HR.Presentation.WebClientRegistration
Persistence Layer
Ex: Acme.Core.Persistence.PersonRepositoryImpl (<--- implementation in NH, for example)