none
RAD Entity Framework 4.0 RRS feed

  • Pregunta

  • El desacoplamiento de la capa de acceso a datos frente a las demás capas (persistence ignorance) no hay duda que es una estrategia de integración muy correcta para proyectos empresariales de gran tamaño y de la larga duración.

    Pero cuando se trata de ofrecer un producto en el que prima el tiempo y una estrategia acorde con el ciclo de vida de la aplicación; ¿No sería más correcto hacer uso de las entidades autogeneradas (derivadas de EntityObject)? Éstas, aunque crean una fuerte dependencia a la tecnología, ofrecen el modo más eficiente de control de cambios (self-tracking)  y carga perezosa (lazy loading).

    La pregunta en concreto es:

    Si decido implementar Entity Framework en mi BLL ¿Qué deberían exponer mis métodos de negocio?

    ·         POCO, IPOCO

    ·         ObjectSet<T>

    ·         IQueryable<T>

    ·         ….

    La situación de mis proyectos es la siguiente:

    En mi caso concreto, desarrollamos un producto de la forma tradicional (ENT-DAL-BLL-Web) en el que las capas están desacopladas.

    Otros módulos pueden ser añadidos a producción. Estos proyectos son desarrollados de igual manera (ENT-DAL-BLL-Web) pero además referencian la BLL del proyecto principal.

    martes, 1 de junio de 2010 9:56

Todas las respuestas

  • No te puedo decir que utilizar, pero te puedo hacer algunas observaciones,

    • Por optimizacion de canal POCO (Pero puede ser algo dispendioso de utilizaz)
    • Por facilidad de desarrollo Self Tracking Entities (Son más pesadas, tienen mucha redundancia pero sirven para desarrollar más rápidos los updates. Pueden llevar a escenarios DEMASIADO OPTIMISTAS en lo que a la concurrencia se refiere)
    • Por estibilidad, las entidades tal cual como las expone el modelo generado por el Entity Framework.

    Recomendaciones.

    • Pregenera la vista de Datos antes de Desplegar a Producción.
    • No generar un contexto de datos por cada consulta.
    • Desabilitar Lazy Loading antes de Serializar una entidad (Escenarios WCF).
    • Utilizar Queries Compilados de Entity Framework.
    • Apreder a editar el modelo de datos (EDM) por que cuando surgen cambios en la base de datos, este sólo toma las novedades algunos cambios toca reflejarlos manualmente.

    Saludos.

    martes, 1 de junio de 2010 15:51