.NET Code Generation Tools I've Tried

I was asked the other day, given that I have talked about IdeaBlade DevForce on my blog: what other code generators/object-relational mappers had I tried, and why did I eventually choose IdeaBlade?

I thought that might make an interesting blog post and had to go scratching around in my memory back to mid 2004, when I first thought to myself that there *might* be an easier way than writing repetitive routines to return datasets from hand-crafted stored procedures to access 40+ tables and then making the UIs for all of it ;-)

First, here's a brief list of some of the tools I've tried over the years (keep in mind that I should have posted this in 2005; most, if not all of the products I mention below will surely have evolved and improved over time):

  • Codus
  • RapTier $
  • LLBLGen $ - I was probably most impressed with this one, but it looked complicated :-)
  • CodeSmith $ - another good looking product but I thought it was overkill for what I needed. I also couldn't find many good, functional templates out of the box.
  • ORM.NET - I used this in a project while it was still owned by Olero, but was not completely happy - and when it went open source I kind of thought that it would die...how wrong I was!
  • OlyMars - at the time I evaluated it, this product mainly put out C# and had no active community support. I think the last version was old when I started looking.
  • WilsonORMapper $
  • MyGeneration

I'm not saying any of the above products were bad. I've put comments where I remember, but basically I was looking for the most value out of the smallest investment of my time - time which would include learning a new product.

As far as I can recall, I evaluated the tools with an eye for the following criteria, which I've roughly ordered in terms of my priorities. Points 4 and 5 will tell you a lot about where my head was at with regards to my needs and expectations:

  1. VB-oriented - or at least not VB-ignoring (at worst, VB-convertible)
  2. Adequate documentation and samples
  3. As easy to use as datasets - I like datasets; any new product I found needed to be easily able to replace the datasets in my projects
  4. I was looking for a product that would allow me to quickly put together an "administration interface" - basically something like MS Access so power users could add, edit and delete reference table data to their heart's content.
  5. I tended to steer away from tools which generated stored procedures for me - obviously, this had a lot of impact on the tool I chose
  6. Actively developed & maintained (not a one-off project) - you only have to search CodeProject to find the worn-out shells/interesting ideas of code generation past
  7. No requirement to buy into product X's way of doing things - at the time, I was just adapting to using the Data Access Application Block. I didn't want another major retro-active change, given that I was in active development.
  8. I wasn't particularly fussed if the UI was generated for me, especially after seeing the sort of UI that some of the tools generated.
  9. SQL Server support needs to be top-notch - I don't use Oracle, MySql, etc. so I'd rather have an SQL Server-centric tool that can utilise SQL Server fully, than a generic tool that codes to the lowest common denominator
  10. Not too expensive. Free is best.

Since then, my list would be expanded to include a .Net 2.0 version and the ability for the tool to easily support flowing through changes in the database to the UI (repeatable generation) without losing business rules or customisations I had done to the classes. Ideablade supports these last two (using partial classes).

After reviewing all of this, it seems fair to ask: did I get what I wanted? I'll have to leave that for another post...

Tags: ,

posted @ Thursday, January 18, 2007 9:03 PM

Print
Comments have been closed on this topic.
«May»
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678