I have been evaluating My.Generation and CodeSmith to offer a recommendation to our development team and I want to share some of my findings with the My.Generation community in order to provide some feedback from the perspective of a potential user.
I found both products to be strong in terms of flexibility, extensibility, and functionality. Both support a large number of packaged templates like dOODads, nTiers, and others. Both have good foundational frameworks, and both are capable of handling the basic and advanced functions for generating code from templates based on meta data from a database. My.Generation had broader support for native drivers and, as an open source product, has the greater opportunity for enhancements in this area. Both products support SQL Server, Oracle, and MySQL -- the basic three! CodeSmith had a nice feature in a user's ability to define template properties right within the template code. On the other hand, My.Generation's support for creating a custom UI for a template is a great unmatched feature. Suffice it to say that both products earn a respectable score in most areas.
My biggest complaint equally for both products revolved around the code editor and IDE. Both products support syntax highlighting, but the Inellisense-like feature is weak and could be much improved to help developer productivity in both products. Keyboard layout (key combinations, shortcuts, etc.) which directly relates to usability, was a big challenge for My.Generation, especially the lack of support for keyboard shortcuts for switching between templates. In fact, it seemed far too often one had to reach for the mouse because that was the ONLY way to perform a certain function! Although the CodeSmith editor and IDE had some issues, it had far more fit and finish and was more polished -- closer to that of Visual Studio 200x. Compared to the My.Generation editor, the CodeSmith editor had much higher quality, user friendliness, and general usability -- especially from the keyboard. Perhaps that's my bias, but CodeSmith's closer resemblance in keyboard layout, shortcuts, etc. to Visual Studio was a major factor.
The open source nature of My.Generation is a major factor in its favor. On the other hand, the polish and resemblance to Visual Studio give CodeSmith a clear edge. My conclusion is that, for developers like me who are keyboard oriented code junkies, the editor makes a very BIG difference and My.Generation severely lags in this area. In the end, all else being equal -- and I feel they are in general -- the editor and IDE are the deciding factor between the two products.
I would love to hear some feedback from the community -- especially with regard to my experience with the editor and IDE.
Thank you.
