Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 探索/调查/理解新项目的类层次结构和工作原理的最佳方式_C#_.net_Visual Studio - Fatal编程技术网

C# 探索/调查/理解新项目的类层次结构和工作原理的最佳方式

C# 探索/调查/理解新项目的类层次结构和工作原理的最佳方式,c#,.net,visual-studio,C#,.net,Visual Studio,想象一下这种情况。您可以获得一些遗留代码或一些新框架。您需要尽快调查并了解如何使用此代码。没有机会向以前的开发人员寻求帮助。为了在调查新代码库时获得最大效率,可以使用哪些最佳实践/方法/方式/步骤/工具(首选.NET Framework工具堆栈) 如果它是框架,并且没有太多文档和单元测试,那么您通常使用什么工具来探索类层次结构、方法和事件?它是默认的对象浏览器、MS Visual Studio的体系结构浏览器还是其他一些工具,如Resharper hierarchy/file view?我发现通

想象一下这种情况。您可以获得一些遗留代码或一些新框架。您需要尽快调查并了解如何使用此代码。没有机会向以前的开发人员寻求帮助。为了在调查新代码库时获得最大效率,可以使用哪些最佳实践/方法/方式/步骤/工具(首选.NET Framework工具堆栈)


如果它是框架,并且没有太多文档和单元测试,那么您通常使用什么工具来探索类层次结构、方法和事件?它是默认的对象浏览器、MS Visual Studio的体系结构浏览器还是其他一些工具,如Resharper hierarchy/file view?

我发现通常从一个完全未知的代码库开始的最好方法就是尝试运行它

之后,如果有需要解决的bug,尝试修复其中的一些bug


这将使您了解更新/维护系统的难度。您还应该开始看到代码模式的出现,或者代码模式的缺失。

确实没有最好的方法来做到这一点,因为变量太多,每个项目都不同于下一个项目

说实话,最好的方法是创建一个沙坑/测试环境,如果不想有更好的描述,就玩它。然后再玩一玩


作为“玩它”的一个例子,使用调试器和单步执行代码将告诉您很多关于代码的流程和结构的信息。还值得一提的是,您永远不应该信任注释,自己验证功能。代码可能在编写注释后发生了更改。

我经常发现单元测试是一个很好的开始,只要有一些!至少通过单元测试,您可以得到一些简短的示例,说明它是如何工作的,以及在哪里应该失败。希望VS2010中也有一些文档…

在VS2010中,有一个工具可以帮助您分析代码库并为您生成依赖关系图。

这是潜入具有大型代码库的新应用程序的最佳方法,我发现的最好的解决方案是通过逆向工程工具在企业架构师之类的应用程序中了解it的全局。 如果您无法使用,请尝试VS提供的类图

到目前为止,您可以获得程序的静态定义,但要了解执行流程,请遵循Resharper、VS2008(生成序列图)和VS2010(查看调用层次结构和…)中提供的主要场景执行路径

正如在前面的回答中所说的,调试和分析应用程序也非常有用,设置断点,查看调用堆栈,查看对象等等

  • 检查解决方案中的项目依赖关系。 这将使您了解解决方案中的项目流程
  • 检查引用中使用的外部DLL。 这将告诉您有关系统如何使用的更多信息
  • 现在,您可以对体系结构的流程进行假设
  • 然后,您可以运行应用程序并检查一些日志,这些日志将让您了解类和函数流
  • 然后,您可以开始调试分配给您的代码/模块 这将使您现在能够更好地进行任何更改