C# 我应该使用Unity(它还活着吗)?
2年前我曾与Unity合作,并计划再次使用它 但是,当你用谷歌搜索它时,你会看到微软的网站,上面说这些页面不再被维护,另一个大热门是codeplex.com 然而,在codeplex,自2010年开始就没有发行过,他们承诺在5月/6月上映电影(我想他们是指2010年),但现在还没有 所以我想知道这个产品是还活着,还是MEF是新来的摇滚小子 ps(主题之外的位)C# 我应该使用Unity(它还活着吗)?,c#,dependency-injection,unity-container,C#,Dependency Injection,Unity Container,2年前我曾与Unity合作,并计划再次使用它 但是,当你用谷歌搜索它时,你会看到微软的网站,上面说这些页面不再被维护,另一个大热门是codeplex.com 然而,在codeplex,自2010年开始就没有发行过,他们承诺在5月/6月上映电影(我想他们是指2010年),但现在还没有 所以我想知道这个产品是还活着,还是MEF是新来的摇滚小子 ps(主题之外的位) 我不知道我是否是唯一一个,但我似乎从来没有很好地了解codeplex项目的成熟度/状态/明年是否会存在等,而且大部分时间的文档都很简单,
我不知道我是否是唯一一个,但我似乎从来没有很好地了解codeplex项目的成熟度/状态/明年是否会存在等,而且大部分时间的文档都很简单,我认为MEF是最棒的新人。而且很甜。它似乎有很好的文档记录,看起来它会存在一段时间。据我所见,它也比Unity容易。MEF(托管可扩展性框架)和Unity目前在微软的依赖注入产品方面处于竞争地位。至于拦截和AOP(面向方面编程),MEF还没有真正努力解决这个问题 历史告诉我们,微软并没有很好地管理其相互竞争/重叠的团队项目,其结果是往往缺乏基本功能的半生不熟的实现(看看LINQtoSQL和实体框架,这是一个明显的例子——3年后,EF仍然缺乏LINQtoSQL现成的非常基本的功能)
我个人会选择一个更成熟、维护更好的DI框架(大多数DI框架的功能也比MEF和Unity的组合还要多)。我喜欢温莎城堡。NInject、StructureMap和其他似乎也有很好的记录。是的,Unity仍然存在!mef也是。如果我没有弄错的话,microsoft模式和实践与Unity 2.0相同?有几点:
公共类解析
{
公共静态T类型()
{
//…
}
}
公共类
{
公开做某事()
{
var someDependency=Resolve.TypeOf();
//...
}
}
+1对于Castle Windsor。我不确定其他容器,但Windsor生成的错误消息非常清晰,使学习曲线非常平滑。同意,我一直认为很难找到(就像我这里的统一问题)无论产品是否即将过期,都将演变为第3点的tc.+1……关于#2,针对SL的Unity拦截一直处于“开发中”3年。此外,您应该记住,DI容器的理想角色是不需要编写像#3这样的代码。代码中应该只有一个位置实际调用容器上的Resolve。依赖项应该自动注入到其他位置……Silverlight拦截在积压工作中已经有一段时间了,但它是因为还没有开发。大约两个月前我做了第一件工作。
public class Resolve
{
public static T TypeOf<T>()
{
//…
}
}
public class SomeClass
{
public void DoingSomething( )
{
var someDependency = Resolve.TypeOf<ISomeDependency>();
//...
}
}