重构将业务逻辑与代码分离

时间:2009-10-28 17:47:15

标签: asp.net visual-studio-2008 dependency-analysis

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

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

我目前正在寻找重构此特定页面,该页面背后有6200行代码。我发现,尝试找到后面的代码和页面特定对象之间的依赖关系是非常繁琐的工作。

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

3 个答案:

答案 0 :(得分:3)

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

我们已经在某个时刻到过那里,你们有最深切的同情,但你们愿意尝试这一点意味着你们已经朝着正确的方向前进了。祝你好运!

答案 1 :(得分:0)

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

<强> http://www.ndepend.com/Features.aspx#DependencyCycle

alt text
(来源:ndepend.com

答案 2 :(得分:0)

哇首先对不起抱歉。任何在代码中放置6000行代码的人都应该受到抨击:)

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

(1)创建逻辑区域#Region和#EndRegion     喜欢 - 保存方法,加载方法或 (2)查看您是否可以根据业务中的这些区域创建物理业务对象     层 (3)完成后,只需将所有代码引用到适当的类中。

我知道你想要一些工具让这一切都消失但是我害怕通过这样做你会挖洞杓子。理解代码并按方法移动它将使您更好地理解。

相关问题