Лично я вообще редко использую класс Debug для любого моего программирования. Я прочитал много комментариев и предложений, таких как Джон Роббинс (автор Отладка приложений .NET 2.0 и Bugslayer столбцы) о том, почему вы должны активно утверждать - особенно параметры для методов.
Проблема у меня заключается в следующем - скажем, я должен был написать код, подобный этому:
Public Sub Test(source As Object)
Debug.Assert(source IsNot Nothing, "source is Nothing")
' Do something....
End Sub
Это хорошо работает во время разработки с отладочными сборками, но я все равно делаю это:
Public Sub Test(source As Object)
If source IsNot Nothing Then
' Do something....
End If
End Sub
Если есть шанс, что «источник» будет ничем, тогда я все равно сделаю проверку «Если». Я не собираюсь оставлять вызов assert в сборке релиза.
Другая причина, по которой я не использую класс Debug, заключается в том, что я пишу много модульных тестов. Это привело меня к тому, что мне пришлось охватить множество путей кода, поэтому наличие Debug.Assert в моем коде не требуется.
Что касается ведения журнала отладки, то я просто использую вызовы Trace и SysInternals DebugView или текстовые файлы для записи результатов вызовов трассировки.
Я хотел бы услышать от других людей на эту тему, поскольку мне также интересно узнать, как они могут использовать класс Debug во время разработки. Это область, в которой у меня мало опыта, поэтому я очень хочу учиться.