java - 选择 : Migrating from Classic ASP to . NET 或迁移到开源平台

标签 java asp.net asp-classic migration

我的组织手上有很多旧版 ASP 软件。

由于我们认为 Microsoft 明显缺乏对其旧产品的支持,因此我们需要弄清楚下一步要迁移到什么。

如果我们从经典 ASP 迁移到 ASP.NET,感觉就像是一次“完全重写”“迁移”。由于情况可能如此,我们正在考虑转向免费(如啤酒和语音)平台。我特别认为我们的投资(我的意思是编程工作)最好花在一个能让我们不断发展的平台上,而不是强制我们每四到五年就转储一行代码。这是我们一直用来提倡走向“免费”平台的主要论点。

目前,我们正在考虑将 Java 与 JRuby 或 Groovy 等动态语言混合使用。

我的问题是:什么是好的迁移选择?我们的恐惧是没有根据的吗?无论如何,我们(可以想象)是否需要在 4 或 5 年后重写大部分代码库?对于迁移到 .NET 或免费平台,您有什么理由?

最佳答案

我们最近将一个重要的 ASP 项目迁移到 ASP.NET,并且绝对有可能进行不会完全重写的迁移,保留大量原始代码(尽管我们受益于一些架构良好的代码,从一开始就很好地分离了业务逻辑和表示层)。

我们研究了两种可能的迁移途径:

  1. 从头开始重写为“正确的”ASP.NET 应用程序,充分利用内置控件并将所有业务和数据访问层转移到类等中 - 即我们处理新的方式ASP.NET 项目。

  2. 更基本的语法迁移,将 ASP 页面更改为 ASP.NET,无需对结构或逻辑进行太多预先更改。然后在此基础上,我们继续开发网站,更好地利用 ASP.NET 控件、单独的类等来实现新的和修订的功能。

由于进度压力,我们采用了第二条路线,这样我们就可以尽早进行转换,然后以更长远的眼光看待更根本的变化,作为 future 发展的一部分。

在此基础上,对于初始迁移,我们能够重用大部分现有代码,尽管随着我们的前进,这些代码正在逐渐被替换。比如说,一个“平均”页面有 50-200 行 HTML 和 50-500 行 VBScript 代码(作为单独的函数,而不是混合到 HTML 意大利面风格中),我们发现每个页面大约需要一个小时才能迁移其中包括将所有 ADO 数据访问更改为新的 ADO.NET 数据访问层。一些简单的页面只需要几分钟 - 一些更复杂的页面需要一整天 - 但一个页面大约一个小时是数百个页面的总体数字,其中更改数据访问的时间代表了工作的重要部分.

如果我们今天要重做迁移,我们会使用 ASP.NET MVC 而不是 Web 表单,因为它更好地映射到原始页面的编写方式 - 尽管我无法评论是否迁移到 MVC 会花费或多或少的时间。

这不一定与您是否想要迁移到免费平台或更改语言有任何关系 - 您可能有其他原因想要这样做。 (我们的客户端是基于 Windows 的,因此迁移到 ASP.NET,除了开发时间之外,没有额外成本。)但是,我可以说,无需完全重写即可将大量 ASP 站点迁移到 ASP.NET - 而且同样是可能的以最少的工作从 ASP.NET 的早期版本迁移到更新版本。显然,我们选择的路线,即保留代码的一些 ASP 风格而不是选择完全重新开发,可能并不适合所有人 - 但它确实为您提供了一个低影响的 ASP.NET 入口点,然后允许您在此基础上进行构建打好基础,同时充分利用现有的代码库和技能。

关于java - 选择 : Migrating from Classic ASP to . NET 或迁移到开源平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/479461/

相关文章:

java - 从 Eclipse 插件使用 Jython

asp.net - AD LDS w/ASP.NET 表单例份验证

c# - 如何设置IIS网站的默认编码?

javascript - 从 Javascript 调用 ASP 经典函数

ms-access - 捕获 Unicode 文本(西里尔文)并将其插入 MS Access 数据库

java - 当 ObjectMapper 尝试构造具有 null 字段的实例时,它会抛出 JsonMappingException

java - 每个有状态的中间 Stream API 操作都保证一个新的源集合吗?

asp.net - CreateInstanceAndUnwrap 锁住IIEXpress下的dll

c# - 为 asp :checkbox 分配一个值(或任何其他参数)

java - 如何在笔记应用程序中输入字符后才保存?