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

最佳ASP.NET編程習(xí)慣

2010-08-28 10:45:06來(lái)源:西部e網(wǎng)作者:

    初學(xué)編程的朋友往往喜歡收集一些很“奇妙”的編程技巧,然而,技巧的積累往往并沒(méi)有提高程序質(zhì)量,反而引導(dǎo)一些編程者一味追求奇和新,忘記了基本編程習(xí)慣的培養(yǎng),不利于團(tuán)隊(duì)的合作,可能,這也是中國(guó)并不缺少聰明的程序員,但是缺少聰明的開(kāi)發(fā)團(tuán)隊(duì)的一個(gè)原因吧。在ASP.NET的開(kāi)發(fā)中,可以學(xué)習(xí)的技巧不少,但是,一些基本的編程習(xí)慣我們一定要養(yǎng)成,這樣不但能根本上提高程序質(zhì)量和開(kāi)發(fā)效率,而且,也利于程序的閱讀和團(tuán)隊(duì)開(kāi)發(fā)。如果自己寫(xiě)的程序只有自己可以看懂或者只有幾個(gè)人可以看懂,即使程序技巧神乎其技,對(duì)于程序的升級(jí)和維護(hù)都是致命問(wèn)題。

    一、 錯(cuò)誤(以外)的處理

    程序健壯性最基本要求就是程序錯(cuò)誤的處理與捕捉,在ASP.NET中,錯(cuò)誤的處理有和其他編程語(yǔ)言一樣的機(jī)制,可以使用Try…Catch…Finally等方式,這一點(diǎn)和ASP相比具有較大的進(jìn)步。而且,使用這些錯(cuò)誤處理方法,可以大大提高程序的可讀性和程序調(diào)試速度,在這幾個(gè)優(yōu)勢(shì)結(jié)合的情況下,我們更加應(yīng)該注意這一點(diǎn)。
關(guān)于錯(cuò)誤的處理,我們可以參考這篇文章(英文):
http://www.123aspx.com/redir.aspx?res=28336

    二、 字符串的處理

    網(wǎng)頁(yè)設(shè)計(jì)中,字符串的處理幾乎是最常見(jiàn)的了。使用ASP.NET以后,字符串的處理比ASP的速度快,而且,在ASP.NET中,專(zhuān)門(mén)增加一個(gè)字符串處理類(lèi)StringBulider,使用這個(gè)類(lèi)可以完成一些常見(jiàn)的字符串操作,而最主要的,使用StringBuilder可以大大提高字符串處理速度。
在ASP.NET中,最常見(jiàn)的就是使用“&”來(lái)連接兩個(gè)字符串:
Dim myOutputString As String = "My name is"
Dim myInputString As String = " Alex"
myOutputString = myOutputString & myInputString
Response.Write(myoutputString)

    現(xiàn)在,我們來(lái)看看StringBuilder的使用,在使用StringBuilder的時(shí)候,我們對(duì)字符串可以做一些基本的操作,比如Append、Replace、Insert、Remove等,現(xiàn)在我們來(lái)看具體舉例。

    (1)StringBuilder中Append的使用
    Append和其他語(yǔ)言的Append一樣,就是在字符串最后增加其他字符。

    在以上的程序中,用Append方法實(shí)現(xiàn)了一個(gè)表格的輸出,需要注意的一點(diǎn)是,StringBulider必須首先使用ToString()方法將其轉(zhuǎn)化為String類(lèi)型才可以直接輸出。在以上的舉例中,我們看到的全部是Append一個(gè)直接的字符串,其實(shí),這個(gè)方法有一個(gè)很方便的功能,那就是可以直接Append其他類(lèi)型的變量,比如可以直接Appemd一個(gè)Integer類(lèi)型的數(shù)值,當(dāng)然,我們輸出以后自動(dòng)轉(zhuǎn)化為一個(gè)字符串:

