我已经接管了主要使用经典ASP编写的遗留Web应用程序。一个页面具有用于执行作业估计的表单,并且包括大约2500行javascript和ASP代码以实现“透明编辑” - 即,表单始终处于编辑模式,并且更改立即更新到DOM中。
还有一个“打印到Word Doc”按钮,当单击时,会转到一个完全独立的ASP文件,该文件会生成(据说)HTML中发送的相同视图,下载到Word文档。
问题是我们发现了生成的两个版本中的不一致和错误。我应用DRY原则的第一个回答是,这需要在ASP.NET中重写,只需一个代码隐藏文件输出网页和word文档的视图,这样我们就有一个地方可以维护源。
然而,在进入它之后,我质疑这种方法的智慧,我正在征求意见。
问题在于,由于视图与网页上的编辑集成在一起,而不是简单地在工作文档上显示,这两个功能确实有两个不同的目的。此外,ASP代码虽然丑陋且难以维护,但却产生了一个相当漂亮的文档。在ASP.NET中做同样的事情,至少使用像FormView这样的ASP.NET控件,证明是具有挑战性的。 (其中一个重写要求是新页面的功能必须像旧页面一样,当然是减去错误。)javascript的集成以实现客户端的编辑功能,这样可以获得良好的用户体验(假设它们正常工作) 。我可以用AJAX和/或jQuery完成同样的事情,但我想知道我是否真的在这里获得任何东西。
你会如何处理?
答案 0 :(得分:4)
您还必须考虑其他几个问题:
ASP.NET虽然是一件很棒的事,但并不是一颗银弹。如果你正在转动轮子,那么你就没有高效率,也没有人在合理的时间内获得固定的产品。这就像重构代码只是为了重构代码。它没有修复任何缺陷,但代码看起来很漂亮。
我给你的建议:坚持使用经典的ASP直到你得到错误。 然后将它移植到ASP.NET。我宁愿移植固定产品而不是破坏产品。
答案 1 :(得分:1)
这是一个非常复杂的问题。主要问题就在那里:
我想知道我是否真的在增加 这里有什么。
你需要修改一个小mod吗?还是很大?你将来要保持多少钱呢?
您只会在未来的修改中实现分红。如果你再也没有接触过这个系统,那么重写就不会有任何好处。
答案 2 :(得分:1)
我参与了将经典ASP应用程序“转换”为.NET应用程序的项目。这就是我们所做的: