【问题标题】:How can I do rapid application development with ASP.NET MVC? [closed]如何使用 ASP.NET MVC 进行快速应用程序开发? [关闭]
【发布时间】:2010-12-29 03:16:08
【问题描述】:

我得到了很短的时间(大约 80 小时开始)用成熟的 SQL + Web 系统替换现有的 Access 数据库,我正在列举我的选择。我想使用 ASP.NET MVC,但我不确定如何在短时间内有效地使用它。

对于数据库后端,我将使用 Linq to SQL,因为它是我已经知道的产品,并且可以快速使用它。

有没有人有任何以这种方式使用 ASP.NET MVC 的经验并且可以分享一些见解?

编辑:我对 ASP.NET MVC 感兴趣的原因是因为我知道(100% 确认)在第一轮之后会有更多工作要做,而且我会喜欢我的维护工作尽可能简单。根据我的经验,Webforms 应用程序往往会因反复维护而崩溃,尽管有纪律。

也许有一个中间立场?比如说,使用 Webforms 构建应用程序,然后当我有更多的时间预算用于项目时,将其迁移到 MVC 对我来说有多困难?

编辑 2: 进一步背景:我要替换的 Access 应用程序在建筑物中的每个人都以某种身份使用,并且自从它从 Access 98 升级到 2003 以来,它每天都在崩溃,导致自上次备份以来,人们必须重新输入数据,从而导致数小时的生产力损失。这就是时间短的原因 - 这是一项关键的业务功能,他们无法每天重复输入数据。

【问题讨论】:

  • 你想知道什么?如果你的时间很短,学习一个新的框架和做事方法不会是一个好主意!
  • 这将花费您比您想象的更长的时间;但是使用 ASP.NET MVC,您可以快速启动并运行——如果您了解 ASP.NET MVC。但是,数据层之外的任何东西都不会传输。您将不得不提出一个新的 UI 和控制器逻辑。 RAD 在这里帮不了你。这是一个全新的范例。
  • 我认为一旦你有足够的代码,使用 ASP.NET MVC 会变得非常 RAD。
  • @Erik:用 Webforms 构建它并在以后用 MVC 重新构建它永远不会发生。很简单,这将是一个完整的重写。范式太不同了。您可以重复使用的东西很少。
  • @Geo +1,但这完全取决于您的代码和 UI 的链接程度。如果你让你的代码隐藏尽可能的精简,并且让你的逻辑尽可能地不了解 UI,那么你可以重用它的很大一部分。但这绝对是一个非常不同的范例,如果您严重依赖代码隐藏,您肯定会遇到问题。

标签: asp.net-mvc rad


【解决方案1】:

确实没有好的答案。

如果您能在任何“短”时间(除非您将“短”测量为 6 个月)以新格式(Web)重新创建一个重要的业务应用程序,我会感到非常惊讶。

ASP.NET MVC 提供(毫无疑问)最适用于任何初始 Web 项目的约定。

ASP.NET 允许您通过拖放操作来使事情正常运行,但它会严重破坏非平凡应用程序的维护。

如果是我,我会做三件事:

  1. 询问我的老板是否希望我在完全不同的平台上重新创建整个业务应用程序。

  2. 告诉他他现在可以更快地获得它 (ASP.NET),或者以后更快地获得它 (ASP.NET MVC)。

  3. 让他打电话。


个人附录:我已经将 ASP.NET 和 ASP.NET MVC 用于 Web 应用程序。 MVC 更好。不是更快,而是更好。它让 Web 开发对我来说又“有趣”了。

【讨论】:

  • 这就是我要做的——我已经向他解释了情况,解释了相互冲突的目标(开发速度与维护成本)之间的权衡,并征求了他的建议.
  • 另外 - 我现在有 80 小时的时间。时间不多。 =X
  • @Erik :我不喜欢说绝对的,但除非这是一个极其微不足道的应用程序,否则我不确定你能否在 80 小时内完成。
  • 不是,我也不这么认为。明天我要给我的老板发电子邮件,告诉他我需要更多时间。
【解决方案2】:

MVC 并不是真正的 RAD 开发框架。

与将数据网格和数据源拖到 .aspx 页面上的 RAD Webforms 替代方案相比,您将编写更多的基础架构代码。我喜欢 MVC,但如果你在枪下,请使用 Webforms。 MVC 可以更快,但前提是您预先构建了基础架构。

MVC 2 通过包含像 Model.EditorFor() 这样的基于模型的 HTML 助手来缓解其中的一些问题,但它还不够好。没有快速网格代码。分页?你正在滚动你自己的寻呼机。阿贾克斯?编写自己的 JQuery。

当然,所有这些东西都有 3rd 方和开源库可用,但根据我的经验,将它们全部混合在一起并确保它们玩得很好也很耗时。

【讨论】:

  • ASP.NET MVC 提供了基础结构(请参阅:约定优于配置)。使用拖放 Linq-To-SQL,您已经完成了一半的模型。基础设施就在那里——但你必须具备理解 MVC 的能力,而且你不能仅仅依靠拖放控件来使编程脱离编程。
  • 大声笑,MVC提供了基础设施,看看这个Linq to Sql特性?无论如何,我们不是在谈论为什么拖放不好,而是在谈论拖放是否更快。
  • 用更多背景编辑了我的问题。
【解决方案3】:

简单的 Web 应用程序 + 紧凑的时间表 = ASP.NET 网络表单。

复杂的 Web 应用程序 + 紧迫的时间表 = ASP.NET MVC。

