Es largo... espero lo lean... y sobre todo que lo enciendad.
Estoy tratando de pasar 'mi sistemas' de mi querido vb6 a .net, utilizando
clases, y capas para su desarrollo.
En vb6 nunca utilicé clases. En un principio me plantee esto así:
Crear 1 clase (y una dll independiente) x cada 'objeto de trabajo', por
ejemplo, usuarios, y que esta clase autocontenga "todo" lo necesario para
trabajar con los usuarios: crear usuario, eliminar usuario, asignar tareas
que puede realizar, modificar contraseña, validar usuario (pasando usuario y
contraseña),etc.etc. (ya que si tengo 5 sistemas distintos incluyendo esta
dll e invocando sus metodos y utilizando sus propiedades ya que tengo todo
para trabajar con ellos (en este caso usuarios).
Cree una bibliotecla de clases cuya estructura es mas o menos...
ClassMiClase
ClassAccesoADatos
New (toma como parametros rutanombrebase, y clavebase. Ademas tiene
propiedades con estos datos)
MetodoEjecutar as Object
MetodoLeer as IdDataReader
MetodoEjecutarProcAlmacenado as Object (no utilizado es para cuando se
use sql )
ClassComun (contiene una serie de propiedades que son comunes a todos los
sistemas como ser usuarioactual,nivelusuarioactual, RutaBackUp,
ModoDeEjecucion, RutaNomBase,
SistemaRegistrado)
prtUsuario
prtContrasena
prtNivelUsuario
prtHaceBackUp
prtRutaBackUp
prtModoEjecucion
prtRutaNomBase
prtSistemaRegistrado
ClassEncriptacion
prtMetodo (1,2,3)
MetodoEncripta (Cadena)
MetodoDesencripta (Cadena)
Metodo1
Metodo2
Metodo3
ClassSeguridad
ClassUsuario
prtNombre
prtContrasena
prtNivel
MetodoCrearUsuario
MetodoEliminarUsuario
MetodoModificarContrasena
MetodoValidaUsuario
ClassUtilidades
MetodoLimpiarTexto'Saca espacios extremos y medios
MetodoConvertirATitulo
Etc..Etc
Luego, haciendo extensivo este proceso, de hacerlo independiente en una dll
(cada objeto una dll distinta) para utilizarlo directamente y autocontenidos
en otros sistemas ... tendré unas 30 o 40 clases!!! Al ser autocontenidos
quiere decir que en cada clase estará su lógica de negocio (en usuarios por
ej. que un usuario de nivel 3 solo puede crear usuarios de nivel 3 o
superior)... su acceso a datos (en usuarios grabar usuario nuevo), etc. En
realidad, para el acceso a datos tengo otra clase (otra dll) que hace la
aperura de la base y ejecuta comandos y otra que lee devolviendo un
IdDataReader. Pienso utilizar bases access (pero dejando abierto para
poder migrar a una versión en sql u otra), me surgio el siguiente
problema... que cada ves que utilizo alguna de estas clases (ejemplo
usuarios) debo inicializarla con la ruta + nombre base + contraseña .. ahí
ya me resulto engorroso... ni que hablar cuando desde un form por ejemplo
creo una instancia de la clase ClassUsuarios y llamo al método ValidaUsuario
que llama a la ClassAccesoADatos... debo pasar el rutanombre base a
ClassUsuarios y estedebe pasar el mismo a ClassAccedoADatos
Perdon por todo el embrollo... creo que es un gran problema de diseño de las
clases y una falta de comprensión pero alguien puede darme una luz (tal ves
algun "esquema" de diseño en aplicaciones con estas caracteristicas?
GRACIAS.
Leer las respuestas