Краткое описание библиотек - 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- Планируется к удалению, здесь общий код для старых проектов не перешедших полностью на MVVMQSProjectsLib- Первая библиотека с общим кодом пока еще используется в очень старых проектах реализованных на напрямую на запросах к MySQL.- QSSaaS - Позволяет подключатся к сервису QS: Облако для хранения на нем базы данных приложения.
- QSScan - Немного упрощает работу со сканером.
- QSTelemetry - Отправляет телеметрию по использованию функций внутри приложения на сервера QS, помогает собрать статистику какими функциями пользуются, а какими практически нет.
QSWidgetLib- Тут наши старые GTK виджеты.