C# 如何查找大型.NET应用程序中未使用的部分?
考虑一个大型多层企业web应用程序和许多具有非常复杂功能的服务,这些服务大多在服务器端使用.NET(C#)编写,在客户端使用html和javascript编写,由数百个页面组成,服务调用(操作)的数量高达数千,托管在多台服务器上,开发时间超过15年。有些零件是非常新和现代的,其他零件是传统的 这个应用程序的某些部分已经过时,实际上没有人再使用这些部分了。无论这些是整个未使用的子应用程序、未使用的页面、文件、服务调用、方法,甚至是代码行,都无关紧要。旧部件不提供任何使用统计信息,但使用依赖项注入 在不更改实际源代码的情况下,如何根据对生产服务器的访问自动找出哪些部件未使用?因此,问题不是找到未引用/无法访问的代码。这是关于寻找用户不再实际使用的部件 一种选择是查看查询日志。这会发现未使用的页面,但很难(繁琐的手动过程)找出后台的哪些部分仅由这些页面使用 另一种选择可能是监视服务器上的文件访问。这有意义吗?这可行吗C# 如何查找大型.NET应用程序中未使用的部分?,c#,.net,obsolete,C#,.net,Obsolete,考虑一个大型多层企业web应用程序和许多具有非常复杂功能的服务,这些服务大多在服务器端使用.NET(C#)编写,在客户端使用html和javascript编写,由数百个页面组成,服务调用(操作)的数量高达数千,托管在多台服务器上,开发时间超过15年。有些零件是非常新和现代的,其他零件是传统的 这个应用程序的某些部分已经过时,实际上没有人再使用这些部分了。无论这些是整个未使用的子应用程序、未使用的页面、文件、服务调用、方法,甚至是代码行,都无关紧要。旧部件不提供任何使用统计信息,但使用依赖项注入
还有一个想法是做一些类似于测试覆盖率工具的事情,但不是在测试期间。假设调试符号可用,是否可以在实时C#.NET应用程序中测量覆盖率(如执行的代码行数)。当你编码时,它会告诉你这些问题 不过,您也可以在事后检测问题。在菜单中,您将找到条目“ReSharper>Inspect>解决方案中的代码问题”。
它将创建一个报告,您将在“代码中的冗余”下找到它。您可以使用ReSharper。当你编码时,它会告诉你这些问题 不过,您也可以在事后检测问题。在菜单中,您将找到条目“ReSharper>Inspect>解决方案中的代码问题”。
它将创建一个报告,您将在“代码冗余”下找到它。如果不真正了解情况,很难给出答案。然而,我不认为有什么自动或简单的方法。我不知道最好的解决办法,但我可以告诉你我会怎么做。我首先从(IIS?)服务器收集所有日志文件(至少一年,代码可以一年使用一次)并分析这些文件。这将使您能够最好地了解哪些部件是外部调用的。你有那些日志吗 还要检查事件日志。有时会出现诸如“目录不存在”之类的消息,这可能意味着该服务已多年不起作用,但没有人注意到。并检查冗余应用程序,可能应用程序在多个服务器上处于活动状态 检查带有时间指示的内部表格以及最近输入的loginfo 检查文件上的日期和分析数据库可能会提供额外的信息,但我认为这不会真的有帮助 根据用户输入或应该过时的应用程序,列出所有您认为过时的应用程序 使用您的发现创建一个基于应用程序/代码过时概率的列表。根据您的列表,下一步可能是:
- 删除冗余应用程序
- 查找文件系统的数据模型中的更改,并检查这些更改是否仍然与代码匹配
- 分析数据库中的无效查询。这可能表示数据模型已更改,导致应用程序停止工作。如果没有人注意到,则此应用程序或功能已过时
- 在有疑问的代码中添加日志记录
- 查看应用程序级别,从将调用标记为过时、注释/删除未使用的代码或重定向到(新)等效代码开始
- 关闭应用程序并监视发生的情况。如果存在依赖项,则可以采取措施删除此依赖项或选择让应用程序运行
- 监视数据库:您可以使用探查器工具,但是创建一个触发器来记录所有CRUD操作以及您需要的所有信息可能会更容易。创建一个程序,该程序可以读取数据库的方案,并按表、存储过程和视图过滤日志,以确定哪些未使用。我没有调查,但也许您也可以监视回滚和异常
- 监视IIS。当然也有日志文件,但是你也可以考虑在网站上添加一个模块,在那里你可以编写自定义代码来监控你想要的任何东西。所有交通都经过模块。请看这里:。如果我没有弄错的话,您所要做的就是将模块添加到网站,并将网站配置为使用该模块。创建一个程序来过滤登录url、状态、ip、标识等,以确定使用了什么
我认为这对于第一次分析来说已经足够了。然后是解释日志。也许您将看到一种组合日志的方法,这样您就可以将请求链接到某些数据库操作,而无需查看或更改代码。只是一些想法。在不真正了解情况的情况下,很难给出答案。然而,我不认为有什么自动或简单的方法。我不知道最好的解决办法,但我可以告诉你我会怎么做。我首先从(IIS?)服务器收集所有日志文件(至少一年,代码可以一年使用一次)并分析这些文件。这将使您能够最好地了解哪些部件是可用的