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

时间:2009-08-10 00:10:28

标签: .net asp.net legacy

我有一个古老的项目,我称之为遗产。

它的一些特征是:

  1. 这是一种工作产品(约3年),并且正在不断发展。
  2. 代码库非常大,包括(CS,SQL,ASPX,Jayrock,JS / HTML / CSS等)
  3. 平台是.NET 1.1。
  4. IDE是Borland C#Builder 2006(真是......)。
  5. 其他工具是Enterprise Core Objects 3(适用于.NET 1.1)(模型驱动架构 - 来自UML的O / R-M)。
  6. 另外使用Telerik RadControl。
  7. 主要是一位活跃的开发者。
  8. 对Business Objects进行了大量测试,但UI(WebForms)根本不是可测试的ATM(没有应用MVP / MVC等)。
  9. 我必须接受代码质量不是“最好的”并保持“足够好”的标记(因此这不是rewrite all from scratch的主要原因)
  10. 这个项目的问题是:

    1. .NET 1.1 - 平台不再“活跃”了。
    2. IDE - 一直在努力奋斗。工作很痛苦。糟糕的工具支持,任何重构基本上都是手工制作。
    3. ECO3框架 - 很多努力转向ECO5(以及.NET 3.5)。
    4. 从ECO3迁移到NHibernate(首选)需要更多时间(因为所有逻辑/测试都应该重写)。
    5. ECO3严重依赖IDE,因此几乎不可能只更改IDE。
    6. 通常迁移到.NET 3.5会花费很多时间(特别是仅限1 dev)。
    7. 我想听听有关如何处理这个项目的任何建议/提示 我应该继续在那种环境中工作吗? 如果不是,那么在几天之内迁移整个项目的最佳方式是什么(延迟几周是ATM太长)。是的,我知道它会在以后付清,但我现在不能这样做。

      一般来说,欢迎任何建议。

      干杯,
      德米特里。

3 个答案:

答案 0 :(得分:3)

我会以小步骤慢慢迁移和重构。我的建议依次是:

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

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

答案 1 :(得分:2)

好吧,考虑到你的可用时间跨度,我建议你保留代码并使用它。但无论你要改变什么或做出什么新的,都要确保以最好的方式编写代码。

通常,当你这样做时,随着时间的推移,项目会变得更好,因为偶尔你可能会改变一些“脏”的部分,嘿,这是你代码中不那么“脏”的部分:)。从长远来看,你应该有一个更清晰,更好的代码。

至于IDE的改变,我倾向于同意Martin。它不应该难以迁移到另一个。但是我建议在你提到的第一个小时间段之后做这件事(除非你是一个冒险的人)。

答案 2 :(得分:2)

如果代码只有三年,那么它还没有遗留下来。每三年(甚至每五年)以不同方式重做事物是IMO的浪费。

OTOH,应该可以用相同的努力用不同的IDE替换IDE。