Search code examples
architectureprojectsn-tier-architecturelayered

What's the best way to structure a project?


I was wondering about how I should structured my projects.

We have some projects that are (re)use in other projects.

I mean, our data project and model project are use in one-to-many other projects.

What I really what to know is how to structure this type of project, what the best way to name it ?

In a standard 3-tier application, is should like something like :

  1. DAL, DataAccessLayer, Data ...
  2. Model, BusinessObject, BOL ...
  3. UI, View, ...

Any other ideas ?

In each company I work, they got different way to organize it, is there one better than another ? Which one do you use and which one do you prefer and why ?

Thx!


Solution

  • For the data layer, I usually use:

    Company.ProjectName.Data (i.e. AdventureWorks.OrderManager.Data)

    For business layer I prefer something like "ObjectModel" (I have used "Business" or "BusinessLogic" but this is the area where data comes together in objects/classes so why not name it so?).

    Company.ProjectName.ObjectModel (i.e. AdventureWorks.OrderManager.ObjectModel)

    For UI, I like either plain old "UI" or "Presentation"...

    Company.ProjectName.Presentation (i.e. AdventureWorks.OrderManager.Presentation)