Depurar aplicaciones de Expression Blend
- Errores de sintaxis
- Errores de compilación
- Errores en tiempo de ejecución
- Depurar en Visual Studio 2005
- Depurar problemas de rendimiento
- Seguimiento de eventos
- Depurar aplicaciones híbridas
- Seguridad
- Obtener ayuda
Si el comportamiento de la aplicación de Microsoft® Expression Blend™ no es el esperado, o si se producen fallos al intentar generar la aplicación, existen errores en la propia aplicación. Puede ser difícil comprender la causa de un error o saber dónde se encuentra dentro de la aplicación, pero resulta útil entender los tipos de errores con los que se puede encontrar.
Errores de sintaxis
Al generar la aplicación, los errores de sintaxis se muestran en la ficha Errores del panel Resultados de Expression Blend, o en el panel Lista de errores de Microsoft® Visual Studio® 2005.
Los errores de sintaxis se producen cuando el código o lenguaje de marcado de aplicaciones extensible (XAML) no cumple las reglas de formato del lenguaje. La descripción del error puede ayudarle a solucionarlo. La descripción especifica también el nombre del archivo y el número de línea en que se produce el error. Entre las causas comunes de errores de sintaxis, figuran las siguientes:
- Una palabra clave tiene errores ortográficos o el uso de las mayúsculas no es correcto.
- Faltan las comillas en cadenas de texto.
- A un elemento XAML le falta una etiqueta de cierre.
- Un elemento XAML está en una ubicación no permitida. Puede evitar estos errores editando los documentos en la vista Diseño de Expression Blend o en Visual Studio 2005 con las extensiones de .NET Framework 3.0 instaladas. Las extensiones se pueden descargar de MSDN (puede estar en inglés).
- En un archivo de código, una llamada a un método o una función no incluye los parámetros necesarios. Por ejemplo, el método
MessageBox.Show()debe tener al menos un parámetro, como por ejemplo, una cadena comoMessageBox.Show("Hello"). - En un archivo de código, se asigna una variable de un tipo a un tipo distinto. Por ejemplo, el método
MessageBox.Show()puede tener un argumento de cadena, pero no un argumento de entero. - En C#, un método que no necesita argumentos podría no tener llaves al final. Por ejemplo, el código
this.InitializeComponent;produciría un error de sintaxis porque la línea correcta esthis.InitializeComponent();.
Para obtener información acerca de la sintaxis de XAML, vea los temas de información general acerca de controles individuales en el tema sobre la biblioteca de controles de la sección de Windows Presentation Foundation (WPF) en MSDN (puede estar en inglés). Para obtener información sobre la sintaxis de programación, puede buscar palabras clave del código en MSDN.
Errores de compilación
Al generar la aplicación, los errores de compilación se muestran en la ficha Errores del panel Resultados de Expression Blend, o en el panel de la lista de errores de Microsoft Visual Studio 2005.
Los errores de compilación de producen cuando el sistema de compilación de Expression Blend o Visual Studio 2005 no encuentra un elemento que el proyecto necesita. Por ejemplo, si en el proyecto falta una referencia a ensamblados WPF, puede que aparezca un error del tipo "El nombre 'Window' no existe en el espacio de nombres 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'". Si recibe este error, puede hacer clic en Agregar referencia en el menú Proyecto para agregar referencias a los siguientes ensamblados WPF de la carpeta C:\Archivos de programa\Reference Assemblies\Microsoft\Framework\v3.0:
- PresentationCore.dll
- PresentationFramework.dll
- WindowsBase.dll
Si siguen apareciendo errores del tipo "El nombre '<miembro>' no existe en el contexto actual", es posible que falte otra referencia de ensamblado o que sea necesario agregar una instrucción using (C#) o Imports(Visual Basic .NET) al código para el espacio de nombres que falta. Para averiguar cuál es el ensamblado o el espacio de nombres necesario, vea en el tema de referencia de MSDN correspondiente al miembro que causa el error.
Entre las otras comunes de errores de compilación, figuran las siguientes:
- Una palabra clave tiene errores ortográficos o el uso de las mayúsculas no es correcto.
- No se hace referencia correctamente a una clase en la aplicación. Por ejemplo, si la aplicación usa una clase personalizada que se implementa en un archivo de código .cs o .vb aparte con su propio espacio de nombres, los documentos de la aplicación que usen esa clase personalizada tendrán que incluir una línea como la siguiente, donde
FullyQualifiedNamespacees el espacio de nombres del archivo de código:xmlns:SampleNamespace="clr-namespace:FullyQualifiedNamespace" - Las opciones de compilador no están configuradas correctamente o el sistema no es capaz de generar aplicaciones basadas en Microsoft® .NET Framework. Si tiene instalado Microsoft .NET Framework 3.0 y desea generar la aplicación mediante Expression Blend o Visual Studio 2005, no debería haber ningún problema.
- No se guardó un archivo antes de intentar generar el proyecto. Por ejemplo, si usa el panel Eventos
de Expression Blend para generar un nuevo método de control de eventos en el archivo de código subyacente (abriendo así el archivo de código subyacente en Visual Studio) e intenta generar el proyecto en Expression Blend sin guardar antes el archivo de código subyacente, recibirá un error que indica que el proyecto no contiene una definición del controlador de eventos.
Errores en tiempo de ejecución
Los errores en tiempo de ejecución se producen cuando la aplicación se genera pero se comporta de forma inesperada al ejecutarla (al presionar F5 en Expression Blend). Los errores en tiempo de ejecución son los más difíciles de identificar porque suelen ser errores lógicos. En ocasiones, se pueden solucionar intentando realizar distintos cambios en el código o en XAML para llegar a entender lo que sucede en segundo plano. No obstante, es más rápido observar qué está pasando en segundo plano examinando el código línea por línea mientras se ejecuta la aplicación. Para obtener más información, vea la sección Depurar en Visual Studio 2005 más adelante en este tema.
Entre las causas comunes de errores en tiempo de ejecución, figuran las siguientes:
- El diseño de los elementos XAML no es correcto o se ha usado un elemento de panel incorrecto para contener otros elementos. Para obtener más información acerca del diseño, vea Sistema de diseño en este Manual del usuario o el tema sobre el sistema de diseño y la información general sobre la alineación, los márgenes y el espaciado interno en la sección de WPF en MSDN (puede estar en inglés).
- Un elemento XAML no está enlazado al controlador de eventos correcto. Esto puede suceder si crea muchos método de control de eventos y asigna uno incorrecto al elemento XAML. Para ver los controladores de eventos que están asignados a un elemento XAML en Expression Blend, seleccione el elemento en Objetos y escala de tiempo en el panel Interacción y, a continuación, haga clic en el botón Eventos del panel Propiedades. Para obtener más información, vea Control de eventos en este Manual del usuario.
- Un desencadenador de animación no está configurado correctamente en Expression Blend. Por ejemplo, los guiones gráficos de animación deben iniciarse en cualquier desencadenador para poder detenerlos o pausarlos una vez cargada la aplicación. (Todos los guiones gráficos de animación se inician en el desencadenador Window.Loaded de forma predeterminada, aunque se puede modificar.) Para obtener más información, vea Información general sobre animación e interactividad en este Manual del usuario. Para obtener un ejemplo de desencadenadores de animación, vea Crear una animación sencilla o vea los temas de la sección ¡Pruébelo! de Estilos simples.
- En un archivo de código, una variable hace referencia a un objeto que no existe todavía. Por ejemplo, en un archivo de código subyacente, no se puede hacer referencia a un objeto XAML antes de la línea
this.InitializeComponent();; de lo contrario, recibirá un error XamlParseException. - En un archivo de código, se realizan suposiciones que hacen que la aplicación se ejecute por un código inesperado. En esta situación, lo más adecuado es examinar el código mientras realiza la depuración de la aplicación en Visual Studio 2005. Para obtener más información, vea Depurar aplicaciones de Expression Blend en Visual Studio en este Manual del usuario.
- En un archivo de código subyacente, las actualizaciones de la interfaz de usuario (UI) se ejecutan en el mismo subproceso que otra lógica de programación, cuando deberían ejecutarse en subprocesos separados. Por ejemplo, si crea un método de control de eventos que actualice el texto que se muestra en una etiqueta, realice otros cálculos y, a continuación, vuelva a actualizar el texto de la misma etiqueta antes de que se complete el método de controlador de eventos, sólo verá la última actualización. Esto ocurre porque la representación de la UI se produce al final del método de control de eventos y todo el procesamiento se realiza en el mismo subproceso, por lo que la aplicación no puede dedicar tiempo durante la ejecución del método para actualizar la UI. Para obtener información sobre cómo escribir aplicaciones WPF con varios cálculos y actualizaciones de la UI, vea el modelo de subprocesos en la sección de WPF en MSDN (puede estar en inglés).
- En un método de control de eventos de un archivo de código subyacente, se hace referencia a los elementos de la UI o a sus propiedades antes de que se encuentren disponibles. Por ejemplo, en el método de constructor Window1(), aún no podrá tener acceso a los elementos de la UI. En un método de control de eventos OnInitialized(), puede tener acceso a los elementos de la UI, pero no puede examinar propiedades como ActualWidth porque aún no se ha implementado el diseño de los elementos de la UI. En un método de control de eventos OnLoaded(), puede hacer lo que desee con los elementos de la UI que existen en el documento XAML. Para obtener más información, vea el tema sobre eventos de duración de objetos en la sección de WPF en MSDN (puede estar en inglés). Para ver una lista de eventos y cuándo se producen, vea la Referencia rápida de eventos en este Manual del usuario.
Depurar en Visual Studio 2005
Expression Blend es una herramienta de diseño que sirve para crear interfaces de usuario avanzadas y aplicaciones basadas en Windows® que usan características de WPF. Puede usar Visual Studio 2005, que también sirve para generar aplicaciones basadas en Windows, para abrir, generar y depurar proyectos de Expression Blend. Si tiene problemas para depurar aplicaciones con la característica Probar (F5) de Expression Blend, puede usar Visual Studio 2005 para obtener mensajes de error detallados sobre errores en tiempo de ejecución. Para obtener más información, vea Depurar aplicaciones de Expression Blend en Visual Studio en este Manual del usuario.
|
|
Para crear nuevas aplicaciones XAML y aplicaciones de explorador XAML (XBAP) en Visual Studio 2005, deberá instalar las extensiones para .NET Framework 3.0. Las extensiones se pueden descargar de MSDN (puede estar en inglés). (No necesita las extensiones para depurar aplicaciones XAML creadas con Expresión Blend.) |
Depurar problemas de rendimiento
WPF ofrece un conjunto de herramientas de evaluación del rendimiento que le permiten analizar el comportamiento en tiempo de ejecución de la aplicación y determinar cómo puede mejorar el rendimiento. Para obtener más información, vea los temas sobre las herramientas de creación de perfiles de rendimiento para WPF y la optimización del rendimiento de aplicaciones WPF en la sección de WPF en MSDN (puede estar en inglés).
Seguimiento de eventos
Los programadores de .NET experimentados pueden agregar código a sus aplicaciones WPF para desencadenar eventos de depuración personalizados que les ayudan a depurar errores más complicados. Esta característica se denomina Seguimiento de eventos para Windows (ETW). La herramienta de creación de perfiles de seguimiento de eventos de WPF usa ETW para el registro de eventos. Para obtener más información, vea el tema sobre el seguimiento de eventos y la clase PresentationTraceSources en la sección de WPF en MSDN (puede estar en inglés).
Depurar aplicaciones híbridas
Si tiene una aplicación que usa WPF además de otra tecnología, como la programación de Windows Forms, podría experimentar problemas tales como comportamientos inesperados de superposición, comportamientos de escalado, problemas de control del enfoque, etc. Para obtener información que le puede ayudar en la depuración de aplicaciones híbridas, vea el tema sobre la solución de problemas de aplicaciones híbridas en la sección de WPF en MSDN (puede estar en inglés).
Seguridad
Mientras se está depurando, la aplicación tiene los mismos permisos de seguridad que cuando la usa otra persona. Para obtener más información, vea Implementar y publicar aplicaciones de Expression Blend en este Manual del usuario. Para obtener más información sobre la seguridad de aplicaciones de WPF, vea los temas acerca de la seguridad en la sección de WPF en MSDN (puede estar en inglés).
Obtener ayuda
Si necesita más ayuda a la hora de depurar aplicaciones de Expression Blend, puede buscar mensajes sobre su problema o publicar una pregunta en el foro de Windows Presentation Foundation (en inglés).

