从asp classic转换为asp.net的最简单方法是什么?

时间:2008-09-18 18:59:45

标签: asp.net asp-classic

我是一名.Net开发人员,其任务是将经典的asp网站升级到asp.net。该网站目前正在运气和泡泡糖,但没有足够的时间或金钱来阻止进展并进行全面改写。当然,在升级时我仍然需要能够提供新功能。

我应该采用什么策略来逐步改变asp.net?我应该转换为单层.net解决方案,然后重构为适当的多层解决方案,还是应该现在设计我的业务和数据层?我应该直接使用3.5还是更容易获得1.1并在之后升级到2.0或3.5?

完全转换可能需要3-5个月。还有一些现有的1.1代码,这就是我考虑将其作为起点的原因。

9 个答案:

答案 0 :(得分:13)

不要丢弃你的代码!

这是你可以犯的最大错误(在大型代码库上)。请参阅Things You Should Never Do, Part 1

您已经为这些旧代码投入了大量精力,并制定了许多错误。抛弃它是一个典型的开发人员错误(我已经做了很多次)。它会让你感觉“更好”,就像春季大扫除一样。但是你不需要买一套新公寓和所有新家具来装你的房子。你可以一次在一个房间工作......也许有些东西只需要一个新的paintjob。因此,这就是重构的地方。

对于您应用中的新功能write it in C# and call it from your classic ASP。重写这个新代码时,你将被迫成为模块化的。当你有时间时,将旧代码的一部分重构为C#,并随时解决错误。最终,您将使用所有新代码替换您的应用。

您也可以编写自己的编译器。很久以前我们为经典的ASP应用程序写了一个,以便我们输出PHP。它被称为Wasabi,我认为这就是杰夫阿特伍德认为Joel Spolsky脱离摇滚乐的原因。实际上,也许我们应该发货,然后你可以使用它。

它允许我们在下一个版本中将整个代码库切换到.NET,同时只重写我们源代码的一小部分。这也让很多人给我们打电话,但编写编译器并不复杂,它给了我们很大的灵活性。

此外,如果这是一个内部唯一的应用程序,请保留它。不要重写它 - 你是唯一的客户,如果你需要将它作为经典的asp运行,你就可以满足这个要求。

答案 1 :(得分:11)

作为一名长期经典的asp程序员,现在是ASP.NET开发人员,我会花时间在2.0框架中正确构建它(如果你想要/需要这些功能,则需要3.5)。

我上一份工作中有一大堆非常糟糕的经典asp应用程序,我们正在重建,“核武器和铺路”方法是最成功的。使用现有的经典应用程序作为功能规格和线框,并构建您的任务和技术规格。

答案 2 :(得分:1)

完整的转换/重写需要多长时间?它还取决于你如何构建原始项目。

可以回答您应该从一开始就定位v2.0(如果您需要/需要它的功能为3.5)。没有必要让自己接受1.1的框架。

答案 3 :(得分:1)

答案 4 :(得分:0)

您可能希望查看新的ASP.NET MVC框架。灵活性水平令人惊叹,编码风格略微类似于ASP经典方法,尽管教堂和州之间的分离更好。

答案 5 :(得分:0)

看看Snitz论坛(www.snitz.com) - 他们目前在ASP,但ASP.NET的端口几乎完成。您可以查看这两个代码库,以便了解它是如何帮助您的。

答案 6 :(得分:0)

我将避免进入.NET 1.1,因为微软在10/14/2008结束了对.NET Framework v 1.1的支持。扩展支持将持续到2013年10月8日,但购买通常很昂贵。任何错误或安全漏洞都不会被解决,这是你的问题。

http://support.microsoft.com/lifecycle/?LN=en-us&x=11&y=10&p1=1249

答案 7 :(得分:0)

最简单的方法就是先跳头。获得一些asp.net书籍并深入视觉工作室。做例子,玩它,为自己创造一些有趣的东西。你将通过实践来学习。

答案 8 :(得分:0)

我还在努力逐步从经典ASP迁移到ASP.NET。我们的第一个阶段是将一些常见逻辑从ASP包迁移到暴露给COM Interop的.NET程序集,以便它们可以被经典ASP和ASP.NET调用。我使用ASPUnit编写了一些测试来验证迁移到.NET程序集后的行为(还有更安全的重构的好处)。一旦核心逻辑在.NET中,我们就可以开始在ASP.NET中创建新页面,并按照自己的步调将各个ASP页面迁移到ASP.NET。

我建议.NET 2.0或3.5超过1.1。 ASP.NET MVC看起来像一个有吸引力的升级路径。