"The
use of net tiers created a black box of functionality that contributed
to the learning curve of the system. A black box for the business and
data layers is not necessarily a bad thing if designed to give you the
expected output based on your input. However, the net tiers layer is
automatically generated based on data model. This therefore cannot give
you full business functionality. Additionally, any change to the
database means that the net tiers layer has to be fully regenerated"
There is no black box about .netTiers. They are open source in a familiar ASP.net syntax templates written in c#, the same language as the code's output. A black box would be a closed source initiative without any ability to change the source output.
As for the ability to regenerate, CodeSmith comes with a command line utility which makes extremely simple to automate the regeneration process. With CodeSmith 4.0, you can regenerate with a simple CodeSMith project from windows explorer, the command line, from within Visual Studio, CodeSmithStudio, or even a build task.
It's likely your client is either just making up excuses or does not have the know how to work with an enterprise level application.
"NetTiers
have been used heavily for creating entities which is very cumbersome
to maintain. Code regeneration is needed for any database changes and
the build project is not provided with the rest of the code."
You get a class for every entity to customize to your needs. Really? Is it that difficult to understand?
With each generation, netTiers writes out the property set or CodeSmith Project depending on the CodeSmith version being used in the /References directory in the output. If using a CodeSmith Project, it's as simple as right clicking the file and say Generate Outputs.
"using
NetTiers was a bad idea since the database structure was not so
complicated and the resulting mass of code it generated needlessly
added another layer of abstraction." (about 35 tables, excluding the
Membership Provider tables)
I can't stress this enough, .netTiers is *not* for everyone. Yes, it generates abstractions, but all enterprise level frameworks do. With flexibility breeds complexity, if you want your architecture to be flexible enough to adapt, then you have to cover up the complexity with some abstractions. This is commonplace in most frameworks. Take a look at the indirection used in Castle, or some of the Microsoft Patterns and Practices solutions, like the Web Client Software Factory.
They are both excellent .Net based solutions, but both of them have more abstraction than .netTiers.
Robert Hinojosa
-------------------------------------
Member of the Codesmith Tools, .netTiers, teams
http://www.nettiers.com-------------------------------------