2012-02-01 74 views
1

我在同一個解決方案中的不同項目中有業務層和UI層。我需要的是,將此用戶界面與用c#編碼的業務層連接起來。使用MVC3 Razor創建UI。如何使用MVC3與WCF連接

我應該在MVC應用程序中使用什麼模型?我需要創建業務層的服務引用來生成一些代理?
然後我可以使用這些代理作爲模型?請幫助我..
如果你能提供給我一些教程 我試過,但沒有更多的想法與MVC:
http://www.dotnetfunda.com/articles/article816-understanding-the-basics-of-wcf-service-.aspx

回答

3

除非你的項目(或建築師)要求的是你的應用程序訪問的服務層的所有方法,我會盡量避免不必要地使用WCF(想一想 - 這意味着Web服務器和後端之間的所有數據都會通過線路傳遞,這會影響性能,數據序列化等,並且可能會限制數據庫連接和事務,這可以剝奪如延遲加載)。 如果您同意,建議將確保業務層中的所有可訪問接口都暴露在接口上,然後直接將BLL接口消耗或注入到控制器中。

MVC中的單詞"Model"需要注意 - NET MVC鼓勵ViewModels,它是特定於表示層並在視圖和控制器之間傳遞的,與表示更多邏輯域模型的「實體」由業務邏輯使用,可以使用ORM(例如EF或NHibernate)綁定數據持久性。 MVC項目模板將所有不是「視圖」或「控制器」的模塊歸入isn't necessary very helpful的「模型」中。

但是,如果你選擇通過WCF服務層來訪問您BLL你仍然有一些設計的決定作出:

  1. 選擇是否共享客戶端上的後端實體,或者你而是使用代理實體。
  2. 選擇是否在控制器中直接使用/注入WCF服務代理,或者是否創建另一個Facade層(例如CAB調用這些ServiceAgent)。如果存在單獨的團隊或供應商構建SOA端與客戶端以適應接口更改,後者將是有意義的。