Подтвердить что ты не робот

CCI против Mono.Cecil - преимущества и недостатки

Я видел статьи, обсуждая эти две подобные структуры, но большинство из них - два года или около того. Я предполагаю, что оба проекта намного более зрелые, чем два года назад, и ситуация более сложная.

Поэтому, учитывая текущие состояния каждой из библиотек, я надеялся, что кто-то сможет дать подробное объяснение преимуществ и недостатков каждого из них и которые должны быть предпочтительными в настоящее время.

4b9b3361

Ответ 1

CCI

Плюсы:

  • Может дать вам более тонкий контроль над вашей производительностью.
  • Последняя версия немного более зрелая.

Минусы:

  • Объектная модель более сложная (и запутанная, если вы новичок в IL/low-level reflections, например, я)

Cecil (ссылаясь на более новую версию git -hub)

Плюсы:

  • Более простая объектная модель будет легче начать с

Минусы:

  • Последняя версия менее зрелая, поэтому доступно меньше примеров кода
  • API - это незавершенный процесс.
  • У вас не будет такого контроля над кешированием имен (для perf)

Я бы выбрал

Преодоление плюсов и минусов, похоже, я бы выбрал CCI над Сесилом. Но я бы не стал.

Cecil - продвинутый, имеет простой дизайн API, имеет активное авторство (ну, сделал 7.5 месяцев назад, и по-прежнему кажется сейчас), и было безболезненно отлаживать любую проблему, с которой я столкнулся.

CCI был довольно болезнен в отношении кода - интерфейс на основе интерфейса зашел слишком далеко. Код трудно отлаживать. Некоторые вещи кажутся завершенными с первого взгляда, но не являются или не обрабатывают больше, чем один случай использования. Материал NameTable запустил мою голову (больше, чем она уже была).

Ответ 2

Сесил - потому что для меня поддержка сообщества для него лучше, чем CCI. Я всегда находил ответы на списки рассылки/сайты быстрее для cecil.