jueves, 5 de agosto de 2010

Primera aproximación al MVC en Windev




Después de un año inmerso en el mundo .NET, he cambiado de aires y ahora mismo estoy trabajando con el software francés conocido como Windev.

Más adelante, redactaré un post sobre las ventajas y desventajas de utilizar esta tecnología, pero hoy quiero correr un poco más y enseñaros un posible acercamiento a la utilización del patrón Modelo Vista Controlador (MVC) en esta tecnología.

Para empezar es importante aclarar 2 cosas:
  • 1. PCSOFT, la empresa responsable de Windev, no da soporte a este patrón, aunque si da soporte a la posibilidad de utilizar 3 capas.

La aplicación es muy simple, consta de 1 grid, con un formulario de introducción de datos, no borrado. Una vez nos metemos a la lógica, podremos comprobar las siguientes características:
  • La interfaz de usuario, únicamente instancia 2 clases llamadas Controlador y Modelo, esta última por manía, porque no se utiliza.
  • El único código que tiene la vista es una llamada en su inicialización a MostrarDatos() para que se vea la información del Grid.
  • De la vista, pasamos al controlador, que es el verdadero artífice de todo esto, en él tenemos las llamadas necesarias a las clases del modelo y a la función Guardar(), así como algunas clases necesarias para comunicar el modelo y la vista.
  • Para finalizar tenemos el modelo que ha sido generado directamente desde el analisis pasando por UML, para después añadir algún método que faltaba.

Pues esa es toda la aplicación, creo que es demasiado sencilla, como para que tenga que explicarla más a fondo, por otra parte si alguien tiene alguna duda que pregunte y se la responderé gustosamente, tanto aquí como en Windev Tips, o en el foro de PCSOFT, que es donde mi compañero y yo nos estamos moviendo.

Ejemplo Prueba MVC

http://www.megaupload.com/?d=94MF4F7H


Un saludo!!

MtCantero

3 comentarios:

  1. Rubén Sánchez Peña14 de agosto de 2010, 2:07

    Hola. Creo que puede ser interesante http://www.funcoder.com/windev-mvc/

    El articulo que mencionas esta basado en el.

    Por otro lado, ¿cual es la ventaja de usar MVC en Windev? El soporte de acceso a los datos ya es manejado por Windev de manera transparente (ScreenToFile, FileToScreen, ...)

    Entiendo que ese patron puede ser util para lenguajes como Java, donde no hay una manera estandard de manejar los datos. Pero en Windev es un paso atras.

    ¿Que ventajas le ves tu?

    Gracias.

    ResponderEliminar
  2. Hola Rubén,

    Por nuestra parte, el motivo de implementar el patrón MVC es el de conseguir un modelo de clases, para introducir en él entidades agregadas, campos calculados, etc... No toda la estructura que hay en el análisis, es nuestra lógica de negocio.

    Por lo tanto necesitamos crear una serie de clases para poder trabajar con ellas, sin que repercutan en cambios en la BD. De ahí surgió la idea de implementar el MVC en nuestra aplicación.

    Por otra parte, mi superior, es un enamorado de el libro de Evans, e intenta llevar a rajatabla lo que dice de que no tienen que haber 2 entidades para la misma cosa, sino una sola.

    Por ejemplo, una factura, tiene cabecera y detalle, nosotros queremos referirnos directamente a factura, no a cabecera-factura ni a detalle-factura. De ahí que necesite un modelo, porque la entidad factura no va a estar presente en el análisis.

    Por otra parte también puedes pensar que porque no hago todo esto con código, y me ahorro el UML, pues los motivos son 2, XD:
    - Ya que está ahí, habrá que usarlo.
    - Trabajo en una empresa donde el código no resulta precisamente productivo, por lo tanto, les gusta eliminarlo y pensar en la generación automática. Personalmente, me gusta más el código, pero reconozco que con la generación automática, si todo sale bien, ganas tiempo.

    Un saludo y muchas gracias

    ResponderEliminar
  3. Hola, muy interesante el artículo. Yo estoy buscando la mejor forma para ordenar el código en windev ya que se vuelve un poco desordenado con el tiempo en proyectos más grandes.

    Te quiero pedir que subes el ejemplo a otro servidor, ya que el megaupload no funciona. Me gustaría estudiar el ejemplo para tener una mejor idea.

    Saludos,
    DFD

    ResponderEliminar