我发现随着网络应用程序的复杂性线性增加,网络表单应用程序的复杂性呈指数增长。一旦你开始编写自己的服务器控件(不是用户控件,因为它们仍然相对简单),这对于更复杂的 UI 来说可能是必要的,你需要对整个页面生命周期、视图状态如何工作以及其他方面有深入的了解框架从您那里抽象出来的 Web 表单的模糊部分。

MVC,虽然它要求你很好地了解 HTML,但它在复杂性的尾端做得很好。无论应用程序多么复杂,您仍然在处理控制器中的 POCO 和方法。一旦你克服了最初的障碍,它就会一帆风顺。开发难度与网站难度同步增加。

个人经验:我将一个使用自定义服务器控件的相对复杂的网站转换为 ASP.NET MVC,并将代码库减半。我还大大降低了代码的复杂性。

我唯一需要注意的是,使用 ASP.NET AJAX 更容易实现 ajax。因此,如果您要开发一个严重依赖 ajax 的网络应用程序,那么网络表单可能会胜过 MVC。


从 ASP.NET 迁移到 MVC 并不总是最简单的。您必须从基于代码隐藏的应用程序转移到您的控制器不知道您的 UI 的应用程序。此外,MVC 在很大程度上依赖于 URL 来确定用户的意图,而 ASP.NET 则依赖于事件处理程序。

就个人而言,如果我觉得一个应用程序注定要成为 MVC,我不会浪费时间在 ASP.NET 中开发它。但是,我已经通过最初的学习曲线获得了好处。恕我直言,这并不是那么糟糕。我在学习 ASP.NET 阻止我学习的所有 HTML 和 HTML 表单时遇到了更多麻烦。

【讨论】:

  • 用更多背景编辑了我的问题。
【解决方案4】:

在这个期限内,我认为使用 ASP.Net Webform 会更方便。在第一个阶段之后,您可以开始使用 MVC 开发应用程序的新部分,因为它们可以共存。

还要注意 Ajax 和网格代码。在 MVC 中,它们通常需要更长的时间来开发,但至少对我来说,它们看起来更健壮,因为你真的必须知道你在做什么。

这个问题是 2009 年的,如果作者能对他的决定提供一些反馈就更好了。

编辑:如果您仍然需要使用 asp.net MVC 的 RAD,请查看 http://mvcscaffolding.codeplex.com/

【讨论】:

  • 这最终不是我的决定。我在他们开始转换之前离开了公司,他们确实使用了 ASP.NET MVC。谢谢=)
【解决方案5】:

一旦您开始使用 MVC,它会非常快,但需要一段时间 a) 学习 b) 构建一套有用的代码。

如果你的 UI 不复杂,设置一个快速的数据输入界面会很容易。

如果你的用户界面非常非常很简单,你可能想看看ASP.net dynamic data.

【讨论】:

    【解决方案6】:

    您还可以查看实体框架以绑定到您的数据库,这将创建您的模型以与 MVC 一起使用。但就像 jfar 所说,在短暂的死亡线压力下,去做你最了解的事情!

    【讨论】:

      【解决方案7】:

      ASP.Net MVC 不错,但是 ....

      如果您之前没有使用 ASP.Net MVC 开发过系统,那么在期限较短的项目中使用它是有风险的。

      如果您的应用程序是“简单”CRUD 应用程序,那么我将使用动态数据:http://www.asp.net/dynamicdata/ (Paddy 刚刚打败了我)

      如果您的系统真的很大,您可以考虑使用 SharePoint Access Services http://blogs.msdn.com/access/archive/2009/10/21/net-developer-blogs-about-access-2010.aspx

      【讨论】:

        【解决方案8】:

        Evolutionary Software Development

        根据我的经验,我保证 - 这是我编程的方式,无论技术如何,它都能正常工作。

        简而言之:做你的直觉告诉你的事情(编码一些东西),当你发现错误/遗漏时进行修改,当它起作用时,你就完成了(除了文档)。

        【讨论】:

          【解决方案9】:

          另一种选择是使用 Alpha Five v10 -- 它最近收到了 Infoworld 的赞许 查看http://blog.alphasoftware.com/search/label/Press%20coverage

          【讨论】:

            【解决方案10】:

            这两个框架在提供解决方案方面都做出了足够的贡献,但是 WebForms 会自动执行一些涉及 UI 功能的任务,例如数据分页、排序、状态持久性或自定义数据持久性等等,但是……如果你真的坐下来说,好的,我需要做什么? ... 设计、导航、建模、呈现然后弄清楚如何显示布局、如何连接到数据、如何带来数据、如何将它们与 UI 绑定、如何分页、排序和最后编辑,真的让你想下来并比较完成所有这些的每个框架中的技术,您会知道 MVC 更自然且面向团队。您需要 EF Code First 之类的工具,Bootstrap 和 jQuery 之类的 CSS 框架,应用 IoC、SoC、分层等技术,并使用 Automapper 来完成无聊的工作,但无论您需要考虑多少事情,它都会总是比必须了解 WebForms 所需的众多控件和管理器的所有各种配置更容易、自然和直接地匹配。除非您的项目是具有 CMS 功能的 ERP,其中……您知道 :-) 无论如何,现代技能需要适应当今的趋势,而 MVC 只是一个很好的宿主,可以帮助您毫无意外地使用它们。 我已经编写了大量的 WebForms 代码,但我不会再碰它了。 所以,最后一点是,在 2014 年,有了所有这些工具和框架,MVC 并没有变慢,而是相反,但需要一个初始的,对我来说很小的,努力收集一些资源并锁定一些方法。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-01-04
              • 2012-06-09
              • 1970-01-01
              • 2011-09-13
              • 1970-01-01
              • 2018-01-09
              • 1970-01-01
              • 2018-12-20
              相关资源
              最近更新 更多