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

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

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

2 ответа

Решение

ТПП

Плюсы:

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

Минусы:

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

Сесил (имеется в виду более новая версия git-hub)

Плюсы:

  • Имеет более простую объектную модель, поэтому будет легче начать

Минусы:

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

Какой бы я выбрал

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

Сесил многообещающий, имеет простой дизайн API, имеет активное авторство (ну, сделал это 7,5 месяцев назад и до сих пор, кажется, до сих пор), и ему было безболезненно отлаживать любую проблему, с которой я столкнулся.

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

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

Другие вопросы по тегам