我们一直在为我们公司的项目使用我们自己的DAL,并且通过了2个项目,这给我们带来了问题。因此,我想研究SubSonic和/或NHibernate。首先研究SubSonic还是NHibernate更好?有什么优点/缺点?从我从相关问题中读到的NHibernate与SubSonic相比更复杂,所以我想从后者开始。
答案 0 :(得分:6)
SubSonic比NHibernate要容易得多,你几乎可以立即开始使用它(很少有截屏视频和你完成)。在NHibernate中,您需要更多的工作来启动 - XML配置,会话处理等等。因此,如果您是ORM的新手,请首先学习SubSonic,然后深入研究NHibernate。我个人认为,对于小型项目,您甚至可以愉快地使用SubSonic:)
答案 1 :(得分:2)
SubSonic是Active Record ORM。如果这是您正在寻找的,您应该将其与其他活动记录ORM进行比较,例如Castle。 Castle构建于nHibernate之上,因此您的团队可以根据需要扩展到完整的功能集。在这一点上,你将苹果与苹果进行比较,无论你选择哪一个都无关紧要。
如果您没有寻找Active Record风格的ORM,请尝试从Fluid nHivernate开始,以稍微降低学习曲线。
答案 2 :(得分:1)
我不太了解SubSonic,但是我最近接受了使用NHibernate进行工具的任务,发现这个book(可能是真正唯一的那个)非常有用
答案 3 :(得分:1)
NHibernate肯定更复杂,但随着这种复杂性带来更大的灵活性。 Subsonic很棒,但你也应该知道它是一个非常开源的项目,虽然它目前是稳定的,但它没有NHibernate所支持的活跃的开发社区。 p>
另一件需要注意的事情是,亚音速是一种“代码生成器”,它实际上会为你生成一堆东西。 NHibernate在字面意义上是一个ORM,它将对象映射到数据库。您可以使用代码生成器为您生成映射,但这是考虑ORM的一种根本不同的方式。
就个人而言,如果你看看亚音速并发现它拥有你需要的一切,比我看到的那样,或者甚至可能是linq到sql,但是如果你发现你遇到了更复杂的对象问题,那么可能是NHibernate值得学习。
答案 4 :(得分:1)
答案取决于许多不同的因素。如果你学习了nHibernate,你就会为自己打开许多学习曲线的大门,但它们都能获得回报。 Sub Sonic可以让您加速,但基于代码生成,这意味着您有边界。使用nHibernate,您可以定义自己的映射。事实上,使用Fluent Interface nHibernate映射,映射对象会更容易,更简单,更快捷。有一个非常活跃的用户组link text
另外,您可以充分灵活地进行映射。 nHibernate可能有点难以开始,但它完全值得学习。我自己已经使用nHibernate为我的客户编写了2个专业项目。