Skip to content

bayurovsv/SystemForAutoUpdateProgram

Repository files navigation

Целью работы является проектирование и разработка системы автоматического обновления и версионного контроля приложений. Система должна поддерживать обновления приложений, а также проектов. Для реализации работы системы необходимо создать хранилище информации, в котором будут храниться версии приложений. В качестве таких хранилищ предполагается использовать: - файловая система; - база данных (SQLite); - сервер (база данных или файловая система); Исходя из представленных хранилищ система должна реализовывать следующие функции: - получения версии приложений; - сравнение версий приложений; - получения файлов версий; - скачивания приложений на компьютер пользователя; - настройка версий приложений; Система автоматического обновления и версионного контроля приложений должна представлять собой многопользовательское приложение, с возможностью одновременного использования сразу несколькими пользователями. Поэтому данная система будет состоять из двух клиентских приложений: - приложение администратора (тонкий клиент); - приложение пользователя (толстый клиент); Приложение администратора должно быть предназначено для продвинутых пользователей ответственных за формирование новых версий приложений и их дальнейший выпуск и представляет собой тонкий клиент, так как на нем не производятся никакие сложные расчёты. Данное приложение должно иметь следующий функционал:

  • формирование версий приложений
  • настройка версий приложений
  • загрузка версий приложений в хранилище

Формирование версий будет происходить следующим образом. Пользователь должен ввести название приложения далее указать номер сборки и выбрать директорию с приложение или проектом, из которого будет сформирована версия. После чего версия будет сохранена в хранилище. Далее он может приступить к настройке версии. Настройка версии должна осуществляется следующим образом. Вводится описание версии, например какие изменение были сделаны в проекте, какой добавлен функционал. Для включения в версионный контроль версии необходимо сделать версию актуальной с помощью установки флага актуальность. Также этот флаг служит для того, чтобы убрать версию из версионного контроля. После настройки версии пользователи получат уведомление о выходе новой версии определенного приложения. Исходя из интервью были установлены договорённости что администратор не вправе удалять версии приложений, он может только убирать их из версионного контроля. Приложение пользователей должно быть предназначено для обычных пользователей и представлять собой толстый клиент, так как все действия над информацией будут производиться в самом приложении. Данное приложение должно иметь следующий функционал: - получение версий приложений - сравнение версий приложений - загрузка версий приложений на компьютер При запуске приложение должно отправлять запрос на сервер для получения всех актуальных версий приложений. Далее сравнить их с установленными и предоставить пользователю уведомление о состоянии приложений, которые подвержены версионному контролю. Если же версии приложений отличаются, то приложение предложит пользователю обновить приложение до последней актуальной версии приложения, далее все эти действия будут производиться каждые 30 минут или выполняться самим пользователем по нажатию кнопки-. Также в данном приложении должен быть предусмотрен функционал для добавления приложения, то есть установки приложения которого нет у пользователя, но оно подвержено версионному контролю. Необходимо предусмотреть настройки приложения, в которых пользователь может выбрать место сохранения приложений, а также для продвинутых пользователей должна быть возможность сохранения всех актуальных версий приложений. В приложении следует предусмотреть обработку ошибок. Для стабильной работы программы необходимо обрабатывать ошибки таким образом, чтобы обеспечить максимальную отказоустойчивость. В случае возникновения ошибок, их необходимо зафиксировать, записать в специальный лог-файл. В случае критических ошибок – уведомить о них пользователя. Информирование об ошибках пользователя происходит при помощи уведомлений. Для демонстрации функционала приложения будет создано серверное приложение, для обработки sql запросов. Приложения должны отправлять sql запрос на сервер, после этого серверное приложение разберёт полученный запрос на ключевые составляющие в зависимости от них выполнит запрос в базе данных, затем вернёт результат приложению. Для построения пользовательских интерфейсов системы выбрана технология WPF, которая является частью платформы .NET и представляет собой подсистему для построения графических интерфейсов. Приложения, построенные на WPF, основаны на DirectX, поэтому значительная часть работы по отрисовке графики ложится на графический процессор видеокарты, что позволяет воспользоваться аппаратным ускорением графики. Важные преимущества WPF: - возможность написания графического интерфейса с помощью специального языка разметки XAML, основанного на XML и представляющего альтернативу программному созданию графики и элементов управления: - возможность создавать кастомные элементы управления Для создания более приятного интерфейса используется библиотека Material Design WPF. Данная библиотека позволяет придавать элементам объём, при помощи теней, а также использовать различные эффекты. Тестирование функций будет осуществляться с помощью NUnit. NUnit — это портированный с языка Java фреймфорк для тестирования, т.е. тестирования отдельных участков кода, например методов или классов. NUnit позволяет в любой момент быстро убедится в работоспособности кода. Если программа не является совсем простой и включает множество классов и методов, то для её проверки может потребоваться значительное время. Естественно, что данный процесс лучше автоматизировать. Использование NUnit позволяет проверить код программы без значительных усилий и не занимает много времени. Юнит тесты классов и функций являются своего рода документацией к тому, что ожидается в результате их выполнения. И не просто документацией, а документацией, которая может автоматически проверять код на соответствие предъявленным функциям. Это удобно, и часто тесты разрабатывают как во время написания кода, так и до. Разработка через тестирование - крайне популярная технология создания серьезного программного обеспечения. На данный момент существуем множество программ автоматического обновления приложений, но ни одна из них не поддерживает обновление проектов и приложений одновременно.

Функционал системы реализован в виде библиотеки классов. Основные задачи, которые ставились перед программным продуктом: - формирование версий приложений подверженных версионному контролю; - получение версии приложений; - сравнение версий приложений; - получения файлов версий; - сохранение приложений на компьютер пользователя; - сохранение приложений в хранилище (база данных, файловая система); - настройка версий приложений; Приложение администратора предназначено для продвинутых пользователей ответственных за формирование новых версий приложений и их дальнейший выпуск и представляет собой тонкий клиент. Формирование версий происходит следующим образом необходимо ввести название приложения далее указать номер сборки и выбрать директорию с приложение или проектом, из которого будет сформирована версия. Настройка версии осуществляется следующим образом. Вводится описание версии, например какие изменение были сделаны в проекте, какой добавлен функционал. Для включения в версионный контроль версии необходимо сделать версию актуальной с помощью установки флага актуальность. Также этот флаг служит для того, чтобы убрать версию из версионного контроля. Также необходимо выбрать файл для запуска приложения.

Приложение пользователей предназначено для обычных пользователей и представлять собой толстый клиент. При запуске приложение отправляется запрос на сервер для получения всех актуальных версий приложений. Далее происходит сравнение с уже установленными версиями. Если же версии приложений отличаются, то приложение предложит обновить приложение до последней актуальной версии приложения, далее все эти действия будут производиться каждые 30 минут или же можно проверить версии при помощи отдельной кнопки. В приложении предусмотрена установка приложений, которые подвержены версионному контролю. Предусмотрены настройки приложения, в которых пользователь может выбрать место сохранения приложений, а также возможность сохранения всех актуальных версий приложений. В приложении предусмотрена система обработки ошибок. В случае возникновения ошибок, происходит их фиксация и запись в лог-файл. В случае критических ошибок – уведомить о них пользователя. Информирование об ошибках пользователя происходит при помощи уведомлений. Для демонстрации функционала приложения создано серверное приложение, для обработки sql запросов. Приложения отправляют sql запросы на сервер, после этого серверное приложение разбирает полученные запросы на ключевые составляющие в зависимости от них выполняет их в базе данных, затем возвращает результат приложениям.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages