我正在选购ORM工具。我正在为购买CodeSmith (目前有很大的折扣)还是ORM工具而苦恼。
SubSonic to SQL不在我的列表中;LINQ 2.x也不在我的列表中(我不想在知道LINQ 3.0即将到来的情况下投资于那个死胡同。NHibernate似乎有点杀伤力,LLBLGEN也是如此。我只简单地评估了EF,但没有很快得到温暖和模糊的感觉。
我是不是疯了,认为CodeSmith是现成ORM的合理替代品?CodeSmith会以其他方式为自己买单吗?
请注意,我与任何供应商都没有任何关系,这不是一个廉价的问题,所以问题只是为了产生产品噪音!我正在寻找诚实的建议和意见的CodeSmith作为一个对象关系管理工具(与其提供的,或社区可用)模板。
发布于 2009-05-15 02:54:14
事实上,hibernate是一个很好的ORM工具。但是它就到此为止了!
Code smith的功能可以不仅仅是关系映射人员!我使用code smith来生成一些UI表单、业务层(模板)、数据访问层、模式等等。但是要使用代码史密斯,你可能需要良好的系统设计经验或使用他们的模板,我不喜欢使用,但我喜欢作为一个例子。
Code smith方法有一个特殊的缺点:您必须首先考虑数据库实现来设计系统。如今,在对象分析方法中,人们成功地在任何数据库实现之前实现了业务逻辑和实体-他们忘记了这一点。
做决定很难;我经常读到一些重要的名字,比如Scott W.Ambler,Kent beck,Robert C.Martin,以及推荐ORM工具来加速开发的实用主义程序员系列的人。他们说,ORM工具开发人员关心所有数据库问题(池、连接、数据库供应商细节等)。因此,当我们必须设计数据访问层时,我们也必须考虑所有这些方面。
我相信这些ORM工具是伴随着重载而来的。我还不知道这些工具在低预算项目中的表现如何(我的意思是不好的托管服务器或任何类型的共享资源)。我见过缺乏经验的开发人员在试图宣传他们心爱的工具时没有考虑到这一点。但在java项目中,hibernate已经是一个广为人知的工具。我毫不怀疑,伟大的项目是使用这种技术交付的,但我见过任何人,再一次,java开发者可能需要教我们(.net开发者)如何构建伟大的解决方案。(对不起,我们不得不承认。)
我唯一要推荐的就是考虑你的背景。你在做一个新的系统吗?你需要按模式工作吗?你有没有尝试过同时考虑这样的代码生成器和ORM工具?
我更喜欢code smith,因为我一次生成整个解决方案,而不仅仅是数据访问层。代码生成非常重要,微软在visual studio.net 2008中模仿了代码史密斯方法,等等。
祝好运
发布于 2009-02-24 19:43:20
Code Smith不是ORM,它只是一个代码生成器IDE。
您可以使用基于数据库的代码smith生成DAL,但这将违背使用ORM的目的之一,ORM基本上是动态生成DAL的,因此您不必编写代码。
如果您真的想要比较这两者,那么使用code smith可能会获得一些好处,因为您可以完全控制生成的代码,但我不确定这一好处是否会超过花费数月编写代码smith模板以基于数据库生成DAL的缺点。
然后,您必须考虑当您对数据库进行更改时会发生什么,您很可能必须运行代码史密斯并在每次执行此操作时进行构建。一个好的ORM将允许您在模式中配置数据库更改,然后它将动态生成,因此您不必担心对数据库进行更改。
发布于 2009-02-24 20:02:38
NHibernate是最好的选择。它是一个企业级ORM。使用来自FluentNHibernate库的基于约定的自动配置,如果您坚持使用单个约定(您可以指定约定,或者有缺省值),配置就会简单得离谱。
使用NHibernate,您的域对象是纯C#对象。没有奇怪的基类。每次您决定进行更改时,都不需要刷新代码生成的文件。
https://stackoverflow.com/questions/583232
复制相似问题