ЧЕРНОВИК
Темы на "пять"
Здесь описаны задания на реализацию, с указанием ключевых требований. Детальные требования обсуждаются при выборе студентом задания и подготовке ТЗ. При выполнении заданий этого уровня особое внимание уделено используемому инструментарию - системы контроля версий, багтреккеры, инструменты тестирования и т.д. Обязательно использование контроля версий, остальное - обсуждается.
Если при распределении тем при встрече с группой выяснится, что необходимо массово вспомнить работу с СКВ, определимся с проведением в рамках практики небольшого занятия по этому вопросу. Требовать того, чего не знаете (не потому, что не учили, а потому, что в курсах было мало времени уделено) - никто не будет, найдем возможность исправить ситуацию.
Предлагаются следующие темы заданий (указаны только ключевые требования, нюансы - обсуждаются):
- Удаленное слежение за работой ПК. Скрытое в трее .Net WinForms-приложение, отслеживающее, как минимум, включение (т.е. должно быть в автозагрузке) и входы/выходы из ждущего режима. При включении, перед выключением или выгрузкой приложения, при входе и выходе из спящего режима ПК сохраняется время этого события и информация о нем записывается в лог (хранится в БД?) на самой системе (где запущено приложение), и отправляется в составе запроса на сервер. В качестве серверной части - простейшее PHP-приложение, принимающее запрос, получающее из него данные о событии и предоставляющее доступ ко всему логу.
Приложение на наблюдаемом ПК должно быть в автозагрузке - имеет смысл поработать с инсталлятором, это громоздко для такого проекта (и с такой целью), но в учебных целях (и чтобы объем работы был пятерочный) полезно. Познакомитесь с событием Microsoft.Win32.SystemEvents.PowerModeChanged. Потребуется использовать хостинг (любой бесплатный с поддержкой PHP) для веб-сервиса, куда будут отправляться данные приложения (обсуждается, можем ограничится отправкой почты). Возможно богатое расширение функционала приложения.
- .Net WinForms-приложение, получающее данные о прогнозе погоды (скорость и направление ветра) с заданного сайта (https://www.windguru.cz/87721) и отслеживающее изменение прогноза (т.е. данные при запущенном приложении периодически обновляются и сохраняются в БД), нужна возможность при поступлении значений в заданном диапазоне (скажем, при прогнозе скорости ветра в 6.1 м/с при указанном пользователе диапазоне 5-7 м/с) оповещать пользователя тем или иным способом.
Ресурс с данными прогноза не имеет своего API для работы напрямую, поэтому для получения данных потребуется примитивный парсер возвращаемой страницы. Оповещения - используя почту (обсуждается). Отображение изменения прогноза - в обычном гриде, график строить не нужно.
Вспомнить или изучить для выполнения задания:
- элементы управления WinForms, в частности, WebBrowser, DataGridView.
- работа с классами WebRequest, HttpWebResponse.
- взаимодействие с СУБД (предлагаю SQLite, но допускается и другая реляционная или NoSQL встроенная СУБД).
- .Net WinForms-приложение, выполняющее чтение со структурированных доковских файлов (MS Word 2003). Данные файлы хранят таблицу с информацией о расписании консультаций: преподаватель, название дисциплины, дата и время консультаций с указанием конкретной академической группы. Приложению требуется прочитать эти данные, создать на их основе коллекцию объектов, описывающих расписание консультаций. Должна быть возможность ее сохранения (формат обсуждается - хоть XML-сериализация, хоть в БД), загрузки, а главное - сопоставления различных версий такого расписания, с демонстрацией расхождений.
Вспомнить или изучить для выполнения задания:
- ООП в .Net.
- элементы управления WinForms.
- взаимодействие с MS Word.
- технологии хранения данных.
- .Net WinForms-приложение (функционал которого вынесен в отдельный пользовательский элемент управления), осуществляющее импорт/экспорт данных из XML-файлов со строго определенной (и заранее известной) структурой, и отображающее считанные текстовые данные (конкретная запись выбирается в ListBoxe) в RichTextBox. Возможность поиска по содержимому записей (по заданному слову/фрагменту в тексте), удаления и добавления новых записей в БД (продумать ее структуру). Для хранения данных используется SQLite.
Вспомнить или изучить для выполнения задания:
- элементы управления WinForms, в частности, RichTextBox.
- возможности форматирования текста при использовании RTF.
- взаимодействие с СУБД SQLite.
- .Net WinForms-приложение для резервного копирования. Позволяет предварительно указать пути к сохраняемым папкам и файлам, и потом, по запуску, копирует указанные папки и файлы в некую временную папку, выполняет ее архивацию и перемещает архив (заливает на FTP, на облако, просто в некую папку и т.д.). Предоставить пользователю возможность указать отслеживание некоторых папок, и при изменении в них файлов (с момента прошлого бекапа) приложение должно предложить эти файлы также внести в архив (должен сформироваться список чекбоксов для предагаемых к сохранению файлов). Обычные указанные пользователем папки архивируются всегда, без проверки, менялось ли в них что-либо.
Основная особенность, позволяющая это задание относить к пятерочным - возможность генерирования bat-файла с учетом указанных пользователем путей к резервируемым данным, использование которого позволяет для резервного копирования обойтись без запуска этого приложения. Это существенно усложнит задание.
- GoogleMaps приложение, позволяющее упростить указание точек и их описания. Приложение считывает данные о точках из локального KML-файла (XML-файл с четко определенной структурой), и отмечает маркеры на гугл-карте.
Можно как веб-приложение, так и обычное WinForms. Используемые технологии в задании не оговорены.
- Развитие данного ресурса по практике. На текущий момент ресурс выглядит довольно примитивно, вследствие использования возможностей гитхаба, а не нормального хостинга, с возможностью реализации функций бэкэнда. Но даже без использования полноценной серверной части, возможно использовать бутстрап, проработать структуру ресурса (обсуждается), его оформление, использовать Jekyll и Disqus.
Вернуться к началу
Вернуться на стартовую страницу