NHibernate和Spring.NET组合在企业级应用程序中非常有用!

时间:2008-12-31 04:53:03

标签: nhibernate spring.net

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

3 个答案:

答案 0 :(得分:2)

Imo,Spring.Net和NHibernate齐头并进:如果掌握了学习曲线,当NH用于(几乎透明)transaction handling NHibernate,依赖注入以及Db时,你会非常高兴:提供商处理。

答案 1 :(得分:1)

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

我不能说Spring.Net,除了在2007年,我们的团队试图将其实现为现有的复杂解决方案来处理数据库事务和实体验证,但我们在工作一周后就废弃了这个想法。我们的常驻Spring / Java专家得出结论,Spring.Net是Spring背后的几个版本,并不足以处理我们项目中的用例。免责声明:不确定是什么版本的Spring.Net,所以最近可能有所改进。

答案 2 :(得分:1)

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

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

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

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

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

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