Ayuda modelo de tres capas...

30/06/2005 - 15:56 por Demian | Informe spam
Hola, tengo una duda en cuanto al modelo de tres capas..

En general no se donde deben escribirse los comando sql de mi aplicacion, no
se si es parte de la capa de datos o bien es parte de la capa logica...

Entiendo que puedo programar procedimientos almacenados para recuperar la
información y despues mediante los proveedores de datos de .net ejecutarlos,
con lo cual obviamente mis sentecnias sql estarian en el lado de la capa de
datos y obtendría una aplicacion mas migrable, sin embargo, todas mis
aplicaciones estarían en un servidor y esto podria afectar el rendimiento del
mismo.

Otra opcion es tener una funcion de datos para cada accion que desee
realizar en el servidor, por ejemplo un metodo InsertarPedido, otro
InsertarFactura, y otro mas llamado InsertarAmortizaciones. Esto estaria
bien, sin embargo alarga el tiempo de desarrollo de aplicaciones.

La opcion que estopy tomando es tener funciones de datos generales, por
ejemplo
InsertarRegistro o bien InsertarRegistros, a las cuales les paso comandos
sql o bien una lista de parametros que la funcion pueda reconocer y con ello
construior un comando que ejecutaria posteriormente. El asunto con esto que
mi applicacion no es tan migrable y apartentemente mezcla un poco la logica
de negocio con la capa de datos, sin embargo me gustaría saber si lo que
estoy haciendo es conveniente y de no serlo cuales son las razones por las
cuales no debo programar de esta forma.

Preguntas similare

Leer las respuestas

#16 Demian
01/07/2005 - 16:53 | Informe spam
No quiero verme de algun modo conciliador ni nada por el estilo pero les voy
a hacer los siguientes comentarios:

Creo que de algun modo perdieron el hilo central de la conversacion, en el
mejor de los sentidos les comento que una cosa es discutir sanamente con
fundamentos y otra cosa es empezar desacreditarse uno a otro.

Creo que quien se jacte de ser el mas inteligente discutira con buenos
argumentos, de esta forma es mas facil que todos podamos captar diversos
puntos de vista y asi tomar cada quien sus propias decisiones, con ello
hacemos de este grupo una herramienta util no un panel como los de crsitina
saraleggui o algo asi donde todos pelean unos contra otros.

Les agradezco mucho los cometarios que me han hecho , en general ambos
puntos de vista me han sido muy utiles y no creo que ninguno tenga razon, mas
bien creo que los dos se van al extremo, existiran aplicaciones que deban
plantearse de un modo y otras de otro Saludos


"Juan T. Llibre" wrote:

Alfredo,

no crees que esta cita tuya :

000
Este es el error fundamental de muchos de vosotros los amigos de las
siglas que empiezan por M, que os creeis que por haber hecho un
cursillo de Microsoft ya os lo sabeis todo y no necesitais leer nada
más, especialmente textos de nivel académico.
000

es algo injusta ?

Particularmente, en el caso de aquellos que sí han leído los tan cacareados
"textos de nivel académico" a que haces referencia, y tienen buena formación
académica, habiendo logrado un grado o posgrados en Ingeniería de Sistemas,
por ejemplo, y *además* tienen las certificaciones/siglas que comienzan con M,
que aparentemente deseas descalificar.

Esa cita, francamente, para alguien que se ufana de la excelencia
que tiene su formación académica, es muy poco académica.




