昨天我正在阅读本网站上的一些文章,而我偶然发现了一篇关于这两个新IoC工具的文章。我应该先学习哪一个?是否有一些关于何时应该使用的规范?
答案 0 :(得分:15)
Castle.Windsor或Spring.NET都不是新的。
它们是两个可比较的 DI容器,主要旨在提供相同的服务,因此您不需要先学习一个,也不需要参考任何类型的规范何时使用哪一个。
我一直在使用Castle Windsor大约半年,我对此感到非常满意。 Spring.NET我还没有看,但看起来它是very closely tied to the configuration system并且不支持程序化注册,如果这是真的,那将是我眼中的一个主要缺点。
Castle Windsor和Spring.NET不是唯一可用于.NET的DI容器。这是一个更大的列表:
答案 1 :(得分:5)
我是Castle项目(其中包括Windsor)的提交者之一,所以我可能有偏见,但是。
Windsor非常易于扩展,可让您根据需要调整和弯曲它。它提供了很好的流畅注册API,因此您不必编写大量的XML。您还可以使用大量扩展来将Windsor与其他框架集成,例如ORM通信框架(WCF,NServiceBus)等。
此外,它有一个非常活跃且反应灵敏的社区,所以如果您有任何问题,他们会在大多数时间内得到相当快速的回答。
答案 2 :(得分:2)
我猜两者在配置方面都更好。没有太大的区别,但两者都优于Unity框架。你为什么需要在依赖控制中使用marshalbyrefobject关联。但是,如果我们比较spring.net和Castle Windsor都很好。但问题是哪一个是完整的容器框架。 就像我们需要Aspects来验证Dependency一样。所以winsor实用程序失败了。我想将String.net与Castle Windsor或类似的东西进行比较是比较愚蠢的,因为所有这些都是实用程序,而spring是完整的容器框架。所有说它很重的人请检查所有内存泄漏问题。它不是春天或温莎城堡,它是编写代码的愚蠢方式。 所以最后回答是如果你需要DI使用Windsor,但如果你需要完整的框架,任何解决方案都使用spring.net。