asp.net開發(fā)與web標(biāo)準(zhǔn)的沖突問題的一些常見解決方法
論壇中也經(jīng)常有從事.net開發(fā)的新手朋友問一些asp.net開發(fā)過程中與web標(biāo)準(zhǔn)之間的沖突問題,其實(shí)說到底就是客戶端代碼生成的問題。更高深的開發(fā)層面的東西我也說不出來,從頁面前端的角度和大家分享一下建議:
少用asp.net中的服務(wù)器端控件
在Visual Studio中,有一系列強(qiáng)大的控件,讓我們的剛開始學(xué)習(xí).net開發(fā)人員愛不釋手。但vs中的這些控件,大多都是基于winForm的那種模式搬來的,在網(wǎng)頁開發(fā)上,有些控件還是少用為佳,比如:
- 不要什么也沒都統(tǒng)統(tǒng)加form runat="server",有朋友說,不加form runat="server"其他控件很多就不可以用了。是的,我們就是要在必要的地方加,確實(shí)是有表單的地方,自然要加,但絕對(duì)不是.net默認(rèn)的那種,所有頁面都在body標(biāo)簽下第一個(gè)標(biāo)簽就是form。這是不合理的。
- 少用Asp:Gridview這樣的控件,可考慮asp:Repeater控件或者自己去寫第三方控件,反正很簡(jiǎn)單,讓代碼輸出聽你的。
- 用asp:Literal替換asp:Label,asp:Literal輸出是干凈的。
- 少用asp:LinkButton這樣的控件,鏈接就是鏈接,按鈕就是按鈕,沒必要搞一個(gè)什么LinkButton……
- 默認(rèn)的表單驗(yàn)證控件雖然用起來簡(jiǎn)單,但還是自己寫的比較好用。
- 總之,我們要注重代碼輸出的質(zhì)量,而默認(rèn)的控件有些是達(dá)不到這個(gè)要求的。
少用Frameset/Iframe標(biāo)簽
在一般網(wǎng)頁中用框架頁來布局(Header/Sidebar/Content/Footer)的做法基本上已經(jīng)淘汰了,當(dāng)然,后臺(tái)管理這類的應(yīng)用還是可以用的,前端展現(xiàn)的頁面就不可以了,Visual Studio 2005中開始,就有了MasterPage,這個(gè)用起來也非常方便。其實(shí)和早期asp中include header.asp這樣的做法是相似的。
少用PostBack機(jī)制
.net中的postback機(jī)制,有它的理由,合理使用吧,互聯(lián)網(wǎng)產(chǎn)品中少用點(diǎn)沒錯(cuò)!
多看成熟的.net開源產(chǎn)品
比如:微軟開源的oXite、PetShop、Discuz論壇的.net版、BlogEngine、CVBBS等等,都是基于.net開發(fā)的比較好的例子。
多關(guān)注客戶端代碼質(zhì)量
畢竟是基于瀏覽器的,用戶體驗(yàn)、W3C標(biāo)準(zhǔn)、瀏覽器兼容等等,沒有好的客戶端代碼,都是支撐不起來的。
多學(xué)習(xí)必要的客戶端知識(shí)
很多.net初學(xué)者對(duì)html/css/javascript這些客戶端基本知識(shí)了解得不夠,特別是javascript,你會(huì)發(fā)現(xiàn)很多以前你都Postback到服務(wù)器端去做的事情,原來用javascript就可以輕松地在客戶端去完成了!Web開發(fā),這是根基!
前幾天看了下oXite,順便裝上了asp.net MVC Beat,我也不是.net的鐵桿粉絲,但是也就沒有留意,今天抽空新建了一個(gè)MvcApplication示例項(xiàng)目大致地了解了一下,看到了我所希望看到的幾個(gè)亮點(diǎn):
- 代碼生成的非常干凈,這點(diǎn)很重要。
- 不使用現(xiàn)有的將交互返回服務(wù)器的postback模型,也就是說在基于MVC的視圖內(nèi)沒有viewstate或page的生命周期之說。
- 它包括一個(gè)非常強(qiáng)大的URL映射組件,允許你使用非常干凈的URL來建造應(yīng)用。
相關(guān)文章
WebForm獲取checkbox選中的值(幾個(gè)簡(jiǎn)單的示例)
WebForm中用checkbox的地方挺多的,下面寫了幾個(gè)簡(jiǎn)單的例子,方便以后學(xué)習(xí)使用2014-07-07基于MVC5中的Model層開發(fā)數(shù)據(jù)注解
下面小編就為大家分享一篇基于MVC5中的Model層開發(fā)數(shù)據(jù)注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC詳解
這篇文章主要給大家介紹了關(guān)于.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05在.NET中使用Newtonsoft.Json轉(zhuǎn)換,讀取,寫入的方法介紹
Newtonsoft.Json.JsonConvert類是非微軟提供的一個(gè)JSON序列化和反序列的開源免費(fèi)的類庫2012-08-08