Краткое описание библиотек - QualitySolution/QSProjects GitHub Wiki

В библиотеках мы придерживаемся концепции разделение функциональности на слои:

  • QS.Unit.Core - библиотека с основной бизнес логикой модуля(пакета функциональности), обычно являющейся общей для всех типов приложений. (принято в процессе переходя на dotnet, в качестве разделения от кода поддерживающего только фраймворк)
  • QS.Unit.Desktop - библиотека с основной логикой UI приложения для компьютера. Они не не должны подключатся к проектам серверных служб.
  • QS.Unit.Gtk - Библиотека с реализацией всего связанного с Gtk2 интерфейса.

Где Unit - название библиотеки\модуля. Поэтому ниже окончания библиотек отдельно не описываются.

Список библиотек

  • Binding - Библиотеки биндинга для виджетов GTK, ранее развивались отдельным репозиторием.
    • Gamma.Binding - Непосредственно биндинг и виджеты
    • Gamma.Utilities - Различные помощьники, так как иногда используются отдельно биндинга.
  • Modules - Изначально предполагалось что здесь будут библиотеки с разделяемой между проектами бизнес функциональностью, например модуль банков. В последствии граница размылась.
    • CustomFields - Позволяет добавлять в объекты пользовательские поля, когда пользователь сам может добавить поле и указать его тип. В базе данных динамически создаются колонки. Модуль работает напрямую с MySQL.
    • QS.Banks - Модуль позволяет добавить в проект банковские счета и справочник банков обновляемый с сайта центра-банка.
    • QS.BusinessCommon - Общие бизнес справочники. В частности справочник единиц измерения.
    • QSAttachment - библиотека позволяющая прикреплять к объектам программы файлы и хранить их в базе.
    • QSCurrency - Получение текущих курсов валют с центра банка и конвертация между валютами.
    • QSDocTemplates - Позволяет работать с редактируемыми шаблонами документов. Текущая реализация работает с документами в формате odt.
  • QS.BaseParameters - Модуль для работы с параметрами базы.
  • QS.Configuration - Немного упрощает и централизует хранение конфигурации приложения на компьютере. Для хранение конфигурации используется ini файл в папке пользователя.
  • QS.Features - Функциональность позволяющая работать с серийными номерами и включать выключать возможности продуктов в зависимости от приобретенных лицензий.
  • QS.HistoryLog - Позволяет добавить журналирование всех изменений в документах и справочниках добавленных в отслеживание.
  • QS.LibsTest - Здесь лежать тесты NUnit тестирующие функциональность библиотек в этом списке. НЕ ЗАБЫВАЙТЕ писать тест на все более-менее сложные функции библиотек. Особенно если на конкретное поведение библиотеки рассчитывает внешний код.
  • QS.NewsFeed - Библиотека позволяющая загружать ленты новостей в формате Atom, формировать из них меню новостей для пользователя, сохраняя при этом в базу данных id прочитанных новостей для каждого пользователя отдельно.
  • QS.Project - Главная библиотека любого приложения построенного на наших технологиях. Тут вся функциональность которая используется в любом из наши проектов. Сюда пытаемся добавлять только то что используется большинством наших приложений.
  • QS.Report - Библиотека позволяющая показать и распечатать отчет в формате RDL.
  • QS.Testing - Тут общий код помогающий тестировать приложения. Тут напрямую не размещаем тесты, а только всякие помощники и базовые классы для создания тестов внутри проектов.
  • QS.Updater - Модуль позволяющий обновлять как приложение так и базу данных приложения. Модуль может связываться с сервером и узнавать есть ли обновления для программы.
  • QS.Utilities - Библиотека для различных простеньких утилит\помощников, которые не связаны ни с одним модулем и могут использоваться отдельно.
  • QSExtraGammaWidgets - Библиотека запланирована к удалению. Два виджета были вынесены в отдельную библиотеку просто чтобы обойти баг в MonoDevelop обработки виджетов наследуемых друг от друга в одной библиотеке. Сейчас этого бага нет. Но сами виджеты устарели.
  • QSOrmProject - Планируется к удалению, здесь общий код для старых проектов не перешедших полностью на MVVM
  • QSProjectsLib - Первая библиотека с общим кодом пока еще используется в очень старых проектах реализованных на напрямую на запросах к MySQL.
  • QSSaaS - Позволяет подключатся к сервису QS: Облако для хранения на нем базы данных приложения.
  • QSScan - Немного упрощает работу со сканером.
  • QSTelemetry - Отправляет телеметрию по использованию функций внутри приложения на сервера QS, помогает собрать статистику какими функциями пользуются, а какими практически нет.
  • QSWidgetLib - Тут наши старые GTK виджеты.

Смотри так же