Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2009
edalmasso edalmasso is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mendoza - Argentina
Posts: 37
Poder: 0
edalmasso Va por buen camino
Question Programación en 3 capas - Haciendo lo correcto

Buenas a todos!, trabajando con algunos proyectos estamos standarizando e implementando las buenas practicas del arte del desarrollo de software.


Resulta que he trabajado mucho en las etapas anteriores de desarrollo de software, definición de alcance, requerimientos, requisitos, diagramas de actividades, estados, clases lógicas/físicas dentro de un marco de estandarización de desarrollo de software en la empresa con el fin de certificación ISO.
En este momento estoy bajando de nivel hasta la programación y me he encontrado con dudas sobre el manejo de la interfaz entre Negocio / Datos.


En la capa de negocio tengo código que resuelve puramente el negocio definido y no hay ninguna línea referente a SQL o servidores de almacenamiento.


Mi pregunta es: En la capa de Datos, tengo que generar clases de datos correspondientes 1 a 1 con las clases de negocio físicas en las cuales por atributos tendrán los mismos que la clase de negocios y como métodos: Insertar – Eliminar – Modificar – Búsqueda.
También, el método que asigna los datos del objeto de negocio al objeto correspondiente de la capa de datos, debe existir en la capa de negocio o datos?

Hay patrones, buenas prácticas o libros que hagan referencia específicamente a este tema?.

Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 24-02-2009
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
No precisamente. Al menos en Delphi es difícil alcanzar un patrón MVC perfecto dado el enfoque RAD del IDE y las ayudas que proporciona para hacer binding entre objectos con acceso a datos y componentes de edición.

Lo que quieres hacer es válido, pero te obligará a desarrollar tu propio framework para abstracción de datos ya que pretentes crear un equivalente 1 a 1 entre una clase y una entidad (o un objeto y una tabla). No es imposible, pero si muy tedioso, por ahí Al Gonzalez tiene algo interesante en lo que está trabajando y como el mismo comenta le ha llevado varios años irlo madurando.

Un enfoque un poco más sencillo es que en tu capa de negocios como tu lo dices hagas todo el montaje de las reglas pero sin buscar que se correspondan al 100% con lo que hay en la capa de datos. Asi pues, puedes tener una TFactura que se comunica con una TQFactura y con TQDetFactura que son las querys de la factura y su detalle en la capa de datos. Como sabemos el patron MVC permite que la vista pueda "ver" las capas de datos y de negocios por lo que puedes implementar el binding de los componentes visuales al dataset que le proporcione la clase TFactura o bien ligarlos completamente a TQFactura y TQDetFactura ya que solo los están mostrando. De manera que cuando se quiera guardar, modificar o borrar lo visualizado, la vista utiliza a TFactura quien aplica las reglas de negocio y actua sobre la capa de datos.

Otro enfoque más es adicionar una capa o bien dentro de la capa de negocios, colocar ClientDataSets para que las vistas hagan binding sobre ellos y así no tengan acceso directo a la capa de datos.

En conclusión, no es necesario hacer una coincidencia entre los objetos de la capa de negocios con la de datos, el patrón solo pide que la capa de datos no sea manoseada más que por la de negocios y además esta capa de datos no puede "ver" a las demás, su unico trabajo es acceder a los datos.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que es programacion en 3 capas?? mefixxto Varios 2 21-05-2008 10:22:38
Programacion En Tres Capas OMARS Internet 2 08-08-2007 10:37:16
Programacion en 3 capas usando zeos components Jose Fermin Debates 0 28-03-2007 03:30:28
Programacion en capas @le OOP 0 23-12-2004 16:38:04
DDE , es lo correcto? nicocer Varios 4 31-10-2003 08:09:18


La franja horaria es GMT +2. Ahora son las 17:14:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi