将(单片)经典ASP迁移到ASP.Net

时间:2009-11-12 17:49:18

标签: asp.net asp-classic vbscript refactoring migration

多年来我的目标是将ASP / VBScript转移到“更好”的语言 - 我的偏好是C#,因为我有C技能 - 但我也会考虑其他语言(包括PHP等等)不仅仅是DotNet)

目标是使用一种语言为我们提供更多代码。我讨厌在VBScript中缺少数据输入,我想要一些不同的“容器对象” - 而不仅仅是一个字典对象,等等 - 实际上我想知道为什么,在80年代从Basic转移到C,然后在那之后的一段时间里,我设法将“返回”基本输入到00'。

(我可以在VBScript中对容器对象进行编程,但我的直觉是它们的运行速度很慢;我们在页面渲染中使用了大量的HTML“片段”,ASP应用程序对象是一个相当钝的乐器!)

我的ASP / VBScript是一个大型应用程序,基本上是一个提供Web内容的“引擎”。

它已经有很多年了,现在ASP代码很少变化。 (所以我确实需要证明移动它,或者只是“永远与VBScript一起生活”)

它是从MS SQL数据库中的数据驱动的。

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

基于查询字符串参数从数据库加载页面的外观和CMS模板,运行合适的数据库Sprocs以获取合并到CMS模板中的数据。

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

根据我的阅读,这些事情可能会使迁移变得更容易:

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

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

所有输出都是通过Response.Write(实际上大多数内容合并为单个变量然后输出)。不存在HTML和<%服务器代码%>的混合。

我有一些VBScript类,但不是很多。

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

我有一个测试套件。这会从浏览器中捕获屏幕截图并以图形方式将它们与主图像进行比较 - 因此我可以进行回归测试。

我没有足够的资源来完成重写;在迁移期间需要继续维护现有代码;但是我说我们99%的工作都在CMS或SQL Sprocs中,因此对ASP代码的更改很少。

我已阅读MS的实用程序,将ASP代码迁移到VB.NET。鉴于我的代码是100%VBScript并且没有HTML / Script的混合,我会很感激这对我是否会帮助很多或者一点点的看法?

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

感谢您的帮助

2 个答案:

答案 0 :(得分:5)

我有一个大型的ASP经典内联网,直到去年我一直在维护,并且它已经老了,但是在ASP classic中仍然添加了新的部分,因为已经有很多库代码投入了。如果您不经常更改ASP代码并进行某种形式的测试,那么您已经有了一个很好的设置。 (我不得不承认这是我第一次听说过截图方法)。如果一切都是从DataBase驱动并运行的话。不要打破它。

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

ASP.net是一个很大的框架。正确而充分地理解它并不是一件容易的事,它经常给我带来惊喜。它试图为来自表单环境的开发人员做一些事情,当你来自一个非常精确的渲染方法,就像你听起来那样非常突兀。我发现自己一直在与技术作斗争,直到ASP.net MVC出现。它更符合我的想法,因为它的工作原理和做了我所要求的,仅此而已。 C#是一种非常棒的语言,具有出色的功能,如果您能找到合适的部分,DOT.net框架可以让您做任何事情。有这么多你会发现自己偶尔会写一些已经在框架中完成的东西,只是在完成你自己的实现之后找到它。

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

我个人不建议进行这样的迁移,除非你成功完成了一些ASP.net项目,并且知道asp.net带来的问题。

我还没有看到您所说的ASP到ASP.net转换工具,但很想获得它的链接。

如果你留在VBScript并且不知道AX(ASP Xtreme Evolution)项目here我可以强烈建议查看它以获得过去/围绕几个ASP经典“限制”的灵感,对于它提供的功能库。

答案 1 :(得分:1)

如果您正在寻找一种方法来证明项目管理的合理性,那么找到经典的ASP开发人员来继续维护应用程序将变得越来越困难。任何有选择的开发人员都可能不会选择维护使用VBScript构建的应用程序。接受这项工作的开发人员可能会认为这是暂时的,并继续寻找其他工作。

虽然我没有收到微软的任何消息,但在他们决定完全退出经典ASP之前不会太多年。

相关问题