成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>ASP>>新聞內容
ASP后遺癥種種 二十二大積習
作者:春魚 發布時間:2004-7-30 16:35:45 文章來源:http://cnblogs.com

有很大一部分ASP.NET程序員是由ASP遷移過來的. 這本是一個很自然的過渡. 殊不知ASP.NET與ASP相比是一個全新的技術. 他們僅僅是名字上相似. 或者為了技術的延續性而特意保留了一些類似的API而已. 但是這帶來了問題. 很多人僅僅以為ASP.NET是ASP的升級, 或者是.NET版本. 哪里知道.NET是一項全新的應用平臺. 如果把ASP看作貝殼, 那么ASP.NET將是海洋.

但是太多的人沒有意識到這一點. 或者看不全. 很多人按照他們習慣了的方式繼續寫ASP.NET應用. 縱然積習的力量是巨大的, 但改變就必須有陣痛, 不徹底根除一些不合適的做法, 就難以獲得真知。

以下列舉的都是錯誤的做法, 請不要誤以為是推薦的做法而進行推廣:

1. 使用server side include給ASPX引入共同的頁面構圖.
在ASP.NET的機制下, 應使用ASCX(web user control)來實現統一的頁面構圖. ASCX提供了更多可控制接口. 并且更重要的是, ASCX是一個類. 一個實實在在的類. 可以全面控制它. 給ASPX使用server side include 將會帶來很多問題。

2.不使用web.config
web.config提供了非常豐富的配置管理接口. 是一個應用程序最核心的部分.  但是很多人的web.config往往是空的. 或者就從來沒有修改過.

3.使用Response.Write向前端輸出消息
ASP.NET平臺下的Response和ASP的Response有很大的不同. 雖然表示同一含義, 但用法上已經大不相同. Response.Write的內容只會輸出到頁的最前端. 向前端輸出消息的正確方法是使用PlaceHolder.

4.使用一系列 session 管理用戶連接狀態
這種方法在ASP里被濫用. 引入過多的 session 將會使應用變得極難管理. 在ASP.NET環境下, 正確的做法應該是設計一個類. 結構化地保存數據. 將對session或者cookie的訪問封裝起來.

5.使用session驗證身份
這幾乎是通病. ASP.NET提供了一組用于用戶身份驗證的API. 類型是forms驗證或者windows驗證. 這一點quick start有一節講解得很清楚. 可以絕大部分人還是依靠給 session 賦值來保持用戶身份驗證狀態.

6.使用Response.Redirect重定向頁
這一點在必要的時候可以使用. 但不可濫用. 事實證明濫用重定向將導致邏輯上的嚴重混亂. 這是在以頁為程序單元的時候的做法. 使用front controller模式將使用戶的操作邏輯集中起來]

7.使用太多ASPX頁
ASP環境下的程序單元只有*.asp頁, ASP.NET可不是這樣, 還有后端的類庫, ASCX等等. 應將業務邏輯分別集中在不同的單元, 而不應該一項操作使用一個ASPX. 更多時候ASPX將做為ASCX或者custom control的容器而管理頁內邏輯. ASPX重用ASCX的同時, ASPX也做為統一的頁構圖重用.

8.在多個邏輯單元之間復制代碼并修改相應邏輯
重用. 重用. 重用. 處理此類問題的原則是不出現任何相同或相似的過程. 如果你用上面的方法, 一旦出現重大邏輯更改, 帶來的結果將是災難性的.

9.害怕使用DataSet.
很多人被DataSet嚇壞了. 認為”肯定”影響性能. 但連最初的嘗試都不敢. 他們總認為他們的產品一定重大, 設計上應該”慎重”. 他們往往使用ArrayList或者設計低級的類來保存集合數據. 進行艱難的數據倒入工作.

10.對“性能”過多注意.
對ASP.NET ViewState的機制特別不滿. 或者總是挖空心思迫害人家. 反倒把自己弄得很累. 如果在對付ViewState的同時多注意少連幾次數據庫也許更文明些.

11.應用程序根目錄很亂.
ASP.NET是開發項目. 不是網站. 應該把不同的資源分類放置. 例如把所有靜態資源(樣式表, 腳本, 圖像)組織到一起. 甚至可以寫一組API來管理他們. ASPX應該放在一起. ASCX應該放在一起. .*.cs呢? 應該把他們放到另外一個project里.

