Pregunta

Parece que el

son prácticamente lo mismo, con la notable excepción de que el uso de Depurar se compila en una configuración de lanzamiento.

¿Cuándo usarías uno y no el otro? La única respuesta a esto que he desenterrado hasta ahora es que usas la clase Debug para generar resultados que solo ves en la configuración de depuración, y Trace permanecerá en una configuración de lanzamiento, pero eso realmente no responde la pregunta en mi cabeza.

Si vas a instrumentar tu código, ¿por qué usarías Depurar , ya que Rastreo se puede desactivar sin una recompilación?

¿Fue útil?

Solución

La principal diferencia es la que usted indica: la depuración no se incluye en la versión, mientras que la traza lo está.

La diferencia intencionada, según entiendo, es que los equipos de desarrollo pueden usar Debug para emitir mensajes enriquecidos y descriptivos que pueden resultar demasiado detallados (o reveladores) para los consumidores de un producto, mientras que Trace está destinado a emitir los tipos de mensajes que están más específicamente orientados a instrumentar una aplicación.

Para responder a tu última pregunta, no se me ocurre una razón para usar Debug para instrumentar un fragmento de código que pretendía liberar.

Espero que esto ayude.

Otros consejos

La depuración se utiliza para puros propósitos de depuración. Emite mensajes enriquecidos en la ejecución de la depuración (modo de depuración).

Trace ayuda en la depuración de aplicaciones, corrección de errores y creación de perfiles (después del lanzamiento).

La clase de depuración no sirve de nada en el modo de publicación.

La única diferencia entre el seguimiento y la depuración es que las declaraciones de seguimiento se incluyen de forma predeterminada en el programa cuando se compila en una versión de compilación, mientras que la declaración de depuración no lo está.

Por lo tanto, la clase de depuración se usa principalmente para la depuración en la fase de desarrollo, mientras que la traza se puede usar para pruebas y optimización después de compilar y lanzar la aplicación.

Para bloques de código altamente sensibles al rendimiento, dejar Trace compilado, pero deshabilitado, puede hacer una diferencia de rendimiento.

Consideraría el uso de log4net para el rastreo, ya que sus capacidades son mucho más flexibles y robustas.

Pero para los verdaderos mensajes de depuración que nunca pretendo que nadie más que yo o un probador interno puedan ver, probablemente me quedaría con la depuración.

Has respondido tu propia pregunta. Si los mensajes de depuración permanecieran, la gente podría verlos. Por ejemplo, digamos que sí:

Debug.WriteLine("Connecting to DB with username: blah and PW: pass");

Cualquier persona que descompile tu código puede ver eso. Pero eso puede ser algo de vital importancia para que lo sepas durante las pruebas.

El rastreo es diferente. Si vas a hacer un seguimiento, es probable que solo use log4net.

Esta es la diferencia total entre Rastreo y Depuración: Tanto Debug como Trace utilizan el espacio de nombres System.Diagnostics.

Depurar

  • Utiliza la clase de depuración.
  • Se utiliza en la compilación de depuración.
  • Utiliza el tiempo de desarrollo de la aplicación.
  • En el modo de depuración, el compilador inserta algún código de depuración dentro del ejecutable.
  • La clase de depuración solo funciona en modo de depuración.
  • El análisis de rendimiento no se puede realizar mediante la depuración.
  • La depuración se usa para encontrar el error en el programa.
  • Para la depuración podemos usar el método Debug.Write ().
  • La depuración se ejecuta en el mismo hilo que el programa principal.

Traza

  • Utiliza la clase Trace.
  • La declaración de seguimiento se incluye de forma predeterminada cuando el programa se compila en la versión publicada.
  • La clase de rastreo se usa para pruebas y optimización incluso después de compilar y lanzar una aplicación.
  • La clase de seguimiento funciona tanto en el modo de depuración como en el modo de liberación.
  • El rastreo se ejecuta en un subproceso diferente.
  • Para Trace podemos usar el método Trace.Write ().
  • Utiliza el tiempo de implementación de la aplicación.

referencia: csharp corner

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top