Si es un proyecto realmente grande tendria que estar dividido en dominios, y
cada dominio estar dividido en capas.
NH / EF / ADO.NET es una implementacion de la capa de acceso a datos, no una
cuarta capa.

La entrada a la capa de acceso a datos debe hacerse a traves de interfaces,
y la implementacion de esas interfaces puede ser con cualquiera de las
tecnologias.
A un servicio especifico se le puede inyectar la implementacion con NH y a
otro la implementacion con ADO.Net, en Castle es sencillo nombrando los
servicios, supongo que en Spring o cualquier otro tambien.

Gustavo.

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