Blog de Fernando Machado Piriz

Artículos sobre arquitectura corporativa y temas relacionados

Primera beta de Microsoft Visual Studio LightSwitch

with 8 comments

Un nuevo miembro de la familia de herramientas para desarrolladores fue anunciado a comienzos de este mes y la primera versión beta estará disponible para descarga a partir del 23 de agosto: Microsoft Visual Studio LightSwitch.

¿Qué es y para qué sirve?

LightSwitch permite crear fácil y rápidamente aplicaciones de negocio completas desde cero, incluyendo no sólo los formularios de la interfaz de usuario, sino también la base de datos; también permite crear aplicaciones a partir de bases de datos existentes.

En este artículo voy a dar un rápido paseo sobre LightSwitch usando la versión beta que estará disponible en breve. Lo que voy a crear es una aplicación muy simple para registrar los libros que presto a mis amigos.

Una nueva aplicación con LightSwitch comienza con la creación de un nuevo proyecto en Visual Studio. Un proyecto LightSwitch va a contener la definición de los datos y de los formularios de la aplicación. A partir de esas definiciones LightSwitch genera la base de datos en SQL Server y el código fuente de la aplicación en C# o Visual Basic.

En este artículo voy a usar la plantilla de proyecto de C#. Aquí pueden ver el familiar cuadro de diálogo para la creación de un nuevo proyecto en Visual Studio con las dos plantillas provistas por LightSwitch.

image

Una vez creado el proyecto podemos conectarnos a una fuente de datos existente o crear una nueva definición de los datos de la aplicación. En este artículo voy a mostrarles cómo crear la definición de los datos desde cero.

image

La primera definición es la de los libros. De cada libro me interesa el autor y el título. Creo una entidad Book, con campos Author y Title, ambos de tipo String y ambos requeridos. Estas entidades estarán almacenadas en una tabla Books.

image

Luego creo la definición de los préstamos. De cada préstamo me interesa saber a quién se lo presté, cuándo lo presté y cuándo me lo devolvieron. Creo entonces una segunda entidad Loan, con campos ToFriend, DateLoaned y DateReturned; el primero es de tipo String y los otros dos de tipo Date; los dos primeros son requeridos, no así el último. Estas entidades estarán almacenadas en una tabla Loans.

image

Ahora defino una nueva relación entre libros y préstamos.

image

Vean a continuación cómo queda la definición de la entidad Loan y su relación con Book.

image

Ahora debo definir los formularios para editar estas entidades. Varias plantillas de formularios están disponibles -para editar los registros de a uno, en una grilla, etc.-. Voy a usar la plantilla para un formulario simple de altas.

image

La definición del formulario puede ser modificada. Lo que he cambiado es solamente el nombre a mostrar y la descripción.

image

Una vez terminada la definición, puedo probar la aplicación. Esta versión de LightSwitch permite generar los siguientes tres tipos de aplicaciones:

image

Al hacer el build LightSwitch:

  • Crea la base de datos
  • Genera el código fuente
  • Compila el código de la aplicación

Una aplicación LightSwitch típicamente es una aplicación en tres capas, que usa ciertas tecnologías específicas para cada una de ellas:

  • La capa de presentación, responsable de la edición y presentación de los datos, es una aplicación Silverlight 4.0
  • La capa de lógica de negocio, responsable de las consultas, actualizaciones, validaciones y procesamiento de datos, y expone un conjunto de WCF RIA Domain Services corriendo en ASP.NET 4.0 sobre IIS o un Windows Azure web role.
  • La capa de datos, responsable de almacenar los datos, usa SQL Server o SQL Azure.

En este artículo –en inglés- pueden encontrar más información sobre la arquitectura de una aplicación LightSwitch.

Al ejecutar la aplicación LightSwitch

  • Levanta un web server local
  • Despliega la aplicación en ese web server
  • Abre la aplicación

Esto es lo que vemos:

image

Completamos los campos para agregar el primer libro:

image

La aplicación asigna automáticamente un identificador al primer libro:

image

La aplicación incluye out of the box algunas validaciones elementales, como las de los campos que están marcados como requeridos.

image

image

image

El segundo formulario es el de alta de préstamos. También es un formulario simple de altas. Podemos ver como LightSwitch asignó un control Date Picker a los campos DateLoaned y DateReturned, que son de tipo Date. También asignó un control de tipo Modal Window Picker para editar la asociación entre Loan y Book.

image

Al ejecutar la aplicación podemos ver cómo luce el control asignado automáticamente a los campos de tipo Date.

image

