.Net Core 沒有 WebForm 是 歷史 的 退步, MVC 是一個 糟糕 的 設計


WebForm 自面世以來,  廣受廣大開發人員的歡迎 。

 

當然, WebForm 有一些 著名的 弊病,  比如 笨重的 ViewState 。

 

不過 我們 可以 用 一些 更加 先進 和 靈巧 的 方式 來使用它 。

 

比如,   《WebForm Anyway》  https://www.cnblogs.com/KSongKing/p/9455143.html  ,

WebForm  優秀 的 控件模型, 很方便, 很好, 很優秀 。

 

比如  UserControl,  后來者 沒有 超越的,  包括  MasterPage,  當然 MasterPage 也是 WebForm 的, 不過我順便說兩句,

MasterPage   把   Web 簡單草根 自由清新 的 傳統  的 鄉村空氣    完全 攪渾了,   攪成一塘泥巴  。

 

明明在  頁面  里   放一個   Header  和 一個  Footer   的  UserControl  就完事 的 事,  非要 搞一個 不透明 的 框(MasterPage) 框起來 ,,,

 

MVC 即使有 多種 方式 插入一個 局部界面, 比如   RenderPartial()  什么的,  沒有一樣 比得上  UserControl 。

 

后來者     沒有    超越  UserControl  的 。

 

后來者 也  沒有   超越   GridView   的 。

 

后來者 也  沒有   超越   HttpModule   的 。

 

后來者 也  沒有   超越   HttpHandler(.ashx) 的 。

 

Aspx 、 HttpHandler(.ashx)、HttpModule   三劍客 的 靈活性 無與倫比,  跟 后來者 比起來,  強大到讓人 想哭 。

就 靈活性 這一點 而言,  堪稱  Web 界  的   C 語言 。

 

Asp.net Core  的    Middle Ware ,  只不過是  新瓶 裝 舊酒,   僅此而已 。

把  “觀察者”  變成  “職責鏈”,  這是 創新 還是 革命 ?

 

Web 開發模型 在  WebForm 時代 就已經 達到 完備 了,  

Aspx 、 HttpHandler(.ashx)、HttpModule    可以做 任何事 。

 

實際上, 如果按照 上面提到的 《WebForm Anyway》,   WebForm 可以容易的和 各種 前端框架 結合起來 。

So  ……    Any Problem    ?

 

從 其它方面 來看,  WebForm 快速開發 的 特性 使得 WebForm 可以用於 科研教育 事業,  可以編寫 Demo,  可以用於 軟件工程 里的 原型開發(Prototype) 。

 

WebForm 應該 揚棄,  而不是 拋棄,   拋棄 WebForm 等於 “因噎廢食” 。

 

MVC 是要 改良 WebForm 的 弊端, 但是 自己 又 搞了 一套 蹩腳 的 規則 把 自己 套了 起來, 還不如 Web Pages 。

首先, 強迫使用 所謂的 “顯示(View) 控制(Control) 模型(Model)”  分離 又 對應 的 這個 架構 本身 就是 失敗 的, 非常失敗 。

WebForm 對 3 層 架構 的 支持 很好, 把 UI 和 BL 分離 的 很清楚, 前端 后端 也 分離 的 很清楚 。

WebForm 非常經典, 非常優秀 。

而 反過來 看,  相比於 WebForm 直觀 清晰 易用 的 3 層架構,  MVC 的 什么 “View 和 模型”  簡直 是 為設計而設計, 就是 所謂的 “過度設計” 。

 

什么 View 和 模型(Model), 根本 不需要 這些 概念 。

要 這些 概念 做什么?

 

Web -> BL -> DAL

這很清楚 。

 

MVC 把 Web 分成了 View, Control, Model ,,,,,這 光 Web 層 都 變成 3 層 架構 了 。

 

MVC 里 還有一個 更糟 的 地方 是,

Model 還會跟 View 掛鈎,  意思是 “某某 頁面 涉及到 的 業務實體 是 xx ,yy ……” ,

這 掛鈎 簡直 是 純粹 是 設計人員 和 開發人員 的 負擔, 累贅  。

 

有 網友 提到 MVVM,    MVVM 我也反對 。

MVC 是 破壞 3 層架構 的,   從 MVVM 上 更加 清楚 的 可以看出來 。

MVC 表面上 分層 ,實際上 把 BL 和 DAL 削弱了, 並 把 BL 和 DAL 的 職能 混雜 進 了 UI 層, 這 非常 糟糕 。

MVVM 用來 做控件 可以, 做架構 不行 。

 

WebForm 的 前后端 分離 的 很清楚,

WebForm 可以 自由 的 使用 前端 渲染, 沒有問題 。

前后端 架構 很清楚 。

 

WebForm 提供了 清晰 的 架構 和 靈活性, 可以在 后台(服務器端) 處理 UI 邏輯, 也支持 純前端, 也支持 前端 和 后台 結合處理 UI 邏輯 。

所以說, WebForm 的 架構 是 很清晰 和 靈活 的,

WebForm 可以 簡化 輕量化, 並和 前端 結合起來,

我認為 這樣 很 完美 。

 

其實 MVC 更像 cgi, 只是比 cgi 更高級, 可以 方便 的 和 靜態資源 混合 渲染 。

 

還可以參考:

《WebForm AnyWay》  https://www.cnblogs.com/KSongKing/p/9455143.html  ,

《我發起並創立了一個 .Net 平台上的 Web 業務系統 基礎庫 開源項目 WebEasy》  https://www.cnblogs.com/KSongKing/p/10249997.html  ,

《我發起並創立了一個 Javascript 前端庫 開源項目 jWebForm》  https://www.cnblogs.com/KSongKing/p/10326119.html  。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM