我的任务是在遗留系统中引入一些新功能,这将为企业节省大量成本。
初步调查显示,这是一个用VB编写的经典ASP项目。对于经典ASP没有过多的经验,我研究过是否可以使用ASP.Net进行添加,发现它们可以很好地协同工作。我介绍了一些简单的新功能,完成了一些初始测试,并确信它可以在项目的其余部分进行设置。
在开发过程中,我发现无法从我的.ASPX页面访问Application_OnStart
文件的global.asa
事件中的数据集,并且作为解决方法,我创建了Global.asax
在Application_Start
事件上设置相同值的文件。这意味着DRYness的一些配置重复/丢失,因为这些文件包含数据库详细信息而不是从单独的配置文件中读取它们(这些本质上是配置文件),这被认为是可以接受的权衡,以节省分离它们的时间进行。
然而,在从我们的DEV迁移到我们的UAT环境时,我现在发现UAT服务器上的global.asa
文件中的更改会立即反映,而Global.asax
文件中的更改需要重新编译并重新部署.dll才能生效。对.aspx页面的更改会立即反映出来,无需重新编译。
在项目的设置和开发过程中,我是否总是如此或无意中引入了这个问题?如果是这样,你能解释如何吗?
答案 0 :(得分:1)
经典ASP和ASP.net是不同的技术,但你可以在同一个网站上使用它们(就像你真的想要在同一个网站上使用经典ASP和PHP一样)。正如您所发现的那样,其中一个结果是每个都需要自己的数据库连接。另一个令许多人感到沮丧的是,在经典页面中创建的会话变量对于.net页面是不可见的,反之亦然。
正如您所发现的,Classic使用在运行时执行的代码,而.net使用已编译的代码。需要在更改后重新编译项目是ASP.net开发的重要组成部分。
我还应该提到Classic使用VBScript。这是与VB或VB.net类似但不完全相同的语言
经典ASP被视为“遗产” - 如果您不熟悉它,那么在您更熟悉的技术中添加任何新功能是有意义的