asp.net開發與web標準的衝突問題

来源:http://www.cnblogs.com/aspnetjia/archive/2016/02/22/5206556.html
-Advertisement-
Play Games

Visual Studio .net從2003到現在的2008,一路走來慢慢強大……從以前的vs2003能自動改亂你的html代碼到現在在vs2008中都能直接對html代碼進行w3c標準驗證並提示了,非常不易。 論壇中也經常有從事.net開發的新手朋友問一些asp.net開發過程中與web標準之間


Visual Studio .net從2003到現在的2008,一路走來慢慢強大……從以前的vs2003能自動改亂你的html代碼到現在在vs2008中都能直接對html代碼進行w3c標準驗證並提示了,非常不易。

論壇中也經常有從事.net開發的新手朋友問一些asp.net開發過程中與web標準之間的衝突問題,其實說到底就是客戶端代碼生成的問題。更高深的開發層面的東西我也說不出來,從頁面前端的角度和大家分享一下建議:

少用asp.net中的伺服器端控制項

在Visual Studio中,有一系列強大的控制項,讓我們的剛開始學習.net開發人員愛不釋手。但vs中的這些控制項,大多都是基於winForm的那種模式搬來的,在網頁開發上,有些控制項還是少用為佳,比如:

  • 不要什麼也沒都統統加form runat="server",有朋友說,不加form runat="server"其他控制項很多就不可以用了。是的,我們就是要在必要的地方加,確實是有表單的地方,自然要加,但絕對不是.net預設的那種,所有頁面都在body標簽下第一個標簽就是form。這是不合理的。
  • 少用Asp:Gridview這樣的控制項,可考慮asp:Repeater控制項或者自己去寫第三方控制項,反正很簡單,讓代碼輸出聽你的。
  • 用asp:Literal替換asp:Label,asp:Literal輸出是乾凈的。
  • 少用asp:LinkButton這樣的控制項,鏈接就是鏈接,按鈕就是按鈕,沒必要搞一個什麼LinkButton……
  • 預設的表單驗證控制項雖然用起來簡單,但還是自己寫的比較好用。
  • 總之,我們要註重代碼輸出的質量,而預設的控制項有些是達不到這個要求的。

少用Frameset/Iframe標簽

在一般網頁中用框架頁來佈局(Header/Sidebar/Content/Footer)的做法基本上已經淘汰了,當然,後臺管理這類的應用還是可以用的,前端展現的頁面就不可以了,Visual Studio 2005中開始,就有了MasterPage,這個用起來也非常方便。其實和早期asp中include header.asp這樣的做法是相似的。

少用PostBack機制

.net中的postback機制,有它的理由,合理使用吧,互聯網產品中少用點沒錯!

多看成熟的.net開源產品

比如:微軟開源的oXite、PetShop、Discuz論壇的.net版、BlogEngine、CVBBS等等,都是基於.net開發的比較好的例子。

多關註客戶端代碼質量

畢竟是基於瀏覽器的,用戶體驗、W3C標準、瀏覽器相容等等,沒有好的客戶端代碼,都是支撐不起來的。

多學習必要的客戶端知識

很多.net初學者對html/css/javascript這些客戶端基本知識瞭解得不夠,特別是javascript,你會發現很多以前你都Postback到伺服器端去做的事情,原來用javascript就可以輕鬆地在客戶端去完成了!Web開發,這是根基!

前幾天看了下oXite,順便裝上了asp.net MVC Beat,我也不是.net的鐵桿粉絲,但是也就沒有留意,今天抽空新建了一個MvcApplication示例項目大致地瞭解了一下,看到了我所希望看到的幾個亮點:

  • 代碼生成的非常乾凈,這點很重要。
  • 不使用現有的將交互返回伺服器的postback模型,也就是說在基於MVC的視圖內沒有viewstate或page的生命周期之說。
  • 它包括一個非常強大的URL映射組件,允許你使用非常乾凈的URL來建造應用。
 轉載自:http://www.aspnetjia.com/Cont-1154.html
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • #region 格式化 /// <summary> /// 格式化 /// </summary> /// <param name="sInput">本身字元串</param> /// <param name="args"></param> /// <returns></returns> public
  • int[, ,] array = new int[5, 2, 3]; //定義一個5 * 2 * 3 =30的三維數組(array.Length=30) 多維數組只算一個數組 array[1, 1, 1] = 3; array[1, 1, 2] = 4; 。 。 。 array[5, 2, 2] =
  • 在跟學弟們聊天的過程中,發現一些人在首次接觸Java時,對環境變數配置總是很生疏。可能是由於初學,對一些概念沒有很深刻的理解。本著助人為樂的精神。我決定幫他們一下。寫一個自動配置JDK環境變數的小工具。 其實,整個過程的邏輯並不難: 1、找到jdk的安裝路徑(預設為C:\Program Files\
  • 今天一位同事咨詢Devexpress TreeList控制項綁定自動顯示父子節點對像,但結果是不會顯示帶父子節點關係,而是將所有的節點作為父節點顯示出來了,對像類的代碼如下 public class Item:XPBaseObject { public Item() : base() { } publ
  • $("#找id的")$(".找樣式的") $("div[id]") 選擇所有含有id屬性的div元素 $("input[name='keleyicom']") 選擇所有的name屬性等於'keleyicom'的input元素 $("input[name!='keleyicom']") 選擇所有的na
  • 萬分感謝Fdyo同學給我們帶來的有中文字幕的系列教程! http://zhuanlan.zhihu.com/MSFaith/20364660 下麵是這系列video教程中的一個截圖作為示例,有代碼,有圖片,有彈幕,還有老外! 什麼是通用 Windows 平臺 (UWP) 應用? 通用 Windows
  • 6年過去了,Angular 迎來了2.0版本.Wijmo5與Angular2已經保持了高度一致.Angular 2 要來了,Wijmo 已準備好迎接
  • 回到目錄 Cannot attach the file as database這個異常是在EF的code frist里經常出現的,解決方法很簡單,只要重新啟動一下V11實例即可。 CMD> sqllocaldb.exe stop v11.0 LocalDB instance "v11.0" stop
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...