c#代码流映射/可视化实用程序?

c#代码流映射/可视化实用程序?,c#,.net,visualization,C#,.net,Visualization,我被要求(从头开始)重新编写一个现有的C#winforms应用程序。不幸的是,在过去的三四年中,至少有十几个不同的开发人员修改了这段代码,他们似乎都没有遵守任何一种编码标准。说这个代码库乱七八糟是出于礼貌。考虑到代码的数量(约24k行)以及代码对我来说是全新的这一事实,我想找到一些实用工具,帮助我更快地了解这个应用程序在高级别上的工作方式。请记住,这段代码中似乎没有太多好的OOP实践,所以我需要一些比类图更详细的东西。我看到过一些关于生成序列图的参考,这些序列图可能更像我正在寻找的,但我只有VS

我被要求(从头开始)重新编写一个现有的C#winforms应用程序。不幸的是,在过去的三四年中,至少有十几个不同的开发人员修改了这段代码,他们似乎都没有遵守任何一种编码标准。说这个代码库乱七八糟是出于礼貌。考虑到代码的数量(约24k行)以及代码对我来说是全新的这一事实,我想找到一些实用工具,帮助我更快地了解这个应用程序在高级别上的工作方式。请记住,这段代码中似乎没有太多好的OOP实践,所以我需要一些比类图更详细的东西。我看到过一些关于生成序列图的参考,这些序列图可能更像我正在寻找的,但我只有VS2010 Premium,而且我的印象是,该功能仅在VS Ultimate SKU中提供。我可以访问.NET Reflector的当前版本,我看到一些人提到有一些插件可能会有用,但我没有任何具体的名称。

从头开始重写代码可能会是一场灾难:请参见:

这不是一项容易的任务,正如您提到的,在您之前有十几个开发人员。 每个开发人员的背后都有自己的方法和系统逻辑。每个人 这是他们自己的方式

以下是您可能遇到的一些问题

  • 遵循另一种开发人员逻辑
  • 无论开发人员是否还在,或者是否已经换了职位或者更糟糕的是换了工作
  • 查找或即使存在技术规范(这是最重要的)
  • 最初编写的遗留代码,然后修补,然后一次又一次修补
  • 可能已在应用程序中集成或编写的自定义代码
  • 如果有安全措施的话
除了拥有一系列应用程序的流程图/图表外,最好要求或获得的是技术规范。这个项目的目的是什么?考虑到其他12个人都在做这个项目,你能自己承担吗

您提到OOP,您是否计划使用意大利面条代码并进行整个重写以适应面向对象模型?如果是这样的话,这是一个很大的工作…而且有12个之前的大脑在做这件事,有人的逻辑肯定会绊倒你

很抱歉,我没有最好的建议,但这可能是一项艰巨的任务…特别是如果你之前的开发人员已经不在了

有关更多信息,请参见这些SO线程:

看一看,这是一个代码管理工具,由于、、依赖关系和矩阵,它可以帮助您很多,因为基线


哦,还有。

我很确定,虽然整个代码是无效的,但现有代码的某些部分是完美的。我建议你参与其中,把单元测试放在它们周围,然后喘口气,把它们复制粘贴到你的新项目中。这样,你会一点一点地将你的混乱过滤成一些经过改造和测试的东西


另外,我一直想做的一件事是打印大量代码,并通过切割(使用真正的金属剪刀)将工作流可视化,然后将它们按使用方式粘在一起。

Hi Jon。谢谢你的快速回复。你说得很好。不幸的是,在这种情况下,我被告知“这就是我们要做的”。事实上,我确实向我的雇主提出了一些非常相同的论点,但他们认为有必要重写,并承诺这样做(或者更确切地说,责成我这样做,视情况而定)。:-(如果你必须重写(我个人喜欢:D)您可以尝试隔离功能片段——将有用的片段复制到新项目中并编写单元测试——以在新版本中使用。哦,顺便说一句,在编写新的GUI应用程序时,我建议学习更新控件——一旦您弄明白了,它将加快开发。为了找出给定任务中涉及的代码,我会使用电子覆盖工具,如PartCover或(更好的)商业替代品。这通常有助于我理解。但是,我不作为答案发布,因为我实际上不记得怎么做。这是免费的: