• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Welcome to 陳俊峰's ---BeetleHeaded Man Blog !

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              58 隨筆 :: 32 文章 :: 18 評(píng)論 :: 0 Trackbacks

            在技術(shù)更新的進(jìn)程中, 仍然有一些人死抱著已經(jīng)過(guò)了氣的東西不放. 也有一些人雖然進(jìn)入到新的世界, 但仍擺脫不了陳舊的習(xí)慣. 我沒(méi)有用”陋習(xí)”這個(gè)詞, 因?yàn)槲覍?duì)這個(gè)詞也非常反感.

            新技術(shù)應(yīng)該有新技術(shù)的做法, 進(jìn)入ASP.NET的世界, 就應(yīng)該把以往的習(xí)慣改正, 全新的進(jìn)入新的世界.

            以下列舉的都是錯(cuò)誤的做法, 請(qǐng)不要誤以為是推薦的做法而進(jìn)行推廣:

            1. 使用server side include給ASPX引入共同的頁(yè)面構(gòu)圖.

            在ASP.NET的機(jī)制下, 應(yīng)使用ASCX(web user control)來(lái)實(shí)現(xiàn). ASCX提供了更多可控制接口. 并且更重要的是, ASCX是一個(gè)類(lèi). 一個(gè)實(shí)實(shí)在在的類(lèi). 可以全面控制它.

            2.不使用web.config

            web.config提供了非常豐富的配置管理接口. 是一個(gè)應(yīng)用程序最核心的部分. 但是很多人的web.config往往是空的. 或者就從來(lái)沒(méi)有修改過(guò).

            3.使用Response.Write向前端輸出消息

            ASP.NET平臺(tái)下的Response和ASP的Response有很大的不同. 雖然表示同一含義, 但用法上已經(jīng)大不相同. Response.Write的內(nèi)容只會(huì)輸出到頁(yè)的最前端. 向前端輸出消息的正確方法是使用PlaceHolder.

            4.使用一系列session管理用戶連接狀態(tài)

            這種方法在ASP里被濫用. 在ASP.NET環(huán)境下, 正確的做法應(yīng)該是設(shè)計(jì)一個(gè)類(lèi). 結(jié)構(gòu)化地保存數(shù)據(jù). 將對(duì)session或者cookie的訪問(wèn)封裝起來(lái).

            5.使用session驗(yàn)證身份

            這幾乎是通病. ASP.NET提供了一組用于用戶身份驗(yàn)證的API. 類(lèi)型是forms驗(yàn)證或者windows驗(yàn)證. 這一點(diǎn)quick start有一節(jié)講解得很清楚. 可以絕大部分人還是依靠給session賦值來(lái)保持用戶身份驗(yàn)證狀態(tài).

            6.使用Response.Redirect重定向頁(yè)

            這一點(diǎn)在必要的時(shí)候可以使用. 但不可濫用. 事實(shí)證明濫用重定向?qū)?dǎo)致邏輯上的嚴(yán)重混亂. 這是在以頁(yè)為程序單元的時(shí)候的做法. 使用front controller模式將使用戶的操作邏輯集中起來(lái)]

            7.使用太多ASPX頁(yè)

            ASP環(huán)境下的程序單元只有*.asp頁(yè), ASP.NET可不是這樣, 還有后端的類(lèi)庫(kù), ASCX等等. 應(yīng)將業(yè)務(wù)邏輯分別集中在不同的單元, 而不應(yīng)該一項(xiàng)操作使用一個(gè)ASPX. 更多時(shí)候ASPX將做為ASCX或者custom control的容器而管理頁(yè)內(nèi)邏輯. ASPX重用ASCX的同時(shí), ASPX也做為統(tǒng)一的頁(yè)構(gòu)圖重用.

            8.在多個(gè)邏輯單元之間復(fù)制代碼并修改相應(yīng)邏輯

            重用. 重用. 重用. 處理此類(lèi)問(wèn)題的原則是不出現(xiàn)任何相同或相似的過(guò)程. 如果你用上面的方法, 一旦出現(xiàn)重大邏輯更改, 帶來(lái)的結(jié)果將是災(zāi)難性的.

            9.害怕使用DataSet.

            很多人被DataSet嚇壞了. 認(rèn)為”肯定”影響性能. 但連最初的嘗試都不敢. 他們總認(rèn)為他們的產(chǎn)品一定重大, 設(shè)計(jì)上應(yīng)該”慎重”. 他們往往使用ArrayList或者設(shè)計(jì)低級(jí)的類(lèi)來(lái)保存集合數(shù)據(jù). 進(jìn)行艱難的數(shù)據(jù)倒入工作.

            10.對(duì)“性能”過(guò)多注意.

            對(duì)ASP.NET ViewState的機(jī)制特別不滿. 或者總是挖空心思迫害人家. 反倒把自己弄得很累. 如果在對(duì)付ViewState的同時(shí)多注意少連幾次數(shù)據(jù)庫(kù)也許更文明些.

            11.應(yīng)用程序根目錄很亂.

            ASP.NET是開(kāi)發(fā)項(xiàng)目. 不是網(wǎng)站. 應(yīng)該把不同的資源分類(lèi)放置. 例如把所有靜態(tài)資源(樣式表, 腳本, 圖像)組織到一起. 甚至可以寫(xiě)一組API來(lái)管理他們. ASPX應(yīng)該放在一起. ASCX應(yīng)該放在一起. .*.cs呢? 應(yīng)該把他們放到另外一個(gè)project里.

            12.不厭其煩的寫(xiě)訪問(wèn)數(shù)據(jù)庫(kù)的過(guò)程

            應(yīng)該把這工作交給DataAccess Application Block. 你自己還要開(kāi)關(guān)connection, 何苦呢.

            13.自己寫(xiě)的東西最靠得住.

            事實(shí)往往正好相反. 多注意使用人家寫(xiě)好的產(chǎn)品. 又不收你錢(qián), 何苦那么愛(ài)面子呢.

            14. 胡亂命名ASPX文件名

            這是最讓人痛苦的了. ASPX文件名不僅需要容易識(shí)別. 還應(yīng)該遵循一定規(guī)則. 因?yàn)閎ehind每個(gè)ASPX都會(huì)有一個(gè)同名的類(lèi), 想象一下, 多難受. 另外大部分人不知道管理自己的項(xiàng)目的name space. 讓人好像看到一本帳一樣.

            15.從來(lái)不作繼承或派生

            一些具有相同行為的類(lèi), 應(yīng)該從公共的基類(lèi)派生出來(lái). 實(shí)際意義上, 我們的ASPX應(yīng)該有一個(gè)基類(lèi)PageBase. 因?yàn)榭傆幸恍┕驳奶匦孕枰橄蟪鰜?lái).

            16.零property

            他們的類(lèi)(ASPX所對(duì)應(yīng))里只有private method. 不公開(kāi)自己的任何秘密. 可以這一定是JAVA的遺老干的事.

            17. 零ASCX

            不用說(shuō), 他還沒(méi)學(xué)會(huì)ASP.NET

            18.使用DreamWeaver“畫(huà)“ASPX

            這批人是美工. 甚至有一些人在非常陶醉地討論如何更好地“整合“ DreamWeaver和Visual Studio.

            19.只熟悉System.Web.UI.WebControl和System.Data.SqlClient應(yīng)該還有一些值得熟悉的類(lèi)庫(kù).

            20.零注釋

            這些都是心里很明白的快手. 一任IDE生成的缺省注釋橫在那里不管.

            21.零事件

            對(duì)“事件驅(qū)動(dòng)“一無(wú)所知. 只知道在Page_Load()里寫(xiě)過(guò)程. 或者雙擊一個(gè)按鈕寫(xiě)Xxx_Clock()過(guò)程. 在他們的程序里看不到event和delegate

            posted on 2006-05-10 11:26 Jeff-Chen 閱讀(439) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ASP.NET
            久久综合成人网| 久久精品无码免费不卡| 久久久久免费看成人影片| 久久久久久久久无码精品亚洲日韩 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久99精品综合国产首页| 国产一区二区精品久久凹凸| 亚洲国产成人精品无码久久久久久综合 | 久久精品国产色蜜蜜麻豆| 亚洲中文字幕久久精品无码APP| 成人综合伊人五月婷久久| 久久国产精品视频| 日产精品久久久一区二区| 99久久婷婷国产一区二区| 久久亚洲私人国产精品| 亚洲国产成人精品91久久久| 国产∨亚洲V天堂无码久久久| 久久国产视频99电影| 国产一级做a爰片久久毛片| 精品伊人久久大线蕉色首页| 久久高潮一级毛片免费| 国产精品久久亚洲不卡动漫| 精品久久久无码人妻中文字幕| 欧美精品一区二区精品久久| 精品久久久久久亚洲精品| 精产国品久久一二三产区区别| 久久久久久国产精品美女| 99久久99久久精品国产片果冻| 狠狠色丁香久久综合婷婷| 亚洲国产精品无码久久SM| 久久精品国产2020| 国产成人久久精品一区二区三区| 性做久久久久久久久| 四虎久久影院| 7777久久久国产精品消防器材| 思思久久好好热精品国产| 性高朝久久久久久久久久| 亚洲精品99久久久久中文字幕| 亚洲日本va午夜中文字幕久久 | 国产精品99久久久久久猫咪 | 久久综合久久性久99毛片|