我应该使用Unity它仍然存在吗?

问题描述

| 我2年前就曾与Unity合作,并且我打算再次使用它。 但是,当您使用google搜索时,您会转到Microsoft网站,该网站说页面不再维护,而另一个大受欢迎的网站是codeplex.com。 但是,在Codeplex上,自2010年初以来没有发布任何电影,他们承诺电影会在5月/ 6月放映(我想是指2010年),但目前还没有。 所以我想知道该产品是否还活着,还是MEF是新的孩子? ps(位脱位) 不知道我是否是唯一的,但我似乎从未对Codeplex项目的成熟度/状态/“明年是否会存在”等有很好的了解,而文档中的大部分内容时间一般

解决方法

几点: MEF并不是要成为Unity的竞争产品(因此在出于IoC的主要目的选择它时请记住这一点)。 Microsoft员工Glenn Block在stackoverflow上提出了这一点: 我们不希望MEF成为 通用IoC。最好的思考方式 关于MEF的IoC方面是 实施细节。我们使用IoC作为 模式,因为这是一种很好的方法 解决我们正在寻找的问题 解决... MEF专注于可扩展性。 P&P论坛上还有一个类似的问题(从上个月开始),具有以下答案: 团结还活着,而且很好, 团队正在为此工作(我们正在 建立Unity Interception支持 作为Silverlight的一部分 Silverlight集成包)。校验 在最新的下降中,您会看到 在那里更新。 此外,有许多项目正在使用 今天的Unity,包括Microsoft 产品。采用Unity的脉搏 非常健康-超过10万次下载 2.0的独立版本以及更多 通过EntLib。订阅人数 到Stackoverflow上的Unity论坛是 与MEF论坛相同。 我强烈建议您将您选择的IoC容器从一个薄包装纸中剔除掉,​​以帮助您避免任何给定容器过时的风险。如果需要,将使切换到其他容器变得更加容易。 .NET中Brownfield Application Development的Page 251也提倡这种方法,示例代码如下(为避免侵犯版权,我对其进行了一些更改):
public class Resolve
{
    public static T TypeOf<T>()
    {
    //…
    }
}

public class SomeClass
{
    public void DoingSomething( )
    {
        var someDependency = Resolve.TypeOf<ISomeDependency>();
        //...
    }
}
,在涉及Microsoft的依赖项注入产品方面,MEF(受控扩展框架)和Unity目前处于竞争状态。至于拦截和AOP(面向方面​​的编程),MEF尚未真正做出努力。 历史告诉我们,Microsoft并没有真正很好地管理其竞争/重叠的团队项目,其结果是过去常常缺乏基本功能的半熟实施的记录(看一下LINQ to SQL和Entity Framework就是一个明显的例子-3年后来,EF仍然缺少LINQ to SQL开箱即用的非常基本的功能。 我个人将使用更成熟,维护得更好的DI框架(大多数框架还具有比MEF和Unity组合的功能更多)。我喜欢温莎城堡。 NInject,StructureMap和其他似乎也有良好的记录。,我认为MEF是个新生事物。而且非常甜美。它似乎已被很好地记录在案,并且看起来将会存在一段时间。据我所知,它也比Unity容易。,是的,Unity仍然存在!商务部也是如此。如果我没记错的话,Microsoft的模式和做法是否与Unity 2.0相同?