我们正在使用VBScript作为主要语言来构建基于Classic ASP的Web应用程序.我们同意我们的后端(框架,如果你愿意)已过时,并没有为我们提供快速前进的适当工具.我们几乎已经接受了当前的webMVC模式,并且不能以合理的方式使用当前的技术来实现.缺失的大功能是适当的调度和继承模板等.
目前正在讨论两条路径:
使用JScript将现有应用程序移植到Classic ASP,这将使我们能够毫不费力地从那里转到.NET MSJscript,并最终最终在.NET平台上(最好是MVC的东西将由ASP完成).在我们的意见中,NET并不比我们现在好多了.这被认为是比下一个选择风险更小的更安全的路径,尽管可能需要稍长一些.
使用其他一些技术完全重写应用程序,现在该软件包的领导者是Python WSGI,它具有自定义框架,ORM和良好的模板解决方案.即使是django和其他预先构建的解决方案,这里也有摆动空间.这种方法有望成为最快的解决方案,因为我们可能会在实际产品旁边运行测试版,但如果我们不能/不能做到这一点,它确实有可能浪费大量时间.
这并不意味着我们的逻辑已经消失,因为我们多年来建立的逻辑相当稳定,正如所指出的那样难以处理.它建立在SQL Server 2005上,大量使用存储过程并在IIS 6上发布,只是为了更多的背景.
现在,问题.有没有人采取上述两条路径中的任何一条?如果是这样,它是否成功,它怎么可能更好,等等.我们不希望偏离做这两件事之一,但一些建议或其他解决方案可能会有所帮助.
不要丢弃你的代码!
这是你可以犯的最大错误(在大型代码库上).看你不应该做的事情,第1部分.
您已经在这些旧代码上投入了大量精力并制定了许多错误.抛弃它是一个典型的开发人员错误(我已经做了很多次).它会让你感觉"更好",就像春季大扫除一样.但是你不需要买一套新公寓和所有新家具来装你的房子.你可以一次在一个房间工作......也许有些东西只需要一个新的paintjob.因此,这就是重构的地方.
对于应用程序中的新功能,请使用C#编写它并从您的经典ASP中调用它.重写这个新代码时,你将被迫成为模块化的.当你有时间时,将旧代码的一部分重构为C#,并随时解决错误.最终,您将使用所有新代码替换您的应用.
您也可以编写自己的编译器.很久以前我们为经典的ASP应用程序写了一个,以便我们输出PHP.它被称为Wasabi,我认为这就是杰夫阿特伍德认为Joel Spolsky脱离摇滚乐的原因.实际上,也许我们应该发货,然后你可以使用它.
它允许我们将整个代码库切换到.NET以用于下一个版本,同时只重写我们源代码的一小部分.它也让很多人称我们为疯了,但编写编译器并不复杂,它给了我们很大的灵活性.
此外,如果这是一个内部唯一的应用程序,请保留它.不要重写它 - 你是唯一的客户,如果你需要将它作为经典的asp运行,你就可以满足这个要求.