13

我得到了很短的时间(大约 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 以来,它每天都在崩溃,导致人们不得不重新投入数小时的生产力 -输入自上次备份以来的数据。这就是时间短的原因——这是一项关键的业务功能,他们不能每天重复输入数据。

4

10 回答 10

8

真的没有好的答案。

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

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

ASP.NET 允许您拖放以使事情正常工作,但它严重破坏了非平凡应用程序的维护。

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

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

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

  3. 让他打电话。


个人附录:我已经将 ASP.NET 和 ASP.NET MVC 用于 Web 应用程序。MVC 更好。不是更快,而是更好。它让我的 Web 开发再次变得“有趣”。

于 2009-12-22T15:26:14.497 回答
7

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

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

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

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

于 2009-12-22T14:35:37.233 回答
4

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

复杂的 Web 应用程序 + 紧凑的日程安排 = ASP.NET MVC。

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

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

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

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


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

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

于 2009-12-22T14:47:23.440 回答
1

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

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

这个问题来自 2009 年,如果作者对他的决定提供一些反馈,那就太好了。

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

于 2013-02-25T13:39:47.027 回答
0

进化软件开发

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

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

于 2009-12-22T15:00:08.137 回答
0

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

于 2009-12-31T03:04:52.053 回答
0

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

于 2014-01-04T13:43:15.577 回答
0

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

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

如果您的 UI 要非常非常简单,您可能希望查看ASP.net 动态数据。

于 2009-12-22T14:42:51.687 回答
0

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

于 2009-12-22T14:45:46.343 回答
0

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

于 2009-12-22T14:47:02.037 回答