7

Estoy tratando de introducir la metodología de programación DI/COI en nuestro grupo de desarrollo, pero uno de los desarrolladores les hizo la siguiente pregunta: ¿Ayuda para obtener DI/COI en casa

¿Por qué lo necesitamos? ¿Hay algún ejemplo concreto que pueda mostrarme el beneficio de usar el marco DI/IoC como windsor castle?

Por lo tanto, estoy preguntando si hay algún estudio de caso o artículo que demuestre que DI/IoC puede beneficiarse en un sitio web .NET de nivel empresarial.

Gracias de antemano

Actualización: Soy consciente de todo el beneficio de DI/COI trae, pero todavía tengo que ver un ejemplo completo en la web que pasa por todo un proceso de creación de una aplicación que utiliza DI/IoC y se beneficia de ello. De nuevo, cualquier artículo o enlace sería apreciado.

+3

Sería tan cauteloso como ese desarrollador si estuviera tratando de introducir una metodología de programación en mi proyecto y no pudiera responder esa pregunta. – JoshJordan

+0

De acuerdo con Josh, si suena y se ve como el aceite de serpiente, es probable que ... (a menos que sea yo tratando de enseñar TDD para el equipo, jaja) – dferraro

Respuesta

6

Estoy trabajando en un proyecto en el que puedo ver por lo menos tres beneficios para la inyección de dependencias y de Inversión de Control:

  1. El DI flexibilidad y, en menor medida, la COI permiten lo que se refiere a examen de la unidad. Podemos centrarnos en un aspecto particular del código (o del sistema bajo prueba) y probar este poco de funcionalidad sin necesidad de preparar una tabla de base de datos o estar sujetos a los caprichos de las secciones de código que no nos interesan en este momento.

  2. La inyección de dependencias a través de IoC es bastante automática y permite a las personas trabajar en lógica sin requerir que las clases de soporte subyacentes estén completas. Por ejemplo, puedo escribir una página web que muestra una lista de usuarios sin haber escrito ningún código para recuperar esa información de la base de datos. Eso puede ser escrito por otra persona, posiblemente en paralelo, por lo que se puede hacer más trabajo en menos tiempo.

  3. En uno de mis proyectos actuales, quiero tener la capacidad de realizar una demostración de la interfaz de usuario web y el procesamiento de back-end a una de las partes interesadas. Esto es mucho más fácil para DI y IoC porque puedo tener una colección de falsificaciones que proporcionan los datos exactos que necesito para realizar la demostración. De esta forma, no me estoy volviendo loco el día anterior al asegurarme de que las tablas de la base de datos estén pobladas de la manera que yo esperaba.

DI alienta un acoplamiento débil entre una clase particular y sus dependencias, mientras que la COI nos permite configurar dinámicamente qué implementaciones de estas dependencias se inyectan en las clases que los utilizan. Esto último es importante con respecto al n. ° 3, porque mi aplicación web se configurará más con IoC en función de la configuración que he realizado en el archivo web.config. Necesitaré cambiar solo ese archivo cuando vayamos a producción y comencemos a usar clases no falsas.

6

para nombrar a los pocos beneficios particulares:

  • código más limpio, que lleva la esencia de la lógica de negocio en él, no el espesor de infraestructura
  • DI permite crear más aplicaciones modulares, proporcionando un mecanismo para desacoplar las capas de su aplicación
  • IoC permite externalizar el cableado/arranque de la aplicación y proporciona una gestión de recursos centralizada (en cierta medida).Implicación - usted tiene más tiempo para concentrarse en la lógica de la funcionalidad/negocio real

buena información acerca COI y DI se puede leer aquí: http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25

Pero reconozco que se trata de Spring Framework, todavía se aplican los conceptos generales DI .

Cuestiones relacionadas