3 capas ¿errores de concepto?

23/04/2005 - 12:50 por Hugo Gsell | Informe spam
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.

Preguntas similare

Leer las respuestas

#1 Carlos Gómez
23/04/2005 - 19:17 | Informe spam
En esta dirección:
http://www.microsoft.com/spanish/ms...d/uni.net/

puedes encontrar:
Respuesta Responder a este mensaje
#2 I-97
23/04/2005 - 19:17 | Informe spam
No es necesario crear clases y clases, quiza baste con confeccionar algunas
clases muy especificas y meterlas en una dll.
No es necesario pasar cada vez rutas y nombres ya que basta que las indiques
en la configuración
de tu aplicación para que sean globales.
Respecto a clases quiza debas leer un poco más acerca de herencia...
En este link tienes una buena forma que resuelve tu consulta resepcto a
aplicaciones
distribuidas o diseño por capas:
http://msdn.microsoft.com/library/s...hrough.asp
Saludos


"Hugo Gsell" escribió en el mensaje
news:%23KMwIJ$
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.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida