Hola Jose,

Una cosa que me parece importante es que sepas que con una implementacion de
DAO como la que mostraste en tu ejemoplo perdes un monton de ventajas de los
ORMs (tanto NH como EF) que te van a complicar la vida (bah, el proyecto).

Lo que yo haria en tu posicion es preguntar al cliente porque pide una capa
de acceso a datos como esa. Seguramente hay un motivo que no te ha dicho o
que no nos has dicho y es muy probable que tenga otra soluciones.
Definitivamente esta solucion me parece peligrosa.

Deben tener cuidado hasta cuando le hacen caso sumisamente al cliente,
tengan en cuenta que si la arquitectura se complica, falla o se hace dificil
de mantener, los culpables van a ser ustedes. No seria la primera vez que
una peticion como esta de un cliente arruina un proyecto.

O acaso un cirujano acepta que el paciente quiera hacerse una cirugia
cardiovascular en el living de su casa?

----------------------------------
Carlos Peix

2010/2/20 proxy <[email protected]>

> Saludos comunidad.
>
> En estos días, estamos diseñando en la empresa una arquitectura para
> un proyecto ciertamente grande que incluye componentes móviles, WPF y
> ASP.NET - MVC, además de un SIG. Ante lo cual optamos por una
> separación en 4 capas:
>
> 1. presentación
> 2. negocios
> 3. acceso a datos
> 4. forma de acceso a datos (NH, ADO.NET, EF..etc.) .... Aquí es donde
> está el problema :(
>
> También unas capas transversales como servicios, comunicaciones y
> seguridad. La arquitectura debe soportar nuevos módulos que se le irán
> sumando con el tiempo.
>
> Naturalmente y por tantas razones que ya conocemos, optamos por
> NHibernate con nuestra opción principal para ORM; sin embargo tenemos
> un requerimiento del cliente: "Que la capa de datos sea flexible, para
> poder realizar ciertas operaciones con la BD con ADO.NET"; o sea, algo
> como esto:
>
> public class CustomerADO
> {
>           public void Save()
>           {
>                  //Implementación del save con NH.
>           }
>
>           public Customer Retrieve()
>           {
>                  //Retrieve -SQL- con ADO.NET
>           }
> }
>
> O sea, nuestro cliente quiere algo completamente flexible en la parte
> de acceso a datos, no le veo mucho sentido, pero finalmente no le
> podemos decir que no. He pensado en algunos frameworks como SPRING.NET
> para inyectar dependencias etc... Pero no tengo claro que tan posible
> sea tener una capa de acceso a datos tan híbrida con NH, ADO.NET y en
> un futuro EF.
>
>
> Esto es posible?
> Hay un patrón de diseño que te solucione algo así?
> Una implementación tan híbrida de la capa de acceso a datos dañaría la
> arquitectura...?
>
>
> Muchas gracias por sus aportes.
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a