NHibernate代码生成

我正在使用NHibernate和一些代码生成工具。 MyGeneration是一个,SmartCode是另一个。

之前已经问过这个问题,但我已经看了一些其他的响应,发现nHibernate空间中的代码生成工具非常差。

我可能能够使用MyGeneration和SmartCode,但是你有没有其他可能的用途,并且会推荐?

我想我的标准是他们必须使用MSSQL 2008,目前正在开发的工具也会很好,因为似乎某些工具不再被积极开发。

理想情况下,这些工具也会生成域对象,还有nhibernate映射文件 – Fluent nhibernate会很好但不是必需的。 如果可以调整代码生成的模板和方法,那将是很好的。

我是一名开发人员,所以很高兴能够通过合适的工具进行更改。

谢谢。

我使用过CodeSmith并对它非常满意。 我没有使用他们的NHibernate模板,但我知道它只是他们支持的众多框架之一。 看看这里。

我强烈建议你看一下来自Slyce的 Visual NHibernate 替代文字http://www.slyce.com/images/vnh_head.png 。 我已经使用了所有免费和商业工具,并发现它是唯一一个完全按照它在jar头和更多上面所说的工具。

它允许您从头开始或从现有数据库设计实体。 替代文字http://sofzh.miximages.com/c%23/project_selection.png

它与大多数现有的dbs兼容

替代文字http://sofzh.miximages.com/c%23/databases.png

与Postgresql的未来支持。

它允许您根据规范自定义实体替代文本http://sofzh.miximages.com/c%23/property_grid.png

除了能够在设计期间在实体和数据库之间平滑来回,我最喜欢的function是Diff View

alt文本http://sofzh.miximages.com/c%23/file_text_diff.png ,显示在生成代码之前对代码所做的更改。 因此,您不仅可以看到更改的效果,还可以及时取消代码生成或只是输出到其他文件夹。

这个工具有许多很好的function,现在已经成熟。 最后,还有30%的折扣;-)

我过去使用的是Adapdev的Cudus,现在我正在使用NConstruct( http://www.nconstruct.com ),因为我还需要应用程序生成,而不仅仅是NHibernate映射文件。

它不支持SQL 2008,我已就此问题与他们联系,因为我还计划在不久的将来从SQL 2005迁移到SQL 2008。 根据他们的回应,新版本会支持它,但我不知道什么时候。 也许我们中的更多人需要推动他们更快地获得SQL 2008。 否则我非常喜欢这个工具。

我建议看一下Steve Bohlen的夏季Nhibernate系列,特别是第8节,讨论如何将NHibernate与预先存在/遗留的数据存储情况一起使用。 他使用MyGeneration并提供他用来执行此操作的模板文件。

你可能想关注ABSE( http://www.abse.info )。 ABSE是一种代码生成和模型驱动的软件开发方法,在平台和语言方面完全不可知,因此您可以毫无困难地为NHibernate,MSSQL 2008以及您希望的任何其他内容创建自己的生成器。 最重要的是,您可以按照自己的方式生成代码。 缺点是您可能需要做更多工作才能构建模板。

不幸的是,ABSE仍在进行中,集成开发环境(名为AtomWeaver)仍在制作中。 无论如何,发电机的CTP版本计划于2010年1月发布,所以我们已经接近它了。

NHContrib项目包含一个名为hbm2net的工具来生成代码。 我从来没有使用它,所以我不知道它产生了什么样的代码,但我知道它使用NVelocity 。 链接到教程 。