将(单片)经典ASP迁移到ASP.Net 多年来,我有一个目标,就是把ASP /VBScript移到一个“更好”的语言——我的首选是C,因为我有C语言的技能,但是我也会考虑其他语言(包括PHP等等,所以不仅仅是dotnet)。

将(单片)经典ASP迁移到ASP.Net 多年来,我有一个目标,就是把ASP /VBScript移到一个“更好”的语言——我的首选是C,因为我有C语言的技能,但是我也会考虑其他语言(包括PHP等等,所以不仅仅是dotnet)。,asp.net,asp-classic,vbscript,refactoring,migration,Asp.net,Asp Classic,Vbscript,Refactoring,Migration,目标是使代码库使用一种对我们有更多帮助的语言。我讨厌在VBScript缺少数据类型,我想有很多不同的“容器对象”——而不是仅仅是字典对象,等等——实际上我想知道为什么,在80个版本中从BASIC转移到C,然后C++之后,我设法把“BASE”移动到BASIC到00。 (我可以用VBScript对容器对象进行编程,但我的直觉是它们的操作速度会很慢;我们在页面呈现中使用了大量HTML“片段”,ASP应用程序对象是一个相当迟钝的工具!) 我的ASP/VBScript是一个大型应用程序,基本上是一个交付w

目标是使代码库使用一种对我们有更多帮助的语言。我讨厌在VBScript缺少数据类型,我想有很多不同的“容器对象”——而不是仅仅是字典对象,等等——实际上我想知道为什么,在80个版本中从BASIC转移到C,然后C++之后,我设法把“BASE”移动到BASIC到00。 (我可以用VBScript对容器对象进行编程,但我的直觉是它们的操作速度会很慢;我们在页面呈现中使用了大量HTML“片段”,ASP应用程序对象是一个相当迟钝的工具!)

我的ASP/VBScript是一个大型应用程序,基本上是一个交付web内容的“引擎”

它已经制作了很多年,现在ASP代码很少更改。(所以我确实需要证明移动它是正确的,或者只是“永远”使用VBScript)

它由MS SQL数据库中的数据驱动

只有一个.ASP页面(由几个包含文件组成)

根据查询字符串参数,从数据库加载页面的皮肤和CMS模板,并运行适当的数据库存储过程以获取合并到CMS模板中的数据

还可以从数据库中检索有关页面的数据(要使用的方法等),以及访问权限等详细信息

从我所读到的一些内容来看,这些东西可能会使迁移更容易:

不使用ASP会话-会话cookie用于从DB检索会话数据(因此我可以轻松地与ASPX共享一半和一半的会话)

VBScript始终使用选项EXPLICIT,因此所有变量都是预定义的

所有的输出都是通过Response.Write(事实上,大多数内容都被合并到一个变量中,然后再输出)实现的。没有HTML和XML的混合

我有一些VBScript类,但不多

我有很多VBScript函数和一些子程序

我有一个测试套件,它从浏览器捕捉屏幕截图,并以图形方式将它们与主图像进行比较,因此我有能力进行回归测试

我没有资源进行完全重写;在迁移过程中需要继续维护现有代码;但是我们99%的工作都是在CMS或SQL存储过程中进行的,因此很少对ASP代码进行更改

我读过MS将ASP代码迁移到VB.NET的实用程序。鉴于我的代码是100%的VBScript,并且没有HTML/脚本的混合,我将非常感谢您对我的帮助

我很乐意在VBscript中进行重构,以便以后更容易地迁移到DotNet(但我需要知道这样做的目的是什么:)。例如,我可以将一些/所有函数移动到一个COM对象,并且可能会零碎地执行该操作


感谢您的帮助

我有一个大型ASP classic intranet,我一直在维护它,直到去年,它已经很旧了,但是ASP classic中仍然添加了新的内容,因为已经投入了太多的库代码。如果您不经常更改ASP代码,并且有某种形式的测试,那么您已经有了一个良好的设置。(我必须承认这是我第一次听说截图方法)。如果一切都脱离数据库并正常工作。不要弄坏它

PHP会给你同样的问题的变种类型,但会给你一个世界的选择和选择,使ASP经典似乎是一个孩子的玩具。开箱即用PHP做了我需要做的一切

ASP.net是一个大框架。正确而全面地理解它不是一件容易的事情,它经常让我感到惊讶。它试图为来自表单环境的开发人员自动完成一些事情,当您使用非常精确的呈现方法时,这些事情会变得非常突出,就像您所说的那样。在ASP.NETMVC出现之前,我发现自己一直在与这项技术作斗争。它更符合我的想法,因为它是如何工作的,并且做了我要求它做的事情,仅此而已。C#是一种非常棒的语言,它具有出色的功能,如果你能找到合适的部分,DOT.net框架可以让你做任何事情。其中有很多内容,你会发现自己偶尔会写一些已经在框架中完成的东西,只是在完成自己的实现之后才发现

实际上,迁移可能会导致一些有趣的问题。即使您可以像ASP经典页面一样运行ASP.net页面,您也会失去环境的许多好处。话虽如此,我确实做了一些测试,试图将有问题的站点迁移到ASP.net,并设法找到了绕过大多数绊脚石的方法,并得出结论,这样的迁移实际上是“纯粹的工作”。尽管如此,进行此类迁移所需的人工时数之多使得这项工作不可行

就我个人而言,我不会建议这样的迁移,除非你有几个ASP.net项目成功地在你的领导下,并意识到ASP.net带来的陷阱

我还没有看到你提到的ASP到ASP.net的转换工具,但是我很想得到它的链接


如果您仍使用VBScript,并且不了解AXE(ASP Xtreme Evolution)项目,我强烈建议您研究该项目,从中获得灵感,帮助您克服/绕过ASP经典的几个“限制”,并了解其提供的功能库。

如果您正在寻找一种向管理层证明该项目合理性的方法,要找到经典的ASP开发人员来继续维护应用程序将变得越来越困难。任何有选择权的开发人员都可能不会选择