Juan T. Llibre
ASP.NET MVP
http://asp.net.do/foros/
Foros de ASP.NET en Español
Ven, y hablemos de ASP.NET...
>
"Alfredo Novoa" wrote in message
news:
> On Fri, 1 Jul 2005 14:35:13 +0200, "Miguel Angel Campos" <SPAMmacampos
> ARRUBA .idesarrollaSPAM.com> wrote:
>
>>> Mi forma de pensar es la generalmente aceptada por los expertos en
>>> bases de datos. De ahí la he sacado.
>>>
>>Tu lo has dicho de los expertos en bases de datos, que no tienen por que ser
>>los expertos en Arquitectura de sistemas, sólo expertos en bases de datos.
>
> Que tienen una visión mucho más amplia e informada sobre los Sistemas
> de Información que la de mayoría de los que se llaman a si mismos
> "arquitectos de sistemas", que es solo una manera rimbombante de
> llamar a un programador.
>
> Además me estás discutiendo cosas que se explican en la primera semana
> de la asignatura de bases de de datos de 2º de carrera.
>
>>Un MCDBA puede conocer mucho de SQL Server pero no tener una correcta visión
>>de posibles arquitecturas, a diferencia de un MCSD o del futuro MCA.
>
> Querrás decir al igual que ellos. Eso no es educación formal sino
> entrenamiento en el manejo de productos a cargo de un fabricante de
> software, que solo te va a "enseñar" lo que a él le interesa.
>
> Un cursillo de esos nunca puede sustituir a la verdadera educación, y
> además se recomienda tener estudios de informática antes de
> empezarlos.
>
>> (Estas
>>certificaciones son ejemplos no es necesario tener una para conocer bien un
>>producto).
>
> Y conocer bien unos productos no es suficiente para tener buenos
> conocimientos sobre los fundamentos de la profesión.
>
> Este es el error fundamental de muchos de vosotros los amigos de las
> siglas que empiezan por M, que os creeis que por haber hecho un
> cursillo de Microsoft ya os lo sabeis todo y no necesitais leer nada
> más, especialmente textos de nivel académico.
>
>>> Si, aunque casi todo lo que enseña esa demo se puede hacer con Delphi
>>> desde hace 10 años.
>>
>>Perdona pero Delphi no tiene eso desde hace 10 años, por lo menos en la
>>versión 3 y 4 no lo tenía al nivel que lo tiene Visual Studio 2005.
>
> Lo tiene desde la versión 1.0.
>
> Los TableAdapters son muy parecidos a los TTable y TQuery de Delphi, y
> se puede crear una aplicación que mantenga varias tablas con
> relaciones maestro detalle, comboboxes etc sin tener que escribir una
> sola linea de código. También te crea automáticamente los edits y los
> labels cuando arrastras los campos de las tablas a un formulario.
>
>>>>Pero simplemente es eso una demostración de lo que se puede hacer,
>>>>arastando
>>>>y soltando, pero cuando hacemos una aplicación de calle, la cosa cambia.
>>>>Esto está muy bonito para hacer un piloto de cara a un cliente, en donde
>>>>el
>>>>rápidamente pueda ver los campos descriptivos de lo que el llama cliente,
>>>>y
>>>>lo que llama pedido; y la aplicación parezca que hace muchas cosas.
>>>
>>> O sea, que según tú, lo que hace Microsoft está mal :)
>>
>>LEE BIEN. Eso es una demostración de como hacer algo, pero no se tiene por
>>que aplicar en todos los casos.
>
> ¿Por que?
>
> ¿Por que no funciona? :)
>
> Solo estás tratando de marear la perdiz.
>
>> En Visual Studio 2003 podías arrastrar una
>>tabla al formulario y te creaba una SqlConnection, y se sabe que no es una
>>buena practica tener un objeto de este tipo en cada formulario. Pero quedaba
>>bonito en las presentaciones.
>
> Nunca vi a nadie hacer esa tontería en una presentación.
>
>>> Pues será por que era más fácil de implementar y acabaron antes, o por
>>> cualquier otra razón irrelevante para nosotros. Lo importante es que
>>> eso va a estar disponible para trabajar con SQL Server, Oracle y
>>> cualquier otro SGBD.
>>
>>Je, je. A lo mejor es por que tiene mas sentido en las arquitecturas de hoy
>>en día, y los métodos que tu comentas los mantienen para que seais felices
>>aquellos que añorais viejos tiempos en los que se hacian aplicaciones
>>monoliticas en las que cada usuario abre una conexión con la base de datos
>>de forma directa. Creo que hay una generación anterior a la tuya que
>>comentaba que lo mejor era utilizar terminales conectados a grandes
>>sistemas, esos que tenían el fondo negro y la letras en verde. Por que eran
>>mas robustos y mas potentes. ¿Donde están esos sistemas? La culpa la tiene
>>Bill Gate con sus ideas innovadoras.
>
> ¡Terrible!
>
> Creo que te has desenmascarado suficientemente por ti mismo, y no hace
> falta seguir discutiendo.
>
> Es muy triste que haya gente que piense que la MSDN es la fuente de
> toda la sabiduría.
>
>>> Ya, pero lo reducen un 60% después de haberlo aumentado un 1000%, por
>>> ejemplo, por usar una metodología equivocada, ahí está el truco.
>>Amen, creo que nos has dicho nada de interes en estas lineas, o a lo mejor
>>no lo pillo.
>
> Pues que no tienes que creerte todo lo que digan los panfletos de
> propaganda de los fabricantes, ni todo lo que dicen en la teletienda.
> Resulta que casi todos los fabricantes exageran las cualidades de sus
> productos, ocultan sus defectos y trucan las comparativas. ¿Nunca te
> lo habían dicho?
>
>
> Saludos



