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

标签 asp.net-mvc model-view-controller design-patterns

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




更新:我知道没有一种最好的方法可以做所有事情。抱歉没有马上说出来。在数据访问教程的上下文中,如果你必须做他在那个教程中做的项目,你会做他所做的还是使用 MVC,如果你必须选择其中之一?

更新: MVC 是更合适的方式来编程 asp.net 应用程序,而不是在这里找到的教程:

http://www.asp.net/Learn/data-access/

原文:

我问,因为我最初是通过 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。或者这也是一个 linq 问题。我应该说我理解保持逻辑和表示分开的必要性,但不确定最好的方法。我正在使用 asp.net 教程。它工作得很好。然后我发现世界其他地方,正如我所看到的,都在使用 MVC。然后微软开始开发 MVC,所以对我来说,另一种方法似乎已经过时,而且是错误的做事方式。

最佳答案

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

MVC 只是一种设计模式。所有设计模式的目标都是简单。因此,只要它使您的设计更简单,就可以使用它。如果它使您的特定应用程序的事情变得更加复杂,请尝试不同的方法。

不幸的是,有些人认为如果他们看到一个模式,他们应该使用它。这不是真的。设计模式本质上不会使您的应用程序更好。它们不是终点。它们是达到目的的手段(这很简单)。所以你应该只在它们值得的时候使用它们。

在我看来,没有充分理由的过度架构比编写没有任何特定设计的代码更糟糕。

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

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

关于asp.net-mvc - MVC 是编写 asp.net 应用程序的最佳方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/425306/

相关文章:

asp.net-mvc - MVC 5 从 BeginExecuteCore 重定向到另一个 Controller

c# - 返回要在页面 asp.mvc 中呈现的 http 响应

java - 在 Java MVC Web 应用程序中隐藏 View Servlet?

design-patterns - ExtJS 有标准的设计模式吗

c# - 支持处理 ADO.NET 数据提供程序独立代码中特定于数据提供程序的差异?

WCF 对象设计 - OOP 与 SOA

c# - 是否有用于设置 HTML 大小属性和 MaxLength 的 MVC5 模型属性?

asp.net - 如何在使用Docx dll生成word文档时在标题中添加图像和文本?

java - 用于遗留 Java EE 项目的自定义 Web MVC

php - MVC,类去哪儿了?