是否可以在不访问项目文件的情况下重构ASP.NET应用程序?

时间:2013-02-11 00:56:53

标签: c# asp.net refactoring code-behind

场景:我可以访问在远程Web服务器上运行的已发布的ASP.NET应用程序。目录结构如下所示:

enter image description here

据我所知,我无法访问项目/解决方案文件。具体来说,我找不到需要修改的特定C#代码隐藏文件。

是否可以仅使用已发布的代码轻松地重建此项目?

2 个答案:

答案 0 :(得分:5)

一些澄清:

重构某些东西是改变其内部结构而不改变其外部行为。您可以使用反编译器访问源代码,但通常不值得投入大量时间,因为反编译器已经做出格式化决策,使得大多数代码难以为人类阅读(因为它已被剥离以仅用于机器的可读性) 。

重构通常只是为了提高代码的性能或可读性,所以如果您的目标是后者,那么您将开始茫然。我的猜测是你需要进入并调整一些功能,在这种情况下,反编译器确实是唯一的方法,但找到源代码并保持良好的源代码跟踪可能是一个更好的选择。当我们将代码部署到生产环境时,我们包含一个ReadMe.txt文件,指示在哪里查找源代码。

此外,一些asp.net文件未编译为.dll文件。通常.dll仅包含以.vb或.cs结尾的文件。您仍然需要访问并包含非编译页面,如.aspx和.ascx文件,但这些文件也将在您的服务器上。

.NET Reflector的一个很好的免费替代方法是使用Telerik的Just Decompile,它可以选择从编译的代码中重新创建.proj文件。

答案 1 :(得分:0)

您可以使用像.NET Reflector这样的反编译器来反编译dll,但这只有在代码没有被混淆的情况下才有效。即使这样,您也可能无法从原始解决方案中重新生成所有文件。