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

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

пожалуйста, кто-нибудь покажите мне путь.Я вроде как новичок в этом.

6 ответов


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

добавил

  1. API должен иметь как можно меньше зависимостей. Например, использование контейнеров МОК должно быть запрещено. Если ваш код использует его внутри. Просто ilmerge их в свои сборки.

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


сделайте свои методы, которые вы хотите подвергнуть внешнему миру public.


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

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


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


Если вы хотите увидеть, что нового в этой области, проверить Управляемая Платформа Расширяемости. Это новый / " unified (см. комментарии...) "метод экспонирования функций для надстроек и других расширяемости/модульности.