2010-03-14 73 views
6

我有一段時間構建使用數據庫服務器作爲數據層的N層應用程序,Winforms作爲表示層以及中間層使用ASP.NET asmx webservice來回發送無類型數據集。儘管迄今爲止這種方法對我有用,但它今天確實感覺過時了。如何使用Winforms實現.net 3層體系結構

如果我今天要創建一個類似的體系結構應用程序,我應該使用哪些技術? .net 4.0技術是受歡迎的。

我仍然想要一個數據庫服務器作爲數據,而asmx webservices應該可能被WCF取代。我仍然希望將表示層作爲桌面應用程序(Winforms或WPF)運行,因此忽略此問題的ASP.net。

我的主要問題真的歸結爲什麼作爲業務對象。我想要比無類型數據集更容易綁定到接口的東西,強類型數據集感覺非常重。我還需要一些可以跟蹤更改的內容,以確保用戶不會覆蓋數據庫中對方的更改。

實體框架4是否可用於這種情況? 有沒有可用的詳盡指南?

+0

我繼承了一個完全按照您描述的架構(通過asmx向WinForms輸入的無類型數據集),因此有興趣瞭解人們不得不說的話! – 2010-03-14 12:06:31

回答

1

有一個很好的介紹,以建設有EF 4這裏的n層應用程序:http://msdn.microsoft.com/en-us/magazine/ee335715.aspx

在EF 4引入POCO的對象,更容易建立n層的應用程序,因爲它消除了需要程序映射器在EF對象和數據傳輸對象之間映射。

+0

謝謝,文章似乎是要走的路,儘管它沒有跳過一些細節。我有點擔心客戶端應用程序直接引用服務,但似乎有必要避免生成代理對象並重新使用EF4模型。 – 2010-03-14 19:32:03

1

我也更喜歡使用EF4或LinqToSQL,WCF,WF和是WPF進行演示。此外,如果您決定與WPF一起使用一些類庫(例如Unity或STRUCTUREMAP等IOC DI)或重用MEF等組件。如果你使用像Windows窗體一樣的WPF,你不會從中獲得任何好處。