Respuesta Responder a este mensaje
#17 Alfredo Novoa
01/07/2005 - 17:14 | Informe spam
On Fri, 1 Jul 2005 10:14:16 -0400, "Juan T. Llibre"
wrote:

Alfredo,

no crees que esta cita tuya :

000
Este es el error fundamental de muchos de vosotros los amigos de las
siglas que empiezan por M, que os creeis que por haber hecho un
cursillo de Microsoft ya os lo sabeis todo y no necesitais leer nada
más, especialmente textos de nivel académico.
000

es algo injusta ?



No lo creo.


Particularmente, en el caso de aquellos que sí han leído los tan cacareados
"textos de nivel académico" a que haces referencia, y tienen buena formación
académica, habiendo logrado un grado o posgrados en Ingeniería de Sistemas,
por ejemplo, y *además* tienen las certificaciones/siglas que comienzan con M,
que aparentemente deseas descalificar.



Es que no va por ellos, evidentemente. Va por los otros, por los que
*solo* tienen certificaciones de fabricantes, no tienen ninguna
preparación científica y se creen los reyes del mambo.

No has entendido lo que quería decir.


Saludos
Respuesta Responder a este mensaje
#18 Carlos García-Carazo
01/07/2005 - 17:45 | Informe spam
Hola,
ya te han dado dos puntos de vista muy argumentados y me gustaría aportar el mío
basado en mi experiencia personal. Esta experiencia no es de muchos años
a diferencia de la de las personas que han contestado, pero creo que es interesante
en el sentido que muestra el punto de vista de un programador normal, que debe
afrontar un gran reto adoptando una "forma" de hacer las cosas que no domina a la
perfección.

A mí y al equipo con el que trabajé, los objetos de negocio nos dieron muchos dolores
de cabeza. Primero, porque para entender bién esta metodología hace falta leer mucha
documentación: que si UML, que si RUP, patrones de diseño básicos, arquitectura de
capas, esquema persistente... se pueden obviar muchas cosas, pero en ese
caso es muy fácil confundir conceptos y aprender mal la metodología. Segundo, porque aunque
tú hayas conseguido dominar lo básico de cada cosa, el compañero de al lado puede haber
entendido algo distinto, con lo que al unificar clases habran problemas. Tercero, porque
normalmente necesitas herramientas de apoyo (por lo menos alguna de modelado UML)
que te pueden ralentizar el desarrollo más que ayudarte, sobre todo cuando ya tienes
buena parte de la aplicación escrita y vas modificando código sobre la marcha.

