曾几何时,动软代码生成器是一种非常方便的工具,很多从事C#语言的开发人员都用过这个工具,当然也包括楼主本人。

以往的开发模式都是围绕数据库为中心展开的,先设计好数据库,然后再编写代码。动软代码生成器就是在这样的背景下诞生的。

你只要设计好数据库模式,然后用动软代码生成器一键生成数据访问层代码,非常方便。(虽然动软有业务层,但我认为那是鸡肋,只不过是数据访问层的一层简单包装,没有实际意义)

这对不想手动编写枯燥乏味的数据库操作的开发人员来说,非常有吸引力。

  下面楼主凭借自己的经验,从好与坏两个方面来总结动软代码生成器。

优势

  一、自动生成实体类和数据访问代码。

  二、大部分数据库操作都能满足,包括分页

  三、快速开发

劣势

  一、生成的实体类缺少关联性,而大部分实际项目都需要导航

  二、缺少数据库事务支持,所有的操作都是单表的

  三、对有些类型支持不好,比如date和新的datetimeoffset

  四、查询的数据是基于DataSet而不是实体,让人感觉很怪

  五、数据库结构修改就要手动生成代码,如果你修改了动软生成的文件,那就等着哭吧。

  六、不支持从代码生成数据库(Code First)。

 

  IT领域有句非常著名的格言:没有银弹。没有一劳永逸的解决方案,没有万能药。代码生成器不是银弹。很多年前,我听过这样一种说法,代码生成器可以代替开发人员。

这样说的原因有两个:一,你的开发人员太烂,跟代码生成器差不多;二、你的产品太烂,用代码生成器都可以搞定。不管哪种原因,说这话的人就很烂,哈哈! 

  随着IT技术的快速发展,涌现出很多优秀的工具可以替代代码生成器。楼主是做.Net的,给大家推荐几个不错的工具,知道的就权当班门弄斧,不知道的就当做学习。

首推微软的Entity Framework,其次是NHibernate。Entity Framework是微软亲儿子,和微软自家的Sql Server集成得很好。NHibernate是开源的,支持数据库比较多,可移植性好。

如果你不喜欢这些重量级的框架,那么可以考虑用ibatis和dapper。就楼主而已,如果可以选择的话,我会考虑用一下Entity Framework和Linq。Linq真是太牛逼了,不得不佩服微软。