Разработка дополнений
Last updated
Last updated
Не смотря на то что в Азимуте не нужно программировать (кроме sql), все-таки встречаются задачи, где без этого никак не выкрутиться. С помощью c# вы можете расширить возможности Азимута.
Мы рассмотрим самые распространенные задачи, это:
Интеграции (сложное API и Автозадачи)
Расширение возможностей клиентского приложения
Расширение возможностей конфигуратора
Расширение процесса публикации релизов
И прежде чем приступить, хотим настоятельно порекомендовать обращаться к расширению через программирование только в самых крайних случаях. Иначе вы растеряете все преимущества платформы. На своем личном примере мы убедились что даже в продолжительных и сложных проектах, c# может понадобиться разве что для реализации сложных API и интеграций. В остальных случаях достаточно возможностей самой платформы. А если не достаточно, пишите нам, посмотрим что можно сделать.
Для работы с c# лучше использовать Visual Studio.
Первое что необходимо сделать, это создать решение (sln) для нашего проекта. Оно создается автоматически при первом его открытии. Чтобы открыть решение, нажмите CSharp.
В решении будет сформировано 3 пустых проекта:
.Client - для клиентской части
.Server - для серверной части
.Editor - для расширения возможностей конфигуратора
Решение формируется в Мои документы, в папке Azimut.CSharp/<Имя проекта>/, а также сохраняется в базе, в таблице SY_CSharpFiles. Как только вы добавляете/меняете файл в проекте, он автоматически компилируется и конфигуратор видит новые изменения.
Таблица SY_CSharpFiles конечно не заменит полноценного хранилища исходных кодов, но в качестве средства синхронизации кода между всеми разработчиками сгодится.
Тип
Описание
Azimut.Metadata.MetadataFuncType
Самый базовый абстрактный функциональный тип
Azimut.Business.Design.MetadataBaseVerb
Базовый тип команды (кнопки)
Azimut.Business.Design.DocumentBaseBinding
Базовый функциональный тип биндинга значения
Azimut.Business.Design.MetadataValueBaseFunc<TValue>
Базовый функциональный тип простого значения в биндингах
Azimut.Business.Actions.MetadataActionBase
Базовое серверное действие
Azimut.Business.MetadataChannelBase
Базовый канал уведомления
Azimut.Business.MetadataBaseColumn
Базовый тип столбца сущности (таблицы)
Azimut.Business.MetadataEvents.MetadataEventBase
Базовый тип сообщения системы уведомлений (например, Стандартное сообщение, Xslt сообщение)
Azimut.Business.MetadataBaseScript
Базовый тип скрипта контекста
Azimut.Business.MetadataScriptParameterBase
Базовый тип параметра скрипта контекста
Azimut.Business.NotificationActions.NotificationActionBase
Базовое действие в уведомлениях чата
Azimut.Business.SchedulerTasks.Periods.SchedulerTaskPeriodBase
Базовый период запуска задачи планировщика (ежесекундно, минутно и т.д.)
Azimut.Business.Design.ForeignModes.MetadataForeignModeBase
Базовый режим внешнего ключа, этот же тип является "Без внешнего ключа"
Azimut.Business.Design.SqlModifierFuncItemBase
Базовый элемент модификатора (что модифицируем - поле, метаданные..)
Azimut.Business.Design.Views.MetadataBaseViewDocument
Базовый тип документа редактирования
Azimut.Business.Design.Views.MetadataMasks.MetadataBaseMask
Базовая маска ввода
Azimut.Business.Design.Views.MetadataFileUploaderBase
Базовый тип загрузчика файлов с клиента на сервер
Azimut.Business.Design.Views.MetadataBaseProperty
Базовый тип поля представления
Azimut.Business.Design.Views.MetadataBindingProperty
Базовый тип поля представления, который биндится к полям сущности
Azimut.Business.Design.Views.ReferenceBaseFilter
Базовый фильтр в поле Справочник
Azimut.Business.Design.Views.MetadataPropertySummaryBase
Базовая функция для посчета итогов столбца в гриде
Azimut.Business.Design.Wizards.WizardStep
Базовый тип шага визарда
Azimut.Host.Api.Controllers.ApiControllerBase
Базовый контроллер Api
Azimut.Host.Api.Authorizers.BaseAuthorizer
Базовый способ авторизации в API (он же является типом "без авторизации")
Azimut.Host.Api.ChatBotProcessing.ChatBotProcessingBase
Базовая обработка сообщения чат бота