我对调试感到非常沮丧,但也许我只是做错了。
当我积极开发时,编写一些代码是非常麻烦的,启动调试器来测试所述代码,等待调试器启动,在浏览器中查看页面,停止调试器,编辑代码,冲洗,起泡沫,重复。
我可以在开发过程中使用 CTRL-F5 和 CTRL-SHIFT-B 来解决这个问题,但我失去了调试器的所有好处。
是否有更好的方法来使用调试器,或者我可以采取其他措施来快速重建和使用调试器?
谢谢,
凯尔
附注我/我们确实编写单元测试,但您还需要在浏览器中测试您的应用程序,因此请不要“如果您的单元测试编写正确,您就不应该遇到此问题。”评论;)
更新
感谢您“获得更好的机器”的建议。我在那里无能为力。大量 RAM 和英特尔 SSD。我不需要超过 2500 美元的机器来编写 Web 应用程序。
减少调试次数:如果您要停止调试器来更改值或测试不同的场景,则不要这样做。调试时,您可以使用
QuickWatch
或 Immediate Window
更改变量的值。
降低调试成本:关闭批处理将使您的页面首次加载速度更快,因为它将不再预编译所有页面和用户控件。如果您经常进行更改,这对开发很有好处。
<compilation ... batch="false"> ...</compilation>
你应该看看这篇文章(由 Scott Guthrie 发推文):
无需任何艰苦工作即可缩短 ASP.NET 编译/加载时间 http://blog.lavablast.com/post/2010/12/01/Slash-your-ASPNET-compileload-time.aspx
<compilation ... tempDirectory="q:\temp\iistemp\"> ... </compilation>
<compilation ... batch="false"> ...</compilation>
<compilation ... optimizeCompilations="true"> ... </compilation>
获取 SSD 和大量 RAM。
也许你需要的不是调试得更快,而是减少需要调试的次数。也许更自由的 Debug.* 或跟踪日志记录方法会有所帮助。
@Kyle West - 嗯...有很多不同的方法可以解决这个问题。最适合我的方法是使用 MS Enterprise Library Logging 应用程序块(主站点)将事件记录到滚动的每日文件中。只需编辑
.config
文件即可提高日志级别(详细信息)或降低(仅限例外)。
应用程序块中有很多内容,因此我们围绕日志记录调用创建了一个包装器,以便我们可以更轻松地进行重要的调用。例如,
DebugEvent.Log(String.Format("the value of _myVariable is {0}", _myVariable))
InfoEvent.Log("Reached the entry to the gatesOfHell method")
ExceptionEvent.Log(ex)
EL 的好处是您可以更改配置而无需更改代码。因此,如果您想记录事件日志甚至电子邮件,只需几行配置即可。
您还可以替换任何其他记录器(log4Net 等),或以对您有用的方式使用内置的 Debug 或 Trace。
“我真的只是想看到任何不影响 UI 的异常。”有点令人担忧,并且意味着正在发生异常吞没或一些类似的不良实践。 (这完全是另外一桶“公鸡”,可能就是您必须进行如此多调试的原因)。