none
Contenedor de inyección de dependencias de Unity RRS feed

  • Pregunta

  • Hola

    En que casos se usa Unity?

    Puede ser en cualquier desarrollo(en cualquier tamaño de proyecto)?


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 20 de marzo de 2014 1:08

Respuestas

  • Se usa Unity cuando quieres centralizar la inyección de dependencias en un proyecto. Una aplicación típica es la realización de pruebas unitarias: en las clases metes una dependencia sobre el repositorio de datos, y cuando la aplicación se ejecuta "en real" se inyecta el repositorio de verdad pero cuando se hacen las pruebas unitarias se inyecta un repositorio ficticio (se conoce como "fake" o un "dummy").

    Usar un contenedor de este tipo es especialmente importante cuando el programa tiene una cierta complejidad y te encuentras cosas como por ejemplo una dependencia que depende de otra dependencia. Para programas breves y sencillos, no lleva demasiado trabajo escribir la inyección a mano (típicamente pasando parámetros al constructor de la clase).

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 7:10
    Moderador
  • Hola,

    Complementando lo que dice Alberto, el objetivo es 'desacoplar' los distintos elementos, para que en lugar de depender de una clase dependa de una interfaz (abstracción), de forma que puedas sustituir una clase por cualquier otra que cumpla la misma interfaz.

    Aquí es dónde entra el contenedor IoC, que puede ser Unity, Autofac, etc.

    Saludos,


    No olvides marcar la respuesta como correcta si te ha sido de utilidad :-) Follow me on Twiiter: @lluisfranco Blog: lluisfranco.com

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 7:42
    Moderador
  • hola

    En que casos se usa Unity?

    cuando quieres desacoplar la implementacion

    usualmente desacoplas las capas de tu aplicacion permitiendo inyectar la instancia en la capa de servicio o de repositorio, alli es donde mayormente se utiliza

    Puede ser en cualquier desarrollo(en cualquier tamaño de proyecto)?

    si se podria, aunque en aplicaciones pequeñas quizas termine agregando mucha complejidad innecesaria, por supuesto tienes que evaluar en base a los tiempos y costos si hace falta implementarlo

    aconsejaria lo realices si es que piensas implementar Test en el desarrollo, alli es cuando se nota el poder de usar un IoC

    es mas si lo unes a Moq es aun mejor (jeje si ya se otro framework mas para aprender)

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 11:13

Todas las respuestas

  • Se usa Unity cuando quieres centralizar la inyección de dependencias en un proyecto. Una aplicación típica es la realización de pruebas unitarias: en las clases metes una dependencia sobre el repositorio de datos, y cuando la aplicación se ejecuta "en real" se inyecta el repositorio de verdad pero cuando se hacen las pruebas unitarias se inyecta un repositorio ficticio (se conoce como "fake" o un "dummy").

    Usar un contenedor de este tipo es especialmente importante cuando el programa tiene una cierta complejidad y te encuentras cosas como por ejemplo una dependencia que depende de otra dependencia. Para programas breves y sencillos, no lleva demasiado trabajo escribir la inyección a mano (típicamente pasando parámetros al constructor de la clase).

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 7:10
    Moderador
  • Hola,

    Complementando lo que dice Alberto, el objetivo es 'desacoplar' los distintos elementos, para que en lugar de depender de una clase dependa de una interfaz (abstracción), de forma que puedas sustituir una clase por cualquier otra que cumpla la misma interfaz.

    Aquí es dónde entra el contenedor IoC, que puede ser Unity, Autofac, etc.

    Saludos,


    No olvides marcar la respuesta como correcta si te ha sido de utilidad :-) Follow me on Twiiter: @lluisfranco Blog: lluisfranco.com

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 7:42
    Moderador
  • hola

    En que casos se usa Unity?

    cuando quieres desacoplar la implementacion

    usualmente desacoplas las capas de tu aplicacion permitiendo inyectar la instancia en la capa de servicio o de repositorio, alli es donde mayormente se utiliza

    Puede ser en cualquier desarrollo(en cualquier tamaño de proyecto)?

    si se podria, aunque en aplicaciones pequeñas quizas termine agregando mucha complejidad innecesaria, por supuesto tienes que evaluar en base a los tiempos y costos si hace falta implementarlo

    aconsejaria lo realices si es que piensas implementar Test en el desarrollo, alli es cuando se nota el poder de usar un IoC

    es mas si lo unes a Moq es aun mejor (jeje si ya se otro framework mas para aprender)

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila viernes, 21 de marzo de 2014 0:08
    jueves, 20 de marzo de 2014 11:13