查看 MVC 框架,似乎我们需要更多的经典 ASP 知识,然后是 ASP.NET 回发和视图状态。我们是否在实际的前端 HTML 标记中向后移动到复杂的 UI + 代码逻辑?
5 回答
我们正在回到不试图抽象出 HTML 和 HTTP 请求等基本概念。在 UI 端,这意味着视图与输出更紧密地集成在一起,这不是一件坏事。经典的 ASP 模型转化为将所有内容与输出紧密集成,这是一件坏事。
如果你认为 ASP.NET 范式向前迈进了一步,我猜,有人可能会争辩说 MVC 范式是一种倒退。就我个人而言,我一直认为在经典的 ASP 中编写干净分离的代码要容易得多,而不是在 .NET 中,显示输出文本通常被混入代码块中,无法使用标准的 HTML 编辑器进行访问。我一直认为 ASP.NET 架构更多的是推动 .NET,而不是改进我们应用程序的整体结构,所以从这个意义上说,MVC 是向前迈出的一步。
你提到这个很有趣......我今天和一位同事进行了同样的谈话。
是不是倒退了一步?我不这么认为......虽然在经典的 asp 中,您在 UI 中有一些复杂的逻辑,但从我在 MVC 中可以看到,复杂的逻辑应该仍然存在于您的业务对象中,并且与对象的任何复杂交互都应该通过控制器完成。
同样,据我所见,目标是在涉及实际业务逻辑时保持 UI 整洁和适合。使用 AJAX 和 JQuery 等使 UI 更加用户友好会导致任何额外的膨胀。
这只是我对 MVC 的初步观察。这是一项非常酷的技术,尤其是它位于 REST 之上的方式,使其非常容易与其他技术一起使用。
我期待在未来的几个项目中尝试它!
如果您在视图中看到相对于模型和控制器的复杂代码逻辑,那么您可能以错误的方式接近它。
从纯粹意义上讲,您应该能够以最少的工作切换视图(比方说是 XML,而不是 HTML)。只有当数据逻辑包含在模型中并且业务逻辑包含在控制器中时,才会发生这种情况。
因此,如果您正在显示购物车,则视图可能只有写出产品数量和总数的代码。模型类将保存产品数据,控制器将执行所有处理,例如添加产品和签出。
MVC 的全部意义在于代码的分离。模型应该包含你所有的业务逻辑,视图应该只处理用户的输出,控制器应该将这两部分粘合在一起。