lunes, 29 de octubre de 2007

Creando una aplicación Web con Iron Speed Designer

Si están necesitando armar una aplicación Web donde la mayor parte del trabajo es muy repetitivo, como son los ABMs(Altas, Bajas y Modificaciones), y el tiempo disponible de desarrollo es muy corto, pero al mismo tiempo pretendemos que el look & feel sea tan impactante que deje con espasmo bronquial a los clientes, objetivo que cuesta muchísimo, les recomiendo una herramienta que logra, con muy buenos resultados, suplir estas necesidades.

Su nombre es Iron Speed Designer y sirve para la construcción de aplicaciones Web, generando todo el código fuente para .NET en C# o VB.NET version 1.X o 2.0 con una arquitectura de 3 capas, a partir del esquema de la base de datos que dispongamos, teniendo soporte para la conexión con SQL Server, Oracle y Access.
Esta herramienta no es libre, pero pueden descargar una versión de evaluación la cual no tiene ningún tipo de limitaciones en funcionalidad y si quedan conformes son libres de poder pagar por la licencia.
Aplica el modelo de generación Tier Generator.

Como trabajar

Una vez que tengamos la aplicación instalada y dispongamos de un motor de Base
de Datos, por ejemplo SQL Server 2005, el paso previo a comenzar a utilizar esta herramienta es:
  • Definir el Esquema de la Base de Datos: Diseñar el modelo de Entidad-Relación, con alguna herramienta CASE preferentemente, para luego generar el script resultante y crear el esquema en la Base de Datos.
Usando la herramienta
El Iron Speed no es simplemente un generador de código, es todo un IDE que permite principalmente "configurar" la aplicación a crear, permitiendo modificar formularios en vista de diseño, y cuenta con multiples opciones tratando de cubrir las tareas mas comunes con las que se presenta un desarrollador.
Para crear una aplicación nueva cuenta con un wizard al que accedemos haciendo click en "Create a New Application".

Una vez abierto el Wizard, el mismo propone 5 simples pasos.
  1. Application Information
  2. Page Style
  3. Database Server
  4. Tables
  5. Finish (el más dificil de todos :-) )
Application Information
En este paso indicamos cual será el nombre de nuestra aplicación, cual será el directorio de salida. Además debemos indicar cual será el lenguaje a generar (C# o VB.NET), para que versión del framework, y si queremos que los query sean dinámicos o sean almacenados como Stored Procedures, dependiendo del escenario y la criticidad del sistema quizás nos sea mas conveniente almacenarlos en Stored Procedures.

Page Style
Este es uno de los pasos mas creativos, elegir el template a aplicar!! La version 4.0.5 cuenta con 24 templates, uno mejor que el otro, lo que hace muy dificil elegir uno, asi que lo más productivo es elegirlo al azar para no perder tiempo.

Database Server
Aca especificamos contra que Base de Datos vamos a trabajar, y hay que ingresar las credenciales necesarias para poder tener acceso.
Tables
Este paso es muy importante. La ventana muestra tres estructuras de árbol.
En la primera podemos seleccionar una Base de Dato de las disponibles para la conexión establecida en el paso anterior.
Al seleccionar una, el árbol del medio se carga con las tablas y vistas disponibles, donde podremos seleccionar cuales son las que queremos generar su correspondiente ABM o formulario de reporte.

Finish
Como último paso ya podemos compilar y ejecutar la nueva aplicación haciendo click en el botón correspondiente.
Listo! con esto alcanza y sobra para generar una aplicación que permitirá hacer búsquedas sobre campos de las tablas que indicamos, aplicar filtros, poder hacer Altas de registros y modificar existentes, todo con formularios que aprovechan de la información recolectada de las relaciones entre tablas para agregar Combos de selección, y dependiendo de los tipos de datos de cada campo mostrar en Calendarios, validaciones, etc.

Que hizo por cada Tabla?
En el proyecto de Presentación, por cada tabla generó 4 formularios:
  1. AddNombreTablaPage.aspx (Permite dar de Alta un registro)
  2. EditNombreTablaPage.aspx (Permite modificar un registro)
  3. ShowNombreTablaPage.aspx ( Permite visualizar un registro)
  4. ShowNombreTablaTablePage.aspx ( Form principal de la tabla que agregar textbox de busqueda por columnas, combos con filtros por refencias a otras tablas, opción de Exportar, paginación, etc)
La aplicación corriendo
Para terminar de convencerlos a que prueben esta herramienta, pongo un screenshot de la aplicación creada.
Cabe destacar que ademas se puede configurar seguridad de acceso, utilizar roles, entre otras opciones.
Lo mas importante es chusmear el código generado del cual se puede aprender mucho para generar nuevas ideas.

1 comentario:

J.L. dijo...

Hola,

Descubrí hace poco la herramienta que comentas pero me he encontrado con un problema que no consigo resolver. Quizás la solución es sencilla pero no la encuentro y no sé si me podrías ayudar.

La cuestión es que creo todas las páginas automáticamente pero me veo obligado a realizar ciertas modificaciones.

Tengo una tabla que contiene elementos a los que determinados usuarios tienen o no permisos. Tengo una tabla que me relaciona que usuario tiene permiso a que elemento.

Para que cuando un usuario entre al sistema no tenga acceso a los elementos sobre los que no tiene permiso, añado en la página de esos elementos la tabla de los permisos para poder añadir la cláusula where y un filtro.

Pero cuando hago esto, en los botones de añadir y modificar, se me modifica la URL a la que te mandan pasando de ser las páginas de Add y Edit a Shared/ConfigurationAdd(o Edit)...

Eso me provoca un error. Si cambio las URL y pongo las que habían antes consigo solucionar el redireccionamiento del añadir, pero me sigue saliendo un error en modificar ya que me salta un cartel diciendome que el valor del parámetro URL está perdido. Y se abre la página de modificar pero con todos los campos vacíos.

No sé qué hacer ya para poder editar los registros esos, sin quitar la restricción de que solo muestre los registros sobre los que el usuario logeado tiene permisos.

¿Puedes ayudarme?

Gracias.