zoukankan      html  css  js  c++  java
  • .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  。

     

     

  • 相关阅读:
    Win10 UWP Tile Generator
    Win10 BackgroundTask
    UWP Tiles
    UWP Ad
    Win10 build package error collections
    Win10 八步打通 Nuget 发布打包
    Win10 UI入门 pivot multiable DataTemplate
    Win10 UI入门 导航滑动条 求UWP工作
    UWP Control Toolkit Collections 求UWP工作
    Win10 UI入门 SliderRectangle
  • 原文地址:https://www.cnblogs.com/KSongKing/p/10293643.html
Copyright © 2011-2022 走看看