Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №11 (249) март 2019 г.

Дата публикации: 18.03.2019

Статья просмотрена: 199 раз

Библиографическое описание:

Игнатьев, А. Ю. Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений / А. Ю. Игнатьев. — Текст : непосредственный // Молодой ученый. — 2019. — № 11 (249). — С. 15-18. — URL: https://moluch.ru/archive/249/57237/ (дата обращения: 19.12.2024).



В данной статье рассматривается автоматизация генерации и сопровождения документации Asp.Net Core и Angular приложения, с автоматической публикацией в GitLab.

Ключевые слова: автоматизация, Asp.Net Core, Angular, документация, GitLab, Docker, DocFX, Compodoc.

Значительное количество современных веб-приложений написано с использованием фреймворков Asp.Net Core и Angular 2–7. Без должной документации большие приложения быстро становятся неуправляемыми. Однако документация, противоречащая актуальному состоянию приложения, может привести к серьезным последствиям в разработке. Одной из возможностей ведения актуальной документации является её автоматическая генерация из исходного кода, что позволяет при изменении кода автоматически обновлять документацию.

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

Рассматриваемые фреймворки написаны на разных технологиях и языках программирования, соответственно, для каждого из них необходим свой генератор документации. Asp.Net Core использует технологию.Net, и наиболее популярным генератором для данной технологии является DocFX [1]. Для фреймворка Angular существует генератор Compodoc [2]. Использование двух генераторов будет приводить к созданию двух различных источников данных, которые для большего удобства необходимо объединить. Большинство современных приложений использует систему контроля версии Git, где исходный код хранится на различных специализированных сервисах. Одним из таких сервисов является GitLab, который предоставляет возможность для бесплатного хостинга статического сайта, называемого GitLabPages, и идеально подходящего для хранения и отображения документации приложения.

Подключение инастройка DocFX

Стандартная установка DocFX происходит через пакетный менеджер chocolatey, который можно скачать с сайта разработчиков. Для этого необходимо выполнить в командной строке код из листинга 1 [1].

Листинг 1 — Код установки DocFX

choco install docfx –y

Данная строка установит DocFX глобально на компьютер, и её больше не нужно будет выполнять при дальнейшем использовании генератора.

Для генерации документации необходимо переместиться в корневую папку проекта и выполнить код из листинга 2. Данная операция создаст папку docfx_project для документации и заполнит её стандартными файлами. Чтобы просмотреть документацию, необходимо выполнить код из листинга 3. После этого статическую документацию можно посмотреть на http://localhost:8080.

Листинг 2 — Код инициализации DocFX в проекте

docfx init -q

Листинг 3 — Код запуска DocFX

docfx docfx_project\docfx.json --serve

Данный генератор позволяет добавлять свои статические страницы документации. Для этого в папке docfx_project есть папка articles, в которой содержатся статические страницы в формате markdown и файл toc.yml, описывающий имена страниц, их ссылки и иерархию.

Подключение инастройка Compodoc

Библиотека поставляется как npm-пакет и имеет соответствующий интерфейс установки и запуска. Код установки и запуска представлен в листинге 4 [2].

Листинг 4 — Код установки и запуска Compodoc

npm install -–save-dev @compodoc/compodoc

npx compodoc

Compodoc имеет несколько полезных особенностей: 8 встроенных тем оформления, поддержка 4 встроенных языков, полнотекстовый поиск, поддержка JSDoc, показатель покрытия кода документацией.

Compodoc генерирует документацию по основным частям приложения, где каждая часть содержит собственный шаблон с описанием своих параметров и характеристик:

− модули — описываются все компоненты, включенные в данный модуль, строится диаграмма использований и связей компонентов в модуле;

− компоненты — описываются метаданные компонента, файлы, в которых содержится исходный код компонента, предоставляемый интерфейс и диаграмма дерева DOM данного компонента;

− сервисы — описывается интерфейс сервиса;

− навигация — строится диаграмма связи компонентов и модулей с адресом в браузере.

Объединение вединую документацию ипубликация на GitlabPages

Сервис Gitlab автоматически публикует в свои Pages всё, что находится в папке public в ветке master. Можно добавить эту папку под контроль исходного кода и вручную генерировать документацию, однако данный процесс может быть автоматизирован. Для этого используется Gitlab CI, который исполняет команды из файла.gitlab-ci.yml при каких-либо действиях с репозиторием, например коммите или слиянии веток [3]. Gitlab CI исполняет эти команды в Docker-образе.

Для запуска DocFX и Compodoc Docker-образ должен иметь установленные.NET Framework и Node.js. На официальном сайте Docker, где в открытом доступе хранятся все образы, найти подходящий образ не удалось, поэтому был создан свой: bamix/mono-docfx-node. Данный образ имеет всё минимально необходимое: установленный глобально DocFX и Node.js с npm.

Файл настройки Gitlab CI на основе созданного образа представлен в листинге 5. На основе этого файла Gitlab CI скачает образ bamix/mono-docfx-node, выполнит команды по запуску DocFX и compodoc, которые настроены на генерацию в папку public, добавит эту папку в артефакты. Всё это будет происходить при любом изменении ветки master.

Листинг 5 — Файл.gitlab-ci.yml

pages:

image: bamix/mono-docfx-node

script:

− docfx metadata docs/docfx.json

− docfx build docs/docfx.json -o.

− npm install -g @compodoc/compodoc

− compodoc -p client/src/tsconfig.app.json -d public/client

artifacts:

paths:

— public

only:

— master

Визуальноеотображение

Визуализация серверной Asp.Net Core и клиентской Angular документации представлена на рисунках 1 и 2 соответственно.

Рис. 1. Серверная Asp.Net Core документация

Рис. 2. Клиентская Angular документация

Выводы

Предложено решение, позволяющее обеспечить автоматическую генерацию документации при любом изменении исходного кода, что дает возможность поддерживать ее в актуальном состоянии. Эта документация содержится в самом коде, что упрощает разработку, а также публикуется как статический сайт в удобном для чтения виде.

Литература:

  1. Getting Started with DocFX. — URL: https://dotnet.github.io/docfx/tutorial/docfx_getting_started.html (дата обращения: 23.02.2019)
  2. Compodoc Getting Started — URL: https://compodoc.app/guides/getting-started.html (дата обращения 23.02.2019)
  3. Configuration of your pipelines with.gitlab-ci.yml — URL: https://docs.gitlab.com/ee/ci/yaml/ (дата обращения: 23.02.2019)
Основные термины (генерируются автоматически): исходный код, документация, Код установки, листинг, DOM, запуск, папка, статический сайт.


Ключевые слова

автоматизация, документация, docker, Asp.Net Core, Angular, GitLab, DocFX, Compodoc

Похожие статьи

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Обзор основных технологий контент-менеджмент системы Adobe Experience Manager

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же офи...

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Разработка TCP-чата с использованием фреймворка Electron

В статье рассматривается разработка серверной части TCP чата на языке JavaScript с использованием node.js и клиентской части TCP чата c использованием фреймворка Electron.

Обзор надежности систем загрузки журнальных записей в Big Data

Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Похожие статьи

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Обзор основных технологий контент-менеджмент системы Adobe Experience Manager

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же офи...

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Разработка TCP-чата с использованием фреймворка Electron

В статье рассматривается разработка серверной части TCP чата на языке JavaScript с использованием node.js и клиентской части TCP чата c использованием фреймворка Electron.

Обзор надежности систем загрузки журнальных записей в Big Data

Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Задать вопрос