Структура проекта

Разделение платформы и бизнес логики решается путем организации классов в соответствующие уровни приложения – уровень разрабатываемый пользователем и уровень метаданных.

Между этими уровнями, в архитектуре платформы, есть каналы управления интерфейсом и управления данными.

Принято следующее правило именования сборок:
C1 – компоненты WinForms от GrapeCity
C2 – системные компоненты платформы
C3 – сборки, относящиеся к прикладному разрабатываемому решению

Структура решения Visual Studio

Приложение строится из двух групп библиотек:

  • Библиотеки, разрабатываемые пользователем и содержащие бизнес-логику.
  • Библиотеки, создаваемые Дизайнером, на основе структуры метаданных, с помощью обработки генерации классов.

Здесь, для примера, библиотеки, разработанные пользователем:

  • C3.Accounting.Module — модули объектов и модули проведения
  • C3.Accounting.Win — формы объектов (справочников, документов, отчетов и обработок)

Библиотеки, созданные Дизайнером:

  • C3.JustMoney.Model — прикладные объекты (справочники, документы, регистры)
  • C3.ModelManager — менеджер доступа к прикладным объектам модели
  • C3.ModuleManager — менеджер доступа к модулям прикладных объектов
  • C3.JustMoney.Form — базовые классы форм прикладных объектов
  • C3.FormManager — менеджер форм прикладных объектов

JustMoney, Accounting, Docflow – имя бизнес логики, может быть любым.

Состав библиотек решения зависит от их следующего функционального назначения:

Модель схемы данных конфигурации (справочники, документы, регистры)

В структуре конфигурации самым обобщенным элементом является схема.

Внутри каждой схемы расположены объекты модели конфигурации (справочники, документы и т.п.).

Важной особенностью является наличие связей между объектами внутри схемы, на уровне базы данных с помощью Foreign Keys. Но объекты в разных схемах такой способностью не обладаю.

Такой подход позволяет в одной конфигурации строить много-сервисную архитектуру данных, распределяя разработку/поддержку схем между разными командами разработчиков.

Сборки модели “C3.JustMoney.Model” или “C3.JustMoney.Data”, “C3.XXX.Model”

  • Генерируется Дизайнером
  • Включает все объекты данных конфигурации в виде классов (справочники, документы, регистры)
  • Через данные классы производится модификация данных в базе данных
  • Конфигурация может содержать несколько схем. Данная возможность позволяет обновлять, выгружать, загружать каждую схему самостоятельно
Менеджеры модели (справочников, документов, регистров)

Разрабатывая прикладное решение, разработчик работает с объектами модели, например справочник «Контрагент» или  документ «РасходнаяНакладная».

Соответственно, объекты модели принимают в значения полей эти же типы, а не идентификаторы и прочие простые типы языка программирования, например «РасходнаяНакладная.Контрагент = Покупатель», где «Покупатель», это экземпляр типа «Контрагент».

Конструирования прикладных типов модели происходит в менеджере модели.

Сборка “C3.ModelManager” или “C3.DataManager”.

  • Генерируется Дизайнером
  • Включает менеджеры доступа к данным. Менеджеры возвращают экземпляры классов справочников, документов
  • Через экземпляры классов справочников и документов (из сборки модели C3.JustMoney.Model, C3.XXX.Model) производится модификация данных в базе данных
Базовые классы форм элементов конфигурации
  • Генерируется Дизайнером
  • Сборка включает базовые классы форм элементов всех объектов во всех схемах конфигурации (справочники, документы, регистры)
  • Пользовательские формы в библиотеке C3.Accounting.Win, C3.ХХХ.Win наследуются от данных базовых классов

Сборка базовых классов форм “C3.JustMoney.Form”, “C3.XXX.BaseForm”.

Менеджеры форм (справочников, документов, отчетов, обработок)
  • Генерируется Дизайнером
  • Включает менеджеры доступа к формам объектов (формы элементов, списков). Менеджер форм возвращает экземпляры классов форм, из пользовательских модулей (C3.Accounting.Win, C3.ХХХ.Win)
  • Данные формы выводятся в MDI окне приложения

Сборка “C3.FormManager”.

Менеджер модулей объектов и модулей проведения

Платформой обеспечивается гарантированное выполнение предопределенных методов в модулях объектов и модулях проведения при записи или проведении экземпляров объектов, вне зависимости от контекста приложения, windows-приложение или web-приложение.

Примеры таких предопределенных методов – BeforeWrite, AfterWrite, Post, UnPost и т.п.

Применение таких методов можно сравнить с триггерами в базах данных, но с расширенными возможностями, например обращаться в таком методе в сторонний сервис или выполнять расчет итогов, а по каким то причинам прервать транзакцию и еще много чего, что в триггере базы данных невозможно.

Сборка “C3.ModuleManager”.

  • Генерируется Дизайнером
  • Включает менеджеры доступа к модулям объектов и проведения из пользовательских библиотек C3.Accounting.Module, C3.XXX.Module

как мы можем помочь?

Свяжитесь с нами в офисе или отправьте запрос онлайн.

ищете первоклассное решение для разработки приложения?