将旧版ASP应用程序转换为ASP.NET:最佳方法

时间:2009-10-05 16:18:41

标签: asp.net asp-classic

我已经接管了主要使用经典ASP编写的遗留Web应用程序。一个页面具有用于执行作业估计的表单,并且包括大约2500行javascript和ASP代码以实现“透明编辑” - 即,表单始终处于编辑模式,并且更改立即更新到DOM中。

还有一个“打印到Word Doc”按钮,当单击时,会转到一个完全独立的ASP文件,该文件会生成(据说)HTML中发送的相同视图,下载到Word文档。

问题是我们发现了生成的两个版本中的不一致和错误。我应用DRY原则的第一个回答是,这需要在ASP.NET中重写,只需一个代码隐藏文件输出网页和word文档的视图,这样我们就有一个地方可以维护源。

然而,在进入它之后,我质疑这种方法的智慧,我正在征求意见。

问题在于,由于视图与网页上的编辑集成在一起,而不是简单地在工作文档上显示,这两个功能确实有两个不同的目的。此外,ASP代码虽然丑陋且难以维护,但却产生了一个相当漂亮的文档。在ASP.NET中做同样的事情,至少使用像FormView这样的ASP.NET控件,证明是具有挑战性的。 (其中一个重写要求是新页面的功能必须像旧页面一样,当然是减去错误。)javascript的集成以实现客户端的编辑功能,这样可以获得良好的用户体验(假设它们正常工作) 。我可以用AJAX和/或jQuery完成同样的事情,但我想知道我是否真的在这里获得任何东西。

你会如何处理?

3 个答案:

答案 0 :(得分:4)

您还必须考虑其他几个问题:

  • 缺陷有多重要?
  • 如何 很多时候你必须得到这个 固定的东西?
  • 需要多长时间 你要纠正经典中的缺陷 ASP?
  • 你需要多长时间 将整个事物转换为ASP.NET?
  • 在整个事情结束时,将会 任何人都关心它的平台 实施在?那就是他们 仍然可以完成他们的工作? 因为,在一天结束时, 这才真正重要。

ASP.NET虽然是一件很棒的事,但并不是一颗银弹。如果你正在转动轮子,那么你就没有高效率,也没有人在合理的时间内获得固定的产品。这就像重构代码只是为了重构代码。它没有修复任何缺陷,但代码看起来很漂亮。

我给你的建议:坚持使用经典的ASP直到你得到错误。 然后将它移植到ASP.NET。我宁愿移植固定产品而不是破坏产品。

答案 1 :(得分:1)

这是一个非常复杂的问题。主要问题就在那里:

  

我想知道我是否真的在增加   这里有什么。

你需要修改一个小mod吗?还是很大?你将来要保持多少钱呢?

您只会在未来的修改中实现分红。如果你再也没有接触过这个系统,那么重写就不会有任何好处。

答案 2 :(得分:1)

我参与了将经典ASP应用程序“转换”为.NET应用程序的项目。这就是我们所做的:

  1. 制作经典ASP文件的副本,然后使用Visual Studio的自动转换功能将此新副本转换为.NET应用程序。
  2. 列出了我们希望在这个新应用程序中利用的.NET功能,然后在应用程序中找到了正确的位置来实现它们。
  3. 在需要的地方重写代码以充分利用这些功能。
  4. 重构现有的经典ASP代码,以避免重新发明不需要的轮子。
  5. 测试了所有内容,然后并行运行了两个应用程序,直到我们对新的.NET应用程序按预期运行感到满意为止。