lunes, 11 de junio de 2012

Cliente HTML para LightSwitch

El equipo de LightSwitch acaba de anunciar en una nota la próxima disponibilidad de un cliente para LightSwitch en HTML5. Esta es una noticia que estaba esperando impacientemente y me ha sorprendido algo aunque ya existían algunos rumores.
Con esta actualización, que estará disponible en las próximas semanas, las aplicaciones realizadas en LightSwitch podrán tener una parte cliente realizada en Silverlight como hasta ahora aprovechando todo su potencial visual y/o un cliente en HTML especialmente indicado para dispositivos móviles.
Este cliente HTML esta diseñado con HTML5 y CSS3 apoyándose en el conocido framework de JQuery Mobile, lo cual permite utilizar la gran cantidad de plugins que existen para él.
Según nos comenta el equipo de LightSwitch, el modulo de HTML vendrá con dos temas definidos por defecto (Dark y Light) en los cuales han estructurado detalladamente con comentarios las hojas de estilos para que puedan ser modificadas y adaptadas por los desarrolladores al gusto de cada uno.

Para ver más, pueden mirar en el blog del equipo de LightSwitch donde se indican más detalles (en inglés).

sábado, 2 de junio de 2012

¿Que hay de nuevo sobre LightSwitch en Visual Studio 2012 RC?

Desde el pasado 31 de Mayo está disponible la nueva versión de Visual Studio 2012 Release Candidate (RC) que como ya hemos comentado trae LightSwitch incorporado. En esta nueva versión preliminar se han incorporado las siguientes mejoras que nos interesan:

Nuevo Shell y Theme por defecto.   En marzo pasado, se publicó una vista previa del Cosmopolitan LightSwitch Shell y Theme en la galería de VS para dar a las aplicaciones LightSwitch una aspecto más moderno y corporativo. Desde entonces se ha realizado diversas mejoras, arreglado errores  visuales y mejorado la legibilidad (por ejemplo, se han agregado líneas en los grid de datos). Este shell será el utilizado por defecto para nuevos proyectos.

Logotipo incluido en la pantalla de inicio de sesión. Se ha añadido el logotipo de la aplicación en la pantalla de inicio de sesión para aplicaciones que utilizan la autenticación de formularios. Se mostrará una vez que se implemente la aplicación.

Rendimiento.   Se ha mejorado el rendimiento de las operaciones de datos básicos, que a su vez mejora muchos escenarios de aplicación (carga de datos, ordenación, paginación, refresco de pantallas, etc.) También se ha mejorado la experiencia en tiempo de diseño - esto significa una carga más rápida de los proyectos, vinculados a las fuentes de datos, la creación de pantallas y tablas, y la construcción de proyectos (F5).

Simplificada la publicación en Azure. Se ha simplificado significativamente el flujo de trabajo requerido para publicar aplicaciones LightSwitch en Azure. Estas mejoras no están en el RC publicado, en su lugar, estará disponible como un add-on. Estén atentos para más información sobre esto próximamente.

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: