none
Obtener connectionString desde el DataHelper ? (MVC 6) RRS feed

  • Pregunta

  •   Hola Gente, vengo de muchos años de trabajar en webforms y estoy intentando meterme de lleno en MVC 6. Entiendo que hay cosas un poco mas intrincadas por las peculiaridades de la arquitectura, pero otras las veo como están resueltas en muchos ejemplos y no me cierran para nada.

      En las aplicaciones webforms, generalmente tengo 3 librerías referenciadas por el sitio, DAL/BLL/ENT, asi como otras CORE como un DataHelper, y demás, el DataHelper, que es una librería que uso en todo tipo de proyectos (web/winform/etc), levanta mediante factories una conexión, leyendo del archivo de configuración el connectionString y el ProviderName. Lo bueno de como se hacia esto antes, es que si esta librería la uso desde una aplicación winform o web usando ConfigurationManager siempre encontraba la key, ya sea en el web.config o app.config de la aplicación. Con el nuevo esquema veo que en los ejemplos se inyecta IConfiguration en un controlador, y este controlador va pasando esta clase hasta donde se necesite. 

      No me es posible usar EF, por lo que tengo que usar en MVC 6 una estructura similar de layers a como lo hacia en webforms, y pasar esta interfaz a través de una bll para llegar a una dal no me parece una solución elegante.

    Hay manera de leer el archivo de configuración desde una librería referenciada por el sitio web, como se hacia con webforms sin tener que pasársela explicitamente?

    Gracias.

    jueves, 3 de marzo de 2016 14:31

Todas las respuestas

  • hola

    >>Con el nuevo esquema veo que en los ejemplos se inyecta IConfiguration en un controlador, y este controlador va pasando esta clase hasta donde se necesite.

    pero estas trabajando con alguna libreria de IoC, como ser Unity, Ninject, StructureMap, etc

    la idea de inyectar una interfaz es lograr que el codigo pueda ser testeado, usando mock para la configuracion

    ahora bien, sino vas a definir test en tu codigo podrias seguir usando el ConfigurationManager en la libreria DataHelper y tomar el config del web.config como lo hacias anteriormente

    Ese pasaje que mencionas no es necesario si vas inyectando las diferentes capas que invocas, o sea si la capa de negocio se inyecta en el controller, la capa de persistencia se inyecta en la de negocio y esta datahelper se inyecta en la de persistencia el pasaje es limpio ya que la libreria de IoC se encarga automaticamente cuando resuelve las dependencias

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 4 de marzo de 2016 11:41