淺談ASP.NET服務(wù)器標準控件
ASP.NET控件我們稱之為ASP.NET服務(wù)器標準控件,當(dāng)用貫了控件的話,有時候你幾乎會忘記html語言的存在.當(dāng)遇到一個問題時,業(yè)務(wù)邏輯除外,你可能首先想到的是,有沒有一個控件可以解決我的問題.我相信一般情況下是有的.可能一個很復(fù)雜的效果,讓一個封裝好的控件一下子就解決了.當(dāng)我們對內(nèi)置的控件熟悉以后,我們開始討論一些控件的使用技巧,比如GridView一些高級控件,我也曾經(jīng)學(xué)過如"如何在GridView中為按鈕添加提示框"."如何在GridView中鼠標經(jīng)過時更改顏色"等.我們開始樂在其中,對著控件寫著控件.屬性=.... 的N多語句.
假如我們當(dāng)初沒接觸過HTML,JavaScript而直接轉(zhuǎn)戰(zhàn)學(xué)習(xí)ASP.NET服務(wù)器標準控件,你會感覺ASP.NET是如此的簡單.這個便是剛學(xué)控件的最初感覺.
工具使用者
這里的工具使用者是指一般網(wǎng)頁設(shè)計工具
記得剛學(xué)DreamWeaver的時候,我們可以在DreamWeaver做很多的JavaScript特效,初學(xué)者就喜歡搞這些東西.至少在接觸ASP.NET之前,我仔細學(xué)過html,接著再是DW,所以當(dāng)時html代碼還是看的懂的,當(dāng)加入特效以后,就產(chǎn)生了一大堆的JS,頭暈了.當(dāng)我想修改的時候,不敢動js的部分,怕改錯.在此ASP.NET控件可以代替你之前的暈暈的感覺,把這些js代碼全部封裝好,不讓你看到,你只需要設(shè)置設(shè)置屬性就好了,問題解決了.
另外服務(wù)器控件設(shè)計時的呈現(xiàn)效果并不好,只能是在Visual Studio環(huán)境下,讓一個網(wǎng)頁設(shè)計者來熟悉一個強大的自定義控件是比較痛苦的.根本摸不著頭腦.
學(xué)習(xí)再學(xué)習(xí)
這里我們千萬不可以忘記我們是在做網(wǎng)頁,是在寫html,html標簽永遠不會變(htc除外),當(dāng)你使用一個新的服務(wù)器控件時,你就不得不再去學(xué)習(xí)了解這個控件的一些屬性和方法,打開IE一看便會生成大堆的html代碼,本質(zhì)未變.你的要求,這個控件現(xiàn)在可以滿足你,過了明天可能就說不準了,你可能需要尋找另外的控件了,需要再學(xué)習(xí).
回頭再想想反正最后生成的效果是一樣的,只不過用DreamWeaver的時候我直接看到了一些復(fù)雜的js代碼,我不要用控件了,麻煩,老是跟一些不認識的標簽打交道.
開始學(xué)習(xí)自定義控件
對于這門技術(shù),我真的非常喜歡,學(xué)習(xí)的過程中,我也會接觸到一些很酷的效果.不知道大家有沒有這樣的習(xí)慣,當(dāng)使用一個控件的時候,首先第一步看效果,第二步則是查看源代碼,源代碼中產(chǎn)生的html就是效果.我們必須承認ASP.NET很多屬性的設(shè)置都是硬編碼,而這些控件的屬性的設(shè)置也可以說是為服務(wù)器端的編程提供方便的,使用起來很方便,設(shè)置屬性便可.
我們不可以否認控件的好處,而且我們有必要使用控件,讓我們拖ASP.NET控件的時候,拖的理直氣壯.
在這里我也看到一些同志說 "我從來不使用控件,直接寫html就好" 招聘的人則寫 "熟悉html代碼,不要會拖控件的."
辛苦開發(fā)的控件真的就沒用嗎?我真的很想說,做好一個控件需要的知識比較全面,好的開發(fā)者,對html,js,css都需要非常熟悉,畢竟控件是需要呈現(xiàn)的,難道控件開發(fā)者就不會直接寫html嗎?不是的,他們只想讓以后的工作更加的方便,不再寫重復(fù)的html代碼,讓控件幫你生成吧.
但話說回來,國內(nèi)專業(yè)開發(fā)控件的比較少,說實話內(nèi)置的控件已經(jīng)足夠了,作為一個控件使用者的心態(tài),則是控件越強越好,所以老是認為控件功能不夠強,其實真的足夠了.再者,你是否考慮過,你真的需要使用控件嗎?比如Label控件,當(dāng)你使用過這個控件以后,你則需要了解下它生成的html代碼,我們是在做 B/S程序,并非C/S程序.
每個控件的呈現(xiàn)都對服務(wù)器的性能有影響,能不用則不用,我們需要遵守這個原則.當(dāng)然這就意味著你要自己全部手動寫代碼了.人都是有惰性的,說是這么說.當(dāng)你寫倦了,你則會想辦法去偷懶.
轉(zhuǎn)控件為框架
服務(wù)器端可以針對控件編程,客戶端也可以針對html標簽寫js代碼,不過頁面標簽ID不可變,這么個寫法,意味著代碼不可以重用,是很可惜的.
于是則出現(xiàn)了客戶端的一些框架.作為使用者,區(qū)別在哪?
IDE寵壞了你,Visual Studio太高級了,而js的調(diào)試比較困難,可能大家對后臺編程比較熟悉,而對JS的一些框架則比較畏懼,不敢使用.
正視控件的存在
在這里為什么要對控件進行對比呢?我更多的是對性能進行了考慮.讓我們正視控件的作用,不可以貶低它,也不可以濫用. 控件越強,在頁面生成的代碼越多,對網(wǎng)頁布局有影響,想修改起來是很困難的.
不僅ASP.NET有控件,java開發(fā)也有struts和webwork,不就是為了節(jié)省開發(fā)時間嗎?你不用控件可以呀,你認為水平到家了便自己封裝好了.
可以把html標簽理解為綠色版,控件則是威力加強版....軟件還分正式完整版和綠色免安裝版呢,以上介紹ASP.NET服務(wù)器標準控件。
【編輯推薦】