2011-12-24 42 views
1

我得到了我的數據層,準備好了業務層。現在我想要實現服務層。 我不想在wcf ria服務中實現這個層。有沒有其他的方式來使用wcf來實現這個層,這樣我就可以通過使用js的wcf來獲得我的模型。 例如,我有我的域'人'。 (在域項目中)。然後在我的'PersonRespository'中有 InsertPerson,GetPerson等來獲取並存儲數據庫中的'Person'。wcf和knockout.js結合

現在我想使用asp.net mvc來顯示人員detais。

所以接下來的兩層將是表示層和服務層,並使用knockout.js在客戶端操縱數據,並且我被困在以下問題上。

  1. 哪裏會是我的表現層將生活。我正在使用asp.net mvc所以它應該在mvc應用程序的模型文件夾中,是否明智地將相同的代碼類(Person)複製到模型文件夾以及域模型中。事件相同時。

  2. 我怎樣才能在javascript中獲得'Person'模型類,並且能夠將它從javascript更新到數據庫。

我的架構風格是企業級還是我缺少一些東西。

指向教程的任何一點都會有所幫助。

如果您還有其他問題,請告訴我。

感謝,

達爾吉特

回答

2

問題1:

不,你不應該重複你的代碼。在DRY(http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)發展原則中有關於此的討論。

問題2:

建議您使用JSON序列化序列模型並將其發送到您的UI。它會被更新等,然後發送回服務。在JavaScript中使用Google MVVM模式來查看這是如何完成的。 KnockoutJs是實現你想要的一個偉大的開始。它可能是最好的檢查在knockoutjs做的一些例子,看看發生了什麼。 MVVM中也有許多用於WPF的例子可能有助於理解更高級別的模式。我會建議看看codeproject.com深入MVVM的例子。

至於你的層次去,你有很多選擇,但一般建議是:

1)演示必須通過MVVM綁定被觸發,也就是說,如果綁定更新,用戶界面便會自動更新。
2)事物的asp.net端應該只在通過ajax向UI發送更新時更新模型。 (不是所有的東西都需要通過ajax發送,我不是這麼說的,當它發生時,它不應該發送額外的html或js來放入頁面)。
3)你的模型應該真的來自asp.net到html頁面。 (這會讓事情變得更容易,因爲頁面只會通過asp.net模型進行更新,並且您不會從多個域獲取項目,這最終會造成滋擾。
4)你的asp.net站點應該爲你的WCF服務提供一個包裝,並且可以調用WCF。

OR

如果你不想換WCF用asp.net和需要你的用戶界面,通過AJAX像小部件做一個類似的iGoogle頁面直接傳送到WCF(應該是一個罕見的用例,也許移動開發沒有asp.net交互,即完整的js應用程序)然後,你可以調查CORS作爲一個選項,從JS到WCF和JS到asp.net(這是一個難度很大,易於編程,很難得到工作對於WCF,因爲在我的情況下,非IIS託管WCF的文檔非常非常低)。對於信息,請參閱此頁:http://enable-cors.org/

+0

謝謝回覆,我想複製域模型來asp.net的MVC模型,因爲MVVM的,但是我覺得在時間 – daljit 2011-12-24 22:10:14

+0

你的MVVM模式可能類似於你的數據訪問層模型他們會結束不同的。視圖模型最終將具有顯示邏輯和交互,這些邏輯和交互最終會與純粹的數據訪問層模型不同。 – Dessus 2011-12-26 08:32:36