Code generators have been a hot topic in programming for many years. Love them or hate them, they can make your life much easier by making you more productive, your code more maintainable and creating a common development methodology. The difficult aspect is discerning which are vital aspects and which are nice to have.
First, the generator must allow for “round trip” code generation – the regeneration of code without wiping out any custom changes. This is vital because you will be changing the database design frequently in the beginning. The best tools implement this by only regenerating the base classes. The child classes are left untouched.
Second, the generator must have a built in security system and roles. This is critical because many applications have a business requirement of authentication and authorization. We only want people in the application who should be using it. Then, once logged in, we only want that user to view what she is allowed.
Third, the generator must create a distributed architecture. So many applications get started as small projects. Over time, they became large and difficult to maintain. We want to start out with a scalable standard architecture. That way, our developers get used to a common development methodology. This commonality allows the IT manager to move developers to different projects with very minimal ramp up time.
Forth, it must have an active development community. Go to the code generator’s web site and check out the forum. Are there a lot of people there? Did the code generator’s creators frequently answer questions? If they answered, what was their tone? Helpful? Annoyed?
Fifth, the code generator must include the source code for common components or generate all the code. This is needed because you want to be able fix any future issues yourself. Too frequently, you will find a bug in a component and you must wait for a fix. This can take days or weeks. This is simply unacceptable in many businesses.
Finally, look at the history of the company and the code generator. How long have they been in existence? You will be investing a lot of time, effort and money into learning the code generator and its architecture. You want to have certainty the company will be around for several years to come. The last thing you want to do is become familiar with the tool and find out a couple months later the company went out of business. qr code