2008-12-03 81 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起)。