Duda sobre 3 capas en c#+sql server

09/06/2006 - 13:47 por Carolina Alvarez | Informe spam
Cuando se habla de 3 capas, tenemos la interface y los datos pero de las
reglas de negocio, donde es que van ? donde pone el codigo ?

Es una duda de conceptos trabajando con c# y sql server.

gracias

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
11/06/2006 - 13:02 | Informe spam
On Sun, 11 Jun 2006 12:22:40 +0200, "Vyacheslav Popov"
wrote:

Las reglas de integridad garantizan que una entidad (fila o registro)
siempre se relaciona con otras entidades válidas. (supongo que esto lo sabes
de sobra).



Estás confundiendo las reglas de integridad con las reglas de
integridad referencial. La integridad referencial es solo un caso
particular dentro de las reglas de integridad.

Las reglas de integridad garantizan la consistencia lógica de los
datos y pueden ser de muchos tipos.

Por ejemplo: el stock actual de un artículo debe de ser igual al stock
inicial más las compras menos las ventas menos las mermas menos las
unidades empleadas en fabricación.

Con un SGDB relacional esta regla la puedes escribir casi tal cual.
Para implementar esto con código C# necesitarías un montón de lineas
dificiles de entender.

Ahora, tu confusión esta en el termino "reglas de negocio". Pues bien:
Reglas de negocio es una colección de las políticas y restricciones de
negocio de una organización.



¿Y como se reflejan estas restricciones en un Sistema de Información?

Las restricciones de negocio de una organización se reflejan en
restricciones de integridad de su sistema de información.

Una regla de negocio se implementa definiendo una restricción de
integridad en el sistema de información de la empresa.


Saludos
Alfredo
Respuesta Responder a este mensaje
#2 CMCC
11/06/2006 - 13:04 | Informe spam
[quitado un montón de tonterías que suenan a progranda de
lavavajillas.]



Se me han escapado un par de dedos aquí :)
?progranda? = propaganda!
Respuesta Responder a este mensaje
#3 CMCC
11/06/2006 - 13:08 | Informe spam
Alfredo Novoa wrote:

Yo invito a cualquiera a contrastar mis opiniones con las de C. J.
Date, Fabian Pascal, Hugh Darwen, Bob Badour, Vadim Tropashko, Paul
Church, David McGoveran, Jonathan Leffler, Marshall Spight, Paul
Vernon, Jan Hidders, Eric Kaun, Dave Voorhis, Nathan Allan, Lajos
Nagy, Runar Bjarnason, Lex de Haan, Dan Muller, Cristian Baboi,
Christopher Browne, Roy Hann, Gene Wirchenko, Leandro Guimarães y
muchos muchos otros, además de la gente que me ha dado su apoyo en
correos privados.



Hombre... gracias por la lista!
Pero..son todos estos 'autores establecidos' ;)

Carlos
Respuesta Responder a este mensaje
#4 CMCC
11/06/2006 - 13:11 | Informe spam
Alfredo Novoa wrote:


Yo invito a cualquiera a contrastar mis opiniones con las de C. J.
Date, Fabian Pascal, Hugh Darwen, Bob Badour, Vadim Tropashko, Paul
Church, David McGoveran, Jonathan Leffler, Marshall Spight, Paul
Vernon, Jan Hidders, Eric Kaun, Dave Voorhis, Nathan Allan, Lajos
Nagy, Runar Bjarnason, Lex de Haan, Dan Muller, Cristian Baboi,
Christopher Browne, Roy Hann, Gene Wirchenko, Leandro Guimarães y
muchos muchos otros, además de la gente que me ha dado su apoyo en
correos privados.



Hombre... gracias por la lista!
Pero..son todos estos 'autores establecidos'? ;)

Carlos
Respuesta Responder a este mensaje
#5 Vyacheslav Popov
11/06/2006 - 13:13 | Informe spam
> > Pues ahora que los veo asi... Si el SQL es un lenguage de mas alto
> > nivel
> > (declarativo) que el C# (procedimental).
>
> PL/SQL es un lenguaje PROCEDIMENTAL y C# es un lenguaje ORIENTADO A
> OBJETOS.
> C# es un lenguaje de programación de alto nivel al igual que Java. C++/C
> es
> un lenguaje de programación de medio-bajo nivel.

SQL es un lenguaje declarativo. (se expresa el qué, no el cómo)
C, C++, C# y Java son lenguages procedimentales y están todos en este
aspecto precisamente al mismo nivel.
La mayoría de los lenguages OO son procedimentales.



Querrás decir que se puede hacer programación procedimiental en un lenguaje
OO (ojo, también se puede hacer programación orientada a objetos en un
lenguaje procedimental), pero decir que los leguajes C# y Java son
procedimentales, demuestran tu poco formación y conocimiento en
programación.

Para que no hagas más estas estupideces te voy a explicar las diferencias:
- C es un lenguaje procedimental.
- C++ es un lenguaje hibrido (prodecimental - orientado a objetos)
- C# y Java son lenguajes orientados a objetos avanzados.

> SQL ni siquiera es un lenguaje de programación sino un Lenguaje
> Estructurado
> de Consultas.

Son insert, update y delete operaciones de consulta?
Operaciones con conjuntos como operadores. Te dice algo eso?



SQL es un lenguaje declarativo, no es un lenguaje de programación (ni
procedimental, ni orientado a objetos). SQL proporciona funcionalidad de:
- DDL o Lenguaje de Definición de Datos
- DML o Lenguaje de Manipulación de Datos

> He intentado demostrar, dándole razón a Alfredo, que se puede
> implementar la
> lógica de negocio dentro de SGBD mediante procedimientos almacenados o
> bloques de secuencias PL/SQL para Oracle.

Yo no he leído nada donde Alfredo diga que la lógica de nogocio tenga
que especificarse en procedimientos almacenados.



¿Donde las pondrás tú?

> Si querrás hacer lo mismo para
> otro SGBD tendrás que rehacerlo todo, ya que el estándar SQL no tiene
> capacidad, por si sólo, definir la lógica de negocio.

Nadie ha dicho de SQL sea perfecto. Pero de eso a llevar toda la
lógica de
nogocios a las aplicaciones hay un rato.
Ademas.. lenguages, entornos de desarrollo y hasta 'paradigmas' de
programación/diseño vienen y van; entretanto el SQL ahí está.
Quién esta rehaciendo todo?



Programar es divertido, pero desarrollar software de calidad es difícil.

> > Esto es lo que llama Afredo Novoa meter una television en una caja
> > de madera, ponerle dos botones... y tenemos una radio.
> > Querer hacer una radio no tiene nada de malo. Lo malo es no saber
> > lo que es una televisión.
>
> En programación orientada a objetos eso se llama ENCAMPSULAMIENTO y no
> "televisión en una caja de madera". Aunque me gusta esta expresión :) se
> utiliza más el termino de "caja negra".

Pues no has entendido la analogía.
No se mas que decirte que... pues que lo leas otra vez.



¿Por que no opinas?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida