为什么要用MVC代替旧的ASP.NET?还是不明白我为什么要走这条路?

为什么要用MVC代替旧的ASP.NET?还是不明白我为什么要走这条路?,asp.net,.net,asp.net-mvc,Asp.net,.net,Asp.net Mvc,我知道以前有人问过这个问题,我读了所有的答案,但他们仍然没有给我我想要的答案。我需要一些具体的东西。我自愿向我们小组中的其他开发人员做一个关于MVC的演示,这迫使我学习MVC。每个人都面临的一个大问题是:“在asp.net中我们做不到的,MVC可以带来什么,或者MVC可以做得更快。我刚刚经历了一次书呆子晚餐,实际上创建了一个完整的网站,类似于书呆子晚餐。但正如Scott Guthrie在这方面所做的出色工作一样,还有一些巨大的差距没有得到回答,比如,我如何在列表页面上用按钮弹出一个文本框并进行简

我知道以前有人问过这个问题,我读了所有的答案,但他们仍然没有给我我想要的答案。我需要一些具体的东西。我自愿向我们小组中的其他开发人员做一个关于MVC的演示,这迫使我学习MVC。每个人都面临的一个大问题是:“在asp.net中我们做不到的,MVC可以带来什么,或者MVC可以做得更快。我刚刚经历了一次书呆子晚餐,实际上创建了一个完整的网站,类似于书呆子晚餐。但正如Scott Guthrie在这方面所做的出色工作一样,还有一些巨大的差距没有得到回答,比如,我如何在列表页面上用按钮弹出一个文本框并进行简单的搜索。在asp.net中,我会在页面上抛出一个文本框、按钮和网格,并将其绑定到存储过程中,然后离开。MVC中的等价物是什么。我想我需要一个关于如何在不使用LINQtoSQL的情况下使用MVC的非常好的教程

我知道我有点唠叨这个问题,但这是一个非常严重的问题,似乎仍然没有答案

另一方面,MVC的查看页面让我们想起了经典asp的噩梦,它包含了我们在使用页面背后的代码时远离的所有内嵌代码。是的,MVC有很棒的控制器和模型类,但我仍然不喜欢html中的经典asp标记


帮帮我,我真的很喜欢MVC的概念,希望它能成功,但我需要更多

控制HTML输出是一回事。从SEO的角度来看,所有这些花哨的控件都非常糟糕

另外,对于复杂表单,ASP.NET状态模型也是地狱;)

无论如何,一个例子是你的搜索框。。。太糟糕了;)

我会像这样使用MVC:

搜索是一个URL: /搜索/关键字 或 /搜索/关键字/页面编号(如/search/programming/5

好消息是:我可以很容易地得到谷歌发布的搜索结果——我知道有些网站的点击率最高

编程比asp.net难吗?这取决于您是否想要高效的HTML。asp.net的控制模型不会导致精简定义的HTML

除此之外,MVC更易于测试。对一个经典HTML站点进行单元测试是不可能的,MVC的解耦模型使这变得更容易

在asp.net中,我会在页面上抛出一个文本框、按钮和网格,并将其绑定到存储过程,然后我就离开了

这正是“经典”ASP.NET又名WebForms背后的最大问题

你不应该只考虑页面、按钮和事件

你应该学习web工作的基本知识。然后你就会明白web是以HTTP协议、其命令GET、POST和其他方式说话的。表示是HTML、CSS和文档对象模型,JavaScript就是在这些模型中发挥作用的。事实上没有页面,url只是指向资源的指针,不一定是m附加到服务器上的物理文件(.html或.aspx)

MVC的查看页面让我们想起了经典asp的噩梦,它包含了我们在使用页面背后的代码时远离的所有在线代码

在使用WebForms之后,我也来到了MVC,我发现我非常喜欢内联代码。它使视图结构非常清晰,这不能说是静态标记(aspx)的耦合+在代码隐藏中操纵服务器控件。后者实际上是一场噩梦-您的代码正在生成标记输出,但您不知道在何处以及如何生成

在asp.net中我们做不到的或者MVC可以做得更快的,MVC能带来什么

它删除了WebForms提供给我们的丑陋的有状态抽象。您现在回到了它的起点。您现在拥有的是:

  • 选项将您的表示部分(视图)从应用程序逻辑中分离。在所有内容混合在一起之前,代码隐藏在数据库中,调用其他服务,修改标记。这是一个混乱的过程。它导致了大量编写的应用程序,但很难再进行维护

  • 能够自动测试您的应用程序逻辑。使用WebForms和代码隐藏,您将如何调用特定场景?您可以使用诸如Selenium之类的工具来模拟用户活动。现在,当您的视图只是一个被动表示层时,您就不再有这个问题了。您可以非常轻松地测试业务逻辑和模型输出。Views用于显示结果。如果模型在特定场景中获得了正确的数据,视图将正确显示。如果没有,则不显示。句点。无需测试视图

  • 控制你的标记。这是你关心的。如果你是一个前Windows开发人员,对HTML文档的有效性、语义正确性和针对web引擎的优化毫不在乎,那么它对你毫无用处。我是说,“页面”有点像在桌面应用程序中那样显示用户点击,还有什么,对吗?但是如果你对所有这些东西感兴趣,那么你会看到最终的标记输出,它是丑陋的,有很多错误,限制,你根本无法修复。因为它是控件、按钮、数据网格等的显示方式试图修复它们需要覆盖这些控件的标记生成,这是一项繁重的任务。为什么不干脆放弃它,手动完成所有操作呢

MVC从表格中得到了什么

服务器端处理“控制”“事件”,如在Windows编程中。如果您正在为web媒体开发类似桌面的应用程序,如典型的“业务”有几十个和数百个控件的软件会让你发疯,那么MVC会让你发疯,因为你必须用JavaScript分别连接每个控件

但是如果你不是在开发那些类型的应用程序(需要一定的思维能力才能使用),而是在开发现代可用的软件