在现有应用程序中集成ASP.Net和('经典')ASP

在现有应用程序中集成ASP.Net和('经典')ASP

问题描述:

我想获得关于托管目前ASP应用程序的ASP.Net部分的最佳方法的建议。在现有应用程序中集成ASP.Net和('经典')ASP

我们有一个用('classic')ASP编写的大型复杂应用程序。

它的一部分需要重写(遗憾的是重写它的所有内容是不切实际的),我们将使用ASP.Net。

(原来的应用程序,使得在所有没有明确使用Session对象)


这在我看来,有两种方法继续进行这一托管。

选项1:创建一个新的虚拟目录,服务应用程序的新重建部分从那里 - 连接背部和ASP和ASP.Net之间必要的转发

选项2:保持内现有的虚拟目录并保持当前ASP目录


显然选项1是“更清洁”的子目录内的整个ASP.Net应用程序,我有轻微偏爱可以这样做。

但是从源代码管理和安装的角度来看,选项2可能更简单。

  • 在源代码管理中,您只有一个“trunk”,当需要更改时,它将被检出。
  • 安装时(由Inno Installer的多个位置的任意技术人员完成),技术人员只需选择一个虚拟目录,然后全部进入该目录。

我很想从谁做了选项1选项2人听到(或者一些其他的方式?)。

也有兴趣听到我忽略了哪种方法是否存在问题。

+0

我认为'主办'标签不应该在那里这个问题。相反,你可以为'source-control'或'svn'添加一个标签 – 2011-03-25 04:19:58

很久以前(大约3年前)我做了一个类似的项目,客户端有一个经典的ASP站点,他们想在ASP.NET中开发新的功能。我遵循方法二,在根中创建另一个VD,将所有文件放在那里。从源代码管理的角度来看,这些优势显而易见。然而,我不得不在我的设置中添加额外的步骤来为我的子VD设置ASP.NET版本以使其工作。另外分享会议是另一个问题,我相信你没有像你所描述的那样有问题。

我做到了左右逢源:

选项2:我有传统的ASP应用程序,并使用相同的虚拟目录,一切工作正常在ASP.NET 2.0中添加新的页面,但你需要传递会话信息,我记得我为此使用了QueryString,你可以看看How to Share Session State Between Classic ASP and ASP.NET。如果你不使用会话,那就更简单了。选项1:在同一个ASP应用程序中,我使用主应用程序的菜单中的链接调用ASP.NET应用程序(另一个虚拟目录)。但在这种情况下,它在逻辑上是分开的部分。在这种情况下,我也通过QueryString传递了会话信息。

因此,总而言之,我认为这一切都取决于这部分的接近逻辑与主应用的逻辑连接。

对于选项1,调试很容易。 如果选项2,则可以逐页替换。

从编码的角度来看没有严重的影响。差异主要是审美。我倾向于选项#2。它允许我选择为asp.net代码提供不同的IIS配置 - 以防将来需要它。