我正在开发一个基于 Web 的应用程序,该应用程序的生命周期至少为 6 年。应用程序交付后,很可能在该时间范围内不会对其进行修改。
我们正在考虑使用 asp.net MVC 框架和 jQuery,但我想知道这是否是一个不错的选择。由于 javascript、浏览器标准等发生了变化,客户可能不想在未来花费额外的时间和金钱。
将应用程序在未来 6 年内需要维护的可能性降到最低的最佳选择是什么?
我正在开发一个基于 Web 的应用程序,该应用程序的生命周期至少为 6 年。应用程序交付后,很可能在该时间范围内不会对其进行修改。
我们正在考虑使用 asp.net MVC 框架和 jQuery,但我想知道这是否是一个不错的选择。由于 javascript、浏览器标准等发生了变化,客户可能不想在未来花费额外的时间和金钱。
将应用程序在未来 6 年内需要维护的可能性降到最低的最佳选择是什么?
您可能不必担心这一点。几家大企业在使用 JQuery 方面投入了大量资金,我怀疑你会遇到这些问题。网络可能总是注定要保持向后兼容(这意味着与 10 年前的今天出现的东西),所以我怀疑你的基于 JQuery 的应用程序应该没问题。如果您在 IE7/8、最新的 Firefox 和 Safari 上运行良好,那么您应该没问题。也就是说,如果这些还不够,那么可能也没有其他基于 Web 的解决方案。
但是我绝对推荐使用 JQuery 来让您避免在 Javascript 交互方面的许多浏览器特定问题。就 ASP.NET MVC 而言,它还是一个非常可靠的平台,我认为许多企业将在未来几年继续支持它。
对于 jquery,不用担心,正如 bobbyshaftoe 所说。
对于 ASP.NET MVC,它不会很快消亡;尽管如此,由于它是一项非常年轻的技术,并且可能在第一个版本中经常更改,因此可能会出现维护问题。
Rails 曾经发生过同样的情况:使用 rails 1.x 编写的应用程序需要进行一些更改才能在 rails 2.x 上工作。
这可能是一个问题,也可能不是:使用 rails 1.x 编写的应用程序将继续使用 rails 1.x,而使用 MVC 1 编写的应用程序将继续使用 MVC 1。
我认为现在说 MVC 2 与 MVC 1 有多大不同还为时过早:MVC 2 Preview 2 已经发布,但必须指出的是,许多类、方法、接口等在 MVC 1 之间多次更改名称和行为RC1、MVC1 RC2 等
另一方面,如果您的应用程序足够复杂,使用 MVC 可能仍然是正确的选择,即使考虑到更新到较新版本所需的额外工作(通常不是那么大):MVC 应用程序更易于维护(在我的意见)。
最后的考虑:请注意,6 年在狂野的网络世界中是一段很长的时间,所以不可能提前说什么会改变,什么不会。
由于 javascript、浏览器标准等发生了变化,客户可能不想在未来花费额外的时间和金钱。
是她,还是不是?你能说服她,她周围的世界在不断变化,她需要更新她的应用程序才能与未来的主要平台一起工作吗?
我假设这是一个 Intranet 应用程序,而不是一个公共(面向 Internet)的应用程序。因为如果是 Intranet,我认为 6 年是不现实的,但故障模式可能是相当良性的。但是互联网,6 年并且没有对应用程序本身进行安全更新——不可能,我不会参与,以免损害我的专业声誉。
我会努力出售保持器(软件维护费)以保持应用程序最新。有了这个,一个好的法律文件清楚地概述了客户获得的费用(即兼容性和安全修复,没有新功能)。如果您也进行托管,软件维护通常并不难卖。
为了论证起见,假设申请将被“冻结”6年:
我绝对不会在任何应该持续 4+ 代浏览器的东西上使用 Javascript。我认为 jQuery 很棒,但是……没办法,Javascript 引擎的变化太快了。对于输出,我只会坚持:
关于保持静态,这个简单的输出可能是最大的胜利。
对于服务器环境,我会尝试指定 Windows 2008 R2;.NET 4.0 和 ASP.NET MVC 2,以及“近乎冻结”的服务器配置(即仅安全更新)。从现在开始,Windows 2008 R2 的支持应该会延长大约10 年。上一代(Win 2008、.NET 3.5SP1 和 MVC 1.0)也可以工作;但是 ASP.NET MVC 2 看起来很不错,所以我更愿意将它用于我的个人 funfactor。
具有“存在”良好记录的大型开源项目也可以——nHibernate、nUnit、StructureMap 等等。
哦,使用 ASP.NET 很好。微软仍然擅长保持向后兼容性和向后移植安全修复程序。ASP.NET 和 Java 是我会考虑的两个唯一环境。