Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          [鏈接] ASP.NET的"六大罪狀"

          Posted on 2007-01-25 23:01 laogao 閱讀(769) 評論(0)  編輯  收藏 所屬分類: Programming in GeneralOther Languages

          http://www.garrettdimon.com/archives/aspnet-vs-front-end-architecture

          該文作者細數了他在使用ASP.NET進行開發的過程中遇到的6點不爽的地方,主要都集中在前臺架構上,包括大量內聯的風格標簽、不同瀏覽器生成不同頁面代碼、失敗的標記設計、缺乏語意一致性、服務器端label和客戶端label的脫節、服務器端ID和客戶端ID脫節等等。尤其當你想使用標準的CSS,構建數據結構和表現分離的清晰頁面時,ASP.NET的一些默認的內部處理可以讓你對ASP.NET為何這樣做完全無語。比較有趣的是本文后面的回復,其中有不少與樓主同病相憐的網友,還有來自微軟員工的為ASP.NET辯護的聲音。

          我一直對MS在很多設計思路和決定上心存疑慮,不明白為什么MS硬是要自成風格搞自己那一套蹩腳的所謂"規范"或"標準",似乎在鼓勵大家follow一個并不清晰、多少有些混雜無章的設計架構,其實為了方便它實現更cool的WYSIWYG開發工具。就拿今天來說,本來我們項目定義好所有模塊都按BO和UI分開,BO里面的類和UI里面的類各施其責,原則上UI依賴BO,而不是反過來,按照我的理解和期望,Windows.Forms命名空間應該是由UI層來依賴,而非BO層。很顯然,因為我們的form都放在UI層,肯定是依賴Windows.Forms了,而我們盡可能把所有業務邏輯代碼放到BO層。但是為了臨時實現一個文本文件形式的log,因為我們的業務邏輯代碼都在BO層,所以為了記錄有意義的log,我們的log邏輯自然而然只能放在BO層。但是一個基本的獲取程序運行路徑的方法屬于System.Windows.Forms.Application類,讓我們不得不using System.Windows.Froms。這其實還好,我們也許不應該強求Windows.Forms一定就是只針對UI上的應用。問題是你每天都在面對類似的情況,每天都或多或少在和.NET API和框架其他部分在打架,當你使用.NET的API時間久了,自然而然你就被它帶到它的那一套思路中,你的設計也就自然而然跟著它走了,業務邏輯和UI邏輯交織在一起,當你回過頭來想把層次理清理順已經成為Mission:Impossible。因為拋開MS推薦的方式,自己實現一套自認更清晰的架構,相較"官方"的blueprint設計,代價實在有些高。

          所以雖然我沒有真正開發過ASP.NET,尤其是2.0版,但我很能理解他們遇到的尷尬。


          主站蜘蛛池模板: 克什克腾旗| 乐亭县| 册亨县| 新宁县| 北流市| 游戏| 剑阁县| 湟中县| 乌兰浩特市| 建宁县| 远安县| 横峰县| 宁明县| 恩施市| 武山县| 玉龙| 普定县| 阳江市| 平阴县| 杭州市| 怀柔区| 达州市| 滁州市| 涞水县| 东莞市| 天气| 广丰县| 乌拉特前旗| 阿勒泰市| 宁南县| 镇沅| 阿拉善右旗| 巴青县| 靖宇县| 宝兴县| 波密县| 西青区| 尚义县| 汽车| 左云县| 莲花县|