Запись API в C# для моего приложения

6 ответов

  1. Как можно меньше обнажайтесь. Каждый опубликованный вами бит вернет вам x100 в следующей версии. Поддерживать совместимость очень сложно.
  2. Создавайте абстракции для всего, что вы публикуете. Вы определенно измените свои внутренние компоненты, но ваши существующие пользователи должны оставаться совместимыми.
  3. Отметьте все как внутренние. Даже основной метод вашего приложения. Будут использованы все методы, которые можно было бы использовать.
  4. Протестируйте свой общедоступный API так же, как и для интерфейсов. Интеграционные тесты и так далее. Обратите внимание, что ваш API будет использоваться непредсказуемым образом.
  5. Максимизируйте соглашение над конфигурацией. Это обязательно. Даже если ваш API представляет собой единый метод, вам все равно потребуется его поддержка. Просто облегчит вашу жизнь.
  6. Подпишите свои сборки и присвойте им строгие имена, это хорошая практика.
  7. Устраните как можно больше ошибок FxCop и StyleCop.
  8. Убедитесь, что ваш API совместим с Руководством по именованию вашей платформы.
  9. Приведите как можно больше примеров и помните, что большая часть использования вашего API в этих примерах будет Ctrl + C и Ctrl + V.
  10. Попробуйте предоставить документацию. Убедитесь, что у вас нет автоматически созданной документации в стиле GhostDoc. Все это ненавидят.
  11. Включите информацию о том, как вас найти.
  12. Не беспокойтесь обфускации. Это поможет вам и вашим пользователям.

ДОБАВЛЕННЫЙ

  1. API должен иметь как можно меньше зависимостей. Например, следует запретить зависимости от контейнеров IoC. Если ваш код использует его внутри. Просто добавьте их в свои сборки.
18
ответ дан 6 December 2019 в 05:49
поделиться

Возможно, это не самое забавное чтение и, конечно, не единственное чтение по этой теме, но при разработке библиотеки классов (вашего API) проверяйте его с помощью Design Рекомендации по разработке библиотек классов Время от времени рекомендуется иметь дизайн, который немного соответствует самой .NET Framework.

5
ответ дан 6 December 2019 в 05:49
поделиться

Сделайте свои методы, которые вы хотите показать внешнему миру общедоступными .

3
ответ дан 6 December 2019 в 05:49
поделиться

Я нашел эту презентацию особенно проницательной:

Как проектировать хороший API и почему это важно
http://lcsd05.cs.tamu.edu/slides/keynote.pdf

3
ответ дан 6 December 2019 в 05:49
поделиться

Один из способов сделать это - создать DLL для ваших основных функций, которые будут использовать другие, и EXE, который вызывает методы в DLL. Если вы хотите, чтобы ваше приложение поддерживало плагины, обратите внимание на пространство имен System.AddIn .

2
ответ дан 6 December 2019 в 05:49
поделиться

Если вы хотите узнать, что нового в этой области, ознакомьтесь с Managed Extensibility Framework . Это новый / «унифицированный (см. Комментарии ...)» метод для раскрытия функций надстроек и другой расширяемости / модульности.

1
ответ дан 6 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: