Separation of responsibility in assemblies
We are working on the Asp.net project. It has two parts, one for public users (for Internet use) and the other for internal use within an organization. Processes and objects are more complex, extensive and complex internally .
Although both sites will use the same database (to be linked using the DAL generated by SubSonic ), so there might be the same library for both, the way they manipulate objects and business logic is very different with both sides. Now my dilemma:
1) to keep bll files in separate namespaces ( public.bll
, internal.bll
) and different projects (remember that responsibility and business logic is different for both)
or
2) to keep all blls in the same namespace ( project.bll
)
(bll: Business Logic Layer used here in Visual Studio )
a source to share
I think you should consider the third option - splitting into three groups:
1) - all the logic typical only for the public zone. 2) - all logic specific only to the inner area. 3) - all the logic that both areas will use, for example DAL. public.bll
internal.bll
shared.bll
Then you include in both projects. shared.bll
a source to share