将大型经典ASP页面迁移到php?

时间:2009-04-02 07:35:32

标签: php asp.net asp-classic migration

我们有一个很大的经典asp应用程序,我们考虑迁移到asp.net或php。我不想谈论任何一个的利弊,但我想知道在迁移到php时是否有办法避免一次完全重写。我们根本无法停止维护当前的代码库来进行重写。所以事情必须齐头并进。

如果我们转移到asp.net,我们应该能够在两种技术之间共享会话数据,并将部分网站替换为新的asp.net代码,而其他部分则继续运行。这种方法可以用PHP吗?有没有人有这种迁移的经验,或者可以给我一些好的读数?

4 个答案:

答案 0 :(得分:4)

在ASP Classic和ASP.NET之间共享会话状态的能力不是任何一种语言的固有特性,尽管它很容易实现。

Microsoft提供示例代码: http://www.google.com/search?client=safari&rls=en-us&q=share%20session%20data%20between%20ASP%20and%20ASP.NET%20pages&ie=UTF-8&oe=UTF-8

通过使用Microsoft的示例,您可以非常轻松地在PHP中实现类似的功能。基本上你使用上面微软代码的ASP Classic部分。然后在PHP中,您将编写一个相当简单的类,以便在加载每个页面时将数据库中的会话状态读取到数组或集合中。这是PHP的一些额外工作,但不应超过几天的编码和测试。

PHP在我的有限经验中在IIS6上运行良好,并且在IIS7中对它的支持应该更好。我遇到的唯一问题是,大多数PHP代码都假设你在Linux / Unix上运行......但通常这只是文件处理代码的一个问题(想想:用户图像上传)适用于本地文件系统路径。因为他们假设您的文件系统在Windows上使用/而不是\ like。显然相当微不足道的修复。

祝你好运!

答案 1 :(得分:1)

是;可以在单个Web应用程序上共享ASP和ASP.NET页面之间的会话数据。我们在工作中使用遗留代码来实现这一点。

我知道可以在IIS上运行PHP。不确定在ASP和PHP脚本之间共享会话。

答案 2 :(得分:1)

“我想知道在迁移到php时是否有办法避免一次完全重写”

欢迎来到我们的世界。

我们的FogBugz代码库是用经典的ASP编写的,当我们想在Linux上提供它时,最简单的解决方案是编写一个读取asp并发出php的编译器。这并不困难,并且不会花费超过几周的时间。

好处是当我们决定将整个应用程序切换到.NET时,它只意味着稍微调整编译器以输出.Net对象代码。

但是要回到你的答案,ASP和PHP非常相似,并且取决于你的应用程序,真的很天真的翻译可能会让你在那里大部分时间。

答案 3 :(得分:0)

只是另一种选择。 John Booty也有一个很好的建议。

如果会话数据不是敏感信息,您可以使用Cookie,这些Cookie也将与平台无关,等待用户启用了Cookie。

考虑到这个帖子,这可能不是你最好的选择,而是考虑另一个。