2009-10-11 101 views
1

我正在研究一个基于Web的应用程序,这个应用程序至少要有6年的使用期限。一旦交付应用程序,很可能在该时间段内不会修改应用程序。MS MVC框架和jQuery适用于长期应用程序吗?

我们正在考虑使用asp.net MVC框架和jQuery,但我想知道这是不错的选择。客户可能不想花费额外的时间和金钱,因为JavaScript,浏览器标准等已经发生了变化。

什么是最好的选择,以尽量减少应用程序在未来6年内需要维护的机会?

+0

等了六年,如果ASP.NET MVC和jQuery仍然在身边 - 它们就是长期的! – 2009-10-11 20:52:56

回答

1

客户可能不想花费额外的时间和金钱,因为JavaScript,浏览器标准等已经改变。

是她还是她不是?你能说服她,她周围的世界在不断移动,她会需要来更新她的应用程序以与未来的主要平台一起工作吗?

我认为这是一个Intranet应用程序,而不是一个公共(面向互联网)的应用程序。因为如果是内联网,我认为6年是不现实的,但失败模式可能相当温和。但互联网,6年,应用程序本身没有安全更新 - 没有办法,我不会参与,以避免损害我的专业声誉。

我会努力销售保持器(软件维护费),以保持应用程序当前。由此,一份很好的法律文件清楚地概述了客户收取的费用(即兼容性和安全性修复,没有新功能)。如果您进行托管,软件维护通常也不难销售。

为了讨论的方便,假设应用程序将被“冻结”了6年:

绝对不会在任何使用JavaScript是应该持续4+浏览器几代人。我认为jQuery很棒,但是......没办法,Javascript引擎变化太快了。对于输出,我会坚持只有

  • HTML 4.01严格& CSS 2(我在想XHTML 1.0 Strict标准,这基本上是HTML 4.01严格的改变与XML规则,以符合,但HTML 4.01。拥有最大的安装基数,而且我不是XML的粉丝,这是一个判断呼吁。)
  • PNG & GIF。

关于保持东西静止,这个简单的输出可能是单个最大的胜利。

对于服务器环境,我会尝试以指定的Windows 2008 R2; .NET 4.0和ASP.NET MVC 2以及“接近冻结”的服务器配置(即仅安全更新)。 Windows 2008 R2应该从现在开始支持大约10 years。上一代(Win 2008,.NET 3.5SP1和MVC 1.0)也可以工作;但ASP.NET MVC 2看起来不错,所以我宁愿将它用于我个人的funfactor。

具有良好的“在那里”记录的大型开源项目也可以 - nHibernate,nUnit,StructureMap等等。

哦,并且很好的使用ASP.NET。微软仍然善于保持向后兼容性和反向安全修复。 ASP.NET和Java是我考虑的两个唯一的环境。

4

您可能不用担心这一点。从几家大型企业与JQuery的合作中获得如此巨大的投资,我怀疑您会遇到这类问题。网络可能总是注定要保持向后兼容(这意味着10年前出现的东西),所以我怀疑你的基于JQuery的应用程序应该没问题。如果你在IE7/8,最新的Firefox和Safari上运行良好,你应该没问题。也就是说,如果这些不足够,那么可能没有其他基于Web的解决方案。

但我绝对推荐使用JQuery来隐藏您在JavaScript交互方面的许多浏览器特定问题。就ASP.NET MVC而言,它也是一个非常稳定的平台,我认为很多企业将在未来几年继续提供支持。

1

对于jquery,不要担心,因为bobbyshaftoe说。

对于ASP.NET MVC,它不会很快死亡;毫无疑问,因为它是一项非常年轻的技术,可能会在首次发布时经常发生变化,因此可能会出现维护问题。

以前用于rails的应用程序:使用rails 1.x编写的应用程序需要一些更改才能运行th 2.x.

这可能是一个问题或没有:有轨1.x中编写的应用程序将保持与轨道1.x中, 与MVC 1编写一个应用程序的工作将保持与MVC 1

我想工作现在说MVC 2将与MVC 1有多少不同:MVC 2 Preview 2已经出来了,但必须指出许多类,方法,接口等在MVC 1 RC1之间多次改变名称和行为, MVC1 RC2等

另一方面,如果您的应用程序足够复杂,使用MVC可能仍然是正确的选择,即使考虑更新到新版本(通常不那么大)所需的额外工作:一个MVC应用程序更易于维护(在我看来)。

最后的考虑:请注意,6年在野外网络世界中是一个很长的时间,所以不可能事先说出什么会改变,哪些不会改变。