Asp.net mvc MVC是编写asp.net应用程序的最佳方式吗?

Asp.net mvc MVC是编写asp.net应用程序的最佳方式吗?,asp.net-mvc,model-view-controller,design-patterns,Asp.net Mvc,Model View Controller,Design Patterns,更新:我知道做任何事情都没有最好的方法。很抱歉没有马上说出来。在数据访问教程的上下文中,如果您必须完成他在该教程中完成的项目,您会像他那样做吗?如果您必须选择其中一个,您会使用MVC吗 更新:MVC是否是编写asp.net应用程序的更合适方法,而不是此处的教程: 原件: 我问这个问题,因为我最初是通过Java应用程序了解MVC的,然后是RoR和Django。这些其他项目和公司的发言,就好像MVC已经存在了很长一段时间,从我发现它已经存在了。然后微软开始将MVC应用到.net框架中 我问这个问题

更新:我知道做任何事情都没有最好的方法。很抱歉没有马上说出来。在数据访问教程的上下文中,如果您必须完成他在该教程中完成的项目,您会像他那样做吗?如果您必须选择其中一个,您会使用MVC吗

更新:MVC是否是编写asp.net应用程序的更合适方法,而不是此处的教程:

原件:

我问这个问题,因为我最初是通过Java应用程序了解MVC的,然后是RoR和Django。这些其他项目和公司的发言,就好像MVC已经存在了很长一段时间,从我发现它已经存在了。然后微软开始将MVC应用到.net框架中

我问这个问题是因为我不知道如何很好地设计东西,我认为用Scott Mitchell的教程来模拟asp.net网站上的内容做得很好。我认为在BLL中创建抽象层是一种可行的方法,直到我发现了MVC,现在是asp.net的MVC

我真的不知道什么是“正确”的做事方式。我只是创造了我需要的,但我不能不觉得我错过了什么

MVC是在大型项目中开始做事情的正确方法吗?具体来说,我指的是MVC和ASP.NET,但也可以指PHP和他们的MVC框架之一

我想确定一种标准的做事方式……至少现在是这样

出于好奇,为什么微软现在才开始做MVC

更新:MVC是否优于asp.net上当前的教程集


我指的是Scott Mitchell教程,他在其中创建了用于抽象的BLL。或者这也是一个关键问题。我应该说,我理解将逻辑和表示分开的必要性,但不确定最好的方法。我正在使用asp.net教程。它工作得很好。然后我发现世界上的其他地方,正如我所看到的,都在使用MVC。然后微软开始开发MVC,所以对我来说,另一种方法似乎已经过时,而且是错误的做事方式。

MVC只是做事的一种方式。我喜欢它,因为它有助于提高可扩展性,并且其结构允许测试和代码重用。没有银弹,一个真正的方法做任何事情,但我经常使用它


关于微软,我想说的是,出于我上面提到的原因,他们采用了这种模式作为WebForms开发的替代方案。我建议大家看看这些例子,看看它是如何为你们工作的

不,这不是做事情的唯一最佳方式

MVC只是一种设计模式。所有设计模式的目标都是简单。所以,只要它能让你的设计更简单,就去做吧。如果它使您的特定应用程序变得更加复杂,请尝试另一种方法

不幸的是,有些人认为如果他们看到一个模式,他们应该使用它。这不是真的。设计模式本身并不能使您的应用程序更好。它们不是目的。它们是达到目的的手段(简单)。因此,只有当它们值得使用时,你才应该使用它们

在我看来,没有充分理由的过度架构比没有具体设计的代码更糟糕

编辑:关于ASP.NET MVC:我个人对ASP.NET Web表单有负面偏见。在MVC之前,我通过编写自定义处理程序对HTML进行细粒度控制,完成了高级项目的大部分动态方面。Web表单使Web开发变得非常简单,但它们有一些优点,但有时会出现问题。第一个是
ViewState
,第二个是复杂的
WebControl
体系结构。别误会我。这些都是ASP.NET辉煌的标志。我还没有见过一个Web开发平台像ASP.NET Web窗体那样简单,这只是因为它提供了非常好的
WebControl
支持,需要
ViewState
。但是,在某些项目中,您希望对呈现的HTML进行精确控制(特别是当您有一些客户端逻辑时)。您还希望使服务器端代码在大型项目中可维护。在这些领域,ASP.NETMVC确实非常出色。但我认为ASP.NET Web表单仍然是一种更适用的伟大技术。毕竟,正如我所说的一般设计模式,您应该仔细评估您的设计,看看哪一个更适合您的需要

具体来说,关于数据访问,MVC通常需要比Web表单对应项更多的代码。对于显示表格数据(即GridView适用的地方),我认为ASP.NET Web表单是更容易完成任务的方法。然而,大多数数据驱动的Web应用程序并不只是直接在数据库中操作表。它们有复杂的布局。StackOverflow就是一个很好的例子。它当然是数据驱动的,但ASP.NET MVC更适合它。

不知道“事物”是什么,就没有“正确”的做事方式。MVC是一个解决一个特定的常见问题的工具,即表示逻辑和域逻辑的分离。每一种设计模式都是对特定问题的公认的“好”解决方案


这些解决方案,加上知识和经验,是良好设计的基石。做事情的“正确”方法是研究你的问题领域,研究可能的解决方案,并应用最有效的解决方案。犯错误也是过程的一部分,所以不要害怕尝试,然后严格执行,直到找到最适合自己的解决方案。

MVC是开发应用程序最糟糕的方法,除了所有其他已经尝试过的方法。:-)

别开玩笑了,MVC是一种鼓励我们不要编写意大利面代码的应用程序设计。这是一个指导原则,提醒我们将业务代码与表示代码分开。随着应用程序变得越来越复杂,这非常有用

有很多