3

在项目中使用过 Spring.NET 和 NHibernate 的软件开发人员有何看法?在我工作的公司的几个项目中,我们非常广泛地使用了这些第三方工具,并且我们获得了巨大的生产力。需要注意的是,对于初级 .Net 开发人员来说,掌握这个概念有点困难。

4

3 回答 3

2

Imo、Spring.Net 和 NHibernate 齐头并进:如果您掌握了学习曲线,当 Spring 用于 NHibernate 的(几乎透明的)事务处理、依赖注入以及 Db:Provider 处理时,您会非常高兴。

于 2009-01-23T18:59:19.957 回答
1

NHibernate(或类似的 ORM)对于“未开发”开发非常有帮助,其中可以正确设计域对象模型,然后可以生成数据库模式和 NHibernate 映射以匹配模型。另一方面,NHibernate 可能很难应用于遗留或规范化程度不高的数据库。尽管它支持处理一些不寻常的数据结构,但这些技术的学习曲线要​​高得多。

关于 Spring.Net,我不能说太多,除了 2007 年,我们的团队试图将它实施到一个现有的、复杂的解决方案中来处理数据库事务和实体验证,但经过一周的工作后我们放弃了这个想法。我们的常驻 Spring/Java 专家得出结论,Spring.Net 是 Spring 之后的几个版本,还不够成熟,无法处理我们项目中的用例。免责声明:不确定 Spring.Net 的版本,所以最近情况可能有所改善。

于 2008-12-31T06:53:11.883 回答
1

使用 spring.net/nHibernate 有很多好处。

对于数据访问,您可以通过延迟加载、数据库独立编程、轻松保存加载更新、删除实体来充分利用 nHibernate ORM。无需编写任何查询即可。这就是为什么在设计数据库和开发之后,如果在任何开发状态下需要进行任何更改,都非常容易更改。

依赖注入(DI)有助于分离 UI 和业务逻辑。这就是为什么您可以随时更改图形用户界面而不会破坏任何业务逻辑的原因。同样,如果您需要对业务逻辑进行任何更改,则只需要构建业务层。它也是可配置的。

面向方面编程 (AOP) 是 Spring.Net 的另一个特性。它有助于记录应用程序,动态方法拦截允许对方法调用进行更多控制。它使授权应用程序变得容易。声明式事务管理是管理事务的一个很好的特性。您不需要为启动停止数据库连接编写代码。只需在配置文件中写入您要维护事务的方法即可。因此,在大型项目中,它将节省大量时间,并为您提供更多的事务管理灵活性。

Spring webservice 很容易从客户端编写和使用。无需添加任何自定义属性,无需 WSDL。您可以拦截每个方法调用,您可以添加诸如日志记录建议、身份验证/授权建议等建议。

总体而言,它节省了大约 33% 的开发时间,使应用程序更易于维护,高度可配置。

于 2012-05-09T16:32:55.047 回答