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