Bueno, tampoco voy a seguir enumerando porque realmente sólo quiero decir que esta metodología
tan moderna y tan de moda da muchos problemas al que se mete de lleno siendo alguien "normal".
No puedo hablar del caso de un experto en el modelado de objetos de negocio sencillamente
porque yo no lo soy.

Como has comentado en otro post, estás tú sólo como desarrollador. En ese caso yo no me la
jugaría haciendo un sistema "puro" con objetos de negocio bién encapsulados, con tratamiento
aislado de su persistencia y siguiendo al pie de la letra la metodología. Yo casi que apostaría que
así vas a tardar más, ya que es tu primera gran experiencia con una aplicación encapsulada en
objetos de negocio, seguramente vas a confundir cosas, vas a tropezar con problemas derivados
del aislamiento del acceso al SGBD que no podrás prever, y a lo que vamos, tu labor como
desarrollador va a estar en entredicho desde el punto de vista de los usuarios, que sólo saben
opinar sobre "pantallas".

Con esto, y para no alargarme más, no digo que en tu lugar no haría nada que forzase en exceso
tu forma de programar habitual. Creo que puedes hacer objetos "de negocio" con un significado
lógico dentro de la aplicación, pero también creo que se puede lanzar código de acceso
a BD desde esos objetos sin ningún problema. Encapsular cada acceso a BD con procedimientos
almacenados como medida de "independencia entre capas" no me convence, sencillamente porque
no veo esas grandes ventajas por ningún lado y estás añadiendo un nivel de indirección que creo
que va más a complicarte la vida que otra cosa.

Como resumen final, creo que la mejor metodología (para alguien "no experto") es el sentido común.
Y más si no tienes un jefe experto que te exija usar UML, tres capas puras etc.
Vas a ser evaluado por gente a la que esas cosa ni le van ni le vienen, así que yo creo que prima el
tiempo de desarrollo y la ausencia de errores. Con el tiempo sacarás tu propia metodología, que
probablemente coja cosas de aquí y de allá.

Saludos y mucha suerte con lo que elijas.

PD: en mi experiencia, el equipo sufrió un GRAN retraso al no existir grandes expertos ni en O.N para
no equivocarse, ni en SGBD para elegir el otro camino.
Respuesta Responder a este mensaje
#19 Alfredo Novoa
01/07/2005 - 17:58 | Informe spam
On Fri, 1 Jul 2005 07:53:09 -0700, Demian
wrote:

Les agradezco mucho los cometarios que me han hecho , en general ambos
puntos de vista me han sido muy utiles y no creo que ninguno tenga razon, mas
bien creo que los dos se van al extremo, existiran aplicaciones que deban
plantearse de un modo y otras de otro Saludos



Eso es un gran error, y viene de una forma popular e incorrecta de
interpretar la teoría de la relatividad. No es verdad que *todo* sea
relativo y todas las ideas tengan el mismo valor.

Hay prácticas que se ha probado que son objetivamente mucho mejores
que otras, y muchas teorías que se ha probado que son falsas.


Saludos
Respuesta Responder a este mensaje
#20 Juan T. Llibre
01/07/2005 - 18:11 | Informe spam
re:
No has entendido lo que quería decir.



Alfredo,
( y que me excuse Demian por este desvío del tema... )

Con todo respeto, pues creo que eres un hombre inteligente e instruído,
aunque los mas inteligentes e instruídos son, precisamente, los que
revisan su proceder cuando encuentran una crítica justificada,
creo que tienes que poner los piés un poco mas en la tierra.

A mí me ha curioseado tanto tu posición de "alto nivel académico",
que he hecho algo de investigación sobre tu perfil como participante
de los foros de usenet, incluyendo los de Microsoft.

Lo que he encontrado me ha dejado boquiabierto.

En uno de los hilos en que participaste, de un total de 572 mensajes
escribiste 123 de los mismos, indicando que tienes una persistencia
increíble para la polémica.

