我在64位Windows Server 2003中的IIS上的32位空间中使用VBScript专门(没有COM组件)有一个相当大的ASP站点。您可以在这里看到该架构的草图:
我想开始将其迁移到ASP.NET,但我迫切需要将数据库访问到我可以开始使用它与驻留在同一服务器上的其他C#和.NET应用程序(编译为32-咬VS2008)。
我的想法是创建C#.dll然后使用interop从ASP代码中调用它们,当我迁移时,我将已经完成数据部分。
Interop的性能如何?我可能有大约200人,最多在几小时的时间内点击应用程序进行数据库提交。我目前的设置没有容量或性能问题。
我在与此连接的同一子网上有一个SQL Server(2005)框;它也是64位Windows Server 2003。
这是一个可行的策略吗?鉴于我的架构,还有更好的方法可以解决这个问题吗?
现在一个很大的问题是ASP应用程序使用了数百个存储过程;我在重叠部分进行开发的地方继承了它,例如,对用户的简单操作可以通过不同页面的不同触发来完成。一个重要目标是集中对组件的数据访问,并抽象出数据库中的实现。因此,如果我添加或更改字段,ASP应用程序将不必知道其名称;它只能通过对象上的相同属性访问。
答案 0 :(得分:2)
我采用了一种非常类似的方法将一个非常大的计费应用程序从VB6迁移到C#。这是一种完全可行和合理的方法。
我将专注于首先将业务逻辑和数据访问从UI迁移到适当的类中,然后开始将UI的一部分从经典ASP移动到ASP.Net。
一两个小时内有200人,你不会注意到互操作开销。
特别是考虑到您必须使用多种代码变体来处理直接访问数据库的UI,因此可能需要投入一些时间将自动化测试放到现有代码中。确保您遵循针对您编写的新代码的测试驱动方法。如果您没有在自动化测试中投入大量资金,那么当您逐步重新构建应用程序时,您可能会面临难以检测的应用程序风险。