Перейти к содержимому

Extension SDK — скачивание и NuGet

C# SDK для разработки расширений Portal: WebPart, Event Receiver, Timer Job и provisioner функциональных модулей.

  1. Откройте korport.ru/developers
  2. Скачайте SDK той же версии, что установленный Portal (например, Portal 1.0.0 → portal-sdk-1.0.0.zip)
  3. Версию Portal смотрите в Админка → Продукт и лицензия или через GET /api/v1/system/license-status

Старые версии SDK остаются на сайте — клиенты, которые ещё не обновили Portal, берут SDK своей версии.

КомпонентВерсия
.NET SDK10.0
Portal (dev/staging)Та же версия, что SDK
Упаковка пакетовLinux/macOS: bash (.sh); Windows: PowerShell 5.1+ (.ps1 в scripts/)
Окно терминала
dotnet nuget add source https://korport.ru/api/nuget/v3/index.json -n korport

Распакуйте portal-sdk-X.Y.Z.zip и скопируйте nuget.config в каталог проекта или укажите локальный feed:

Окно терминала
dotnet restore --configfile ./portal-sdk-1.0.0/nuget.config

Пакеты в ZIP:

PackageIdНазначение
Portal.ContractsОбщие типы; PortalListItem (item["title"], CreateAsync / UpdateAsync)
Portal.WebPart.SdkWebPart (.portalpart): PortalListItem, ctx.Host (текущий список/элемент формы)
Portal.EventReceiver.SdkEvent Receiver (.portalevent): PortalListItem, context.GetListItemAsync(api)
Portal.TimerJob.SdkTimer Job (.portaltimer); списки от системной учётки portal-system (нет «текущего» элемента — id из Config)
Portal.Module.SdkProvisioner модуля (.portalmod)
ЗадачаAPI
WebPart на форме спискаawait ctx.Host.GetOrNewListItemAsync(ct)кастомная форма, SDK § Host
Event Receiver: изменившийся элементawait context.GetListItemAsync(api, ct)SDK ER
Timer Job: выборка по расписаниюapi.Lists.QueryListItemsAsync + id списка из context.Config
Фильтры, сортировка, частые кейсыВыборка элементов списка (Query / LINQ-стиль)

Работа с полями списков: Кастомная форма / PortalListItem, значения полей.
Права и группы: Права доступа из кода.

После распаковки ZIP:

Окно терминала
dotnet new install ./portal-sdk-1.0.0/templates/portal-webpart
dotnet new install ./portal-sdk-1.0.0/templates/portal-eventreceiver
dotnet new install ./portal-sdk-1.0.0/templates/portal-timerjob
dotnet new install ./portal-sdk-1.0.0/templates/portal-module

См. Какой тип расширения выбрать и разделы WebParts / Event Receivers / Timer Jobs / Модули.

Примеры в SDK ZIP: examples/hello-widget, examples/list-change-handler, examples/heartbeat.