2008-12-03 79 views
5

几乎每个新的Java-web-project都使用现代MVC框架,例如Struts或Spring MVC用于Web层,Spring用于“Service”/业务逻辑层和一个ORM映射器,比如Hibernate,用于持久化。 .NET中的等价物是什么?.NET等价于现代Java Web架构

我想ASP.NET用于Web层和ADO.NET的持久性,但什么是相当于春,即什么是用来连接交易和组件等。

我知道Spring.NET,但我更感兴趣的是在.NET中构建应用程序的事实上的方式。

回答

4

默认的方法是ADO.NET/Linq-to-Sql,ASP.NET和定制服务层,重新发明轮子。微软将Unity用于自动装配,但我不认为依赖注入是.NET世界的主流。

但是,如果您采用最佳实践,那就是用于UI的ASP.NET MVC,用于布线的任何DI框架(Castle,Unity,Autofac,...)以及用于持久性的NHibernate。

1

有在.NET数据访问没有实际办法。

选项包括:

  • ADO.NET的DataReader *
  • ADO.NET数据表*
  • 的LINQ to SQL *
  • NHibernate的
  • ADO.NET实体框架*
  • 类型化数据集*
  • Spring.NET
  • CSLA.Net

注意带*的那些,这些是来自Microsoft本身的当前产品。我跳过那些我不记得如何拼写的。

0

ASP.NET MVC +更适合您工作的数据访问。

还有许多其他的框架,工具和库,可以帮助如城堡的,Ninject,NUnit的,NLOG等

但我相信,你的问题更好的回应是“这取决于”。

0

实际上,CSLA不提供任何数据访问。数据访问实施由您决定。

+0

CSLA的批评者倾向于试图将CSLA与ORM进行比较。 CSLA不是一个ORM! ORM可以赞美CSLA,但CSLA不执行ORM层的功能。 – 2009-04-11 22:36:28

0

请注意,ASP.NET MVC还不是RTM,但我们多年来一直使用ASP.NET Web表单(自.NET 1.0起)。