2013年9月12日 星期四

現在,哪些功能不該用?有哪些替代方法?

這篇文章是源自 ASP.NET Web Blog 的一篇文章:What not to do in ASP.NET, and what to do instead,我覺得寫得不錯,而且對目前使用 ASP.NET (尤其是 Web Form) 開發的程式設計師來說特別重要,因此我將這篇文章翻譯重點部份撰成本文。
ASP.NET 到今天已經發展到 4.5 版,4.5.1 也即將發行,在各次版本的演進與更替中,往往會推出不少的新功能,或是原功能的強化,不過這些都是推出當時的時空因素所設計,HTML/CSS /JavaScript 的演進以及 RESTful API 的觀念日漸成熟,也讓 ASP.NET有很多的功能慢慢得變成不適用,因此 ASP.NET 的開發團隊就在網站上編寫文章來告訴大家哪些功能不要再使用,以及其替代功能為何。
1. 標準功能
1.1 Control Adapter (建議停用,以 HTML/CSS Media Queries 取代)
首 先是 ASP.NET 2.0 推出的 Control Adapter 功能,它是為了要處理不同設備間的 HTML 繪製需求所設計,但是今天 HTML 在跨設備的功能已經被 CSS,尤其是在 Responsive Design 中,HTML5 可以配合 Media Queries 來決定如何繪製 HTML,因此 Control Adapter 已失去它原本的需求,所以建議不要再使用 Control Adapter,而是以 HTML/CSS 與 Media Queries 來替代。
1.2 控制項中的樣式屬性 (建議停用,以 CssClass 配合 CSS 類別取代)
在 ASP.NET 的控制項中都擁有一個 style 的屬性,用來給開發人員設定控制項的 C視覺樣式設定,但是目前的主流是以 CSS 來控制,因此建議不要再使用 style 來操作視覺樣式,而是應該使用 CssClass 來設定 CSS 的類別,由 CSS 類別去操控視覺的樣式。
1.3 頁面與控制項的回呼功能 (建議停用,以正規的 AJAX 作法替代)
ASP.NET 2.0 提出的 Page Callback/Control Callback 是為了早期 AJAX 技術不夠純熟時,為了要做到部份內容更新時所實作出來的暫行作法,現在因為 AJAX 技術已十分成熟,因此應該要改用正規的 AJAX 作法來替代 Page/Control Callback。
正規的 AJAX 作法包含 jQuery, ASP.NET AJAX UpdatePanel, MVC, SignalR, Web API 等 (我個人則建議最好別用 UpdatePanel)。
1.4 瀏覽器能力偵測 (建議停用靜態偵測,改用動態偵測替代)
早 期的瀏覽器能力偵測是寫在 ASP.NET Server-side 裡面,且無法動態變更,屬於靜態的能力偵測,但是現在有 Modernizr 這類偵測瀏覽器是否支援特定功能的 JavaScript 程式庫出現,它的彈性會遠高於 ASP.NET 本身的靜態偵測能力,因此建議使用 Modernizr 或其他相似功能的動態偵測,來替代 ASP.NET 本身的靜態偵測。


更多其他資訊請參考原始文章

沒有留言:

張貼留言