I use this approach:
Business entity layer project (BOL)
- references: nothing
- It will contain the Employee class.
Data access layer project (DAL)
- references: BOL
- Here will be a class for Employee data access (EmployeeDA)
Business logic layer project (BLL)
- references: BOL, DAL
- Here will be a class for Employee business logic methods. Initially, the methods may seem superfluous because all they really do is call the DAL to delegate responsibility. However, as you expand an application, you'll find that you need to perform more involved business logic on data that goes beyond just getting it from a database. The business layer is where it should go.
You application will need to reference the BLL and BOL, but possibly not the DAL because that's access entirely from the BLL.
Imar (a wrox author and regular poster here) has written a very thorough set of articles about multi-layer application architecture that you might find useful. It uses a very similar approach to what I have described above.
Part 1:
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416
Part 2:
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=419
Part 3:
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=420
-
Peter