MVC 是编写 ASP.NET 应用程序的最佳方式吗? [关闭]

2024-03-26

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

Update:MVC 是否比此处的教程更适合对 ASP.NET 应用程序进行编程:

http://www.asp.net/Learn/data-access/ 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?

UPDATE:MVC 是否比 ASP.NET 上当前设置的教程更好?

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


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

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 是编写 ASP.NET 应用程序的最佳方式吗? [关闭] 的相关文章

随机推荐

  • 如何反转 SQL Server 2008 中的字段

    如何反转 SQL Server 2008 中的字段 select reverse abcdef fedcba 1 row s affected
  • IE 中文本大小列表的实际像素是多少?

    与 IE 中的以下文本大小列表相比 实际字体大小 以像素为单位 是多少 Largest Larger Medium Smaller Smallest 在 Web 应用程序中 我需要提供类似的行为 通过选择上面列表中的任何一个来设置应用程序控
  • 将 FFTW 链接到 Android NDK 应用程序

    我目前正在编写一个流派分类应用程序 作为我计算机工程的最后一年项目 我最初用 C 语言编写了特征提取代码 实现 FFTW 现在我需要通过 NDK 在 Android 上实现它 这是我的第一个 NDK 项目 所以我仍在掌握一些东西 但我已经根
  • 如何在linux中包含python模块?

    我发现了这个 xgoogle python 模块http github com pkrumins xgoogle http github com pkrumins xgoogle 很有意思 我到底应该如何在 Linux 中包含或安装这些文件
  • 单个模块/函数等有超过 1 个文档字符串吗?

    我正在使用 python 3 1 是否可以为单个模块或函数创建超过 1 个文档字符串 我正在创建一个程序 并且打算拥有多个文档字符串 每个文档字符串都有一个类别 我打算向其他人提供该程序 以便他们可以使用它 并且为了让程序员和非程序员都轻松
  • 如何在 Quickblox iOS SDK 中检查会话是否有效或过期?

    我知道 任何会话在向 Quickblox 服务器发出最后一个请求 2 小时前发出 后都会过期 当我创建会话时 我能够找到 QBBaseModule sharedModule tokenExpirationDate但我不确定它是如何工作的以及
  • PHP:通过引用可变长度参数列表?

    是否可以创建一个 PHP 函数 该函数采用可变数量的参数 所有参数均通过引用 它对通过引用接收值数组的函数和将其参数包装在对象中的函数没有帮助 因为我正在研究函数组合和参数绑定 也不要考虑调用时间传递引用 那东西根本不应该存在 PHP 5
  • 如何在laravel中使用shift-jis编码导出csv文件?

    我在用laravel excel https laravel excel com 导出 csv 文件 要导出 代码如下 return Excel download new Export results header test csv Exp
  • 为什么我的关系表会抛出 OutOfMemoryError?

    我正在使用 iReport 构建 jaspersoft 报告 并使用 Fishbowl 作为我的 DBMS 我构建了我的表 在 iReport 中显示我的表是相关的 但由于某种原因它会抛出错误并且不会运行 应该很简单 我正在输入邮政编码 日
  • 使用 PathCollections 的图例

    我正在使用集合绘制圆圈组 但无法生成三个类别的图例 我想 第 1 类 红色圆圈 类别 2 蓝色圆圈 第 3 类 黄色圆圈 import matplotlib import matplotlib pyplot as plt from matp
  • 在我的应用程序中包含 jpeg 插件

    我制作了一个加载 jpeg 文件的 Qt GUI 应用程序 在我安装了 QtSDK 4 7 3 的开发系统 Win7 上 它可以工作 当我将应用程序和一些必需的 dll 如 QtGui4 dll 等 移动到另一个未安装 QtSDK 的系统时
  • 将多个数据帧合并为一个扩展帧

    我有一个数据帧列表 其中每个帧都包含单个系统的相同类型的测量值 例如 system1 file cumSize cumloadTime query1 1 data data1 dat 100000 158 1000 0 4333333 2
  • 动态加载和动态链接的区别?

    例程在被调用之前不会被加载 所有例程都以可重定位加载格式保存在磁盘上 主程序被加载到内存中并被执行 这称为动态链接 为什么这称为动态链接 不应该是动态加载吗 因为在动态加载中调用例程之前不会加载 而在动态链接中 链接会推迟到执行时 此答案假
  • 使用 python 登录 quora

    我尝试使用 python 登录 quora 但它给了我以下错误 urllib2 HTTPError HTTP Error 500 Internal Server Error 到目前为止 这是我的代码 我也在代理后面工作 import url
  • 如何在 FSharp 中对数组的 XML 序列化

    这就是我要找的
  • Git分支没有跟踪信息

    git pull 之后我得到这个输出 There is no tracking information for the current branch Please specify which branch you want to merge
  • 如何在 NSIS 中使用 try catch

    您好 我在安装时在 nsis 安装程序中的几台机器上遇到了奇怪的错误 使用 fontreg nsh 安装字体时给出 无效的 win32 文件句柄 我试过谷歌但没有得到这个问题的答案 现在我正在考虑抑制此消息 那么有什么方法可以抑制此消息 或
  • 数据绑定 Kendo UI 网格后保留展开的行

    这是我第一次使用 Kendo UI 我有一个带有子节点的 Kendo UI 网格 我想在数据绑定后保留扩展的行 现在 在子项中添加一行后 它会折叠起来 我尝试过来自的建议here https stackoverflow com questi
  • 是否可以为 geom_point 和 geom_segment 添加图例?

    我想知道是否可以添加图例geom point and geom segment 从 geom point 我自动获取图例 但是我不知道如何添加图例geom segment 我努力了scale linetype manual但显然它不起作用
  • MVC 是编写 ASP.NET 应用程序的最佳方式吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 更新 我知道没有一种最好的方法可以做所有事情 抱歉没有马上说出来 在数据访问教程的背景下 如果您必须执行他在该教程中所做的项目 如果您必须选择其