加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 我何时以及为什么要考虑asp.net MVC?

发布时间:2020-12-16 04:21:33 所属栏目:asp.Net 来源:网络整理
导读:我最近注意到很多关于asp.net MVC的讨论,但是我没有遇到过关于何时,何地或为什么要在WebForms上使用它的清晰或引人注目的描述. 假设我想构建一个允许一个人在线宣传某些项目的小型Web应用程序.该网站将有4个用例: 搜索广告 查看列表 查看项目 发布广告 我们
我最近注意到很多关于asp.net MVC的讨论,但是我没有遇到过关于何时,何地或为什么要在WebForms上使用它的清晰或引人注目的描述.

假设我想构建一个允许一个人在线宣传某些项目的小型Web应用程序.该网站将有4个用例:

>搜索广告
>查看列表
>查看项目
>发布广告

我们假设:

>我对我的控制器的单元测试不是特别感兴趣.页面将正确呈现项目列表,否则不会.
>我有兴趣更多地控制HTML标记.
>我对使用最新的嗡嗡声技术不感兴趣.
>我对使用最适合工作的工具感兴趣,无论是在生产率,性能,可维护性等方面.简单的最终解决方案.
>我不想为解决一些简单的工作而解决一些细微差别.

所以,我的问题是:

>两种模型之间的根本区别是什么?
>哪种情况比另一种更好?
> asp.net MVC有什么问题(我知道WebForms的问题)
>对于我们的示例应用程序,使用asp.net MVC而不是WebForms可以获得什么?
>对于我们的示例应用程序,使用asp.net MVC而不是WebForms会丢失什么?
>在同一小型应用程序中混合和匹配模型是否可行?

感谢任何花时间贡献答案的人.

解决方法

  • What are the fundamental differences between the two models?

WebForms尝试模仿WinForms开发,允许您重用大量预制控件,并通过隐藏的_VIEWSTATE机制伪造Web应用程序状态.

MVC是一种旨在帮助您分离数据(模型),业务逻辑(Controller)和表示(View)的模式.它更多地依赖于Web的真实性质:RESTful URL,无状态.

  • In which scenario is one better than the other?

在我看来,对于大量使用控件的Intranet应用程序,WebForms可以减少开发时间,因为感谢设计人员可以非常快速地创建UI并让框架自动管理应用程序的状态.

对于任何其他项目,特别是一个公共网站,甚至是一个小网站,我认为MVC是要走的路.

  • What are the gotchas with asp.net MVC (I’m aware of the gotchas with
    WebForms)

我要说有一些学习曲线可以完全理解MVC模式及其功能.此外,由于框架仍在BETA中,因此您可以期望API在发布之前经历一些小的更改.

由于JavaScript不会在MVC中隐藏,因此如果您不熟悉它,还需要一些时间来学习. jQuery大大简化了这一点.

  • For our sample app,what would I gain by using asp.net MVC instead of
    WebForms?

您可以更好地控制HTML标记和Javascript行为,更清晰地分离关注点和一些易于测试的代码库(即使您似乎对单元测试不感兴趣).

  • For our sample app,what would I lose by using asp.net MVC instead of
    WebForms?

您将失去构建页面和应用程序状态管理的“拖放”快速方法.

  • Is it feasible to mix and match models within the same small
    application?

在某些方面,似乎是的.

我推荐观看由Phil Haack观看的this talk,他对框架进行了很好的概述,并邀请Jeff Atwood谈谈他是如何用它构建StackOverflow的.

他解释了SO如何使用CAPTCHA的一些WebForms控件将其自身呈现在视图中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读