AI Core Контексты выполнения приложения
Карта контекстов выполнения, которые используют скрипты, модули и сервисы приложения.
Карта контекстов выполнения приложения
Справочная карта, которая помогает различать код хоста EyeAuras, код только для SDK, top-level скрипты, обычные вспомогательные классы C#, object-style executors и Razor-компоненты.
Что обычно хотят понять
- Где доступен доступ к зависимостям.
- Как вынести код из файла скрипта во вспомогательный класс.
- Нужно ли передавать сервис явно.
- Чем отличается код модуля приложения или плагина от кода проекта скрипта.
Модель работы
- Код top-level скрипта выполняется с возможностями, которые предоставляет хост.
- Обычные файлы C# рядом со скриптом компилируются как обычные классы и не наследуют автоматически члены хоста скрипта.
- Object-style executors для action и trigger получают контекст через свои базовые классы.
- Razor-компоненты работают через Blazor
[Inject]и правила жизненного цикла компонентов. - Код приложения или плагина использует DI и систему модулей приложения.
- Код только для SDK может ссылаться на контракты, но не должен предполагать наличие активного хоста.
Ключевые API
AuraScriptSandbox/IAuraScriptSandbox— поверхность возможностей top-level скрипта.ScriptContainerExtension— точка регистрации DI для скрипта.CsharpScriptActionExecutor— точка входа для object-style action.CsharpScriptTriggerExecutor— точка входа для object-style trigger.Prism.Modularity.IModule— контракт модуля приложения или плагина.[Inject]— атрибут внедрения зависимостей для компонентов Blazor.[Dependency]— атрибут property injection из Unity, который используется в некоторых runtime-классах.
Что предпочтительно
- Передавайте зависимости во вспомогательные классы через конструкторы или параметры.
- Документируйте API, завязанные на конкретные пакеты, в
nuget/. - Используйте модули приложения для регистраций приложения и плагинов.
Чего избегать
- Не рассчитывайте, что
Log,AuraTree,VariablesилиcancellationTokenбудут доступны в обычных helper-классах. - Не используйте шаблоны доступа к зависимостям, предназначенные только для скриптов, внутри Razor-компонентов.
Поисковые синонимы
- top-level script
- helper class
- ordinary C# class
- script globals
- app module
- plugin module
- Blazor component injection
- object-style action
- object-style trigger
Связанные карты
scripting/runtime.mdcore/app-modules.mdcore/eyeauras-structure.mdwindows-subsystems/blazor-windows.md