(2)字符串中其他方法的使用
我們還可以使用其他方法,我們來(lái)看看常見(jiàn)的:
Insert方法,可以在指定位置插入其他字符,使用方法:Insert(插入位置,插入字符);
Remove方法,可以在指定位置刪除指定字?jǐn)?shù)字符,使用方法:Remove(其實(shí)位置,字符數(shù));
Replace方法,可以替換指定字符,使用方法:replace(被替換字符串,替換字符串)
字符串的具體介紹和使用方法可以參考以下文章(英文):
http://aspfree.com/aspnet/stringbuilder.aspx
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp

    三、 數(shù)據(jù)庫(kù)鏈接Connection和DataReader的關(guān)閉

    在使用ASP編程的時(shí)候,我們就已經(jīng)知道,在使用數(shù)據(jù)庫(kù)連接以后,一定要將連接關(guān)閉,然后設(shè)置為NoThing。在Asp.NET中,我們?nèi)匀恍枰@樣使用,不過(guò),在ASP.NET中,由于使用了ADO.NET,所以,在一些相關(guān)的處理方面,實(shí)際還是有一些細(xì)微的區(qū)別,而這些區(qū)別,往往也就是我們?cè)O(shè)計(jì)的時(shí)候最需要注意的。現(xiàn)在,我們通過(guò)舉例,來(lái)看看在常見(jiàn)的ADO.NET操作中,需要注意哪些問(wèn)題。

(1)舉例一
Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand = new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
Dim myDataReader As SqlDataReader
Try
myConnection.Open()
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DropDownList1.DataSource = myDataReader
DropDownList1.DataBind()
Catch myException As Exception
Response.Write("An error has occurred: " & myException.ToString())
Finally
If Not myDataReader Is Nothing Then
\\\'關(guān)閉DataReader
myDataReader.Close()
End If
End Try
在以上的舉例中,我們注意到,這里只關(guān)閉了DataReader,并沒(méi)有關(guān)閉Connection。為什么呢?仔細(xì)觀察以上的ExecuteReader方法,原來(lái),設(shè)置了ExecuteReader參數(shù),當(dāng)執(zhí)行完ExecuteReader以后,會(huì)自動(dòng)關(guān)閉Connection。所以,這樣設(shè)置以后,就沒(méi)有必要再手動(dòng)關(guān)閉Connection了。

(2)舉例二

Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand = new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
Try
myConnection.Open()
DropDownList1.DataSource = myCommand.ExecuteReader()
DropDownList1.DataBind()
Catch myException As Exception
Response.Write("An error has occurred: " & myException.ToString())
Finally
If Not myConnection Is Nothing AndAlso ((myConnection.State And ConnectionState.Open) = ConnectionState.Open) Then
myConnection.Close()
End If
End Try

    在以上的舉例中,我們發(fā)現(xiàn),居然沒(méi)有關(guān)閉DataReader。為什么呢?其實(shí)上面的代碼中,沒(méi)有直接生成DataReader對(duì)象,當(dāng)然也就無(wú)從關(guān)閉了。需要注意一點(diǎn)的是,在關(guān)閉Connection之前,程序首先判斷Connection是否已經(jīng)打開(kāi),如果沒(méi)有打開(kāi),也就沒(méi)必要關(guān)閉了。

    四、使用Web.Config/Maching.Config保存常用數(shù)據(jù)

    一些數(shù)據(jù)我們需要時(shí)常使用,比如使用ADO.NET的時(shí)候,最常見(jiàn)的就是數(shù)據(jù)庫(kù)連接語(yǔ)句,在ASP中,我們常常將這些信息保存在Application中。當(dāng)然,在ASP.NET中,也可以這樣,不過(guò),ASP.NET已經(jīng)提供一個(gè)配置文件WEB.Config,所以,我們最好將這些信息保存在WEB.Config中,當(dāng)然,我們也可以保存在Machine.Config中,不過(guò),這樣的話,整個(gè)網(wǎng)站都必須使用,所以,一般我們都使用Web.Config。現(xiàn)在,我們來(lái)看具體這個(gè)文件的使用。

    (1)Web.Config文件的設(shè)置
    首先,我們來(lái)看Web.Config的設(shè)置,我們?cè)谶@個(gè)文件中增加設(shè)置以下兩個(gè)項(xiàng)目,設(shè)置如下:

    (2)變量的使用

    以上XML文件設(shè)置了dsn和someotherkey兩個(gè)變量,現(xiàn)在我們看看程序中怎樣使用:

    上面的程序我們看到,使用這樣定義的變量很簡(jiǎn)單也很方便。

    五、使用.NET的方式調(diào)試程序

    ASP程序的調(diào)試一直是編寫(xiě)ASP最難的地方,這一點(diǎn),ASP程序員大概都深有體會(huì),因?yàn)榇蠹叶际鞘褂肦esponse.write來(lái)調(diào)試。而這樣調(diào)試最大的缺點(diǎn)是,當(dāng)我們調(diào)試完畢,必須一個(gè)個(gè)來(lái)刪除或者注釋掉這些信息,想一想,如果程序代碼達(dá)到幾百行或者頁(yè)面很多的程序,這樣的工作是多么枯燥,最怕一點(diǎn),忘記將這些調(diào)試用的write刪除,可能在用戶使用的時(shí)候就會(huì)出現(xiàn)一些不雅的調(diào)試信息。

    使用ASP.NET以后,我們可以直接定義Trace來(lái)實(shí)現(xiàn)程序的調(diào)試。以上提到的麻煩可以輕松解決,熟悉,Trace可以通過(guò)具體頁(yè)面和在Web.Config配置文件中來(lái)定義實(shí)現(xiàn),這樣,當(dāng)程序調(diào)試完畢以后,直接將Trace設(shè)置為Off就可以了,這樣,程序就不會(huì)有調(diào)試功能了。

    (1)頁(yè)面調(diào)試的實(shí)現(xiàn)

    在一個(gè)具體的頁(yè)面需要實(shí)現(xiàn)調(diào)試功能的時(shí)候,我們可以這樣設(shè)置:

    (2)定義WEB.Config實(shí)現(xiàn)

    在WEB.CONFIG中,我們也可以實(shí)現(xiàn)程序調(diào)試的打開(kāi):

    使用以上的設(shè)置打開(kāi)Trace以后,我們?cè)诰唧w的程序中就可以使用Trace來(lái)調(diào)試程序了,比如:

