Ian wrote:
What do you mean by, 'The LLBL code is compiled into our DAL layer.'? Do you mean that the generated code is your DAL layer?
Yes, that is what I was really trying to convey.
Ian wrote:
This means that the presentation layer and the BLL layer must both be referencing the generated code. This is what I'd do but doesn't this kind of undermine the 'minimise dependencies' tenet of n-tier architecture?
Correct, our presentation and BLL layers reference our DAL project. Yes, from a purist point of view, I would prefer it if the entities were at a different level or in a different assembly or namespace. However, the reality is that the entities are needed in the DAL and they provide access to all the data in the BLL and provide all the binding hooks needed for the presentation layer.
I explicitly mentioned this in my original reply because there does seem to be two camps here: Those that reference the entities in all layers and those that choose to wrap the entities before passing or using them in the presentation layer.
Ian wrote:
Did you guys have a debate over the use of static function? Doesn't your BLL need to persist state accross method calls?
I don't know that there was much debate involved. It was actually a conscious design decision to make the BLL stateless. Our BLL is really just a wrapper around the business logic for our database functions.
Hope that clarifies things.