在 NHibernate 或 Vice Versa 之前学习 SubSonic?
Posted
技术标签:
【中文标题】在 NHibernate 或 Vice Versa 之前学习 SubSonic?【英文标题】:Learn SubSonic before NHibernate or Vice Versa? 【发布时间】:2009-05-13 12:27:47 【问题描述】:我们一直在为我们公司的项目使用我们自己的 DAL,对于通过的 2 个项目,这给我们带来了问题。因此,我想学习 SubSonic 和/或 NHibernate。是先学习 SubSonic 还是 NHibernate 更好?有什么优点/缺点?从我在这里的相关问题中读到的内容来看,NHibernate 比 SubSonic 更复杂,所以我想从后者开始。
【问题讨论】:
【参考方案1】:SubSonic 比 NHibernate 容易得多,您几乎可以立即开始使用它(只需几个截屏视频就可以了)。在 NHibernate 中,您需要做更多的工作才能启动——XML 配置、会话处理和诸如此类的东西。因此,如果您是 ORM 新手,请先学习 SubSonic,然后再深入研究 NHibernate。就我个人而言,我认为对于小型项目,您甚至可以愉快地使用 SubSonic :)
【讨论】:
【参考方案2】:SubSonic 是Active Record ORM。如果这是您要查找的内容,则应将其与其他活动记录 ORM 进行比较,例如 Castle。 Castle 建立在 nHibernate 之上,因此您的团队可以在需要时扩展到完整的功能集。此时,您将苹果与苹果进行比较,从哪个开始都没有关系。
如果您不是在寻找 Active Record 风格的 ORM,请尝试从 Fluid nHivernate 开始以稍微降低学习曲线。
【讨论】:
请注意,Subsonic 现在还支持简单存储库模型。【参考方案3】:我对 SubSonic 知之甚少,但我最近承担了使用 NHibernate 进行工具化的任务,发现这个 book(可能是唯一一个真正的)非常有用
【讨论】:
【参考方案4】:NHibernate 肯定更复杂,但随着这种复杂性而来的是更大的灵活性。 Subsonic 很棒,但您也应该知道,它是一个非常开源的项目,虽然它目前很稳定,但它背后没有 NHibernate 那样活跃的开发社区。p>
需要注意的另一件事是,亚音速是一种“代码生成器”,它实际上会为您生成一堆东西。 NHibernate 是字面意义上的 ORM,因为您将对象映射到数据库。您可以使用代码生成器为您生成映射,但这是一种完全不同的 ORM 思考方式。
就个人而言,如果您查看 subsonic 并发现它具有您需要的一切,那么我会看那个,或者甚至可能是 linq to sql,但是如果您发现您遇到了更复杂的对象问题,那么可能是 NHibernate值得学习。
【讨论】:
我想我现在正在依靠 NHibernate。 “Subsonic 很棒,但你也应该知道它是一个非常开源的项目” NHibernate 也是开源的:免费/开源 - NHibernate 在 LGPL(较小的 GNU 公共许可证)下获得许可) 来源:hibernate.org/343.html【参考方案5】:答案取决于许多不同的因素。如果您学习 nHibernate,您将为自己打开许多学习曲线的大门,但它们都得到了回报。 Sub Sonic 可以让你加快速度,但它基于代码生成,这意味着你有界限。使用 nHibernate,您可以定义自己的映射。事实上,使用 Fluent Interface nHibernate 映射,映射对象更加容易、简单和快捷。有一个非常活跃的用户群link text
此外,您还拥有完全的映射灵活性。 nHibernate 可能有点难以开始,但它完全值得学习。我自己使用 nHibernate 为我的客户编写了 2 个专业项目。
【讨论】:
以上是关于在 NHibernate 或 Vice Versa 之前学习 SubSonic?的主要内容,如果未能解决你的问题,请参考以下文章
AutoMapper Model To ViewModel Vice Versa 更新记录