Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta mvc. Mostrar todas las entradas
Mostrando entradas con la etiqueta mvc. Mostrar todas las entradas

sábado, 21 de septiembre de 2013

Un ejemplo completo de MVC: control de alumnos

Un ejemplo completo de MVC: 

Control de Alumnos


Historia del programa:

Se necesita tener un programa que gestione  los datos de Alumnos y los cursos donde estén apuntados. Gestionar se refiere a Guardar, Editar o Borrar datos de alumnos o cursos. Nos permita hacer observaciones en los alumnos que participan en los Cursos. La posibilidad de buscar por legajo (numero de expediente) o documento a los alumnos. Realizar diversos informes para imprimir.


Realizar informes del tipo:

  •  Lista de alumnos
  •  Ficha de alumno con los cursos y observaciones en los que este apuntado.
  •  Lista de cursos 
  •  Ficha de cursos con los alumnos que estén apuntados a él y que también aparezcan las observaciones de estos.

Observaciones:
  • Los alumnos podrán estar apuntados a más de un curso. (relación 1 alumno tiene uno o varios cursos)
  • Datos de los alumno: Nombre, Foto, Apellido, Domicilio, Teléfono, Nacionalidad, Documento Idenfiticativo, Nº de Expediente, Fecha de Nacimiento
  • Datos de los cursos: Nombre del curso, Observaciones sobre el curso.

Analisis:

Según lo explicado anteriormente,  crearemos una base de datos con las siguientes tablas, campos y relaciones entre ellas:


Esquema realizado con el programa DIA
 La tabla Relación es la que nos vá a permitir guardar la información de los alumnos que esten apuntados a los diversos cursos.
Podemos ver como la tabla Alumno puede tener uno o varias registros en Relaciones y la tabla Curso puede tener una o varias registros en la tabla Relaciones.   Esto hace posible que un alumno puede estar a la vez en varios cursos y que un curso puede tener varios alumnos.
Cada registro de Relación, tendremos un campo de Observaciones, que nos servirá para añadir una observación del Alumno en el Curso.

Programación:
Se ha realizado en Gambas3.4.1, un lenguaje derivado moderno del BASIC y con programación visual para los sistemas operativos GNU/Linux. Este lenguaje permite programar tanto con el paradigma de Programación Estructurada como de Programación Orientada Objeto (OOP).

Para esta aplicación se ha seguido el paradigma de Programación Orientada a Objeto (OOP). Para los datos se ha seguido el patrón VO y DAO para facilitar el manejo de la información y como patrón de diseño se ha elegido el Modelo Vista Controlador (MVC),  ya permite separar las vistas (formularios) del manejo de los datos y, en un futuro, ampliar dicho programa con facilidad. (enlace codejavu )
 



Detalle de modulo,clases, datos y formularios que forman el programa:


Autoría del Programa:
Este programa está realizado por Julio Sánchez Berro y Jorge Agustín Pereyra
Licencia: GPL 3.0
Fecha: Agosto del 2013
Video del programa:


Enlace: http://controldecursosdealumnos.blogspot.com.es/

jueves, 1 de agosto de 2013

Modelo Vista Controlador (MVC): ejemplos usando base de datos sqlite3


Modelo Vista Controlador (MVC): 
ejemplos base de datos sqlite3

En el blog de Cristian David Henao Hoyos, he encontrado una explicación y ejemplo de una aplicación hecha en java,   usando el patrón de Modelo Vista Controlador (MVC). Yo la he "traducido" a gambas3.4.1, para que veáis como sería hecha en este lenguaje, y asi podéis comparar.

El enunciado del ejemplo es este:
Se solicita desarrollar un sistema de administración de usuarios con un CRUD (Create, Read, Update, Delete) básico  nos advierten que la aplicación es un prototipo inicial el cual esta propenso a cambios, pues aún no se tienen definidas las ventanas con las que se va a trabajar ni la información requerida, por le momento se trabajará con una BD Sqlite3, pero posiblemente se tenga que migrar a otro sistema gestor....

Además de usar el patron MVC, se  combina  con los patrones DAO y VO para facilitar el manejo de la información.


El esquema de la aplicación seria este:

Esquema del Ejemplo Modelo Vista Controlador

He hecho dos versiones en gambas3:
1) Una muy simple, que usa un array de datos (array de clases PersonasVO) en vez de usar el gestor de base de datos SQLite. Os la podeis descargar en  enlace-descarga

2) Un ejemplo, usando Bases de Datos SQLite. Os lo podeis descargar en enlace-descarga

¿como quedaría el proyecto?
Esquema del Proyecto MVC en gambas3
Ejecutándose la Aplicación....

En esta ejemplo de aplicación podemos: añadir nuevos registro, buscar por su ID, eliminar, y Modificarlos. (a lo que se llama CRUD (Create, Read, Update, Delete) )

_____________________________________________________________________________



Una detalle que se le podía añadir al ejemplo, sería un gridviews (una rejilla a modo de hoja de calculo), para ver todos los datos que tiene la base de datos.... pero eso lo veremos en la próxima entrada... 
(publicada el 4/8/2013 en
http://jsbsan.blogspot.com.es/2013/08/modelo-vista-controlador-mvc-ejemplos_4.html )




_____________________________________________________________________________




Bueno, ya se algo más sobre patrones y el patrón de Modelo-Vista-Controlador.
A partir de ahora, mis aplicaciones y el código fuente de ellas, estarán más organizadas, y serán fáciles de ampliar :)


Fuentes:
Basado en el ejemplo de  Cristian David Henao Hoyos de su blog http://codejavu.blogspot.com.es/2013/06/ejemplo-modelo-vista-controlador.html


Nota:
El único punto donde tuve un problema al traducir la aplicación de java a gambas3, fue usando el método .show de los formularios. Pero, gracias a Shell del foro gambas-es.org,  que me dijo como solucionarlo, usando la propiedad Persistent de los formularios. (enlace)