CCI与Mono.Cecil能做到 - 优点和缺点 [英] CCI vs. Mono.Cecil -- advantages and disadvantages
问题描述
我所看到的文章讨论这两个类似的框架,但其中大部分是二十岁左右。我认为这两个项目都更加成熟,现在比他们两年前,形势是一个比较复杂的。
I have seen articles discussing these two similar frameworks, but most of them are two years old or so. I assume both projects are much more mature now than they were two years ago, and the situation is a more complex one.
因此,考虑每个库的当前状态我希望有人能提供各的优点和缺点的详细说明,并应在现在的时间是首选。
So given the current states of each of the libraries, I was hoping someone could provide a detailed explanation of the advantages and disadvantages of each, and which should be preferred at present time.
推荐答案
CCI
优点:
- 可以给你你的表现更为细化的控制
- 最新版本是一个比较成熟
缺点:
- 的对象模型比较复杂(和混乱,如果你是新来的IL /低级别的反射,像我)
塞西尔(指的较新的混帐枢纽版本)
优点:
- 有一个简单的对象模型,所以会更容易获得
缺点启动:
- 最新版本是不太成熟,所以具有可用较少的代码示例
- 的API是一个工作正在进行中
- 您不会有过名称缓存(用于PERF)
这一点我会选择
Couting了利弊/利弊,它肯定看起来像我会选择在CCI塞西尔。但我不会。
Couting up the pros/cons, it sure looks like I'd pick CCI over Cecil. But I wouldn't.
塞西尔达和未来,有一个简单的API设计,有一个活跃的作者(嗯,确实7.5个月前的,仍然似乎现在),并且是无痛上我遇到的任何问题,调试通过。
Cecil is up-and-coming, has an easy API design, has an active authorship (well, did 7.5 months ago, and still seems to now), and was painless to debug through on any issue I encountered.
CCI是相当痛苦的代码对 - 是采取基于接口的设计的太远的。代码是很难通过调试。有些东西乍一看完整,但都没有,或不处理比单一用例以上。 的 NameTable
的东西使我的头旋(比它已经是)。
CCI was quite painful to code against - the interface-based design is taken too far. The code is hard to debug through. Some things seem complete at first glance, but aren't, or don't handle more than a single use case. The NameTable
stuff made my head spin (more than it already was).
这篇关于CCI与Mono.Cecil能做到 - 优点和缺点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!