从ASP Classic转换为ASP.NET的最简单方法是什么?

从ASP Classic转换为ASP.NET的最简单方法是什么?

What is the easiest way to convert from asp classic to asp.net?

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

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

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


不要扔掉您的代码!

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

您已经为旧代码投入了很多精力,并解决了许多错误。扔掉它是一个经典的开发人员错误(而且我已经做过很多次了)。就像春季大扫除一样,它使您感觉"更好"。但是您无需购买新公寓和所有新家具即可为您的房屋配备家具。您可以一次在一个房间上工作...也许有些事情只需要一个新的绘画作业。因此,这就是重构的地方。

对于您的应用程序中的新功能,请用C#编写,然后从经典ASP中调用它。重写此新代码时,您将被迫模块化。如果有时间,也可以将部分旧代码重构为C#,并逐步解决这些错误。最终,您将用所有新代码替换您的应用程序。

您也可以编写自己的编译器。很久以前,我们为经典的ASP应用程序编写了一个,以便我们输出PHP。这就是Wasabi,我认为这就是Jeff Atwood认为Joel Spolsky摆脱摇滚的原因。实际上,也许我们应该将其装运,然后再使用即可。

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

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


作为一个长期的经典ASP程序员,现在是一个ASP.NET开发人员,我会花时间在2.0框架(如果需要/需要这些功能,则为3.5)中进行适当的架构。

我的上一份工作是,我们要重建的是很多非常糟糕的经典ASP应用程序," nuke and pave"方法是最成功的。使用现有的经典应用程序作为您的功能规格和线框,并以此为基础构建任务和技术规格。


试试这些链接

从ASP迁移

关键注意事项

将ASP转换为ASP.NET

从ASP到ASP.NET的迁移指南


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

我可以回答,您应该从一开始就定位v2.0(如果需要/需要,则为3.5)。无需使自己服从框架的1.1。


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

我建议在1.1上使用.NET 2.0或3.5。 ASP.NET MVC看起来是有吸引力的升级途径。


最简单的方法是先跳入头部。获取一些asp.net书籍并深入Visual Studio。做例子,玩弄它,为自己创造一些乐趣。您会边做边学。


我将避免进入.NET 1.1,因为Microsoft将于10/14/2008结束对.NET Framework v 1.1的支持。扩展支持将持续到2013年10月8日,但购买通常费用昂贵。任何错误或安全漏洞都将无法解决,这是您的问题。

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

保罗


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


您可能需要查看新的ASP.NET MVC框架。灵活性水平惊人,编码风格更类似于ASP经典方法,尽管教会与国家之间的分隔要好得多。


推荐阅读

    linux火狐运行命令?

    linux火狐运行命令?,系统,软件,官方网站,火狐,传播,咨询,平台,官网,地址,代

    linux引用命令并运行?

    linux引用命令并运行?,工具,代码,管理,环境,产品,项目,系统,软件,命令,脚本,

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux编译完运行命令?

    linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,

    linux命令程序运行?

    linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Lin

    linux源文件运行命令?

    linux源文件运行命令?,工具,单位,第一,系统,权威,软件,电脑,环境,在线,档案,

    linux运行脚本命令?

    linux运行脚本命令?,系统,代码,服务,文件,工具,平台,网站,脚本,命令,方法,Lin

    linux命令后加运行?

    linux命令后加运行?,状态,暂停,工具,单位,进程,环境,网络,系统,权威,第一,mv

    ssh运行linux命令?

    ssh运行linux命令?,地址,服务,系统,软件,工具,电脑,网络,密码,名称,命令,在li

    linux运行多个命令?

    linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,lin

    linux运行命令查看?

    linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,lin

    linux中命令运行软件?

    linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,

    linux进入网站命令?

    linux进入网站命令?,系统,环境,网站,传播,终端,命令,窗口,快捷键,界面,虚拟

    脚本linux上运行命令?

    脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

    linux运行命令的脚本?

    linux运行命令的脚本?,系统,服务,工具,脚本,意外,技术,分析,文件,方法,命令,s

    linux影藏运行命令?

    linux影藏运行命令?,档案,电脑,标准,设备,代码,工具,系统,查询系统,暂停,命

    linux运行脚本的命令?

    linux运行脚本的命令?,系统,工具,代码,服务,脚本,状态,密码,环境,位置,暂停,l

    linux入侵网站命令?

    linux入侵网站命令?,工作,地址,信息,系统,数字,网站,名称,命令,网络,密码,lin