14

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

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

完全转换可能需要 3-5 个月。还有一些现有的 1.1 代码,这就是为什么我考虑使用它作为起点。

4

9 回答 9

13

不要扔掉你的代码!

这是您可能犯的最严重的错误(在大型代码库上)。请参阅您不应该做的事情,第 1 部分

您已经在旧代码上投入了大量精力并解决了许多错误。把它扔掉是一个典型的开发人员错误(我已经做过很多次了)。它让你感觉“更好”,就像大扫除一样。但是您不需要购买新公寓和所有新家具来装备您的房子。你可以一次在一个房间里工作……也许有些事情只需要一个新的油漆工作。因此,这就是重构的用武之地。

对于您的应用程序中的新功能,用 C# 编写它并从您的经典 ASP 中调用它。当你重写这个新代码时,你将被迫模块化。当您有时间时,也可以将部分旧代码重构为 C#,并随时解决错误。最终,您将使用所有新代码替换您的应用程序。

您也可以编写自己的编译器。我们很久以前为我们的经典 ASP 应用程序编写了一个,以允许我们输出 PHP。它叫做芥末,我认为这就是杰夫阿特伍德认为乔尔斯波尔斯基失控的原因。实际上,也许我们应该把它寄出去,然后你就可以使用它了。

它允许我们将整个代码库切换到 .NET 以用于下一个版本,同时只重写我们源代码的一小部分。也让很多人骂我们疯了,但是写一个编译器也没那么复杂,给了我们很大的灵活性。

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

于 2008-09-19T18:12:06.820 回答
11

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

在我的上一份工作中,我们有大量非常糟糕的经典 asp 应用程序,我们正在重建这些应用程序,“nuke and pave”方法是最成功的。使用现有的经典应用程序作为您的功能规范和线框,并以此为基础构建您的任务和技术规范。

于 2008-09-19T05:53:52.377 回答
1

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

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

于 2008-09-18T19:02:15.017 回答
1

试试这些链接

从 ASP 迁移

主要考虑因素

将 ASP 转换为 ASP.NET

ASP 到 ASP.NET 迁移指南

于 2008-09-18T19:04:19.397 回答
0

您可能想查看新的 ASP.NET MVC 框架。灵活性水平是惊人的,编码风格更类似于 ASP 经典方法,尽管教会和国家更好地分离。

于 2008-09-18T19:10:51.703 回答
0

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

于 2008-09-18T20:14:20.663 回答
0

我会避免使用 .NET 1.1,因为 Microsoft 将于 2008 年 10 月 14 日结束对 .NET Framework v 1.1 的支持。扩展支持将持续到 2013 年 10 月 8 日,但通常购买成本很高。任何错误或安全漏洞都不会得到解决,而是您的问题。

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

保罗

于 2008-09-18T20:55:54.713 回答
0

最简单的方法就是先跳起来。获取一些 asp.net 书籍并潜入视觉工作室。做例子,玩它,为自己构建一些有趣的东西。你会边做边学。

于 2008-09-19T18:13:57.690 回答
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 看起来像是一个有吸引力的升级路径。

于 2008-11-16T10:21:34.793 回答