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