12.不厭其煩的寫訪問數據庫的過程
應該把這工作交給DataAccess Application Block. 你自己還要開關connection, 何苦呢.

13.自己寫的東西最靠得住.
事實往往正好相反. 多注意使用人家寫好的產品. 又不收你錢, 何苦那么愛面子呢.

14. 胡亂命名ASPX文件名
這是最讓人痛苦的了. ASPX文件名不僅需要容易識別. 還應該遵循一定規則. 因為behind每個ASPX都會有一個同名的類, 想象一下, 多難受. 另外大部分人不知道管理自己的項目的name space. 讓人好像看到一本帳一樣.

15.從來不作繼承或派生
一些具有相同行為的類, 應該從公共的基類派生出來. 實際意義上, 我們的ASPX應該有一個基類PageBase. 因為總有一些公共的特性需要抽象出來.

16.零property
他們的類(ASPX所對應)里只有private method. 不公開自己的任何秘密. 可以這一定是JAVA的遺老干的事.

17. 零ASCX
不用說, 他還沒學會ASP.NET

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

19.只熟悉System.Web.UI.WebControl和System.Data.SqlClient
應該還有一些值得熟悉的類庫.

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

21.零事件
對“事件驅動“一無所知. 只知道在Page_Load()里寫過程. 或者雙擊一個按鈕寫Xxx_Clock()過程. 在他們的程序里看不到event和delegate.

22. 研究在“頁間傳值“
典型的做法是討論總結出幾種頁間“傳值的方法“. 例如使用query string, 使用session, 使用form post 等等. 豈不知ASP.NET下的form是缺省的post到本頁的. 我們也許再也不需要使用Request.Form[“name“]獲得表單的值了. 雖然框架保留了這樣的接口.
實際上, 在ASP.NET環境下, 很少在模塊或者程序單元間傳送常規類型的值. 在事件驅動的機制下, 我們一般不會讓某頁去主動獲取想象中的“傳值“, 這些過程一般被封裝在事件或者狀態中. 所以也就不存在頁間或者窗口或者框架間傳值的問題. 一般而言, 我們會有專用的深層機制隱藏這一過程. 掌握這樣一個原則: 在業務過程中避免接觸過多系統的接口.

以上是想到哪寫到哪, 大家如果碰上讓你深惡痛絕的事, 也可以補充.
僅僅是個人看法.


最新更新
·數據庫被掛馬的ASP處理方法
·ASP快速獲取遠程文件大小的方
·用ASP屏蔽迅雷和旋風下載工具
·解決ASP中傳送中文參數亂碼的
·ASP+AJAX做類似Google的搜索
·ASP的一個非常棒的Debug類(
·ASP中常用的服務器檢測源代碼
·優化ASP中執行SQL效率的五個
·ASP種msxml3.dll 800c0005錯
·掛QQ的ASP版本網頁源代碼
相關信息
·數據庫被掛馬的ASP處理方法
·ASP快速獲取遠程文件大小的方法
·用ASP屏蔽迅雷和旋風下載工具的P2P下載
·解決ASP中傳送中文參數亂碼的問題
·ASP+AJAX做類似Google的搜索提示
·ASP的一個非常棒的Debug類(VBScript)
·ASP中常用的服務器檢測源代碼
·優化ASP中執行SQL效率的五個方法
·ASP種msxml3.dll 800c0005錯誤的另一解決方法
·掛QQ的ASP版本網頁源代碼
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 富顺县| 鹰潭市| 道孚县| 池州市| 衡阳县| 上饶市| 石林| 延长县| 沈丘县| 汉阴县| 平南县| 长子县| 巧家县| 沂水县| 华蓥市| 屏南县| 新兴县| 辽阳县| 海阳市| 泸定县| 邓州市| 苏州市| 伊金霍洛旗| 咸丰县| 新郑市| 永年县| 长顺县| 襄樊市| 枣强县| 鄂温| 周至县| 双鸭山市| 东宁县| 手游| 永康市| 梓潼县| 龙州县| 苍南县| 大化| 乐陵市| 涡阳县|