Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我能用Ninject代替PRISM吗?或者它应该取代棱镜中的统一?_C#_Unity Container_Prism_Mef_Ninject - Fatal编程技术网

C# 我能用Ninject代替PRISM吗?或者它应该取代棱镜中的统一?

C# 我能用Ninject代替PRISM吗?或者它应该取代棱镜中的统一?,c#,unity-container,prism,mef,ninject,C#,Unity Container,Prism,Mef,Ninject,我将要开始一个相当大的项目,它包含30多个模块,我几乎是在寻找一个有能力的框架?需要帮忙找出其中一个是可变味的吗 1) 棱镜 2) 尼尼特 3) 统一还是MEF 为什么? 我在WPF4中使用MVVM。 谢谢最合适的框架将取决于您试图解决的问题。没有什么可以阻止您同时使用这些框架中的多个,如果合适的话,它们不是相互排斥的 例如,我们启动了一个大型企业复合应用程序并使用了Prism,然后我们开始使用MEF并逐渐淘汰Prism,因为它不需要满足任何业务需求。所以现在我们混合使用Unity作为应用程序的

我将要开始一个相当大的项目,它包含30多个模块,我几乎是在寻找一个有能力的框架?需要帮忙找出其中一个是可变味的吗

1) 棱镜 2) 尼尼特 3) 统一还是MEF

为什么? 我在WPF4中使用MVVM。
谢谢

最合适的框架将取决于您试图解决的问题。没有什么可以阻止您同时使用这些框架中的多个,如果合适的话,它们不是相互排斥的

例如,我们启动了一个大型企业复合应用程序并使用了Prism,然后我们开始使用MEF并逐渐淘汰Prism,因为它不需要满足任何业务需求。所以现在我们混合使用Unity作为应用程序的主要DI基础设施,使用MEF动态发现插件


我还强烈建议您考虑一下简化MVVM的方法。

谢谢,它改变了我对技术和Caliburn的看法。Micro是个好主意,我也会检查一下。但我还是不知道这件事!!!Ninject是一个非常好的IoC容器,没有理由不在Unity或Castle Windsor上查看它。所有这些IoC容器对于您的DI基础设施来说都是不错的选择,但这取决于您需要的确切功能,以及您更喜欢使用哪种API。有时,这取决于个人喜好。我更喜欢Ninject,因为它非常轻量级和简单。为了更新这个答案,Prism现在分离了它的MVVM实现,提供了一些很好的玩具,可以完全独立于应用程序框架使用。这包括viewmodel发现和事件聚合器。Prism还包括许多IoC容器没有的特性,但它首先是一个客户机框架。不使用WPF?不用担心棱镜。Stylet确实会在Caliburn的道路上进一步发展。Micro已经开始了。石头般冰冷无表情的依赖注入=>