2009-11-12 39 views
3

多年来,我的目标是将ASP/VBScript转移到“更好”的语言 - 我的偏好是C#,因为我有C技能 - 但我会考虑其他语言(包括PHP等,所以不只是DotNet)移植(单片)经典ASP到ASP.Net

目标是让代码库以一种语言为我们做更多的事情。我讨厌在VBScript中输入数据的缺失,我想要许多不同的“容器对象” - 而不仅仅是一个Dictionary对象,等等 - 事实上,我想知道为什么在80年代从Basic转换为C,以及然后C++一段时间后,我设法移回到基本到00。 (我可以在VBScript中编写容器对象,但是我的直觉是,它们的运行速度会很慢;我们在页面渲染中使用了HTML的“片段”缓存,ASP应用对象是一个漂亮的钝器!)

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

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

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

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

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

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

从我看过一些这些东西可能会使迁移变得容易:

ASP会话不使用 - 会话cookie被用来从DB(获取会话数据,所以我可以很容易地共享会话半和与ASPX

- 半

的VBScript使用OPTION整个显式的,所以所有的变量是预定义的。

所有输出是经由回复于(实际上大多数内容被合并成一个单一的变量,然后输出)。有没有混合HTML和<%服务器代码%>。

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

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

我有一个测试套件。这会捕捉来自浏览器的屏幕截图,并将它们与主图像进行比较 - 因此我有能力进行回归测试。

我没有资源做一个完整的重写;现有代码的维护需要在迁移过程中继续进行;但是说99%的工作是在CMS或SQL Sprocs中,所以对ASP代码的更改很少。

我已阅读MS的实用程序将ASP代码迁移到VB.NET。鉴于我的代码是100%的VBScript,并没有混合的HTML /脚本,我会感谢意见,这是否会帮助我很多或一点?

我很乐意重构在VBscript中保持一段时间,以便稍后更轻松地迁移到DotNet(但我需要知道我的目标是在做什么:))。例如,我可以将一些/所有的功能移动到一个COM对象上,并且可能会这么零碎吗?

感谢您的帮助

+1

对于每个句子,文本墙和段落之间都有一条细线。 – maxpower47 2009-11-12 18:21:19

+3

我比较喜欢这一段文字。 – 2009-11-12 18:23:54

+0

第二段有两句话:)散文不是我的强项,对不起。 – Kristen 2009-11-13 08:29:53

回答

4

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

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

ASP.net是一个BIG框架。充分理解它并不是一件容易的事情,它经常给我带来惊喜。它会尝试为来自窗体环境的开发人员自动执行某些操作,当您从一种非常精确的渲染方法中获得非常刺激的效果时,就像您听到的声音一样。我发现自己一直在与技术战斗,直到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经典“限制”和库的灵感它提供的功能。

+0

一直在阅读“ASP Xtreme Evolution”,看起来很有趣,而JSON/URL rerwite(无论如何都在看)等等都是有用的东西;感谢你和其他评论。 ASP到ASP.NET的迁移链接:http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/ – Kristen 2009-11-13 08:46:51

+0

从微软的ASP到ASP.net转换工具在1.0 &1.1框架日。在转换过程中发生的事情是,带有所有VBScript的经典ASP页面将更改为与当前HTML标记交织的内嵌VB.net标记。尽管有效地转换了这一点,但如果您使用的是COM对象和其他类型,转换工具将无法处理这些项目。之后需要进行大量的清理工作,但您仍然没有从清洁的aspx页面开始的好处。 – Chris 2010-09-08 13:28:23

0

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

尽管我还没有听说过微软的任何事情,但他们决定完全退休的经典ASP还不算太多年。