我是一名.Net开发人员,其任务是将经典的asp网站升级到asp.net.该网站目前正在运气和泡泡糖,但没有足够的时间或金钱来阻止进展并进行全面改写.当然,在升级时我仍然需要能够提供新功能.
我应该采用什么策略来逐步改变asp.net?我应该转换为单层.net解决方案,然后重构为适当的多层解决方案,还是应该现在设计我的业务和数据层?我应该直接使用3.5还是更容易获得1.1并升级到2.0或3.5之后?
完全转换可能需要3-5个月.还有一些现有的1.1代码,这就是我考虑将其作为起点的原因.
不要丢弃你的代码!
这是你可以犯的最大错误(在大型代码库上).看你不应该做的事情,第1部分.
您已经在这些旧代码上投入了大量精力并制定了许多错误.抛弃它是一个典型的开发人员错误(我已经做了很多次).它会让你感觉"更好",就像春季大扫除一样.但是你不需要买一套新公寓和所有新家具来装你的房子.你可以一次在一个房间工作......也许有些东西只需要一个新的paintjob.因此,这就是重构的地方.
对于应用程序中的新功能,请使用C#编写它并从您的经典ASP中调用它.重写这个新代码时,你将被迫成为模块化的.当你有时间时,将旧代码的一部分重构为C#,并随时解决错误.最终,您将使用所有新代码替换您的应用.
您也可以编写自己的编译器.很久以前我们为经典的ASP应用程序写了一个,以便我们输出PHP.它被称为Wasabi,我认为这就是杰夫阿特伍德认为Joel Spolsky脱离摇滚乐的原因.实际上,也许我们应该发货,然后你可以使用它.
它允许我们将整个代码库切换到.NET以用于下一个版本,同时只重写我们源代码的一小部分.它也让很多人称我们为疯了,但编写编译器并不复杂,它给了我们很大的灵活性.
此外,如果这是一个内部唯一的应用程序,请保留它.不要重写它 - 你是唯一的客户,如果你需要将它作为经典的asp运行,你就可以满足这个要求.
作为一名长期经典的asp程序员,现在是一名ASP.NET开发人员,我会花时间在2.0框架中正确构建它(如果你想要/需要这些功能,则需要3.5).
我上一份工作,我们有一大堆非常糟糕的经典asp应用程序,我们正在重建,"核武器和铺路"方法是最成功的.使用现有的经典应用程序作为功能规格和线框,并构建您的任务和技术规格.