.net 遗留代码,遗留工具-怎么做?

.net 遗留代码,遗留工具-怎么做?,.net,asp.net,legacy,.net,Asp.net,Legacy,我有一个有点老的项目,我会称之为遗产 它的一些特点是: 这是一个工作产品(大约3年),正在不断开发中 代码库相当大,包括(CS、SQL、ASPX、Jayrock、JS/HTML/CSS等) 平台是.NET1.1 IDE是Borland C#Builder 2006(多好的一个…) 另一个工具是EnterpriseCoreObjects3(对于.NET1.1)(模型驱动的体系结构-来自UML的O/R-M) 此外,还使用了Telerik RadControl 主要是一个活跃的开发人员 对业务对象进行

我有一个有点老的项目,我会称之为遗产

它的一些特点是:

  • 这是一个工作产品(大约3年),正在不断开发中
  • 代码库相当大,包括(CS、SQL、ASPX、Jayrock、JS/HTML/CSS等)
  • 平台是.NET1.1
  • IDE是Borland C#Builder 2006(多好的一个…)
  • 另一个工具是EnterpriseCoreObjects3(对于.NET1.1)(模型驱动的体系结构-来自UML的O/R-M)
  • 此外,还使用了Telerik RadControl
  • 主要是一个活跃的开发人员
  • 对业务对象进行了大量测试,但UI(WebForms)根本不是可测试的ATM(没有应用MVP/MVC等)
  • 我不得不承认,代码质量不是“最好的”,而且仍然是“足够好的”(所以这不是我这么做的主要原因)
  • 这个项目的问题是:

  • .NET 1.1-平台不再处于“活动”状态
  • IDE—一直在与之斗争。只是工作的痛苦。糟糕的工具支持,任何重构基本上都是手工完成的
  • ECO3框架——为迁移到ECO5(因此也就是.NET3.5)付出了大量努力
  • 从ECO3迁移到NHibernate(最好)需要更多的时间(因为所有逻辑/测试都应该重写)
  • ECO3严重依赖IDE,因此仅更改IDE几乎是不可能的
  • 一般来说,迁移到.NET3.5会花费很多时间(特别是对于1个开发人员)
  • 我想听听关于如何处理该项目的任何建议/提示。
    我应该继续在那种环境中工作吗?
    如果不是,那么在几天内迁移整个项目的最佳方式是什么(延迟几周太长了)。是的,我知道以后会有回报的,但我现在不能这样做

    一般来说,任何建议都是欢迎的

    干杯,

    Dmitry.

    鉴于您的可用时间跨度,我建议您保留代码并使用它。但是,无论您正在更改或创建新代码,请确保您以最佳方式编写代码

    通常,当您这样做时,项目会随着时间的推移而变得更好,因为偶尔您可能会更改一些“脏”部分,嘿,代码中少了一个“脏”部分:)。从长远来看,您应该有一个更干净、编写得更好的代码


    至于IDE的改变,我倾向于同意Martin的观点。迁移到另一个应该不难。但是我建议在你提到的第一个小时间跨度之后再做(除非你是一个有风险的人)。

    如果代码只有三年的历史,它还不是遗留的。每三年(甚至每五年)以不同的方式重做一次是浪费时间的


    当然,用一个不同的IDE替换IDE应该是可能的,而且所需的工作量相对较小。

    我会以小步缓慢地迁移和重构。我的建议如下:

    • 迁移到“更好”的IDE(您喜欢的IDE,可能是Visual Studio?)
    • 迁移到使用.NET 3.5功能。根据需要重构以利用更新的特性,如泛型和LINQ
    • 根据需要启动您的业务逻辑

    除了更改IDE之外,其他一切都可以通过标准重构实践在代码库的一小部分上以非常小的步骤完成。不需要全部重写。

    是。这就是我现在要做的。但是在这种环境下工作会非常令人沮丧:(不,ATM我不能取代IDE作为工具(ECO3)与IDE严重集成,无法在IDE之外工作。更改IDE我也必须更改工具。更改IDE需要将ECO3更改为ECO5。但是,是的,ATM IDE是最大的问题,我确实喜欢VS。库不应该影响您的IDE-至少不应该直接影响。您可能会失去自动生成代码的能力,但是生成的代码模型应该可以跨任何IDE进行移植,并且可以在任何IDE中编译。