En ese hilo, varios participantes se quejaron de tu insistencia en que
solo tú tienes las llaves del conocimiento, y hasta se burlaron de tus
argumentos a ese respecto.

Mas increíble aún, tienes ese problema en ambos idiomas en que escribes,
pues tanto en español como en inglés, la misma queja es externada :
que te mantienes en un nivel de aire rarificado, de discusión de "alto nivel",
sin que tus "contribuciones" ayuden a nadie a obtener una respuesta adecuada
a las preguntas que se te hacen, proveyendo, como contraparte inútil, un sin fín
de alegadas superioridades de tus formas de pensar.

Como te indicó el último interlocutor del hilo kilométrico referido:
"Use your alleged vast genius to produce source-code evidence instead of just hot air."

"Usa tu alegado vasto genio para producir evidencia basada
en código fuente, en vez de estar soplando aire caliente."

Y es que te has manifestado como experto en todo,
y eso cansa, además de ser indicativo de un serio caso de pedantería.

Eso que escribo te lo han señalado mas de
una docena de participantes en los pocos hilos que revisé.

Tu respuesta, por lo general, ha sido el reafirmar lo que dices, múltiples veces,
lo que realmente no constituye la base ideal para tener un diálogo útil.

Adoleces de 3 defectos, primordialmente.

1. Siempre quieres tener la última palabra, aún sin tener razón.
2. No sabes cuando es tiempo de decir: "es suficiente".
3. Tiendes a establecer bases de diálogo donde la alegada
superioridad intelectual tuya tiene que ser aceptada.

Creo que sería de mucho mas utilidad para las comunidades
en que participas si admitieras que, de vez en cuando, alguna
otra persona que no sea tú tiene razón en algún argumento,
y que dejes la pedantería de insistir en que tienes razón todo el tiempo.

Espero que estos comentarios te hagan reflexionar sobre tus actitudes,
evitando de esa manera los, ya frecuentes, choques con interlocutores
de las comunidades virtuales por tu insistencia en estar correcto el 100%
del tiempo en *todos* los argumentos en que participas.

Ya otros te han dicho lo mismo
...y has seguido "tan campante como Johnnie Walker"

La alternativa que yo tendría, de tu insistir en los mismos métodos de
argumento que has exhibido historícamente, sería el citar nombres,
fechas y citas de los múltiples argumentos que has tenido en usenet
y los grupos de discusión de Microsoft, que prueban, mas allá de
cualquier alegato tuyo, la veracidad de lo que he escrito hoy aquí.

Espero que esta vez entiendas mejor lo que se te está exponiendo.
Un poco de reflexión antes de contestar, te valdría de mucho.




Juan T. Llibre
ASP.NET MVP
http://asp.net.do/foros/
Foros de ASP.NET en Español
Ven, y hablemos de ASP.NET...

"Alfredo Novoa" wrote in message
news:
On Fri, 1 Jul 2005 10:14:16 -0400, "Juan T. Llibre"
wrote:

Alfredo,

no crees que esta cita tuya :

000
Este es el error fundamental de muchos de vosotros los amigos de las
siglas que empiezan por M, que os creeis que por haber hecho un
cursillo de Microsoft ya os lo sabeis todo y no necesitais leer nada
más, especialmente textos de nivel académico.
000

es algo injusta ?



No lo creo.


Particularmente, en el caso de aquellos que sí han leído los tan cacareados
"textos de nivel académico" a que haces referencia, y tienen buena formación
académica, habiendo logrado un grado o posgrados en Ingeniería de Sistemas,
por ejemplo, y *además* tienen las certificaciones/siglas que comienzan con M,
que aparentemente deseas descalificar.



Es que no va por ellos, evidentemente. Va por los otros, por los que
*solo* tienen certificaciones de fabricantes, no tienen ninguna
preparación científica y se creen los reyes del mambo.

No has entendido lo que quería decir.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida