Разработчик(и) | Майкрософт |
---|---|
Первоначальный выпуск | 2006 ( 2006 ) |
Стабильный релиз | 2.6.10621.1 / 23 июня 2010 г. ( 2010-06-23 ) |
Репозиторий | github.com/EWSoftware/SHFB |
Написано в | С# |
Операционная система | Майкрософт Виндоус |
Платформа | .NET Framework |
Тип | Генератор документации |
Лицензия | Публичная лицензия Microsoft |
Веб-сайт | ewsoftware.github.io/SHFB/ |
Sandcastle — это генератор документации от Microsoft . Он автоматически создает документацию кода в стиле MSDN из информации отражения сборок .NET и комментариев XML-документации, найденных в исходном коде этих сборок. Его также можно использовать для создания пользовательской документации из Microsoft Assistance Markup Language (MAML) с тем же внешним видом и стилем, что и справочная документация.
Sandcastle — это набор программ командной строки , файлов конфигурации, компонентов сборки и файлов XSLT , которые работают вместе для преобразования документации на основе XML в разделы справки, которые подходят для просмотра в справочной системе. Sandcastle обычно используется для автоматического создания веб-совместимой HTML- документации в одном из трех встроенных стилей представления из сборок .NET и файлов документации XML, которые генерируются компиляторами . Полученные файлы HTML затем используются в качестве входных данных для таких инструментов, как HTML Help Workshop, для создания скомпилированной справки для распространения с соответствующей компьютерной программой .
В настоящее время Sandcastle имеет легкий графический пользовательский интерфейс (GUI) в качестве альтернативы проекту MSBuild , пакетному скрипту и скриптам Windows PowerShell , которые также предоставляются. Для Sandcastle также доступны несколько инструментов GUI сообщества, предоставляющих дополнительные функции и упрощающих его использование. [1]
В состав Visual Studio SDK 2005 и 2008 годов входят старые версии Sandcastle CTP [2] , хотя последняя версия доступна на GitHub .
Sandcastle состоит из нескольких программ, не все из которых используются в типичном процессе сборки справки. Ниже перечислены часто используемые инструменты.
Поскольку в своем текущем состоянии Sandcastle сам по себе довольно сложен в использовании, люди придумали инструменты и скрипты, которые могут автоматизировать эту задачу для них. В этом разделе содержится список таких инструментов и скриптов.
Sandcastle создает файлы HTML на основе XML в выбранном стиле представления. (Однако это не означает, что файлы соответствуют XHTML .) HTML определяется файлами преобразования XSL, которые включены в конкретный используемый стиль представления. Сборка обычно использует только один стиль представления за раз.
HTML-файлы, которые создает Sandcastle, являются либо концептуальной (пользовательской) документацией, являющейся результатом преобразования тем Microsoft Assistance Markup Language (MAML), либо справочной документацией, которая автоматически генерируется из данных отражения и комментариев XML-документации. Эти два различных типа HTML-вывода имеют одинаковый стиль представления и могут быть скомпилированы вместе для создания смешанной пользовательской/справочной документации.
Процессы создания концептуальной документации и справочной документации схожи, одним из главных отличий является то, что для создания концептуальной документации не требуется использовать программу MRefBuilder.
Концептуальная документация состоит из тем, написанных с использованием схемы типа документа MAML, таких как «как сделать», «прохождение», «устранение неполадок» и несколько других. Sandcastle предоставляет концептуальный стек компонентов сборки (conceptual.config), который разрешает общий контент и ссылки, а также использует файлы XSL для преобразования элементов MAML в HTML.
Справочная документация автоматически генерируется для управляемых интерфейсов прикладного программирования (API) из данных отражения и комментариев XML-документации. Преобразование XSL "doc model", предоставляемое выбранным стилем представления, применяется для определения файлов, которые будут сгенерированы. Sandcastle предоставляет стек компонентов справочной сборки (sandcastle.config), который создает индексы данных в памяти, разрешает общий контент и ссылки и использует XSL для генерации окончательного вывода HTML.
Sandcastle сам по себе не создает скомпилированный вывод справки (хотя создаваемые им HTML-файлы можно использовать в качестве входных данных для компиляторов HTML-справки, таких как HTML Help Workshop и Microsoft Help 2 ).
Например, типичный процесс сборки Help 1.x начинается с запуска MrefBuilder.exe для создания XML-файла отражения для одной или нескольких сборок. Затем файл отражения обрабатывается инструментом XslTransform.exe несколько раз для применения различных преобразований XSL, которые добавляют такие данные, как «модель документа» и необязательную информацию о версии. Затем создается XML-манифест темы, который используется программой BuildAssembler.exe, которая создает HTML-файлы тем из данных отражения и комментариев XML-документации. Файл таблицы содержания (TOC) на основе XML создается и используется CHMBuilder.exe вместе с HTML-файлами, созданными BuildAssembler, для создания проекта HTML Help Workshop, файлов индекса и TOC. Наконец, HTML Help Workshop используется для создания скомпилированного файла справки (.chm).
Некоторые инструменты используются несколько раз во время одной сборки, например XslTransform и BuildAssembler. В зависимости от требований, другие инструменты и преобразования XSL могут использоваться на различных этапах процесса для изменения вывода Sandcastle.
Приложение Sandcastle было разработано Microsoft для создания масштабируемого и производительного генератора документации для своей документации API . Microsoft выпустила Sandcastle как версию Community Technology Preview ( CTP ) в июле 2006 года, за несколько дней до того, как NDoc был объявлен мертвым [3] [4] Автор NDoc, Кевин Даунс, в электронном письме, отправленном через его список рассылки, указал в качестве причин прекращения разработки своего популярного инструмента отсутствие поддержки сообщества, как финансовой, так и в виде вклада в разработку, автоматическую атаку почтовой бомбой на его публичный адрес электронной почты и адрес списка рассылки NDoc2, а также свое впечатление, что Sandcastle «станет фактическим стандартом, а NDoc постепенно превратится в застойную побочную воду».
В сентябре 2010 года Sandcastle в среднем скачивали 217 раз в день [5] , что сделало его одним из 25 самых скачиваемых проектов на CodePlex .
6 июня 2008 года проект SandCastle был удален с сайта CodePlex [6] после того, как в ветке обсуждения на сайте CodePlex было указано, что исходный код недоступен; несмотря на то, что CodePlex требовал этого, а проект SandCastle рекламировался как «с открытым исходным кодом». [7] 2 июля проект вернулся на CodePlex, и исходный код был опубликован. [8]