Summary: Allow users to define a shared namespace in addition to the current project namespace parameter so that shared components are not duplicated in server environments including multiple base namespaces representing various companies, teams, projects or technologies.
Background: Currently, all files generated use the same base namespace. This makes sense assuming that there is a single database representing a single company/project/application - as is probably the case for many users. However, I work in an environment where a) many developers maintain different applications each with their own database backend, and b) multiple logical namespaces (based on distinct projects, technologies or companies) may be represented. In this scenario, all of the base/abstract classes, interfaces, shared utilities, etc are regenerated for each project. This obviously creates a lot of overhead and duplication.
A simple solution would be to allow two configuration parameters: one for the shared namespace and another for the project namespace. The shared namespace might default to something like "NetTiers" to make it clear that these files were not specific to any particular implementation. Personally, I'd be fine having it hardcoded to "NetTiers", but keeping it as a parameter would allow flexibility for users who prefer the current model or, for example, may need multiple versions of the shared libraries (as may be the case if one group has made notable edits to the shared class library templates).
Code Impact: This would be an easy edit without a significant impact on backwards compatibility. It would also have the additional benefit of making it easier for new users to sort through the code as it would be more evident which code was generic/shared and which was specifically generated for this particular project.
Jeremy