色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

【譯】12個asp.net MVC最佳實踐

       上一周我我在羅馬進行了兩場對于開發完成不久的http://www.dotNETromacesta.org/的ASP.NET MVC的演講。而其中一場演講內容是關于我對于ASP.NET MVC最佳實踐的看法.因為這場演講是在意大利進行的,為了大家能更好的閱讀,我將演講所用的ppt翻譯成英文。

關于Controller的最佳實踐

1-刪除AccountController

    讓Demo代碼在你的程序中是一個非常不好的做法。請永遠不要使用AccountController.

2-隔離外部網絡和Controller

     如果依賴HttpContext,數據訪問類,配置,日志等,則會讓程序難以測試,修改或者進一步開發。

3-使用一個IOC容器

    使達到第二條最佳實踐更加容易,使用IOC容器管理所有外部依賴我使用 Ninject v2,這種IOC容器有很多,如果需要的話,你甚至可以自己實現一個。

4-和“神奇的strings”說不

    永遠不要使用ViewData[“key”],而要為每一個視圖創建一個ViewModel,從而使用強類型的ViewPage.

    神奇的Strings是很邪惡的,因為你可能由于錯誤的拼寫而導致視圖出錯,而強類型的Model不僅可以有智能感知,而且錯誤是在編譯時獲取而不是在運行時。

5-創建你自己的“個人慣例”

    使用ASP.NET MVC作為你個人(或者公司)的參考構架的基礎,你還可以使Controller和View繼承于你自己的基類而不是默認的基類來讓你的慣例更加透徹。

6-注意Verbs

    就算不使用最合適的HTTP Verb,最要也要采用PRG模式,(Post-Redirect-Get):使用Get來顯示數據,使用Post來修改數據。

 

關于Model的最佳實踐

7–DomainModel != ViewModel

     DomainModel代表著相應的域,但ViewModel卻是為View的需要而創建。這兩者之間或許(一般情況下都)是不同的,此外DomainModel是數據加上行為的組合體,是由復雜的變量類型組成的并且具有層次。而ViewModel只是由一些String等簡單變量類型組成。如果想移除冗余并且容易導致出錯的ORM代碼,可以使用AutoMapper.如果想要了解更多,我推薦閱讀:ASP.NET MVC View Model Patterns.

8-為“共享”的數據使用ActionFilter

     這是我自己的解決方案,或許需要在未來發帖繼續探討。通常情況下,你都不希望你的Controller獲取的數據在幾個不同的View之間共享,我的方法則是使用ActionFilter來獲取在幾個不同View之間共享的數據,然后用合適的View來顯示。

關于View的最佳實踐

9-不要使用CodeBehind模式

      永遠不要。

10-盡可能的寫HTML代碼

      我認為Web開發人員必須的習慣于寫HTML(或者CSS和JavaSCRIPT).所以最好少用僅僅用來隱藏HTML代碼的HTMLHelper(比如HTML.Submit或者HTML.Button).這也是我會在未來的帖子里討論的。

11-如果有if語句,使用HTMLHelper

      View必須是啞巴(Controller是瘦子而Model是胖子),如果你發現自己在使用if語句,那就寫一個HTMLHelper來隱藏選擇條件語句.

12-仔細的選擇你的View引擎

     默認的引擎室WebFormViewEngine,IMHO并不是最好的引擎,我更傾向于選擇Spark ViewEngine,因為對于我來說這個引擎更適合MVC的View.我喜歡的是“dominates the flow and that code should fit seamlessly”對于每一次循環來說IF語句都會被定義在”HTML標簽“中.

DEMO代碼和幻燈片的下載

     你可以下載幻燈片或者demo代碼

NET技術【譯】12個asp.net MVC最佳實踐,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 永清县| 祁阳县| 启东市| 海原县| 上虞市| 苍南县| 华坪县| 芒康县| 扶余县| 收藏| 石阡县| 陆丰市| 娄底市| 辽宁省| 额济纳旗| 全州县| 滦平县| 宣恩县| 仁布县| 宾川县| 盐源县| 万宁市| 新郑市| 内江市| 广昌县| 布拖县| 山东省| 襄汾县| 岚皋县| 衡阳县| 龙胜| 察哈| 大邑县| 喀喇沁旗| 保康县| 天津市| 松江区| 开封市| 津市市| 广昌县| 上犹县|