2

我继承了一个 asp.net 项目,我发现页面背后的代码包含很多业务逻辑。

我已经决定,在大多数情况下,最好将工作代码留在原处,而不是尝试进行大规模重构。但是,有些页面执行的功能可以在命令行实用程序中重复用于批处理。我想把精力集中在这些页面上,重构业务逻辑并在其他实用程序中引用它。

我目前正在寻求重构这个特定页面,该页面背后的代码中有 6200 行代码。我发现,试图定位背后的代码和页面特定对象之间的依赖关系是一项非常乏味的工作。

我想知道是否有人知道可以让我系统地定位和攻击这些依赖项的工具、VS 功能或方法?可以让我识别引用 ViewState、文本框、面板、下拉列表等的代码的任何区域...,因此我可以将这些引用移至方法参数并最终将此功能移出页面类。

4

3 回答 3

3

我将首先检查任何不遵循单一职责原则的方法,然后分解它们以便它们这样做。完成后,您应该掌握代码的作用,并且您应该能够更轻松地对代码进行分组并将其移动到专用类中,以便这些组创建必要的对象以供您随时使用。我发现ReSharper是一个非常有用的工具,可以帮助完成这一切。最终,您将始终需要牢牢掌握代码中的基础知识,然后才能成功重构。

我们都曾在某个时候去过那里,你有我最深切的同情,但你愿意尝试它意味着你已经朝着正确的方向前进。祝你好运!

于 2009-10-28T22:19:47.847 回答
0

我可以立即想到的一种方法是编译然后进入程序集并使用NDepend分析程序集

http://www.ndepend.com/Features.aspx#DependencyCycle

替代文字
(来源:ndepend.com

于 2009-10-28T18:42:41.327 回答
0

哇首先很抱歉在这里。任何将 6000 行代码放在代码后面的人都应该被打:)

现在我以前做过这种重构。我会通过几个步骤来解决这个问题:

(1) 创建逻辑区域 #Region 和 #EndRegion Like - Save Methods , Load Methods or (2) 查看是否可以在业务层中基于这些区域创建物理业务对象 (3) 完成后只需参考所有代码到适当的班级。

我知道你想要一些工具来让这一切消失,但我担心这样做你会挖洞。理解代码并逐个方法移动它将使您更好地理解。

于 2009-10-28T21:28:08.123 回答