2015-04-20 2 views
1

Моя организация выпускает SDK, чтобы помочь разработчикам .NET более легко взаимодействовать с нашим API. Мы хотели бы поддержать правильные варианты дистрибуции для удовлетворения потребностей разработчиков.Как распределить библиотеку .NET

Какие существуют варианты распространения библиотеки .NET сегодня? Каковы плюсы и минусы каждого канала сбыта?

+4

Нет «рекомендуемого» способа. Если это бесплатная библиотека, я думаю, что NuGet отлично подходит для канала распространения. Вы также должны предлагать загружать готовые библиотеки DLL через свой сайт, но сначала я бы направил людей в пакет NuGet, так как он может быть легко обновлен. –

+0

@RonBeyer - спасибо! Похоже на хороший совет. –

+0

Мой вопрос был отредактирован, чтобы быть меньше мнения. Должна ли она оставаться на удержании? –

ответ

1

NuGet - это, безусловно, самый удобный вариант для библиотеки. В отличие от автономных DLL, он может быть легко обновлен (и с уведомлением об обновлениях), его зависимости автоматически втягиваются (что позволяет избежать «у меня 40 DLL в моей папке libs/folder, на которые мне действительно нужно?») И это проще для VCS (без использования бинарных файлов).

Вы также можете опубликовать пакет символов, как описано here, чтобы помочь разработчикам отладить код, который использует вашу библиотеку.
Некоторые авторы пакетов (Microsoft included) даже публикуют пакеты «образцы», которые показывают, как использовать их пакеты.
Другим вариантом простой документации является то, что ваш пакет автоматически откроет свой веб-сайт документации при загрузке, using PowerShell.

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

+0

Похоже, если бы мы предоставили DLL, мы бы хотели отговорить этот маршрут и поощрять использование NuGet. Правильно? Мне нравится идея публикации пакета «samples», чтобы показать использование пакетов. –

+0

@JimmyZ: Да, если вы хотите предоставить DLL, его следует рассматривать как резерв для людей, которые не могут использовать NuGet. Это также поможет вам; проще объяснить, как проверять наличие обновлений, и вы получите меньше разработчиков, жалующихся на ошибки из старых версий. –

1

Одним хорошим способом является контроль версий исходного кода. Храните источник на своем сервере и разрешайте своим клиентам извлекать и компилировать библиотеку в своих проектах.

AFAICT Самый популярный подход - загрузка скомпилированных DLL/NuGet, хотя источник имеет гораздо больше смысла для разработки и отладки.

+1

Я бы сохранил источник на отдельном сервере, например GitHub. Таким образом, источник легко получается через открытый клиент. –

+0

«Ваш сервер» не обязательно является вашим собственным внутренним сервером – Ash