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

从asp classic转换为asp.net的最简单方法是什么?,asp.net,asp-classic,Asp.net,Asp Classic,我是一名.Net开发人员,负责将一个经典的asp网站升级到asp.Net。该网站目前运行的运气和泡泡糖,但没有足够的时间或金钱停止进展,并做一个完整的重写。当然,在升级时,我仍然需要能够提供新功能 我应该使用什么策略来平稳地逐步转变为asp.net?我应该转换为单层.net解决方案,然后重构为适当的多层解决方案,还是现在就设计业务和数据层?我应该直接升级到3.5,还是直接升级到1.1然后升级到2.0或3.5更容易 完全转换可能需要3-5个月。还有一些现有的1.1代码,这就是为什么我考虑使用它作为

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

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


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

完成转换/重写需要多长时间?这也将取决于你如何构建你的原始项目

我可以回答你应该从一开始就瞄准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的V1.1的支持。扩展支持将持续到2013年8月10日,但通常购买成本较高。任何错误或安全漏洞都不会得到解决,这是您的问题


Paul

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


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

不要扔掉您的代码

这是你能犯的最严重的错误(在一个大的代码库上)。看

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

有关应用程序中的新功能。重写这段新代码时,您将被迫使用模块化。当你有时间的时候,把旧代码的一部分也重构成C语言,然后一边工作一边解决bug。最终,你将用所有新代码替换你的应用程序

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

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


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

最简单的方法是先插手。获取一些asp.net书籍并深入到visual studio。做例子,玩它,为自己创造一些有趣的东西。你会在实践中学习。

我也在逐步从经典ASP迁移到ASP.NET。我们的第一阶段是将一些常见逻辑从ASP包含迁移到.NET程序集,该程序集公开于COM互操作,以便经典ASP和ASP.NET都可以调用它们。我编写了一些测试,用以验证迁移到.NET程序集后的行为(更安全的重构带来了额外的好处)。一旦核心逻辑在.NET中,我们就可以开始在ASP.NET中创建新页面,并以自己的速度将单个ASP页面迁移到ASP.NET


我建议.NET2.0或3.5优于1.1。ASP.NET MVC看起来是一条很有吸引力的升级路径。

我不知道这个答案是如何获得如此多的支持票的(可能仅仅是因为你提出要为它编写自己的编译器),我完全不同意这一点,除非有绝对零的时间限制来重写它。保留坏代码就像一个溃烂的伤口,如果不进行治疗,它只会变得更糟(除非它完全100%完成,并且永远不会有任何软件上值得怀疑的更改)此外,我会冒险说,旧代码的大部分职责可以用适当的ORM解决方案和域模型来代替。@chris Hello Strawman!你说代码是“坏的”。为什么工作代码“不好”?因为它可能不遵循任何类型的领域驱动开发原则,它可能有与业务逻辑交织在一起的UI逻辑,它也可能有一个自定义编码的DAL构建在数据表(我不确定它们是否足够旧)或存储过程上,等等。很可能没有应用控制反转等等。大多数现代软件设计模式在经典ASP期间都不存在(或者至少在当时没有被使用),我知道这是事实