AI Core — модули приложения

AI-ориентированная схема загрузки модулей, путей к модулям и расширяемости приложения.

Карта модулей приложения

Справочная карта по Prism-модулям, динамическим модулям приложения, их загрузке и приватным ресурсам модулей.

Что здесь ищут

  • Где регистрируются сервисы или aura-сущности.
  • Как загрузить или проверить модули приложения.
  • Как получить пути к приватным файлам модуля.
  • Почему пакет или модуль добавляет API только после загрузки.

Общая модель

  • Модули регистрируют сервисы, aura-сущности, редакторы, интеграции пакетов и runtime-инфраструктуру.
  • Aura packs регистрируют пользовательские actions, triggers, overlays, редакторы переменных и узлы behavior tree.
  • Опциональные SDK-пакеты могут добавлять расширения модулей или контейнера.
  • Загрузкой модулей управляет общий для приложения IEyeAurasModuleLoadPlan. EyeAuras и EyePad используют план «загрузить всё», а embedded-host заменяет его явным списком запрошенных имён модулей.
  • modules.config — это подписанный инвентарь модулей. Он связывает имена модулей, пути, Prism-зависимости и identity сборок с конкретными payload, которые загрузчик может рассматривать. В нём могут быть сгенерированные hash/size metadata, но текущий runtime не делает integrity checks по этим данным.
  • Инвентарь модулей отделён от намерения загрузки. Активный IEyeAurasModuleLoadPlan решает, какие записи нужны приложению; физическая форма payload и лицензирование решают, будут загружены обычные или зашифрованные bytes модуля.

API

  • Prism.Modularity.IModule — контракт реализации модуля.
  • IAppModuleLoader — загружает модули приложения и показывает их состояние загрузки.
  • IModuleLoader — общий контракт состояния загрузки.
  • IEyeAurasModuleLoadPlan — список модулей, которые должен загрузить текущий host.
  • IAppModulePathResolver — определяет директории для приватных ресурсов модуля.
  • IAuraRegistrator — регистрирует aura-сущности во время инициализации модуля.

Что лучше делать

  • Начинайте с регистраций модуля, если хотите найти пользовательские сущности.
  • Для семантики регистрации и фабрик используйте auras/entities.md.
  • Для регистраций из опциональных SDK-пакетов смотрите карты пакетов в nuget/.

Чего лучше избегать

  • Не предполагайте, что классы модулей содержат runtime-логику — часто они только связывают типы между собой.
  • Не хардкодьте пути к ресурсам модуля, если для этого уже есть resolver.

Поисковые синонимы

  • Prism module
  • app module
  • module loader
  • module path
  • module assets
  • aura pack
  • registration module

Связанные карты

  • auras/entities.md
  • auras/overview.md
  • core/app-runtime-contexts.md
  • core/configuration-persistence.md