Trace.Write("This is some custom debugging information")

    或者調(diào)試程序變量:
Trace.Write("This is is my variable and it\\\'s value is:" & myVariable.ToString())
以上設(shè)置我們可以看出,在ASP.NET中,程序調(diào)試功能已經(jīng)很方便簡(jiǎn)單了,我們?cè)诔绦蛟O(shè)計(jì)中如果忽略這些特點(diǎn),繼續(xù)采用ASP的思維來(lái)設(shè)計(jì)程序,那么我們的程序不但效率沒(méi)有提高,也增加了其他開(kāi)發(fā)者合作的難度。

    六、總結(jié)

    以上的一些程序編寫(xiě)習(xí)慣,我們可以慢慢養(yǎng)成,在程序設(shè)計(jì)的時(shí)候,不要太在意程序是否最簡(jiǎn)潔靈活,對(duì)于一般開(kāi)發(fā)者而言,程序規(guī)范化和可讀性可能比追求程序的靈活性更加重要。在互聯(lián)網(wǎng)資源越來(lái)越豐富的情況下,我們可以參考一些很規(guī)范的程序源代碼來(lái)學(xué)習(xí),當(dāng)然,最好的莫過(guò)于微軟自己的東西,我們可以參考以下網(wǎng)址:http://www.asp.net ,關(guān)于更多的程序編寫(xiě)問(wèn)題,我們可以參考以下網(wǎng)址:
http://www.gotdotnet.com/team/asp/ASP.NET%20Performance%20Tips%20and%20Tricks.aspx

 

關(guān)鍵詞:ASP.NET
主站蜘蛛池模板: 永登县| 酉阳| 抚宁县| 奉节县| 合山市| 辽源市| 瓦房店市| 蛟河市| 壤塘县| 南川市| 蚌埠市| 固镇县| 奈曼旗| 昔阳县| 尉氏县| 周宁县| 博客| 千阳县| 邻水| 温宿县| 常德市| 称多县| 凤阳县| 公安县| 喜德县| 太湖县| 荣昌县| 宜章县| 绵竹市| 晋宁县| 甘洛县| 荔浦县| 洛川县| 罗山县| 永安市| 鹤庆县| 湖口县| 蒲江县| 双辽市| 昌邑市| 新竹市|