Создание и публикация серверного расширения
Серверное расширение представляет собой библиотеку DLL, разработанную на платформе .NET.
Ссылка на пример на GitHub: TemplateServerExtension.
Перечень необходимых инструментов
Пример рассчитан на версию Web-клиента 6.1 или выше. * Microsoft Visual Studio 2022. * Docsvision WebClient SDK (запрашивается через портал ТП).
Описание файлов проекта
-
В корне репозитория расположено решение для Visual Studio (
Samples.sln
) и ключ для подписания сборок примеров (StrongNameKey.snk
). Рекомендуется использовать Visual Studio 2022. -
Assemblies
— сборки, необходимые для использования примеров -
ServerExtension.cs
— входная точка расширение, в которой регистрируются сервисы и прочие сущности. -
Sign.snk
— файл подписи сборки. Для установки сборки должны быть подписаны. Рекомендуется сгенерировать новый файл подписи в настройках проекта. -
Resource.resx
,Resource.ru.resx
— локализации, используемые в расширении. -
Feature1
— папка, содержащая реализацию некоторой функциональности. -
Feature1/Feature1Controller.cs
— класс, регистрирующий конечные точки Web API. -
Feature1/IFeature1Service.cs
иFeature1/Feature1Service.cs
— интерфейс и реализация сервиса, реализующего логику обработки запроса. -
Feature1/Models
— классы моделей, используемых в сервисе и контроллере.
Сборка и установка
-
Убедитесь, что установлен Docsvision WebClient SDK.
В этом случае в переменной окружения
DocsvisionWebClientSDK
содержится путь к его папке, например,C:\Program Files (x86)\Docsvision\WebClient\SDK
. -
Установите шаблон серверного расширения и создайте на его основе новый проект с названием
LearnDocvisionServerExtension
. -
Обновите в проекте ссылки на зависимости.
-
Реализуйте в проекте функции серверного расширения.
-
Настройте ядро серверного расширения.
-
Скомпилируйте проект.
-
Скопируйте
safeprojectnamesafeprojectname.dll
иsafeprojectnamesafeprojectname.dll.pdb
из папки в .Расширения можно устанавливать в папки
и . В ходе разработки расширения можно удобнее устанавливать в папку , т.к. это избавляет от необходимости перезапускать dvwebclient при установке сборок.В ресурсной поставке рекомендуется устанавливать сборки в папку
, чтобы проще было видеть, какие расширения установлены в Web-клиенте. Однако этот способ требует перезапуска dvwebclient при установке или обновлении сборки. -
Перезапустите dvwebclient.
Проверка работы
-
Откройте Web-клиент.
-
Откройте диалог "О программе" и убедитесь, что расширение присутствует в списке подключенных расширений.
-
Откройте произвольный документ и в консоли браузера выполните:
$ await layoutManager.cardLayout.getService("requestManager").post("api/Feature1/Action1", JSON.stringify({ documentId: layoutManager.cardLayout.getService("cardId") }));
-
Обновите документ, убедиться, что в названии добавился знак.