Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NETMVC-如何解释?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.NETMVC-如何解释?

Asp.net mvc ASP.NETMVC-如何解释?,asp.net-mvc,Asp.net Mvc,我正在尝试向过去8周一直在学习ASP.NET的学生(本科生)教授ASP.NET MVC(我知道这听起来时间不多,但课程是每天4小时,每周5天,包括实验室、测验、考试和摔跤) 我还没有得到这个问题…但我知道它即将到来 我什么时候用MVC代替ASP 我没有任何ASP MVC的实际经验,在网上也找不到任何明确的答案。诸如“…web是无状态的,ASP MVC是更接近的匹配项等等”之类的论点对他们来说意义不大。他们开始注意到ASP有很多控件,与MVC相比,它们似乎简化了标记 我试图给一个诚实的旋转,任何反

我正在尝试向过去8周一直在学习ASP.NET的学生(本科生)教授ASP.NET MVC(我知道这听起来时间不多,但课程是每天4小时,每周5天,包括实验室、测验、考试和摔跤)

我还没有得到这个问题…但我知道它即将到来

我什么时候用MVC代替ASP

我没有任何ASP MVC的实际经验,在网上也找不到任何明确的答案。诸如“…web是无状态的,ASP MVC是更接近的匹配项等等”之类的论点对他们来说意义不大。他们开始注意到ASP有很多控件,与MVC相比,它们似乎简化了标记

我试图给一个诚实的旋转,任何反馈将不胜感激!
对我来说,MVC方法与ASP Forms API是一种非常不同的范例。我认为“无国籍”的概念实际上是用一个词来解释一个非常广泛的话题的好方法

我所看到的一个主要优点是MVC框架对页面的设计和输出提供了很大的控制。对于小型项目,这可能不是它的最佳用途,但对于大型项目,它的可扩展性非常好,因为您可以做出(我个人认为)更好的不同体系结构选择,例如MVC框架将逻辑与视图分离的方式

此外,如果您正在设计一个包含大量Javascript的站点,那么您在MVC框架中获得的对输出的控制将非常有用,因为您不必像在ASP Forms框架中通常所做的那样担心ID和其他标记的呈现方式

MVC框架实际上是一种完全不同的网站设计方式。就我个人而言,我认为它对大型项目更有利,但我也从web语言开始,在web语言中,MVC是一种更受欢迎的设计选择


这只是我的2美分。

对于在Winforms中有经验(和痛苦)的人来说,最大的区别是不再有Viewstate。表单上控件的状态保存在客户端、浏览器中,并针对每个请求发送到服务器

如果使用Javascript,在浏览器端进行更改会更容易,而服务器端则可以轻松地查看整个表单,而无需重新创建控件绑定


除了MVC提供的所有好东西——视图/代码分离、可测试性——这对我来说是转向MVC的关键点。

无状态是一个很好的解释,正如成员们已经强调的那样。 除此之外,向学生提问以下问题

如果他们必须使用ASP.NET(无MVC)执行以下操作,那么这有多容易

  • 测试你的观点
  • 模拟Http对象
  • 视图状态缩减(按设计)(
  • 将轻量级viewengine替换为.aspx
  • 彻底分离关注点
  • 干净的HTML
  • 等等等等
  • 现在在上面的上下文中解释asp.NETMVC。可能还有更多。
    至少我认为他们会明白这一点,虽然这可能不适用于所有项目,但如果我们只是从中获益,那又有什么害处呢。

    我一直认为ASP.NET MVC框架是个坏名字,因为它是一种设计模式

    问题应该是:

    我什么时候可以在ASP.NET Web表单上使用ASP.NET MVC框架?

    开发者体验

    a) ASP.NET Web窗体试图从开发人员那里抽象出HTTP的无状态特性。GUI元素和/或数据的状态存储在Viewstate/Session中。Everyone表单对自身进行回发,基本上模仿WinForm事件驱动设计的行为

    b) HTML GUI元素通过从第三方供应商处购买的可重复使用的控件进一步抽象。这有助于开发人员将HTML应用粘合在一起,而不需要太多JavaScript和HTML/HTTP知识。基本上类似于开发VB/WinForms的方式

    c) 您可以在ASP.NET webforms中很好地实现MVC/MVP模式。查看模式和实践Web客户端软件工厂,了解他们是如何做到这一点的

    d) 使用WebForms开发通常是根据服务器上的用户反馈更改HTML(视图)。大多数事件(用户单击按钮、编辑字段)都是在服务器上通过一个连续的回发循环处理的,该循环执行所谓的ASP.NET页面生命周期

    VS

    浏览器控制的视图(不知道还能叫它什么)。基于用户输入对HTML的所有更改都在浏览器中处理。您将使用Javascript操作DOM

    注意:我之所以这样做,是因为ASP.NETMVC很可能是由基本的HTML+Ajax驱动的

    我个人将如何在它们之间做出选择(从未使用过MVC,只是在阅读它)

    1) 如果我打算使用Ajax、Jquery、ExtJS类型库ASP.NETMVC构建一个纯无状态前端,那么ASP.NETMVC似乎更合适。尽管您可以在ASP.NET Webforms中构建它,但它似乎毫无意义,因为您没有利用回发模型和服务器控件

    2) 如果我被要求构建一个新的基本web应用程序,我会坚持使用ASP.NET Webforms,因为我已经熟悉它,并且了解整个页面生命周期

    3) 如果我被要求构建一个Web2.0(讨厌这个术语)来获得下一代用户体验,我可能会选择ASP.NETMVC,并使用JQuery/ASP.NETAjax客户端控件


    4) 许多公司已经建立了一套可靠的WebForm控件来使用。用一种纯粹的无状态ajaxy方式重新构建它们将是昂贵的:)

    除了已经列出的所有其他优秀响应之外。Webforms是对HTML的一种抽象

    当您想要一个html数据表时,您在页面上放置了一个“gridview”控件—最终得到的是“gridview”html,很可能不是您想要的

    这款鞋90%的时间都合脚,但很多时候都合脚