代码之家  ›  专栏  ›  技术社区  ›  Kristen

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

  •  4
  • Kristen  · 技术社区  · 16 年前

    多年来,我的目标是将ASP/vbscript转换为“更好”的语言-我喜欢C语言,因为我有C语言的技能-但我也会考虑其他语言(包括php等,所以不仅仅是dotnet)

    目标是让代码库使用一种能为我们做更多工作的语言。我讨厌在VBScript缺少数据打字,我想要一些不同的“容器对象”——而不仅仅是一个字典对象,等等——实际上我想知道为什么,从80到C的移动,然后在C++之后,我设法把“返回”移动到BASIC到00。

    (我可以在vbscript中对容器对象进行编程,但我的直觉是它们的操作会很慢;我们有大量用于呈现页面的HTML“片段”,ASP应用程序对象是一种非常钝的工具!)

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

    这已经有很多年的时间了,现在ASP代码很少改变。(所以我需要证明移动它的合理性,或者只是“永远”使用vbscript)

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

    只有一个.asp页(由多个包含文件组成)。

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

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

    根据我所读到的一些内容,这些东西可能使迁移更容易:

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

    vbscript全程使用选项explicit,因此所有变量都是预定义的。

    所有的输出都是通过response.write(事实上,大多数内容合并成一个变量,然后输出)。没有HTML和<%server code%>的混合。

    我有一些vbscript类,但不多。

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

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

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

    我读过微软将ASP代码迁移到VB.NET的实用程序。考虑到我的代码是100%vbscript,没有HTML/脚本的混合,我会很感激关于这是否对我有很大帮助的意见?

    我很乐意在vbscript中进行重构,以便于以后迁移到dotnet(但我需要知道我的目标是什么)。例如,我可以将一些/所有的函数移动到一个COM对象,并且可能是零碎的?

    谢谢你的帮助

    2 回复  |  直到 16 年前
        1
  •  5
  •   feihtthief    16 年前

    我有一个大型的ASP Classic内部网,我一直维护到去年,而且它正在变老,但是新的部分仍然被添加到ASP Classic中,因为已经投入了太多的库代码。如果您不经常更改ASP代码,并且有某种形式的测试,那么您已经有了一个良好的设置。(我不得不承认这是我第一次听说截图方法)。如果所有东西都被从数据库中删除并工作。不要打破它。

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

    ASP.NET是一个大框架。正确而全面地理解它不是一件容易的事情,它经常让我感到惊讶。它试图为来自表单环境的开发人员做一些事情,当您来自一种非常精确的呈现方法(比如您的声音)时,这种方法会自动变得非常刺眼。我发现自己一直在与这项技术作斗争,直到ASP.NET MVC出现。它更适合我的想法,因为它是如何工作的,并按照我的要求去做,而不是别的。C是一种很棒的语言,它具有出色的功能,如果你能找到合适的部分,dot.net框架可以让你做任何事情。其中有很多你会发现你自己偶尔会写一些已经在框架中完成的事情,只是在完成你自己的实现之后才找到它。

    实际上,迁移可能会导致一些有趣的问题。尽管您可以像运行ASP经典页面一样运行ASP.NET页面,但您将失去环境的许多好处。也就是说,我做了一些测试来研究如何将相关站点迁移到ASP.NET,并设法找到绕过大多数障碍的方法,得出这样的结论:这样的迁移实际上是“仅仅是工作”。尽管如此,移民所需的大量工时使得这项工作不可行。

    我个人并不建议这样的迁移,除非您成功地拥有了几个ASP.NET项目,并且知道ASP.NET带来的好处。

    我没有看到你所说的ASP到ASP.NET转换工具,但是我希望能找到它的链接。

    如果您仍在vbscript中,并且不知道AXE(ASP Xtreme Evolution)项目 here 我可以强烈建议从中寻找灵感,来克服/绕过几个ASP经典的“局限性”,以及它提供的功能库。

        2
  •  1
  •   skolima    16 年前

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

    虽然我没有从微软那里听到任何消息,但在他们决定完全淘汰经典的ASP之前,不可能太久。