En la actualidad existen muchas herramientas que nos ayudan
a la hora de desarrollar software, en algunos casos estas herramientas son
fáciles de usar y en otros son demasiado complejas, también tenemos muchas
tecnologías que podemos utilizar para desarrollar software tales como:
LinQ,NHibernate,etc.
“ToolCode” es una herramienta desarrollada en Java que genera
código para C#, este código es utilizado para hacer mantenimiento a tablas
alojadas en una B.D. de SQL SERVER 2005 u 2008, la idea Inicial de “ToolCode”
era de ser una herramienta que ayudara en el desarrollo de software en
lenguajes como: JAVA,C#,VB, actualmente solo podemos generar código para C#.
Funcionamiento
Bueno la idea básica es tener un esquema de Base de Datos
listo, conectarnos a él, leer la información
de las tablas, tales como Nombres de tablas, columnas, tipo de datos de las
columnas, identificar campos PK y FK, campos que acepten valores nulos, campos
auto incrementales, etc, ya con esta informa obtenida “ToolCode”por cada tabla
contenida en el motor de Base de Datos genera:
1.
Una clase que representa un registro en la B.D.
esta clase tiene como atributos las columnas de la tabla, en sus propiedades se
hacen las validaciones de los atributos.
2.
Por Cada
tabla genera script de procedimientos almacenados que sirven para:
a.
Insertar: <Nombre Tabla>_insertar
b.
Actualizar: <Nombre Tabla>_actualizar
c.
Eliminar:<Nombre Tabla>_eliminar
d.
La selección de registros es algo que se
implementa en la clase mencionada arriba, se la realizo de esta manera ya que
cuando seleccionamos información la consulta tiene que poder ser cambiante,
claro está referente a la tabla especificada, entre la información que podemos
cambiar son: el número de columnas a recuperar de la tabla y la condición where
que se aplicara al filtro de los datos.
3.
Por cada tabla genera una clase , la cual es la
encargada de invocar a los procedimientos almacenados mencionados arriba, esta
clase hace uso de la clase que representa un registro de nuestra tabla, así
como una clase central que es la encargada de conectarse al motor y de
gestionar los retrocesos en caso de errores, .
4.
Como se mencionó Arriba “ToolCode”genera una clase
principal “DBConexion” encargada de conectarse al motor, esta clase es la
encargada de abrir la conexión al momento de hacer una determinada transacción
en un o muchas tablas, en caso de algún error esta clase realiza el rollback y
lanza la excepción hacia afuera para que el gestor de negocios sepa que no se realizó
la transacción.
5.
Genera una clase principal “Negocio” que es con
la cual puede interactuar el usuario, la cual contiene un listado de todos los
métodos que se pueden utilizar para transaccionar sobre nuestra B.D., esta
clase utiliza una instancia de la clase “DBConexion” mediante la cual realiza
las transacciones, los parámetros que son enviados desde la clase “Negocio” a
la clase “Conexión” son objetos que representan registros en nuestras tablas.
6.
Si tenemos Procedimientos almacenados cuyo
script no ha sido generado por “ToolCode”, podemos seleccionar estos
procedimientos y generar código para poder utilizarlos del objeto “Negocio”,
estos procedimientos tiene que ser asignados a una determinada clase.
7.
Imaginemos que queremos insertar información en
dos tablas que están relacionadas por un ID “ToolCode” permite
realizar esta acción, podemos seleccionar las tablas a utilizar y generamos un
único método que inserte información en estas tablas, de igual manera podemos
decidir en cuál de las tablas se insertaran múltiples registros.
8.
Si por alguna razón la estructura interna de
nuestras tablas o procedimientos ha cambiado, “ToolCode” permite
actualizar el código generado para asi mantener la consistencia con nuestra
B.D.
9.
“ToolCode” permite generar
formularios de mantenimientos de datos, para ellos debemos seleccionar la tabla
para la cual vamos a necesitar el formulario, entre las acciones que podemos
hacer en estos formularios tenemos:
a.
Crear un Nuevo registro en una tabla
b.
Actualizar Un registro de la tabla
c.
Eliminar un registro de la Tabla
d.
Consultar la información contenida en la tabla
en base a filtros que podemos especificar.
10.
Por ultimo con todo lo anteriormente generado,
podemos generar un proyecto para Visual Studio 2010.
Ha continuación se muestra una imagen que trata de representar
lo que genera “ToolCode” para el Programador:
Con esta herramienta estamos garantizando un ahorro de
tiempo entre un 60 a un 80% para el desarrollo de un proyecto.
Bueno basta de palabras, vamos a ver un pequeño ejemplo:
Consideremos el siguiente diagrama de B.D.
Este es un ejemplo sencillo, simplemente vamos a capturar
los datos de una persona al igual que sus números telefónicos, en el diagrama
se está representando que una persona puede tener “1” o “Muchos”
números de teléfonos, así como el país
de donde proviene “Nacionalidad”, bueno aclarar que este artículo no trata de
diseños de base de datos ni de diagrama de clases así que por ende puede que
este modelo no sea del todo exacto ni que tampoco sea la única forma de
representar lo que estos tratando de representar.
Buena con nuestra base de datos ya creada junto con nuestras
tablas vamos a iniciar “ToolCode”
La pantalla inicial es la siguiente:
En esta pantalla podemos ver:
1.
El Menú Principal: En este menú se encuentran los
siguientes sub-menus:
a.
Menú Archivo: Desde el menú Archivo podemos abrir
un proyecto, guardarlo cerrar un proyecto y salir de la aplicación.
b.
Menú Proyecto: Desde el menú proyecto podemos
Generar el código fuente de nuestra aplicación, Podemos seleccionar las tablas
para las cuales vamos a generar los formularios desde los cuales se hará el
mantenimiento de los datos, también podemos actualizar un determinado
formulario ”Propiedades Formulario”, podemos relacionar un procedimiento
almacenado de nuestra base de datos con una clase específica “Relacionar
Procedimiento”, podemos crear un nuevo método a parir utilizando las
clases ya existentes esta opción es útil cuando queremos hacer un registro en
un maestro detalle “Crear Nuevo Método”, Configurar el tipo de Proyecto a generar “En
este caso solo está disponible Aplicación de Escritorio”
c.
Menú Configuración: En esta opción podemos
configurar todos los templates que utiliza “ToolCode” para la generación
del código fuente así como de los script para generar los procedimientos
almacenados.
d.
Base de Datos: Con este menú podemos seleccionar
las tablas para las cuales vamos a generar el código fuente, así también busca
nuevos procedimientos almacenados creados en la Base de Datos.
2.
El Inspector de Proyecto: Esta paleta nos
permite visualizar la estructura con la cual será creada nuestra solución en
Visual Studio, así como también podemos visualizar las tablas y procedimientos
almacenados seleccionados para el proyecto.
3.
La paleta de Métodos y Propiedades: Esta paleta
nos permite ver los métodos, atributos y propiedades perteneciente a una clase
determinada, así como también podemos observar las propiedades de un objeto de
la B.D.
Bueno ahora luego de esta breve explicación
de las opciones del “ToolCode”, ahora vamos a crear un
nuevo proyecto, para ello nos vamos a archivo ” Abrir Proyecto”:
Podrán notar que esta resaltado con rojo el tipo de B.D. a
la que nos vamos a conectar así como el lenguaje de programación y el IDE, le
damos click en el botón guardar, nos van a salir las siguientes pantallas le
damos click en siguiente y luego en finalizar.
Después de haber echo click en l botón finalizar “ToolCode” hará una inspección de la base de datos buscando las tablas y los procedimientos
almacenados contenidos en la B.D. al terminar la inspección nos mostrara la siguiente ventana en la cual nos pide seleccionar las tablas con las que
trabajaremos en el proyecto.
Seleccionamos todas las tablas y le damos click en aceptar,
ahora “ToolCode” se dispondrá a generar el código fuente para nuestras tablas
seleccionadas.
El proyecto quedara de la siguiente forma:
En el inspector de Proyecto, podemos ver todas las clases
que “ToolCode”
genero para nuestras tablas, así como también podemos ver las tablas
seleccionadas para nuestro proyecto, podemos notar que en este momento no
tenemos procedimientos almacenados en nuestra B.D., para crearlos hacemos doble
click sobre el nodo “Procedimientos” contenido en el proyecto “Demo” y se nos abrirá
una paleta en el centro, en el cual podremos ver el script correspondiente a
los proc. Almacenados que “ToolCode” nos sugiere que creemos
para que nuestra aplicación pueda funcionar correctamente.
Vamos a revisar que tiene la clase “OPersona”, para hacemos
doble click sobre el nodo correspondiente a esta clase:
Podrán observar que los atributos de esta clase son los que
lleva la tabla “Persona”, esta clase como lo explique anteriormente no contiene
ningún método con el cual se pueda registrar información en la B.D. el objeto
tipo principal de esta es de contener información, la cual posterior mente será
registrada en la tabla “Persona” utilizando la clase “DPersona”.
Hacemos click sobre el nodo correspondiente a la clase “DPersona”:
Podrán observar los
atributos y métodos de esta clase, hay que prestar mayor énfasis en que esta
clase es la encargada de registrar información sobre la tabla “Persona” pero
para poder hacer debe hacer uso de la clase “OPersona”.
Vamos a examinar ahora la clase “DBConexion” podrán observar
que en ella se encuentran todos los métodos utilizados para interactuar con el
motor de B.D. la principal funcionalidad de esta clase es la de gestionar las
transacciones sobre el motor así como de i formar de algún error al ejecutar
los mismos.
Ahora vamos a inspeccionar la clase “Negocio”, esta clase es
el mascara para todos los métodos utilizados para interactuar con el motor, el
usuario no debe preocuparse por la conexión ya que esta clase crea una
instancia de la clase “DBConexion” la
cual es utilizada para administrar las transacciones, el usuario solo debe
preocuparse de invocar al método correcto y de enviar la información adecuada
al mismo.
Vamos a configurar nuestro proyecto para poder generar
formularios, nos vamos a “Proyecto->Propiedades Proyecto” nos mostrara la siguiente
ventana, nos vamos a la paleta presentación y la dejamos tal y cual como se
encuentra en la imagen
Luego le damos click en guardar.
Bueno ahora vamos a generar los formularios para las tablas “Nacionalidad,
Persona”, para ello seleccionamos el menú “Presentacion->Generar ABM’s”
Seleccionamos las tablas y luego le damos click en aceptar.
Nos aparecer el siguiente formulario, seleccionamos el
objeto “FrmPersona”, luego el atributo “id_nacionalidad”, luego cambiamos el
estilo a “COMBOBOX” y por ultimo seleccionamos el objeto que servirá como DataSource
del combo
Hacemos click en aceptar, guardamos y luego nuevamente en
aceptar.
Ahora nuestro proyecto quedara de la siguiente forma:
Ahora vamos a generar el código fuente para este proyecto,
no olvidar que el código se generar en la carpeta:
La cual actualmente está vacía:
Seleccionamos el menú: “Proyecto->Generar Proyecto”
Se nos desplegara una ventana con un progres le damos click
en aceptar y el proyecto empezará a generarse:
Cuando finalice la pantalla quedara de la siguiente forma:
Ahora verificamos nuestra carpeta:
Notamos que nos generó un proyecto para visual Studio,
procedemos abrirlo, y le damos click en Generar.
Ahora hacemos doble click sobre el formulario “FrmPersona”
Este es el estilo de formularios que se generan con “ToolCode”.
Ahora vamos agregar un nuevo proyecto a la solución, vamos
hacer referencia al proyecto “Demo”, en este proyecto vamos a crear un
formulario con dos botones “Nacionalidad” y Persona.
El código fuente que contendrán los eventos click de estos botones será el siguiente:
Ahora creamos los procedimientos almacenados:
No olvidar que el script de los proc. Están en :
Ahora ejecutamos la aplicación, e ingresamos al formulario
nacionalidad:
Creamos unos cuantos registros y luego ingresamos al
formulario “Persona”
En este formulario también procedemos a crear registros.
Bueno amigo eso es todo, comentarles que actualmente estoy
por terminar de desarrollar “ToolCode” actualmente genera todo lo
anteriormente expuesto.
En otro artículo explicare de forma más detalla el código fuente
generado.
El enlace para descargar el codigo de ejemplo es el siguiente:
https://sourceforge.net/projects/toolcode/https://sourceforge.net/projects/toolcode/
Saludos.
Buen trabajo Jose, a la espera de la versión 2
ResponderEliminarDISCULPAME. de donde puedo bajar toolcode para ejecutarlo?
ResponderEliminarmil gracias por tu atencion.
te felicito por tu idea. es genial.
ResponderEliminarHola Rodolfo, pasame tu correo y te lo envió, mis correos son : jose_g709@hotmail.es,joseg709@gmail.com
Eliminargracias por los comentarios Saludos.
Estimado amigo, el proyecto esta publicado en : https://sourceforge.net/projects/toolcode/
Eliminarme comentas como te fue.
Saludos.
el archivo requiere una contraseña
ResponderEliminarno amigo no requiere contraseña,actualmente estoy subiendo una actualizacion
ResponderEliminar