我已经花了很短的时间(大约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,因此每天都在崩溃,导致自上次备份以来人们不得不重新输入数据,从而导致生产力损失数小时。这就是时间短的原因 - 这是一项关键的业务功能,他们无法负担每天重新输入数据的费用。
答案 0 :(得分:8)
确实没有好的答案。
如果您可以在任何“短时间内”以新格式(网络)重新创建一个非平凡的业务应用程序,我会感到非常惊讶(除非您将'短'测量为6个月)。
ASP.NET MVC为任何开始的Web项目提供(提交)最常用的约定。
ASP.NET允许您拖放以使事情正常工作,但它可以为非重要的应用程序破坏维护。
如果是我,我会做三件事:
询问我的老板他是否希望我在完全不同的平台上重新创建整个业务应用程序。
告诉他现在可以更快地使用它(ASP.NET),或者以后更快(ASP.NET MVC)。
让他打电话。
个人附录:我已将ASP.NET和ASP.NET MVC用于Web应用程序。 MVC更好。不是更快,但更好。它让我的网页开发变得“有趣”。
答案 1 :(得分:7)
MVC并不是一个真正的RAD开发框架。
您将编写比RAD Webforms更多的基础架构代码,将数据网格和数据源拖到.aspx页面上。我喜欢MVC ,但是如果你在枪下,请使用Webforms。 MVC可以更快,但前提是您预先构建了基础架构。
MVC 2通过包含基于模型的HTML帮助程序(如Model.EditorFor()
)来缓解其中的一部分,但它还不够好。没有快速网格代码。分页?你正在滚动你自己的寻呼机。阿贾克斯?编写自己的JQuery。
当然,有第三方和开源库可用于所有这些东西,但根据我的经验,将它们全部放在一起并确保它们玩得很好也很耗时。
答案 2 :(得分:4)
简单的Web应用程序+紧密的日程安排= ASP.NET webforms。
复杂的Web应用程序+紧凑的计划表= ASP.NET MVC。
我发现随着Web应用程序的复杂性线性增加,webforms应用程序的复杂性呈指数级增长。一旦开始编写自己的服务器控件(非用户控件,因为它们仍然相对简单),这对于更复杂的UI来说是必需的,您需要对整个页面生命周期,视图状态的工作方式以及其他方面有深入的了解。框架从您身上抽象出来的网页形式的模糊部分。
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表单时遇到了更多麻烦。
答案 3 :(得分:1)
在这个截止日期之前,我认为使用ASP.Net Webform更方便。在第一阶段有更多时间/预算之后,您可以开始使用MVC开发应用程序的新部分,因为它们可以共存。
还要注意Ajax和网格代码。在MVC中,他们通常需要更长的时间来开发,但至少对我来说,他们看起来更健壮,因为你真的必须知道你在做什么。
这个问题是从2009年开始的,如果作者对他的决定给出一些反馈,那就太好了。
编辑:如果您仍然需要使用asp.net MVC的RAD,请查看http://mvcscaffolding.codeplex.com/。
答案 4 :(得分:0)
一旦你运行MVC,它很快,但需要一段时间a)学习和b)建立一套有用的代码。
如果您的用户界面不复杂,可以很容易地设置快速数据输入界面。
如果你的用户界面真的非常简单,你可能会想看看ASP.net dynamic data.
答案 5 :(得分:0)
您还可以查看实体框架以绑定到您的数据库,这将创建您的模型以与MVC一起使用。但就像jfar所说,在短暂的死亡线压力下,去找你最了解的事情!
答案 6 :(得分:0)
ASP.Net MVC很好,但是......
如果您之前没有使用ASP.Net MVC开发系统,那么在截止日期较短的项目中使用它是一种风险。
如果你的应用程序是一个“简单”的CRUD应用程序,那么我会选择动态数据:http://www.asp.net/dynamicdata/ (帕迪只是打败了那个人)
如果您的系统非常庞大,您可以考虑使用SharePoint Access Services http://blogs.msdn.com/access/archive/2009/10/21/net-developer-blogs-about-access-2010.aspx
答案 7 :(得分:0)
Evolutionary Software Development
根据经验,我保证 - 它是我编程的方式,无论技术如何都可以。
简而言之:做你的直觉告诉你(代码的东西),当你发现错误/遗漏时进行修改,当它发挥作用时,你就完成了(但是对于文档来说)。
答案 8 :(得分:0)
另一种选择是使用Alpha Five v10 - 它最近得到了Infoworld的赞许 看看http://blog.alphasoftware.com/search/label/Press%20coverage
答案 9 :(得分:0)
两个框架都足以提供解决方案,但WebForms自动执行UI功能中涉及的一些任务,如数据分页,排序,状态持久性或自定义数据持久性等等,但是......如果你真的坐下来说,好的,我需要做什么? ...设计,导航,建模,呈现,然后弄清楚如何显示布局,如何连接数据,如何带来数据,如何将它们与UI绑定,如何分页,排序和最终编辑,真正把你的想法在完成所有这些的每个框架中比较技术,你将会知道MVC更自然,更面向团队。你需要像EF Code First这样的工具,像Bootstrap和jQuery这样的CSS框架,应用像IoC,SoC,Layering等技术,并使用例如Automapper来做无聊的stuf,但不管你需要考虑多少事情,它都会与必须了解WebForms所需的众多控件和管理器的各种配置相比,它总是比较容易,自然和直接。除非您的项目是具有CMS功能的ERP,您知道:-) 无论如何,现代技能需要适应当今的趋势,MVC只是一个很好的主机,可以帮助您使用它们而不会产生惊喜。 我写了大量的WebForms代码,但我没有再触及它。 所以,最后一点是2014年所有这些工具和框架都在那里,MVC并不慢,而是相反,但需要一个初始的,小的,efford来收集一些资源并锁定一些方法。