Depurar aplicaciones de Expression Blend
Si el comportamiento de la aplicación de Microsoft Expression Blend no es el esperado o si se producen errores al intentar probar la aplicación, puede haber algún error en la 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 2010 .
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 si edita sus documentos en la vista Diseño en Expression Blend o en Visual Studio 2010.
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 una cadena,MessageBox.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,
this.InitializeComponent;
provocará un error de sintaxis porque la línea correcta esthis.InitializeComponent();
.
Para obtener información acerca de la sintaxis XAML, vea los temas de información general de los controles individuales enumerados en la Biblioteca de controles de Windows Presentation Foundation y en Silverlight Control Gallery (Galería de controles de Silverlight) en MSDN. 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 Lista de errores de Visual Studio 2010.
Los errores de compilación se producen cuando el sistema de compilación de Expression Blend o Visual Studio 2010 no encuentra algo que requiere el proyecto. Por ejemplo, si en el proyecto de Windows Presentation Foundation (WPF) falta una referencia a ensamblados de WPF, puede que aparezca un error del tipo "El nombre 'Window' no existe en el espacio de nombres 'https://schemas.microsoft.com/winfx/2006/xaml/presentation'". Si obtiene 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\":
PresentationCore.dll
PresentationFramework.dll
WindowsBase.dll
Si continúan 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 independiente 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 FullyQualifiedNamespace es el espacio de nombres del archivo de código:
xmlns:SampleNamespace="clr-namespace:FullyQualifiedNamespace"
Las opciones del 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 y desea generar la aplicación mediante Expression Blend o Visual Studio 2010, 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 por tanto 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 Depurar aplicaciones de Expression Blend en Visual Studio 2010.
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 objeto de panel incorrecto para contener otros objetos.
Para obtener información acerca del diseño, vea Organizar objetos, o bien vea el artículo Sistema de diseño o el artículo de información general sobre alineación, márgenes y espaciado interno en la sección WPF de MSDN.
Un elemento XAML no está enlazado al controlador de eventos correcto. Esto puede suceder si crea muchos métodos 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 un proyecto de WPF abierto en Expression Blend, seleccione el objeto en el panel Objetos y escala de tiempo y, a continuación, haga clic en el botón Eventos del panel Propiedades.
Para obtener más información, vea Escribir código que responda a eventos.
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 esto se puede modificar).
Para obtener más información, vea Animar objetos. Para obtener un ejemplo de desencadenadores de animación, vea Crear una animación sencilla.
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, si hace referencia a un objeto XAML antes de la línea this.InitializeComponent() , obtendrá un error XamlParseException .
En un archivo de código, la aplicación se ejecuta con 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 2010.
Para obtener más información, vea Depurar aplicaciones de Expression Blend en Visual Studio 2010.
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 controlador de eventos que actualiza el texto que se muestra en un control Label , realiza otros cálculos y, a continuación, vuelve a actualizar el texto del mismo control Label antes de que se complete el método de controlador de eventos, solo 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 acerca de cómo escribir aplicaciones de WPF que tengan varios cálculos y actualizaciones de la interfaz de usuario, vea Modelo de subprocesos en la sección de WPF de MSDN.
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 un método de constructor Window1(), aún no podrá tener acceso a los elementos de interfaz de usuario. 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 (ancho real) 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 interfaz de usuario que existen en el documento XAML.
Para obtener más información, vea Eventos de duración de objetos en la sección de WPF de MSDN.
Depurar en Visual Studio 2010
Expression Blend es una herramienta de diseño para crear interfaces de usuario avanzadas para aplicaciones basadas en WPF y aplicaciones Microsoft Silverlight. Puede usar Visual Studio 2010 para abrir, generar y depurar proyectos Expression Blend. Si tiene problemas para depurar aplicaciones con la característica Ejecutar Proyecto (F5) de Expression Blend, use Visual Studio 2010 para obtener mensajes de error detallados sobre los errores en tiempo de ejecución.
Para obtener más información, vea Depurar aplicaciones de Expression Blend en Visual Studio 2010.
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 Herramientas de generación de perfiles de rendimiento de WPF y Optimizar WPF: Rendimiento de aplicaciones en la sección de WPF de MSDN.
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 las secciones acerca de "Event Trace" y "PresentationTraceSources" en el artículo Herramientas de generación de perfiles de rendimiento de WPF en MSDN.
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 acerca de cómo depurar aplicaciones híbridas, vea el artículo Solución de problemas de aplicaciones híbridas en la sección de WPF de MSDN.
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.
Para obtener más información acerca de la seguridad de las aplicaciones de WPF, vea Seguridad (WPF) en la sección de WPF de MSDN.
Obtener ayuda
Si necesita más ayuda para depurar la aplicación de Expression Blend, puede buscar artículos sobre su problema o exponer una pregunta en el foro de Windows Presentation Foundation o en el centro de aprendizaje de Silverlight (pueden estar en inglés).
Copyright © 2011 de Microsoft Corporation. Reservados todos los derechos.