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