ASP.NET开发要抛弃ASP旧习和破烂
ASP.NET開發要拋棄ASP舊習和破爛
使用ASP沒有錯,只要適用夠用就行了。但是在用ASP.NET開發網站或系統的時候,應該拋棄開發ASP時形成的習慣,用ASP.NET的方法去開發,而不是在ASP.NET中用ASP的寫法去做。AD:
使用ASP沒有錯,只要適用夠用就行了。但是在用ASP.NET開發網站或系統的時候,應該拋棄開發ASP時形成的習慣,用ASP.NET的方法去開發,而不是在ASP.NET中用ASP的寫法去做。
在技術更新的進程中,仍然有一些人死抱著已經過了氣的東西不放,也有一些人雖然進入到新的世界,但仍擺脫不了陳舊的習慣,我沒有用”陋習”這個詞,因為我對這個詞也非常反感。
新技術應該有新技術的做法,進入ASP.NET的世界,就應該把以往的習慣改正,全新的進入新的世界,把ASP的破爛扔掉。
以下列舉的都是錯誤的做法,請不要誤以為是推薦的做法而進行推廣:
1. 使用Server Side Include給ASPX引入共同的頁面構圖.
在ASP.NET的機制下,應使用ASCX(web user control)來實現。ASCX提供了更多可控制接口,并且更重要的是,ASCX是一個類,一個實實在在的類,可以全面控制它。
2.不使用web.config
web.config提供了非常豐富的配置管理接口,是一個應用程序最核心的部分,但是很多人的web.config往往是空的,或者就從來沒有修改過。
3.使用Response.Write向前端輸出消息
ASP.NET平臺下的Response和ASP的Response有很大的不同。雖然表示同一含義,但用法上已經大不相同。Response.Write的內容只會輸出到頁的最前端,向前端輸出消息的正確方法是使用PlaceHolder。
4.使用一系列Session管理用戶連接狀態
這種方法在ASP里被濫用。在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。
總結
以上是生活随笔為你收集整理的ASP.NET开发要抛弃ASP旧习和破烂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后续的C++测试并不一定会成功
- 下一篇: 飞秋的模拟实现代码,很好很山寨!