viernes, 1 de junio de 2012

Error al ejecutar un proyecto copiado que utiliza XtraReports

     En uno de mis proyecto en LightSwitch utilizo para los informes la extensión XtraReports para LightSwitch del fabricante DevExpress. He de reconocer que está muy bien conseguido aunque todavía le falta algunos detalles para que sea más fácil de usar en LightSwitch.
El problema me surge cuando copio el proyecto desde un equipo a otro distinto. Ambos equipos tienen exactamente la misma configuración en todo pero al ejecutar el proyecto copiado me aparece el siguiente error "No se puede cargar el archivo o ensamblado 'DevExpress.Xpf.Printing.v11.1.Core'":


Como se deduce del mismo el problema está en algún componente del XtraReports. Después de dar muchas vueltas encontré la siguiente solución en el foro oficial de DevExpress. Para arreglarlo hay que seguir los siguientes pasos (si haces click en las imágenes que hay a continuación puedes verlas más grandes):

- Primero seleccionamos el proyecto y con el botón derecho del ratón seleccionamos la opción de Propiedades. Dentro de Propiedades nos vamos a Extensiones y desmarcamos la extensión de DevExpress XtraReports:

- Una vez hecho nos pedirá reiniciar Visual Studio, pero antes de hacerlo realizamos el siguiente paso. En el menú superior del explorador del soluciones cambiamos la vista a modo File View:



- Abrimos el proyecto ClientGenerated y dentro de él buscamos el fichero Config.xml haciendo doble click para editarlo. Borramos todas la lineas que hagan referencia a los componentes de DevExpress:

- Guardamos, reiniciamos Visual Studio y volvermos a cargar el proyecto para que coja los cambios realizados.
- Volvemos a cambiar la vista a Logical View y volvemos a activar la extensión DevExpress XtraReports:

- Cambiamos de nuevo a la vista File View, seleccionamos el proyecto Server, y dentro de References seleccionamos todas las referencias a los componentes DevExpress:

- Marcamos la opción de Copia local a True.
- Hacemos lo mismo en el proyecto ServerGenerated:
- Por último volvemos a generar de nuevo el proyecto con la opción del menú Generar -> Volver a generar solución.

Con todos estos pasos ya podemos ejecutar nuestro proyecto y debe funciona correctamente sin ningún mensaje de error.


viernes, 2 de marzo de 2012

Visual Studio 11 Beta disponible

El pasado día 29 de febrero, dentro de la conferencia de MVPs de Microsoft, se hizo pública entre otras cosas la nueva versión beta de Visual Studio. Ahora mismo tiene en nombre clave Visual Studio 11 pero posiblemente cuando salga al mercado sobre el verano (todavía no hay una fecha oficial) se llamará Visual Studio 2012.

Entre importantes mejoras que podemos encontrar en esta nueva versión está la inclusión de Lighswitch como un tipo de proyecto más al mismo nivel que el resto de tipos de aplicaciones disponibles hasta el momento y no como un producto adicional como esta hasta ahora. Esto demuestra el apoyo por parte de Microsoft del producto Lightswitch y de la tecnología Silverlight en general.
Para los que seguimos los detalles de esta herramienta desde hace tiempo no nos sorprende esta decisión y despeja las dudas sobre la continuidad del producto de ciertos programadores. Además en esta nueva versión se pueden ver grandes mejoras como el soporte para el acceso a datos mediante OData y la inclusión de nuevos tipos de datos.

La descarga de Visual Studio 11 Beta está disponible en la web de Microsoft y es completamente funcional:


El aspecto rebosa el estilo Metro por todas partes:


La instalación de esta versión no afecta a la instalación previa de Visual Studio Lightswitch 2011 y los proyectos se convierten a la nueva versión sin muchos problemas. Aunque como es una beta solo se debe usar para probar ya que puede haber cambios en la versión definitiva.

martes, 1 de noviembre de 2011

Webcast MSDN: Casi “Zero Code” con LightSwitch en Azure

