I am creating a class library for a CRUD business application. The major \"categories\" of business objects (with related data access layer objects) are:
It's generally a good idea to not name your packages after any specific pattern implemented but rather the business or functional domain they belong to.
ie:
Org.MyCompany.BusinessObjects.Maintenance.Contacts
Org.MyCompany.BusinessObjects.Incidents.Contacts
Org.MyCompany.BusinessObjects.Search.Contacts
instead:
Org.MyCompany.Contacts
which would contain classes/interfaces/objects/whatever that perform operations on "Contacts".