El control Modal Window Picker permite buscar y seleccionar un libro para asociar con este préstamo. El control incluye funciones de búsqueda y paginado de los resultados.

image

Aunque esta forma de editar los préstamos no está mal, preferiría poder ver la lista de libros y desde allí fácilmente acceder a los préstamos de cada libro y eventualmente agregar nuevos préstamos también desde allí. La plantilla para este tipo de mantenimiento es List and Details Screen. Vean cómo LightSwitch me permite indicar si quiero incluir los detalles de los libros y de los préstamos en el mismo formulario.

image

Una vez creado el formulario puedo editar su definición. Al igual que en los casos anteriores, sólo cambio ligeramente el nombre a mostrar sugerido y agrego una descripción.

image

Podemos ver cómo luce este nuevo formulario al ejecutar la aplicación. La lista de libros aparece a la izquierda. Desde allí puedo agregar, modificar y eliminar libros. Para el libro seleccionado en la lista de la izquierda, puedo ver los préstamos en la parte derecha. También aquí puedo agregar, modificar y eliminar préstamos.

image

Vean que para agregar y modificar libros y préstamos LightSwitch generó automáticamente un formulario con los mismos controles que definí antes en los respectivos formularios para dar de alta estas entidades.

image

image

Estos formularios también tienen el comportamiento para las validaciones definidas en las entidades.

image

El editar más de una entidad en una lista, las modificaciones son impactadas en la base de datos al guardar la lista y no cada entidad.

image

¿Cuánto me llevó hacer todo esto? No mucho, vean el siguiente video:

Pueden descargar el video desde aquí.

Todo esto está muy bien, pero ¿qué aplicaciones puedo hacer con LightSwitch? Probablemente haya que esperar un tiempo para ver realmente quiénes pueden aprovechar esta nueva tecnología. Aplicaciones simples como la del ejemplo pueden ser creadas muy rápidamente, pero todos sabemos que las aplicaciones del mundo real nunca son tan fáciles como las de las demos, ¿verdad? Para los desarrolladores ocasionales o no profesionales -para quienes en su momento fueron pensadas cosas como Microsoft Access o Visual FoxPro- LightSwitch puede ser su nueva herramienta. Los desarrolladores profesionales probablemente no puedan construir con LightSwitch el 100% de las complejas aplicaciones de negocios que crean hoy en día. Pero aún ellos pueden al menos usar LightSwitch como herramienta para la creación de prototipos rápidamente.

En ciertos lugares de la definición de la aplicación puedo escribir código C# para agregar aquellas funcionalidades no contempladas inicialmente por LightSwitch -para las reglas de negocio por ejemplo-. Pero entonces tengo que conocer el modelo de objetos generado por LightSwitch, para poder consumir desde mi código escrito a mano los tipos generados automáticamente.

Algunas de las plantillas parecen extensibles –hoy algunas listas de plantillas tienen un solo elemento, pero probablemente se deba a que se trata de una versión beta-. Además, parece que LightSwitch podrá generar aplicaciones también para Windows Azure. Desde que todo el código y la base de datos son generados a partir de las definiciones, la misma aplicación podría ser migrada desde el escritorio a la nube con sólo cambiar una opción en las propiedades del proyecto.

Con un modelo de objetos fácil de consumir en los puntos de extensión y un ecosistema fuerte aumentando las capacidades de LightSwitch, es probable que podamos usarlo para desarrollar aplicaciones no tan triviales como las del ejemplo. Es muy pronto todavía, el tiempo lo dirá.

About these ads

Written by fernandomachadopiriz

19/08/2010 at 19:56

8 comentarios

Subscribe to comments with RSS.

  1. I’m amazed, I must say. Rarely do I encounter a blog that’s both equally educative and engaging, and without a doubt, you have hit the nail on the head.
    The issue is an issue that not enough men and women
    are speaking intelligently about. I am very happy I came across this in my hunt for something concerning this.

  2. Thanks on your marvelous posting! I really enjoyed reading it, you will be a great
    author.I will be sure to bookmark your blog and will eventually come back very
    soon. I want to encourage you to continue your great work,
    have a nice day!

    coupon codes

    28/06/2013 at 19:53

  3. When someone writes an post he/she maintains the thought of a user in his/her mind that how a user can understand it.
    Thus that’s why this paragraph is great. Thanks!

    bcbgmaxazria

    02/07/2013 at 09:43

  4. I am curious to find out what blog platform you’re working with? I’m experiencing some minor security issues with my
    latest site and I would like to find something more secure.
    Do you have any solutions?


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 222 seguidores

A %d blogueros les gusta esto: