Ayer estaba leyendo algunos artículos en este sitio mientras tropecé con un artículo sobre estas dos nuevas herramientas de IoC. ¿Cuál debería aprender primero? ¿Hay alguna especificación sobre cuál debería usarse cuando?Castle Windsor o Spring.NET: ventajas y desventajas
Respuesta
Ni Castle.Windsor ni Spring.NET son nuevos.
- castillo de Windsor han existido desde finales de 2004
- Spring.NET han existido desde principios de 2006
Son dos comparables DI Contenedores dirigidos sobre todo a proporcionar los mismos servicios, por lo no es necesario que aprenda una antes que la otra, y tampoco necesita consultar ningún tipo de especificación sobre cuándo usarla.
He estado usando Castle Windsor durante aproximadamente medio año y en general estoy contento con él. Spring.NET aún tengo que mirar, pero parece que es very closely tied to the configuration system y no admite el registro programático, y si esto es cierto, sería una gran desventaja a mis ojos.
Castle Windsor y Spring.NET no son los únicos Contenedores DI disponibles para .NET. He aquí una lista más amplia:
yo soy uno de los committers al proyecto Castle (que incluye a Windsor) así que puedo ser parcial, pero.
Windsor es muy extensible, le permite ajustarlo y adaptarlo a sus necesidades. Proporciona una buena API de registro fluido para que no tenga que escribir toneladas de XML. También hay toneladas de extensiones que puede usar para integrar Windsor con otros marcos, como marcos de comunicación ORM (WCF, NServiceBus), etc.
Además, tiene una comunidad muy activa y receptiva, por lo que si tiene alguna pregunta, Seré respondido bastante rápido la mayor parte del tiempo.
Supongo que ambos son mejores en términos de configuración. No hay mucha diferencia, pero ambos son mejores que el marco de Unity. ¿Por qué demonios necesitas una asociación de Marshalbyrefobject en el control de dependencia? Pero si comparamos spring.net y Castle Windsor, ambos son buenos. Pero la pregunta es cuál es el marco contenedor completo. Al igual que necesitamos Aspectos para la validación en Dependencia. Entonces la utilidad winsor falla. Supongo que es estúpido comparar String.net con Castle Windsor o algo así porque todas son utilidades y la primavera es un marco contenedor completo. Y todas las personas que dicen que es pesada, comprueban todos los problemas de pérdida de memoria. No es primavera o Castle Windsor, es una forma estúpida de escribir código. Así que, finalmente, la respuesta es si necesita solo DI use Windsor, pero si necesita un marco completo para cualquier solución, use spring.net.
- 1. WCF: ventajas y desventajas
- 2. MemoryStream.Position ventajas/desventajas o MemoryStream.Seek
- 3. Castle windsor logging facility
- 4. Castle Windsor InternalsVisibleTo Silverlight
- 5. Castle Windsor Transient Disposables
- 6. Ventajas y desventajas de DotNetNuke?
- 7. Comparando Castle Windsor, Unity y StructureMap
- 8. Ventajas y desventajas de BPMN?
- 9. Android NDK ventajas y desventajas
- 10. Ventajas y desventajas de NHibernate
- 11. Registros internos para Castle Windsor
- 12. Ventajas y desventajas de usar Storyboarding?
- 13. Ventajas y desventajas de los métodos encadenables?
- 14. CMS orientado a eventos: ventajas y desventajas
- 15. Castle Windsor 3.0, Services and Multiple Implementation
- 16. Castle Windsor: suprime excepciones lanzadas por Resolve()
- 17. CCI vs. Mono.Cecil: ventajas y desventajas
- 18. Ventajas y desventajas de usar Enterprise Library
- 19. Ventajas y desventajas de usar java rmi
- 20. Castle Windsor: ¿Mi componente transitorio será basura?
- 21. Alternativas de inyección de constructor (Castle Windsor)
- 22. Patrón Multiple Decorator en castle-windsor
- 23. Castle Windsor: Problema con varios constructores
- 24. Castle Windsor Fluent Registration - ¿Qué hace Pick()?
- 25. Windsor Castle: buenas fuentes de documentación, tutoriales
- 26. Inyectar dependencia en CustomAttribute usando Castle Windsor
- 27. Castle Windsor Typed Factory Facility Equivalentes
- 28. Castle Windsor - Argumento del constructor nulo
- 29. Recuperar DLL del directorio con Windsor Castle
- 30. Cómo deshacerse de ViewModels en Caliburn Micro y Castle Windsor
Si está involucrado en el proyecto del castillo, debe saber que la razón principal por la que tiene una comunidad activa y receptiva es probablemente porque su documentación es tan horrible.Comparar la documentación entre los dos frameworks no es ninguna competencia ... Spring.net tiene un enlace a un manual de 500 páginas que está escrito para la versión de lanzamiento actual del software. Averiguar cómo funciona Castle es un dolor (particularmente Windsor hasta ahora). – wllmsaccnt
@wllmsaccnt Soy nuevo en Windsor, y estoy de acuerdo. La documentación de Windsor es horrible. –
@ wllmsaccnt @theneoindian Dos puntos para aclarar aquí. Uno, el doco de Windsor ha sido reescrito desde cero desde 2010. Otro, si se supone que una herramienta que simplifique su vida requiere un manual de 500p, puede que lo esté haciendo mal. –