Ken Wong Software Development Blog

February 9, 2007

Looking for Code Generation Tools

Filed under: Code Generation, Dot Net, Java — canonw @ 1:03 pm

I am researching ways to reduce code development time. Things have progress a lot over the years. When I first look at code generation back in 1998, there are few choices, and all of them are commercial. Thanks to open source movement. I see many varieties and options in the public domain.

I found Code Generation Network. This portal has the most comprehensive information on code generation. And I learn to use several tools from their website.
I try these tools so far. And none of them win my vote of confident.

Dot Net Based

  • MyGeneration
    I like this a lot. It has many user-contributed templates on object-relationship mapping framework. It’s very flexible, and have non ORM related sample to follow. One of my favorite is Insert SQL generation.
    Unfortunately, the program stability is questionable. I have a Core 2 Duo Thinkpad T60p, and I try to fetch insert SQL on a sizable table in my SQL Server. MyGeneration keeps popping up a message box, and I was forced to kill the process.
  • CodeSmith
    This is a popular commercial tool. Our local user group will demonstrate its usage this month. I thought about trying it out. But pass it.
  • Codus
    it has nice and clean user interface, but few templates. All template are ORM oriented.

Java Based

Frankly, I didn’t spend as much time in the Java. So far, none of the Java based tools share the same intent as the Dot Net based tools.

To be investigated

I have yet to find my ideal tool. So, I will research these tools in later day. MDA becomes an important consideration. But object modeling is not the only objectives I want to accomplish.

My Reflection

After going through my research, I realize my objective must enlarge. Initially, I tried to find an ad hoc code generation tool. But the state is not sophisticated enough.

Let’s put it another way. Why should I use code generation? And what purpose do I try to accomplish?

So far, most code generation tools focus on these area of technologies.

  1. Template engine
  2. Object relationship mapping

To make these code generation more robust. It needs improvement in these area.

  1. A mechanism of describing class definition
  2. Data oriented SQL statement manipulation
  3. Finer grain of control on object relationship mapping
  4. …More

More reflection to come…

No Comments Yet »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.

Blog at WordPress.com.