2013-03-04 199 views
3

我覺得有點傻可以問這個問題,但我一直在尋找一點點,但還沒有找到完整的答案,比方說我有一個MVC網站,因爲我遵循這篇文章的結構:MVC解決方案結構

Architectural decisions: ASP.NET MVC & Entity Framework

WebSite (MVC) 
    Controllers 
    Views 
    Content (scripts, css, images, etc.) 

Presentation Models 
    View Models 
    Model mappers 

Web Library 
    Extensions (to MVC/Web classes) 
    Helper Classes 
    Attributes 

Business Logic 
    Rules 

Data (if complex, use separate subfolder per context/repos/models) 
    Entity Models 
    Repositories 
    Data Context 

General Library 
    Extensions 
    Helper Classes 

1)我應該在哪裏把我的鏈接查詢數據搜索?

我想過在我的BL中創建一個搜索對象的一般搜索,如果需要其他應用程序(比如說移動應用程序或winform應用程序),可以重用它,然後返回將通過演示模型項目映射的一般搜索對象? 我不確定查詢是「業務邏輯/規則」。

或者我應該直接在Presentation Models項目中完成所有這些查詢嗎? 如果是這樣,我會假設我仍然需要先創建一個通用對象,這樣我可以對某些其他設備重複使用相同的查詢。

2)比方說,我想添加一個移動應用程序,我應該把每個視圖模型放在Web和移動設備的同一個Presentation Models項目中嗎?

3)即使是輸入驗證和CRUD操作,每個來自Web的調用都應該通過表示層嗎?

謝謝您的時間

回答

0

。由此我已經給了我在哪裏,我應該把我的鏈接查詢數據搜索,你已經取得的查詢這裏 1點)的意見?

* 如果您的Linq查詢與某些搜索條件相關聯,請在BL層中使用它們。 * 2)假設我想在此之上添加一個移動應用程序,我應該將每個視圖模型放在Web和移動設備的同一個Presentation Models項目中嗎?

*您將被要求這樣做*

3)應該從每一個網絡呼叫流程直通即使輸入驗證和CRUD操作演示層? *任何驗證都應該在以下兩個位置完成:表示層和BL,以便稍後將您的服務公開給WCF時,它將毫無例外地發揮作用。即使跳過表示層驗證,也沒關係。但BL驗證始終是安全的*