– UI very good.
– NTiers template looks pretty cool, using Enterprise library and Entity Provider pattern. But this is too complex for me. I still prefer MVP + NHibernate.
– NHibernate template doesn’t support View. When using table I got a error said can not find primary key in our database enviorment.
– Output can include DaoFactory, DomainObject (ancestor), Interface of DomainObject, almost every thing in DAL. I think Billy McCafferty is using this tool.
– Datasource configuer window is not very user friendly.
– Couldn’t regconise our no-primary key table.
– View list is not sorted. Very difficult to use.
– Changing template has to go through rebuild the project provided as source code. No wonder it’s open source. This work is annoying.
– UI too simple.
Not opensource. OpenSource started from June 2007.
Most of our tables don’t have primary key instead we are using identity column. (Our DBA just like this way, I don’t know why.) Because SmartCode is the only one has source code, so I can modify it to make it meet my requirements.
I followed the templates of MyGeneration, then I realized that even MyGeneration failed to get my identity column. But the thing is MyGeneration didn’t quit, instead it printed out a line:
<!– could not find a primary key for this table/view. NHibernate requires an ‘id’ element, so you’ll have to define one manually. –>
It’s not hard to change SmartCode to follow the same routine. Only minutes of work. Theoretically, I could make the same change to CodeSmith Template, nut when I tried to change TableSchema to ViewSchema to enable ViewPicker instead of TablePicker in CodeSmith’s NHibernate Template, it turns out CodeSmith cannot change type ‘SchemaExplorer.ViewSchema’ to ‘SchemaExplorer.TableSchema’!
None of those tools can generate many-to-one relationship in class or hbm files based on our view-only database, which makes sense to me, our table/view don’t have foreign key or reference.
Obviously, NHibernate hates DBA , and vice versa.
After closely looking into the generated templates, I start to admire MyGeneration. Their class file looks more professional, with region tag and two flags: isDeleted and isChanged (don’t know how to use yet. But isn’t that thoughtful?)
Yes, I can change the templates in smartcode to get the exactly same result, just need some rearrangement work. But I don’t want spent more time in it. Tools are good, but don’t addict into too much.