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

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

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

有帮助吗?

解决方案

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

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

其他提示

不要扔掉你的代码!

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

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

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

您也可以编写自己的编译器。很久以前,我们为我们的经典 ASP 应用程序编写了一个,以允许我们输出 PHP。它被称为 芥末 我认为这就是杰夫·阿特伍德认为乔尔·斯波尔斯基发疯的原因。事实上,也许我们应该直接发货,然后你就可以使用它了。

它允许我们在下一个版本中将整个代码库切换到 .NET,同时只重写源代码的一小部分。这也导致一堆人骂我们疯了,但是编写一个编译器并没有那么复杂,而且给了我们很大的灵活性。

另外,如果这是仅供内部使用的应用程序,请保留它。不要重写它 - 您是唯一的客户,如果您需要将其作为经典 asp 运行,您可以满足该要求。

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

回答说你应该从一开始就以 v2.0 为目标(如果你想要/需要它的功能,则为 3.5)。无需让自己受框架 1.1 的约束。

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

看一下 Snitz 论坛 (www.snitz.com) - 它们目前采用 ASP,但到 ASP.NET 的移植已基本完成。这两个代码库都可供您查看,这样您就可以了解它们是如何完成的,从而为您提供帮助。

我会避免讨论 .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

保罗

最简单的方法就是先跳进去。获取一些 ASP.NET 书籍并深入研究 Visual Studio。做一些例子,尝试一下,为自己构建一些有趣的东西。你会边做边学。

我还致力于从经典 ASP 逐步迁移到 ASP.NET。我们的第一阶段是将一些通用逻辑从 ASP 包含迁移到公开给 COM Interop 的 .NET 程序集,以便经典 ASP 和 ASP.NET 都可以调用它们。我已经使用编写了一些测试 ASP单元 验证迁移到 .NET 程序集后的行为(具有更安全重构的额外好处)。一旦核心逻辑位于 .NET 中,我们就可以开始在 ASP.NET 中创建新页面,并按照自己的进度将各个 ASP 页面迁移到 ASP.NET。

我会推荐 .NET 2.0 或 3.5 而不是 1.1。ASP.NET MVC 看起来是一个有吸引力的升级路径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top