En este evento se puede ver todas las opciones de despliegue y personalización que nos permite LightSwitch. Asimismo, agrega bastante código en las aplicaciones generadas, y se puede ver cómo funciona el “corazón” de LightSwitch y como se sirve de un DSL para la generación de código de las aplicaciones.
Este vídeo  fue realizado el pasado junio cuando todavía no había aparecido la versión final del LightSwitch, sin embargo su contenido es totalmente aplicable a la versión actual. Ha sido realizado por Juan Luis Guerrero y Bruno Capuano, dos excelentes profesionales de Avanade y colaboradores de la comunidad de desarrolladores.
El enlace al vídeo para ver y/o descargar Casi “Zero Code” con LightSwitch en Azure.

lunes, 31 de octubre de 2011

Acceso total al DataGrid desde código

El grid que se utiliza en LightSwitch no es más que el control DataGrid estandard de Silverlight limitado. Cambiando las propiedades en diseño normalmente es suficiente para un uso cotidiano, pero a veces puede ser necesario cambiar propiedades del grid que no son accesibles directamente de LightSwitch como por ejemplo habilitar unas columnas específicas o poner todo el grid en modo solo lectura.

Para ello tenemos que hacer una serie de pasos y obtener acceso al objeto DataGrid de Silverlight del cual hereda nuestro grid. Los pasos serían los siguientes:

  • Antes de empezar tenemos que agregar las referencias a "System.Windows.Controls.Data" y "System.Windows.Data" al proyecto "Client". Para ello nos vamos a la vista de ficheros (File View): 


  • Ponemos el siguiente código en el evento Created de la pantalla (debe funcionar también en InitializeDataWorkspace) para que capturemos cuando el control este disponible: 
partial void doc_salidaMto_Created()
{ 
    this.FindControl("linea_doc_salgrid").ControlAvailable += new EventHandler<ControlAvailableEventArgs>(linea_doc_salgrid_ControlAvailable); 
}


  • Ahora podemos acceder al object e.Control que nos dará el acceso que buscamos:
private void linea_doc_salgrid_ControlAvailable(object sender, ControlAvailableEventArgs e)
{
    DataGrid dataGrid = (DataGrid)e.Control;
    // Hacemos lo que queremos con el grid
    dataGrid.IsReadOnly = true;
}

Ya está todo, espero que os sea útil.

miércoles, 26 de octubre de 2011

Cuadro de mensaje para preguntar al usuario

    En ciertos casos es necesario mostrar una mensaje de pregunta al usuario para realizar un determinado proceso o calculo. Para hacer esto dentro de LightSwitch se puede utilizar el siguiente código:

this.Details.Dispatcher.BeginInvoke(() =>
{
    if (Microsoft.LightSwitch.Presentation.Extensions.ScreenExtensions.ShowMessageBox(this,
      "Debe guardar los cambios antes de generar el documento. ¿Desea guardarlos ahora?", 
      "Pregunta", MessageBoxOption.YesNo) == System.Windows.MessageBoxResult.Yes)
    {
        // Tarea a realizar
    }
});

El resultado es el siguiente:

viernes, 21 de octubre de 2011

Presentación en Sydney

    Recientemente fue la presentación en Sydney de Microsoft Visual Studio LightSwitch. Para ello realizaron un espectáculo con las luces de edificios fantástico. Aquí os dejo el vídeo para que lo veáis:


viernes, 2 de septiembre de 2011

Actualización de LightSwitch 2011

    El equipo LightSwitch ha lanzado una General Distribution Release (GDR) para resolver un problema encontrado al publicar en SQL Azure.

En algunos casos, los usuarios han informado del error "SQLServer version not supported" al publicar una base de datos en SQL Azure. Esto se debe a una actualización del servidor SQL Azure reciente que causó la incompatibilidad con versiones anteriores. La GDR permite a LightSwitch corregir este problema y está pensada para actualizaciones futuras de los servidores.

La GDR y las instrucciones para su instalación se pueden encontrar en el Centro de descarga