Mejor forma de hacerlo, sobre clase de datos.

23/08/2005 - 15:36 por Franklin Marcano | Informe spam
Estoy comenzando a desarrollar un nuevo proyecto y quisiera la asesoria
donde colocar la clase de acceso a datos. He pensado colocar toda la logica
de Actualizaciones de tablas directamente en la Base de dato, atravez de
procedimiento almacenados y crear una clase en c# para el acceso a datos y
las llamadas a esos procedimientos almacenados, y todos los informes y otros
accesos mediante clase respectiva.

O podria hacer que en la clase diseñada en c3# contengan toda la logica
mediante ado.net para los accesos y actualizaciones.

Segun su experiencia que me recomiendan ustedes.

Franklin Marcano
 

Leer las respuestas

#1 Benton
23/08/2005 - 23:30 | Informe spam
Estoy comenzando a desarrollar un nuevo proyecto y quisiera la asesoria
donde colocar la clase de acceso a datos. He pensado colocar toda la
logica de Actualizaciones de tablas directamente en la Base de dato,
atravez de procedimiento almacenados y crear una clase en c# para el
acceso a datos y las llamadas a esos procedimientos almacenados, y todos
los informes y otros accesos mediante clase respectiva.

O podria hacer que en la clase diseñada en c3# contengan toda la logica
mediante ado.net para los accesos y actualizaciones.

Segun su experiencia que me recomiendan ustedes.



Si el programa final tendrá muchos usuarios simultáneos, probablemente te
convenga crear y mantener procedimientos en la base de datos, y que tus
clases "intermedias" ejecuten estos procedimientos. Si, por el contrario, es
un sistema con pocos usuarios y/o una cargar de trabajo ligera, las clases
intermedias pueden trabajar usando CommandBuilder y de esa manera te evitas
el trabajo de los procedimientos almacenados.

A propósito, hace un tiempo me encontré con este proyecto, que genera clases
"Business Object Layer". Es de código abierto.

www.mygenerationsoftware.com

Usando estas clases B.O.L., el proyecto se divide en capas. La de arriba es
tu interfase al usuario, la intermedia son estas clases y abajo están los
procedimientos almacenados, que estas clases B.O.L. ejecutan para modificar
las base de datos.

Luego de estudiar este proyecto, hice mi propio generador de código, más
simple y compacto (mygeneration es un framework muy extenso y sofisticado) y
me ha funcionado bien. Internamente, ADO.NET es quien trabaja los datos, y
con un sencillo "if" sabe si los comandos Select, Update, Insert y Delete
los tiene que generar con un CommandBuilder, o si los creará usando como
"CommandText" las llamadas a los procedimientos almacenados. Para el usuario
que consume la clase, no hay diferencia en su uso.

Saludos,

-Benton

Preguntas similares