Azimut Framework
  • О платформе Azimut
  • Концепция
    • Суть разработки на Azimut
    • Компиляция метаданных
    • Наследование метаданных
    • Подсистемы
    • Проекты и релизы
    • Расширяемость
  • Начало работы
    • Системные требования
    • Установка
  • Документация
    • Основные объекты
      • Сущность
      • Контекст
        • Контекст в выборках
        • Контекст в представлениях
      • Представление
      • Выборка
        • Фильтры и параметры отбора
      • Web формы
    • Биндинги параметров Sql скрипта
      • Биндинг Идентификатор документа
      • Биндинг Поле представления
      • Биндинг Строка
    • Автозадачи по расписанию
      • Sql to WebRequest
      • Обработка отчетов
      • Пакетное сканирование документов
    • Шаблон ХП
    • Главное меню
    • Вопросы-ответы
      • Как удалить пункт меню
      • Как удалить объект конфигурации
      • Как в выборку добавить параметр отбора
      • Как редактировать выборку прямо в гриде
    • Видео
    • Устранение неисправностей
  • API
    • Возврат ошибок
  • Расширение Платформы
    • Разработка дополнений
      • Расширение API
      • Подключение любой dll
Powered by GitBook
On this page

Was this helpful?

  1. Концепция

Компиляция метаданных

PreviousСуть разработки на AzimutNextНаследование метаданных

Last updated 4 years ago

Was this helpful?

В процессе работы с конфигуратором, "компиляция" это то что будет выскакивать на экране чаще всего. Компиляция это процесс валидации метаданных и подготовка этих метаданных к использованию. Когда мы редактируем объект и затем сохраняем его, сразу запускается процесс компиляции этого объекта и всех его дочерних объектов (см. ).

Во время компиляции происходит слияние всех родительских метаданных с метаданными компилируемого объекта. Это необходимо для обеспечения возможности наследования.

Например у нас есть Представление "Заявка". В нем есть поля "ID", "Number". У этого представления есть дочернее представление "Заявка на вызов курьера", с одним единственным полем "Курьер". Поля ID, Number в дочернем представлении мы уже не описываем, так как они унаследуются от базовой заявки.

Вот компиляция объекта "Заявка на вызов курьера" как раз и достает все родительские метаданные вверх по иерархии, склеивает их с метаданными самого объекта и складывает в готовом к употреблению виде в базу. Поэтому когда мы меняем объект у которого есть дочерние, то процесс компиляции также пересобирает и их. Например если мы в базовом представлении переименовали поле Name с "Наименование" на "Имя", то нужно перекомпилировать не только базовую заявку, но и Заявку на вызов курьера. Все это конечно происходит автоматически и не требует внимания разработчика.

Затем, когда мы запускаем приложение, при использовании того или иного объекта (например "Главная форма приложения" или тот же пример "Заявка на вызов курьера"), система подтягивает эти метаданные и инициализирует ими данный объект. За счет того что как правило в средне-статистической системе объектов очень много (а иначе зачем вам платформа), то и обращений к базе происходило бы достаточно большое кол-во. А процесс компиляции собирает и оптимально раскладывает по полкам все необходимые метаданные для быстрой работы runtime. Разработчик же заботится об удобстве расположения полей, правильной логике и обо всем, чему в традиционной разработке из-за большой рутины не уделяют должного внимания.

наследование