代码之家  ›  专栏  ›  技术社区  ›  KallDrexx

ASP.NET MVC框架相对于使用常规ASP.NET编写MVC样式的有用性?

  •  1
  • KallDrexx  · 技术社区  · 14 年前

    我不熟悉ASP.NET世界(但对.NET不陌生),我一直在玩各种各样的事情,以了解如何构建我正在开发的Web应用程序。在我的游戏中,我决定不使用ASP.NET的控件,因为我已经做了足够多的PHP和Ruby on Rails来相当熟悉常规的HTML和大量的javascript。

    我看到了很多ASP.NET WebForms和ASP.NET MVC之间的比较,但是当说到这一点时,我并没有看到太多的区别(我承认,可能是我忽略了这些区别,而不是它们不存在)。我已经使用MVC类型的体系结构对我的ASP.NET应用程序进行了编码(aspx有视图,aspx.cs有控制器代码,模型在app_code目录中是单独的类)。

    如果我不想使用ASP.NET控件,只想使用纯HTML和JavaScript,那么使用MVC框架有什么好处?到目前为止,我看到的唯一一个路由,我确信如果我看得更多,我可以找到不使用整个MVC框架进行自定义路由的简单方法。

    不管怎样,如果有人能详细介绍ASP.NET WebForms减去ASP控件和MVC框架,我会非常感激的。

    5 回复  |  直到 14 年前
        1
  •  3
  •   DM.    14 年前

    你会发现在webforms上使用mvc有很多不同之处和原因,但这取决于这些差异对你或你的项目是否重要。对于MVC来说,路由无疑是一大优势。虽然您可以在WebForms中实现自定义路由配置,但它的直观性明显降低。

    另一大优势是单元测试。与IOC容器和模拟框架一起,MVC使单元测试变得轻而易举。使用MVC隔离动作和行为并专门测试它们要容易得多。

    第三个优点是MVC将帮助减少您要编写的意大利面代码。如果您不打算使用任何用户控件,那么很快就会在MVC中丢失HTML助手。HTML、URL、viewModel、tempdata等使使用原始HTML更加容易。

    MVC的固有验证也令人印象深刻。它在MVC2中变得越来越好,现在与客户端验证库的集成将为您节省大量时间,并添加大量功能。

    没有其他视图状态。

    还有很多其他功能,但这又取决于这些功能对您是否重要。祝你的决定好运!

        2
  •  1
  •   Chris Fulstow    14 年前

    ASP.NET MVC是建立在接口之上的,这使得它具有可扩展性,易于编写单元测试,并鼓励干净的松散耦合的体系结构。

        3
  •  1
  •   Jonathan Rupp    14 年前

    如果在不使用任何服务器端控件的情况下使用“Classic”ASP.NET,则不会使用太多的ASP.NET——它基本上是带有.NET的Classic ASP,而不是它后面的vbscript。

    放弃WebControls是最大的原因 使用ASP.NET MVC。如果你愿意放弃,我就用ASP.NET MVC来完成它。它包含了你需要写的所有部分,你不喜欢的部分,你不必使用。

        4
  •  0
  •   Mathias F    14 年前

    在我的游戏中,我决定 不想使用ASP.NET 控件,因为我已经做了足够的PHP 和路轨上的红宝石 熟悉常规HTML

    这不是决定反对ASP.NET控件的一个好理由。有关ASP.NET的重要内容是ViewState。它允许您在Web应用程序中使用事件驱动的编程。这使得很多事情变得非常容易和富有成效。

    不管怎样-正如你所知道的RubyonRails,我想你会很快学会ASP.NET MVC。

        5
  •  0
  •   Martin Peck    14 年前

    首先,如果您使用ASP.NET MVC,那么您将使用一个受支持的框架,该框架包含书籍、在线资源和数百篇围绕它的博客文章。

    其次,我怀疑你需要和ASP.NET MVC一起玩才能看到它的威力。在ASP.NET MVC中,有比WebForms更多的方法。对于许多人来说,WebForms是可选的(您可以使用不同的视图引擎)是一个主要的优点。

    对我来说,扩展点、更清晰的代码和我所做的每件事情的单元可测试性是我永远不会回到ASP.NET“经典”的主要原因。

    我的建议是获得一个体面的教程(寻找书呆子晚餐教程),与ASP.NET MVC玩,并找到自己。

    注意:ASP.NET MVC并不适用于所有人,如果您非常喜欢ASP.NET中的后置机制,或者对服务器和用户控件进行了大量投资,那么您可能现在不想使用ASP.NET MVC。但是对于你的下一个项目,你至少应该知道你的选择是什么。