asp.net開(kāi)發(fā)與web標(biāo)準(zhǔn)的沖突問(wèn)題的一些常見(jiàn)解決方法
論壇中也經(jīng)常有從事.net開(kāi)發(fā)的新手朋友問(wèn)一些asp.net開(kāi)發(fā)過(guò)程中與web標(biāo)準(zhǔn)之間的沖突問(wèn)題,其實(shí)說(shuō)到底就是客戶(hù)端代碼生成的問(wèn)題。更高深的開(kāi)發(fā)層面的東西我也說(shuō)不出來(lái),從頁(yè)面前端的角度和大家分享一下建議:
少用asp.net中的服務(wù)器端控件
在Visual Studio中,有一系列強(qiáng)大的控件,讓我們的剛開(kāi)始學(xué)習(xí).net開(kāi)發(fā)人員愛(ài)不釋手。但vs中的這些控件,大多都是基于winForm的那種模式搬來(lái)的,在網(wǎng)頁(yè)開(kāi)發(fā)上,有些控件還是少用為佳,比如:
- 不要什么也沒(méi)都統(tǒng)統(tǒng)加form runat="server",有朋友說(shuō),不加form runat="server"其他控件很多就不可以用了。是的,我們就是要在必要的地方加,確實(shí)是有表單的地方,自然要加,但絕對(duì)不是.net默認(rèn)的那種,所有頁(yè)面都在body標(biāo)簽下第一個(gè)標(biāo)簽就是form。這是不合理的。
- 少用Asp:Gridview這樣的控件,可考慮asp:Repeater控件或者自己去寫(xiě)第三方控件,反正很簡(jiǎn)單,讓代碼輸出聽(tīng)你的。
- 用asp:Literal替換asp:Label,asp:Literal輸出是干凈的。
- 少用asp:LinkButton這樣的控件,鏈接就是鏈接,按鈕就是按鈕,沒(méi)必要搞一個(gè)什么LinkButton……
- 默認(rèn)的表單驗(yàn)證控件雖然用起來(lái)簡(jiǎn)單,但還是自己寫(xiě)的比較好用。
- 總之,我們要注重代碼輸出的質(zhì)量,而默認(rèn)的控件有些是達(dá)不到這個(gè)要求的。
少用Frameset/Iframe標(biāo)簽
在一般網(wǎng)頁(yè)中用框架頁(yè)來(lái)布局(Header/Sidebar/Content/Footer)的做法基本上已經(jīng)淘汰了,當(dāng)然,后臺(tái)管理這類(lèi)的應(yīng)用還是可以用的,前端展現(xiàn)的頁(yè)面就不可以了,Visual Studio 2005中開(kāi)始,就有了MasterPage,這個(gè)用起來(lái)也非常方便。其實(shí)和早期asp中include header.asp這樣的做法是相似的。
少用PostBack機(jī)制
.net中的postback機(jī)制,有它的理由,合理使用吧,互聯(lián)網(wǎng)產(chǎn)品中少用點(diǎn)沒(méi)錯(cuò)!
多看成熟的.net開(kāi)源產(chǎn)品
比如:微軟開(kāi)源的oXite、PetShop、Discuz論壇的.net版、BlogEngine、CVBBS等等,都是基于.net開(kāi)發(fā)的比較好的例子。
多關(guān)注客戶(hù)端代碼質(zhì)量
畢竟是基于瀏覽器的,用戶(hù)體驗(yàn)、W3C標(biāo)準(zhǔn)、瀏覽器兼容等等,沒(méi)有好的客戶(hù)端代碼,都是支撐不起來(lái)的。
多學(xué)習(xí)必要的客戶(hù)端知識(shí)
很多.net初學(xué)者對(duì)html/css/javascript這些客戶(hù)端基本知識(shí)了解得不夠,特別是javascript,你會(huì)發(fā)現(xiàn)很多以前你都Postback到服務(wù)器端去做的事情,原來(lái)用javascript就可以輕松地在客戶(hù)端去完成了!Web開(kāi)發(fā),這是根基!
前幾天看了下oXite,順便裝上了asp.net MVC Beat,我也不是.net的鐵桿粉絲,但是也就沒(méi)有留意,今天抽空新建了一個(gè)MvcApplication示例項(xiàng)目大致地了解了一下,看到了我所希望看到的幾個(gè)亮點(diǎn):
- 代碼生成的非常干凈,這點(diǎn)很重要。
- 不使用現(xiàn)有的將交互返回服務(wù)器的postback模型,也就是說(shuō)在基于MVC的視圖內(nèi)沒(méi)有viewstate或page的生命周期之說(shuō)。
- 它包括一個(gè)非常強(qiáng)大的URL映射組件,允許你使用非常干凈的URL來(lái)建造應(yīng)用。
相關(guān)文章
ASP.NET中內(nèi)嵌頁(yè)面代碼的一個(gè)問(wèn)題
如果頁(yè)面繼承了一個(gè)父頁(yè)面,而且當(dāng)前頁(yè)面用new覆蓋了父頁(yè)面的某個(gè)屬性2010-02-02
.NET 與樹(shù)莓派WS28XX 燈帶的顏色漸變動(dòng)畫(huà)效果的實(shí)現(xiàn)
所謂顏色漸變動(dòng)畫(huà),首先,你要確定兩種顏色——起始色和最終色,比如從綠色變成紅色,綠色是起始,紅色是終點(diǎn)。這篇文章主要介紹了.NET 與樹(shù)莓派WS28XX 燈帶的顏色漸變動(dòng)畫(huà),需要的朋友可以參考下2021-12-12
.Net Compact Framework開(kāi)發(fā)小技巧 推薦
這篇文章對(duì)于.Net Compact Framework開(kāi)發(fā)的朋友有一定的幫助,內(nèi)容比較實(shí)用。2009-02-02
深入理解Asp.net中DataBinder.Eval的用法總結(jié)
本篇文章是對(duì)Asp.net中DataBinder.Eval的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
大型門(mén)戶(hù)網(wǎng)站實(shí)現(xiàn)的十四大技術(shù)小結(jié)
參考下大型門(mén)戶(hù)網(wǎng)站的技術(shù),大家可以盡量的備份好服務(wù)器。2010-10-10
.Net Core學(xué)習(xí)教程之在Mvc中簡(jiǎn)單的使用日志組件
這篇文章主要給大家介紹了關(guān)于.Net Core學(xué)習(xí)教程之在Mvc中簡(jiǎn)單使用日志組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06
基于MVC5中的Model層開(kāi)發(fā)數(shù)據(jù)注解
下面小編就為大家分享一篇基于MVC5中的Model層開(kāi)發(fā)數(shù)據(jù)注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12

