Написание API на C# для моего приложения
Я напишу приложение, но я никогда не испытывал, чтобы позволить людям использовать мой интерфейс программирования приложений раньше.Я имею в виду, какой дизайн я должен сделать, чтобы люди использовали мои методы из внешнего мира, такие как API.
пожалуйста, кто-нибудь покажите мне путь.Я вроде как новичок в этом.
6 ответов
- выставить как можно меньше. Каждый бит, который вы публикуете, вернется к вам x100 в следующей версии. Сохранение совместимости очень сложно.
- создавать абстракции для всего, что вы публикуете. Вы обязательно измените свои внутренние компоненты, но ваши существующие пользователи должны оставаться совместимыми.
- отметить все как внутренние. Даже основной метод вашего применения. Каждый метод, который может быть использован, будет использован.
- проверьте свой публичный API так же, как вы для интерфейсов. Интеграционные тесты и так далее. Обратите внимание, что ваш API будет использоваться непредсказуемым образом.
- максимизировать соглашение по конфигурации. Это необходимо. Даже если ваш API-это один метод, вам все равно нужно будет его поддерживать. Просто делает твою жизнь проще.
- Sign и strong name ваши сборки, это хорошая практика.
- разрешите как можно больше ошибок FxCop и StyleCop.
- Проверьте, совместим ли ваш API с именем Рекомендации вашей платформы.
- приведите как можно больше примеров и помните, что большая часть использования вашего API будет Ctrl+C и Ctrl+V из этих примеров.
- пытаемся предоставить документацию. Убедитесь, что у вас нет автоматически сгенерированной документации в стиле GhostDoc. Все это ненавидят.
- включить информацию о том, как найти вас.
- Не беспокойтесь об обфускации. Это поможет вам и вашим пользователи.
добавил
- API должен иметь как можно меньше зависимостей. Например, использование контейнеров МОК должно быть запрещено. Если ваш код использует его внутри. Просто ilmerge их в свои сборки.
Это может быть не самое смешное чтение и, конечно, не единственное чтение по этому вопросу, но при разработке библиотеки классов (вашего API), проверьте с помощью рекомендации по разработке библиотек классов время от времени, это хорошая идея, чтобы иметь дизайн, который соответствует немного с .NET Framework iteself.
Я нашел эту презентацию особенно проницательной:
как создать хороший API и почему это имеет значение
http://lcsd05.cs.tamu.edu/slides/keynote.pdf
один из способов сделать это-создать DLL для вашей основной функциональности, которую будут использовать другие, и EXE, который вызывает методы в DLL. Если вы хотите, чтобы ваше приложение поддерживало Плагины, посмотрите на
Если вы хотите увидеть, что нового в этой области, проверить Управляемая Платформа Расширяемости. Это новый / " unified (см. комментарии...) "метод экспонирования функций для надстроек и других расширяемости/модульности.