Instead I've gotten back into CodeSmith. I used version 2.6 a few years back for a code generator for the AtomsFramework and it worked really well, but I put it on the shelf when I ran out of personal time for open source work.

Now it appears that CodeSmith has gone commercial and just released version 4. Looks like they've really put some more thinking into what can be done with the tool and the integration into Visual Studio. For example you can now generate code in VS2005 using Active Snippets right within the IDE instead of generating externally and copy/pasting the code into the right spot.

I asked my team to created some code gen templates and snippets this week and they had great results in about 3 days. If I'd have tried to get them to do it using the GAT they'd still be at it, and probably banging their heads into their desks at this point trying to figure out the mysteries and inner workings of GAT/GAX and the EnvDTEnamespaces. It really shouldn't be that hard to do code gen. I like where Microsoft are heading with it, but the learning curve is just too steep for the limited use I'll have for it.

To my way of thinking code generation templates should be written once and then left alone unless there's problems. If that's the case why do I want to spend weeks learning the GAT/GAX structure and stuff (especially when there's no helpful documentation) and then not use it again. The learning curve for CodeSmith is almost flat and it takes about half an hour to figure out the basics and get started.

I'll give the GAT stuff another 6 moths to mature a bit more and see where it heads from there. In the meantime CodeSmith gets the nod.

1 comment:

I completely agree, you hit the nail on the head. The GAT is one of those things that were over-architected, believing that a developer really has time to devote 6-12 months to deliver a solution, to be able to write one guided solution.