Разработка веб-приложения с помощью ASP.NET MVC Framework для чтения электронных книг
Анализ наиболее популярных форматов для электронных книг. Структура базы данных, ее объектное представление и преимущества использования. Обзор возможных для разработки на ASP.NET языков программирования. Разработка клиентской части веб-приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.07.2016 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
94
Разработка веб-приложения с помощью ASP.NET MVC Framework для чтения электронных книг
Введение
Книгопечатная продукция утрачивает свои позиции на мировом рынке и к 2017 году число книг, проданных в электронном формате, сравняется и продажами бумажных экземпляров, а потом и неминуемо обгонит их. Это обусловлено широким распространением смартфонов, планшетов и стоимостью электронных книг, которые как правило дешевле печатных изданий, так как очевидно, не требуют материалов для производства каждого экземпляра. На рисунке 1 приведены данные опубликованные международной сетью компаний, предлагающих профессиональные услуги в области консалтинга и аудита PwC (PricewaterhouseCoopers) [1] [1]
Рисунок 1 - Статистика прибыли от продажи книг по данным компании PwC
На графике показано соотношение доходов, в зависимости от года, получаемых от выпуска книг в электронном и бумажном виде, а также количество устройств для чтения электронных форматов.
В настоящий момент существует большое количество решений для чтения электронных книг, большая часть которых состоит в программном обеспечении, устанавливаемом на устройстве пользователя. Приложения на мобильных телефонах, планшетах и компьютерах имеют ряд преимуществ, таких как скорость работы, использование библиотеки пользователя и широкие возможности для разработчиков.
Недостатком описанных выше приложений является привязка пользователя к одному устройству, на котором он обычно читает. При переходе, например, с мобильного телефона на компьютер или планшет, пользователь вынужден использовать другое программное обеспечение, загружать книгу и тратить время на поиск места, где чтение было прервано, что занимает не так мало времени.
Благодаря последним стандартам представления данных в сети интернет, таким как HTML5 и CSS3, веб-приложения могут приблизиться по функциональности и скорости работы к нативным приложениям. Веб-приложение может решить проблему синхронизации при использовании разных устройств для чтения, предоставляя единый интерфейс для любых устройств учитывая при этом особенности управления и разное разрешение экранов.
Другим преимуществом веб-приложений можно считать возможность разработчика вносить изменение в приложение по функционалу, стабильности работы, внешнего вида и любые другие, без необходимости в обновлении программного обеспечения пользователем.
1. Специальная часть
1.1 Постановка задачи
В связи тем, что уже в текущее время люди имеют не одно, а несколько устройств, для чтения, они могут выбирать устройство в зависимости от ситуации. Например, в метро, где в час пик недостаточно пространства для планшета или электронной книги, самым распространенным устройством является смартфон. На работе или дома удобнее пользоваться компьютером или планшетом. При смене устройств возникает необходимость иметь копии книг на каждом устройстве.
Целью настоящей работы является разработка веб-приложения для чтения электронных книг на любых современных устройствах, которые для этого подходят. Благодаря приложению доступ ко всем загруженным книгам может быть осуществлен с любого устройства, имеющего доступ в интернет. Если предполагаются условия с проблемным доступом к сети или его отсутствием, имеется возможность загрузить книги на устройство заранее и использовать в будущем.
Для разработки программного обеспечения, которое бы учитывало описанные недостатки существующих решений, необходимо:
Произвести обзор веб-приложений, которые предоставляют интерфейс для чтения книг.
Произвести обзор готовых библиотек, которые можно использовать для разработки интерфейса приложения.
Произвести обзор популярных форматов электронных книг.
Произвести обзор документации выбранных форматов.
Разработать структуру базы данных.
Разработать структуру приложения.
Разработать классы компонентов приложения.
Разработать веб-интерфейс приложения.
Разработать документацию.
Произвести сравнительный анализ книг в электронном и бумажном вариантах.
Произвести оценку качества разработанного приложения.
Обзор сервисов, предоставляющих API машинного перевода
Для реализации функции перевода слов на язык пользователя, с других языков, необходимо выбрать сервис, предоставляющий перевод через API. Необходим сервис, выполняющий следующие функции:
Предоставлять работу с большим количеством пар языков
Определять язык переданного слова автоматически
Возможность бесплатного использования или не высокую стоимость
Google Translate API - сервис, предоставляющий API машинного перевода использующий статистический метод обучения, то есть он основан не на подготовленных заранее словарях, а обучается на основе анализа текстов и веб-страниц, развивается с 2006 года. Преимущества данного сервиса [2] [2]:
Высокая точность перевода, по сравнению с аналогами и постоянное увеличение точности перевода, за счет появления новых данных в сети Интернет
Актуальные переводы слов, учитывающие последние тенденции в языках
Обширная документация и готовые примеры кода для взаимодействия с API
Работа с 64 языками и любыми парами из них.
Недостатки:
Один вариант перевода для каждого слова
Платное использование
Bing Translator - сервис компании Microsoft, под брендом Bing. Так же использует обучение на статистических данных и имеет высокую точность перевода. Развивается с 2009 года, поддерживает работу с 45 языками и любыми парами из них [3] [3].
Преимущества:
Бесплатное использование до 2000000 символов в месяц
Высокое качество перевода
Работа с 45 языками и любыми парами из них
Готовые примеры кода на C# для взаимодействия с API
Недостатки:
Один вариант перевода для каждого слова
Невозможность кэшировать результаты перевода
Яндекс API Словарь - сервис, направленный на перевод и предоставление дополнительной информации о словах. Основан на статистическом переводе, как указано на странице API, но отличающийся от описанных выше, так как использует готовые словари сторонних производителей и специализируется на переводе отдельных слов [4] [4].
Преимущества:
Бесплатное использование
Возможность кэшировать полученные данные
Несколько вариантов перевода одного слова
Русскоязычная документация
Недостатки:
Среднее качество перевода
В варианты перевода могут попадать слова не относящиеся к слову, а участвующие в примере его употребления
Ограничение количества запросов в сутки, равное 10000
Все описанные сервисы имеют свои преимущества и недостатки. Для приложения необходимы возможности, которыми полностью не располагает ни один описанный сервис. Поэтому принято решение использовать все 3 сервиса, учитывая их особенности.
В разрабатываемом приложении запрос на перевод будет обработан параллельно через API Яндекс Словарь и Bing Translator. При получении перевода через API Яндекс Словарь результат будет кэшироваться в базе данных на сутки, а результат Bing Translator при отсутствии совпадения с вариантами, предложенными Яндексом, добавляется к ним.
Если из предыдущих двух сервисов ни один не возвратил перевода, происходит обращение к API Google.
В результате мы получаем бесплатный перевод до 10000 слов в сутки и остальные слова по 20$ за каждые 2000000 символов.
1.2 Обзор аналогичных программных продуктов
book-online.com.ua -- один из многих сайтов, предоставляющих уже имеющиеся у него в базе книги, доступ к которым предоставляется бесплатно и может быть в любое время прекращен правообладателем. Используемый подход больше похож на попытку представить длинный текст средствами для статей.
Недостатков реализуемого этим сервисом подхода гораздо больше чем достоинств. Основные из них, это неотформатированный текст под экран пользователя, отсутствие навигации по книге, длина страницы не зависит от клиентского устройства, в связи с чем появляется вертикальная прокрутка.
Интерфейс страниц противоречит принципам совместимости интерфейсов, которые подразумевают перенос прошлого опыта использования, на новые интерфейсы. Это, как правило, вызывает негативное отношение, так как заставляет искать выход из известных ситуаций новыми способами.
Описанное выше снижает эстетическую привлекательность сайта в целом и удобство использования.
fictionbook.in -- функционально похож на book-online.com.ua, но имеет отличия в интерфейсе.
Больше внимания уделено персонализации вешнего вида, фон страниц всегда совпадает с фоном области с текстом, доступно изменение размера шрифта и цвета фона. Это несомненно снижает нагрузку, требуемую для концентрации внимания пользователей и приводит к более легкому восприятию информации из текста.
Негативное впечатление производит наличие рекламы в области текста. Отсутствует версия для мобильных устройств, большое количество пространства заполнено элементами не относящихся к управлению содержимым страницы.
bookrix.com - функции приложения не подразумевают ничего, кроме вывода текста и возможности оставлять закладки. Интерфейс для чтения напоминает устройство с e-ink экраном, что несомненно повышает его совместимость, так как пользователь переносит опыт из чтения электронных книг на веб-приложение.
Но копирование интерфейса физического устройства на экран также является недостатком. Имитация физических кнопок, наличие которых обусловлено особенностями e-ink экранов и размерами физического устройства, противоречит устоявшимся стандартам представления активных элементов веб-страниц. Недостатком так же является фиксированный размер страниц, что приводит к большому не используемому пространству на мониторе компьютера и странице превышающей размер экрана на мобильных устройствах.
24symbols.com -- испанский сервис, один из крупнейших по продаже электронных книг по подписке, предоставляет возможность читать купленные книги через браузер. В первую очередь сервис ориентирован на зарубежный рынок. Русскоязычная литература в нем не распространяется.
Один из главных недостатков сервиса, с точки зрения пользователя, это невозможность загружать уже имеющиеся книги. Поэтому пользователю необходимо иметь какую-то альтернативу для чтения уже имеющихся книг или покупать подписку, чтобы иметь к ним доступ через приложения или веб-интерфейс на 24symbols.com.
В отличие от рассмотренных выше сервисов, интерфейс чтения отлично спроектирован и отвечает целям пользователей, основан на опыте использования большого количества современных веб-сайтов. Элементы управления выделены на фоне не активных элементов страницы. Информация на странице распределена и не создает напряжения при поиске или запоминании. Все это создает высокую эстетическую привлекательность и простоту работы.
Недостатком можно считать отсутствие функции перевода слов на язык пользователя, так как в основном книги выходят всегда на небольшом количестве языков, пользователи, плохо владеющие иностранными языками вынуждены ждать перевода на знакомый язык, а сам перевод оставляет желать лучшего, что часто касается технической литературы.
bookmate.com -- российский сервис, аналог 24symbols.com, но учитывающий некоторые его недостатки, которые, в основном, заключены в разном менталитете, по отношению к авторским правам и покупкам в интернете между странами СНГ и Европой. Одно из отличий bookmate.com от предыдущих сервисов, это возможность загружать собственные книги и параллельно пользоваться книгами оп подписке.
Веб-интерфейс для чтения близкок по скорости и внешнему виду к нативным приложениям, есть возможность перевода слов, добавления комментариев к произвольным фрагментам текста.
Недостатком можно считать очень общий перевод слова, он предоставляется в единственном варианте и может не соответствовать контексту. Для чтения специализированной литературы он мало пригоден, так как слова часто имеют различное значение в зависимости от контекста, что особенно заметно в не художественной литературе.
Сравнение рассмотренных аналогов представлено в таблице 1.
Таблица 1 - Сравнительная таблица аналогичных систем
Загрузка книг |
Длина страницы текста под размер экрана |
Перевод слов |
Интерфейс для мобильных устройств |
Функция закладки |
Переход по оглавлению |
Работа оффлайн |
||
24symbols.com |
- |
+ |
- |
+ |
+ |
+ |
- |
|
bookmate.com |
+ |
+ |
+ |
+ |
+ |
+ |
- |
|
book-online.com.ua |
- |
- |
- |
- |
- |
- |
- |
|
fictionbook.in |
- |
- |
- |
- |
- |
- |
- |
|
bookrix.com |
- |
+ |
- |
+ |
+ |
+ |
- |
Обзор форматов электронных книг
В настоящее время нет единого устоявшегося формата для электронных книг. Многие разработчики мобильных устройств продвигают свои форматы, многие из которых используются на узком наборе устройств и не имеют открытой документации. Для примера может быть рассмотрен формат MOBI, который используется только на устройствах Amazon и имеет кроссплатформенное ПО для чтений, с закрытым исходным кодом. Таблица 2 содержит обзор функционала самых популярных, на данный момент, форматов [5] [5].
Таблица 2 - Возможности популярных форматов электронных книг
Формат |
Расширение |
Открытый стандарт |
DRM* |
Word wrap** |
Размеры шрифта |
Форматирование |
Выравнивание |
Цвет шрифта |
Списки |
Картинки |
Таблицы |
Pre*** |
Ссылки |
|
Обычный текст |
txt |
Да |
Нет |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
|
HTML |
html |
Да |
Нет |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
|
Mobipocket |
mobi, prc |
Нет |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
|
FictionBook |
fb2 |
Да |
Нет |
Да |
Нет |
Да |
Нет |
Нет |
Нет |
Да |
Да |
Да |
Да |
|
EPUB |
epub |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
|
ISilo 3.x/4.x |
pdb |
Нет |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
|
eReader |
pdb |
Нет |
Да |
Да |
Да |
Да |
Да |
Нет |
Нет |
Да |
Нет |
Нет |
Да |
|
MS Reader |
lit |
Нет |
Да |
Да |
Да |
Да |
Да |
Нет |
Да |
Да |
Да |
Нет |
Да |
Из приведенных выше форматов, самым популярным является EPUB, он является основным для издателей за пределами России и поддерживается большинством программ и устройств. Российские издатели тоже выпускают в нем книги, но с ним конкурирует разработанный Дмитрием Грибовым формат FB2.
EPUB представляет собой zip-архив с определенной структурой. Сам текст книги представлен в ряде html документов, размер которых ограничен, поэтому почти всегда в один html документ не удается поместить весь текст и его разбивают на главы по файлам. В файле EPUB так же могут быть файлы стилей, шрифты, изображения, что делает его очень похожим на обычную страницу HTML. Описание всех файлов, находящихся в epub-контейнере приведено в файле content.opf который содержит разделы с описанием типов файлов, порядком их следования при просмотре книги и оглавлении [7] [6].
В fb2 распространяется большое количество книг в странах СНГ. По сравнению с epub он имеет гораздо более простую структуру, так как основан на языке разметки XML рекомендованным Консорциумом Всемирной паутины и фактически представляет собой свод общих синтаксических правил [8] [7]. XML имеет очень широкий спектр применения, он используется для обмена информацией между программами, структурирования данных, а также для создания на его основе более специализированных языков разметки (например, XHTML [9] [8].
Для работы с XML существует большое количество библиотек на разных языках. В остальном мире fb2 мало распространен.
Обзор формата EPUB
EPUB официально представлен в сентябре 2007 года ассоциацией IDPF (International Digital Publishing Forum). Текущая версия формата 3.0.1, спецификация этой версии была представлена 26 июня 2014 года. Но так как распространение последних версий не всегда происходит быстро, из-за необходимости их реализации в огромном количестве программного обеспечения, поддержки электронных книг как устройств и у издателей. В разрабатываемом приложении необходима возможность работы и с предыдущими версиями, такими как epub 3.0 и 2.1.
EPUB 3 состоит из четырех спецификаций [10] [9]:
EPUB Publications 3.0, который определяет семантику на уровне приложений и общие требования соответствия.
EPUB Content Documents 3.0, который определяет профили XHTML, SVG и CSS для использования в контексте EPUB публикации
EPUB Open Container Format (OCF) 3.0, который определяет формат файла и модели данных которые инкапсулируют набор связанных ресурсов в одном файле (ZIP) EPUB контейнере.
EPUB Media Overlays 3.0, который определяет формат и модель обработки для синхронизации текста и аудио.
EPUB 2.0 был представлен в октябре 2007 года и обновлен до 2.0.1 в сентябре 2010. Он состоит из трех спецификаций:
Open Publication Structure (OPS) 2.0.1, описывает формат документов, входящих в структуру файла.
Open Packaging Format (OPF) 2.0.1, описание структуры конкретного файла .epub через формат XML.
Open Container Format (OCF) 2.0.1, описывает все файлы, содержавшиеся в контейнере.
Приведенные спецификации предоставляют очень широкие возможности, что породило разную реализацию формата: как минимум - две платформы, поддерживающие HTML5 и не полностью совместимые друг с другом (iBooks и Android). Существует немалое количество старых устройств, поддерживающих небольшое подмножество HTML, со своими ограничениями и ошибками.
Open Packaging Format 2.0.1
Целью OPF является описание механизма, с помощью которого различные компоненты публикации OPS связаны друг с другом и обеспечивают дополнительную структуру и семантику в формате. Это реализуется двумя XML файлами с расширения .opf и .ncx.
OPF файл описан в Open Packaging Format (OPF) 2.0.1 и имеет тип application/oebps-package+xml, как правило имеет название content.opf. Содержит корневой элемент package и четыре вложенных в него элемента: metadata, manifest, spine и guide.
Metadata, в нем описывает основную информацию о документе, такая как язык, авторы, издательство, уникальный идентификатор, название, составители и другое. Метаданные описаны на основе открытой спецификации Dublin Core (DC). Элементы Dublin Core имею пространство имен dc [11][10].
Каждая книга имеет свой уникальный номер, ссылка на элемент с ним или его значение может содержаться в элементе package или в метаданных.
Manifest как правило идет вторым блоком, который описывает каждый файл внутри контейнера. Описание состоит атрибутов: уникально идентификатора id элемента, ссылки href на файл относительно opf файла и описание типа данных media-type. Структура файла opf показана на рисунке 2.
Spine является третьим элементом в opf-файле. Может быть только один, содержит один или более элементов itemref которые ссылаются на элементы из manifest, но только на те, которые описаны в Open Publication Structure (OPS) 2.0.1. Spine определяет порядок следования этих элементов при работе с книгой.
Guide - элемент необязательный, может использоваться с целью описания основных структурных компонентов книги, например ссылок на файл с содержанием [12] [11]. Пример структуры opf файла приведен на рисунке 3:
Файл ncx не является частью спецификации EPUB но используется во всех EPUB-контейнерах. Пример структуры приведен на рисунке 3. Он предназначен для описания оглавления книги. Имеет mime-тип application/x-dtbncx+xml и, как правило, название toc.ncx.
Из этого файла будут использоваться только элементы navMap, где перечислены разделы книги.
Open Publication Structure 2.0.1
OPS определяет возможности и типы данных для содержания книги. Каждый документ должен быть в формате XHTML и иметь mime-тип application/xhtml+xml. Пример структуры файла соответствующего спецификации OPS приведен на рисунке 4. Стиль содержания может быть представлен с помощью части функций CSS 2.0 определенных в OPS Style Sheets. Это специальный синтаксис с требованиями поддержки только части свойств CSS и добавляющий несколько пользовательских свойств.
Изображения могут быть представлены как PNG, JPEG, GIF или SVG файлы имеющие mime-типы: image/png, image/jpeg, image/gif и image/svg+xml.
Для текста должна использоваться кодировка Unicode, т. е. UTF-8 или UTF-16. Это требование необходимо для возможности использования большого количества языков и корректного отображения специальных символов [13] [12].
Open Container Format 2.0.1
EPUB-файл представляет собой группу файлов, подчиняющихся описанным выше стандартам и заключенных в ZIP архив. Данная спецификация описывает файлы внутри архива и их расположение. В архиве должно присутствовать два обязательных файла mimetype и container.xml. Пример расположения файлов в EPUB контейнере приведен на рисунке 5.
Файл mimetype и содержит текст в формате ASCII, со строкой application/epub+zip. Это единственный файл, который не должен быть архивирован. Создан для быстрой идентификации типа файла в программном обеспечении.
Далее спецификация определяет наличие директории META-INF, которая должна содержать файл container.xml, структура которого приведена на рисунке 6. Он содержит указание о местоположении .opf файла и другую необязательную информацию.
Все остальные файлы (OPF, NCX, XHTML, CSS и файлы изображений) обычно располагаются в директории с именем OEBPS, но это не всегда выполняется, путь к каждому из них описывается в блоке manifest файла opf [14] [13].
Пример структуры файлов:
Обзор формата FictionBook 2
Формат FB2 представляет собой единый XML-файл, содержащий внутри себя все данные. В отличие от EPUB, он не определяет стиль текста и его визуальное отображение. Основная цель формата - структурировать данные без привязки к каким-либо размерам или единицам измерения так, чтобы внешний вид определялся настройками пользователя, разработчика программного
обеспечения или форматом, в который книга будет преобразована.
FB2-документ состоит из объявления XML и корневого элемента FictionBook.
Раздел FictionBook состоит из вложенных подразделов, располагающихся в порядке, в котором они описаны ниже, порядок следования элементов должен соблюдаться. Пример структуры раздела FictionBook приведен на рисунке 7.
Рисунок 7 - Общая структура FB2 документа
Раздел description содержится только в единственном числе. Он описывает данные о книге, такие как сведения об авторе, издателе, языке, оригинале книги, обложку, даты и другую информацию.
Раздел включает в себя приведенные ниже элементы, порядок их следования должен соблюдаться:
title-info - основные данные о книге, включает в себя подразделы:
genre - информация о жанре книги. Список возможных жанров также определен в формате. Каждая книга может иметь не менее одного жанра.
author - содержит информацию об авторе книги, может содержаться один и более авторов. Возможны следующие вложенные тэги:
first-name - имя
last-name - фамилия
middle-name - отчество
nickname - ник
email - адрес электронной почты.
book-title - название книги
annotation - аннотация книги. Возможны следующие вложенные тэги: p, poem, cite, subtitle, table, empty-line.
keywords - перечисление ключевых слов, которые могут использоваться для поиска.
date - дата написания книги.
coverpage - обложка книги. Внутри может содержать только тэг image.
lang - язык на котором написана книга.
src-lang - содержит язык оригинала книги, если книга была переведена, то значение отличное от lang.
translator - информация о переводчике книги. Может содержать теги аналогичные author.
sequence - сведения о том, к каким сериям относится книга, если она является частью серии книг.
src-title-info - данные об оригинале книги.
document-info - содержит информацию о самом файле FB2.
author - содержит информацию об авторе документа. Возможны следующие вложенные тэги:
first-name - имя
last-name - фамилия
middle-name - отчество
nickname - ник
email - адрес электронной почты
program-used - в виде списка могут быть перечислены названия программ используемых при составлении книги.
date - дата создания файла.
src-url - URL страницы, откуда взят текст для подготовки документа.
src-ocr - составитель книги, тот кто ее оцифровал.
id - уникальный идентификатор документа FB2 который назначается каждой новой книге, которая была создана.
version - текущая версия конкретной книги в электронном виде.
history - история создания и изменения документа. Вложенные тэги: p, poem, cite, subtitle, table, empty-line с соответствующим содержанием. Описание истории изменений в книге, написанных в свободном стиле.
publish-info - сведения об издании книги, которая была использована как источник при подготовке документа.
custom-info - любая другая информация.
Обязательны разделы title-info и document-info, а остальные добавляются при необходимости. Пример структуры элемент description приведен на рисунке 8.
Раздел body также содержится в единственном числе, в нем располагается сам текст книги, разделенный на разделы или главы элементами section, которые могут быть вложенными и хранить свое имя в атрибуте name. На рисунке 9 изображена структура элемента body.
image - изображение, которое будет отображаться в начале
title - заголовок книги или раздела
epigraph - эпиграф
section - раздел книги, глава или другая часть. Может включать в себя следующие разделы:
title - заголовок раздела
epigraph - эпиграф
image - изображение, которое будет отображаться в начале.
annotation - аннотация к разделу. Возможны следующие вложенные тэги: p, poem, cite, subtitle, table, empty-line.
Рисунок 8 - Пример структуры элемента description в документе FB2
Одно из двух. Либо подраздел section (одно или более вхождений); либо форматированный текст с картинками - тэги p, poem, cite, subtitle, table, empty-line, image, table , но первый тэг не может быть image.
Рисунок 9 - Пример разметки в элементе body файла fb2
1.3 Формирование требований к приложению
Исходя из обзора аналогичных решений и спецификаций выбранных форматов можно сформировать требования к функциональности разрабатываемого приложения:
Текст книг необходимо разбивать на страницы, исходя из характеристик устройств, на которых открыто приложение.
Необходимо разработать механизм, позволяющий использовать приложение без доступа к сети.
При наличии оглавления в книге, должна быть реализована возможность перехода по нему.
При отличии языка книги от языка пользователя и наличии доступа к сети интернет, необходимо реализовать возможность перевода слов.
Необходимо разработать систему закладок.
Должна присутствовать работа с жестами для сенсорных экранов.
Текст на странице должен разбиваться на колонки, если ширина экрана больше его длинны.
Необходимо обеспечить корректное отображение на экранах с разрешением от 320x240px.
Разделение прав доступа между пользователями, к загруженным книгам, должно поддерживаться через авторизацию.
Веб-приложение должно поддерживать работу с форматами книг EPUB 2.0.1, EPUB 3 и FB2
Исходные данные
файлы электронных книг.
данные авторизации пользователей
Выходные данные
вывод обработанного приложением содержания входного файла в html
результаты перевода слов
Обзор средств разработки.
ASP.NET Framework основан на платформе .NET. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR) [15] [14]. CLR - это общеязыковая среда исполнения, которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду. Например, среда выполнения позволяет создавать поток, а значит, во всех языках программирования, использующих эту среду, могут создаваться потоки. Фактически во время выполнения программы в среде CLR неизвестно, на каком языке программирования разработчик написал исходный код. А это значит, что можно выбрать любой язык программирования, который позволяет проще всего решить данную задачу. Разрабатывать программное обеспечение можно на любом языке программирования, если используемый компилятор этого языка предназначен для CLR. В данный момент CLR может работать с большим количеством языков [16] [15].Наиболее популярными и развивающимися, на данный момент, являются Visual Basic .NET и C#..
Visual Basic .NET (VB.NET) -- это объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic (VB), реализованный на платформе Microsoft .NET. VB.NET не имеет обратной совместимости с более ранней версией (Visual Basic 6.0). Развитие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (Migration Wizard); однако, как правило, после конвертации требуется существенная ручная доработка текстов. Visual Basic.NET в настоящее время является одним из наиболее популярных языков программирования. Хотя он уступает по популярности таким языкам, как C++, C#, Java в силу различных причин, однако по возможностям и своему потенциалу выше перечисленным языкам мало в чем уступает [17] [16]. С момента создания в 2002 году VB.NET был призван заменить распространенный на тот момент Visual Basic 6, а новый язык получил название VB 7. В то же время VB.NET, имея схожий синтаксис, сильно отличался от своего предшественника. С 2002 года VB.NET прошел большой путь. Текущая версия языка - VB.NET 2013 [18] [17].
C# разрабатывался как язык программирования прикладного уровня для CLR и зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая представляет собой стандартную библиотеку классов платформы .NET. Присутствие или отсутствие тех или иных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. С развитием CLR параллельно развивается и сам C#, так происходило на всех ранних версиях. Такая параллельная эволюция будет наблюдаться и в дальнейшем, хотя сам язык может получать обновления, не связанные напрямую с CLR, как это было в 4 и 5 версии, при добавлении LINQ и введении новых принципов написания многопоточных приложений. CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены "классические" языки программирования.
Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др. [19] [18]. Последние обновления всей системы .NET, планирующиеся в этом году, все больше укрепляют позиции платформы и C# как для веб-разработки, так и для другого ПО. Во-первых, оно дает возможность написания кроссплатформенных программ, во-вторых увеличение скорости работы за счет нового компилятора и возможность работы на Unix системах для ASP.NET 5.
Оба языка являются основными для .NET и позволяют в полной мере использовать возможности фреймворка. В текущем проекте будет использован C#, так как он имеет более короткий и распространенный синтаксис, близкий к остальным C подобным языкам, обеспечивает возможность быстрого добавления асинхронных операций, в настоящий момент активно развивается, является наиболее перспективным из поддерживаемых .NET языков, и специально разрабатывался как язык программирования прикладного уровня для CLR.
Разрабатываемое приложение должно быть приближено по ощущениям и функционалу к нативным приложениям ОС, используемым пользователями. Этого невозможно достичь без использования JavaScript в клиентской части. Так как спецификации к веб-стандартам носят декларативный характер и в последние годы стандарты из HTML5 и CSS3 постепенно внедряются в браузеры не одновременно и имеют не стабильные версии, поведение и отображение одних и тех же элементов страницы может отличаться в разных браузерах. С целью сокращения времени на разработку и отладку, достижения одинакового отображения и работы интерфейса разрабатываемого приложения, принято решение использовать готовые библиотеки JavaScript для работы с элементами страницы. Они представляют собой набор часто используемых объектов и функций.
Исходя из специфики разрабатываемого приложения необходимо ориентироваться на удобную работу с элементами DOM, поэтому были выбраны для рассмотрения библиотеки с лицензией MIT, которая является разрешительной и предоставляет неограниченное право на использование, копирование, изменение, добавление, публикацию, распространение, сублицензирование и/или продажу копий программного продукта, при условии, что программное обеспечение распространяется "как есть" и ее авторы не несут ответственности за использование ПО.
Библиотеки, потенциально подходящие под нашу задачу: Prototype, jQuery и Zepto.
В Prototype присутствуют самые разные способы упрощения создания JavaScript приложений, от сокращённого вызова некоторых функций языка до сложных методов обращения к XMLHttpRequest. С точки зрения проектирования он очень удобен для средних проектов, так как предоставляет легкий способ эмулирования классического ООП вдобавок к своему простому функционалу. Производительность фреймворка несколько нестабильна, т.е. на некоторых операциях он может быть быстрым, на других - производительность заметно падает. Prototype один из немногих фреймворков, который не включает в себя UI-компоненты или UX-улучшения [20][19].
jQuery - библиотека JavaScript функционал которого основывается на взаимодействии JavaScript и HTML. Она обеспечивает простой доступ к элементам DOM страницы, а также позволяет обращаться к атрибутам и содержимому элементов, создавать и удалять их. Для работы с AJAX уже включены функции с простым синтаксисом и разделенные с учетом особенностей популярных шаблонов использования XMLHttpRequest. Точно так же, как CSS отделяет визуальную часть от структуры HTML, jQuery отделяет поведение от структуры HTML. Например, вместо жесткого присвоения обработчика нажатия кнопки в HTML, это делается jQuery незаметно. Он идентифицирует элемент через селектор, близкий по синтаксису к используемому в CSS, и следит за его изменениями. Такое разделение поведения и структуры также называется принципом ненавязчивого JavaScript. Он содержит функциональность, полезную для очень широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, бомльшая часть которого не востребована. Была реализована архитектура компактного универсального ядра библиотеки и плагинов. Это позволяет собрать для ресурса именно ту функциональность, которая на нём была бы востребована [21] [20].
В то время, когда большинство библиотек JavaScript имеют довольно большой размер, в сжатом и минифицированном виде, от 90Кб и более, Zepto занимает 9Кб, что гораздо менее затратно для мобильно интернета, который по-прежнему определяет скорость загрузки сайтов на мобильных устройствах. Но при использовании такой легкой библиотеки, приходится платить. Zepto отстает в кросс-браузерности от упомянутых выше, конкурентов. Одним из преимуществ этой библиотеки можно выделить очень близкий набор методов и синтаксис к ранним версиям jQuery, что позволяет разработчикам очень быстро переходить на его использование [22] [21]. С выходом jQuery 2.x и отказа в ней поддержки старых браузеров, Zepto теряет свою популярность.
Проведя исследование библиотек JavaScript можно выделить две наиболее приоритетные, это jQuery и Zepto. Первая их них в последние несколько лет стала почти стандартом в веб-разработке и имеет огромное количество руководств и дополнений, выделяется хорошей кросс-браузерностью и поддержкой IDE. Также, как было сказано выше jQuery 2.x уже не имеют лишнего кода для поддержки старых браузеров, при этом сохраняя поддержку большого числа плагинов. Описанные преимущества оправдывают больший размер, поэтому в проекте будет использовать jQuery 2.х.
1.4 Разработка веб-приложения
Проектирование начинается с выделения логических элементов приложения, сопоставления их с физическими элементами и определения схемы взаимодействия между ними.
Этот этап необходим для снижения сложности при разработке, выделение подсистем и правил их взаимодействия между собой помогает избежать затрат на изменение системы, которые могут возникнуть при игнорировании этапа проектирования. При правильном проектировании на этом этапе и следовании его результатам, в процессе разработки классов можно добиться слабого связывания самих классов и компонентов приложения в целом. Все это приводит к повышению простоты сопровождения, расширяемости и возможности повторного использования частей программы. UML-диаграмма компонентов разрабатываемого приложения приведена на рисунке 10.
Рисунок 10 - Диаграмма компонентов приложения
Приведенная диаграмма -- это логическое разделение исходного кода, которое можно перевести в физическое разделение. Каждый элемент представляет собой пространство имен или класс внутри сборки приложения.
Controllers.Books - обработка пользовательского запроса связанного со списками книг.
Controllers.Read - обработка запросов при работой с конкретной книгой. Это запросы на перевод, переход по оглавлению, работа с закладками и проверка прав доступа.
View - отвечает за формирование html страниц отдаваемых пользователю, с данными полученными от Controllers.
Database - структура классов для работы с базой данных. Содержит методы работы с ORM.
Files -- работа в файловой системой
Core -- структура классов для обработки данных книг, такой как преобразование форматов, изображений, получение данных для сохранения в базе и др.
Reader -- классы для получения данных из различных файлов книг.
Придерживаясь концепции объектно-ориентированного программирования, где часто объекты реального мира предметной области описываются классами, а их поведение и состояние определяется набором доступных методов и свойств, спроектируем необходимые для работы классы и интерфейсы.
Перед разработкой необходимо произвести анализ, позволяющий выявить части приложения, которые могут быть в последствии изменены для введения дополнительного функционала и для оптимизации производительности. На основе этой информации принимаются решения о введении интерфейсов, перегруженных методах и алгоритмов работы.
При разработке приоритетными направлениями будем считать простоту поддержки кода, так как при достижении высокого уровня абстракции и простоты кода, обеспечивается общее снижение затрат на тестирование, отладку и изменение функционала.
Интерфейс IBook
Существует необходимость работы с несколькими форматами электронных книг и высока вероятность расширения функционала, через введение классов для работы с другими форматами, которые могут быть включены в приложение как внешние библиотеки, через фасадные классы. Это является основанием для разработки единого интерфейса для работы с ними.
Проанализировав спецификацию выбранных форматов и произведя поверхностный анализ других форматов, можно выделить информацию, которая является обязательной для большинства форматов книг:
Авторы
Язык
Обложка
Уникальный идентификатор
Название книги
Так как внутреннее строение книг разных форматов может сильно отличаться, то единый механизм получения и сохранения файлов создавать не имеет смысла. Поэтому в интерфейс включены методы для сохранения файлов, которые реализуются для каждого формата отдельно.
Интерфейс IReadable
При выводе книги пользователю, необходима возможность получать запрошенную часть книги, не вдаваясь в подробности формата файла. Это требуется при переходе по оглавлению, предоставлении последовательно страниц книги, которые могут размещаться в разных файлах, и создании системы закладок.
Разрабатываемый интерфейс описывает следующие методы, для простого перехода внутри книги, которые могут потребоваться при работе с ней:
Количество частей, на которые разбита книга
Предоставление конкретной части книги по уникальному идентификатору
Предоставление конкретной части книги по порядковому номеру.
Предоставление оглавления
Предоставление следующей части относительно текущей
Предоставление предыдущей части относительно текущей
Название книги
Ее идентификатор в базе приложения.
1.5 Пространство имен Reader
Пространство имен Reader.EpubReader
Класс Epub - инкапсулирует в себе работу с одноименным форматом файла книг. В нем реализовано:
Проверка соответствия файла минимальным требованиям спецификации
Поддержка работы с версиями EPUB 2.1 - 3.
Получение метаданных из книги
Сохранение самой книги по указанному пути
Сохранение файлов изображений
Предоставление данных в формате html
Проверка целостности книги
Реализация интерфейса IBook
Этот класс является одним из самых сложных в данной работе, так как при его разработке необходимо учитывать различия и общие требования нескольких версия каждой из спецификаций.
Open Packaging Format описывает ряд блоков состоящих из наборов элементов, которые содержатся в opf файле. Эти элементы удобно выразить и представить в объектах, описанных ниже.
Класс Content - представляет каждый OPS документ из архива и предоставляет доступ к его содержимому.
Класс Manifest - описывает каждый файл блока, содержащийся в контейнере.
Класс NavPoint - представляет элемент оглавления книги, содержит данные о вложенных элементах оглавления.
Класс Spine - содержит информацию об элементах, выводимых пользователю.
Класс EpubForReading - реализует интерфейс IReadable для работы с книгами этого формата из контроллера.
Класс TocList - универсальное представление элементов оглавления книги.
Пространство имен Reader.Fb2Reader
Класс Fb2 - представляет в приложении файлы fb2, с методами для получения из него данных в исходном виде и преобразованных в html.
В классе реализовано:
Проверка соответствия полученного файла минимальным требованиям спецификации
Получение метаданных из файла
Сохранение файла книги
Сохранение файлов изображений
Предоставление данных в формате html
Проверка целостности книги
Реализация интерфейса IBook
Класс Section - представляет секцию книги, может иметь текстовое содержимое с описанием или список вложенных секций. Секции, как правило, заключают в себе тома книги, разделы, главы и другие логически разделенные фрагменты, имеющие свое имя.
Класс Author -- данные каждого из авторов, указанных в книге. Реализует приведение имен в универсальной для приложения форме, которое совпадает с их представлением в EPUB, так как там нет разделения на имена и фамилии, оно является самым простым.
Класс Binary - работа с изображениями, которые в FB2 закодированы в строки base64. Класс Fb2ForReading - реализует интерфейс IReadable для работы с книгами этого формата из контроллера.
Пространство имен Files
Класс FileSystem - Статический класс для работы с файлами. Содержит логику для сохранения файлов книг и дополнительных файлов на диске, Формирует путь к папке для сохранения, получения или удаления файлов исходя из данных конфигурации приложения и формата полученного файла. Это позволит из кода не беспокоиться о размещении файлов на диске и определять пути в одном месте. Для работы файлами класс реализует:
Предотвращение замены файлов при совпадении имен.
Формирование ссылок на файлы изображений.
Пространство имен Core
Класс SaveBook -получает файл пользователя и принимает решения в процессе его обработки. Тут создаются новые объекты, реализующие IBook.
Класс должен выполнять следующие действия:
Определяет класс для работы с полученным файлом
Принимает решение об отказе в обработке файла
Управляет созданием уменьшенных копий изображений
Принимает решение о создании новой обложки для книги
Формирует сущности для сохранения в базе данных
Класс OpenBook -- статический класс для создания объектов от Fb2ForReading и EpubForReading, в зависимости от формата файла.
Класс DrawCover -- класс для создания обложки книги, если она маленького размера или отсутствует. Как показали тесты, около 2% книг которые можно скачать в интернете собраны с ошибками и могут не отвечать требованиям спецификации форматов. Встречаются книги с некорректными ссылками на обложку. Так как это не является критичным, лучше составить свою обложку, чем прерывать обработку книги.
Для работы с изображениями для обложек книг класс должен реализовывать:
Сглаживание шрифтов
Разбиение текста на строки
Выбор размера шрифта в зависимости от длины текста.
Работу с форматами png, jpeg и gif.
Класс ImageResizer - реализует функцию для уменьшения разрешения изображения. Это необходимо для снижения веса файла и вместе с тем увеличения скорости загрузки страницы пользователем. Измененное изображение должно быть пропорционально исходному.
Класс ImageProcessing - Класс "фасад" для ImageResizer и DrawCover
Пространство имен Database
Класс BooksDB -- содержит методы для работы с книгами в базе данных. Запросы к базе данных вынесены в отдельный класс, чтобы исключить дублирование кода.
UserDB -- класс для работы с данными пользователя в базе данных.
Классы Author, Book, Readership, Word, Language, Translates - объектные представления сущностей из базы данных.
FileTypes -- тип перечисления с обозначением типов файлов.
Классы Controllers
Класс BookController - содержит методы для работы с контекстом пользовательского запроса. Проверяет права пользователя, удаляет книги.
Класс ReadController - содержит методы для работы с контекстом пользовательского запроса на работу с книгой, перевод слов.
Класс TranslateInput -- участвует в переводе слов, при получении нескольких вариантов перевода.
1.6 Разработка схемы базы данных
База данных приложения будет содержать данные о пользователях системы, их ролях, информацию о книгах, авторах, языках и кэшируемых словах.
Краткое описание таблиц:
Таблица "Book" содержит данные каждой книги. Структура таблицы "Book" приведена в таблице 4.
Таблица "Readership" содержит данные о книгах пользователей и закладках. Структура таблицы "Readership" приведена в таблице 8
Таблица "Author" содержит данные авторов. Структура таблицы "Author" приведена в таблице 5.
Таблица "Language" содержит поддерживаемые для перевода языки. Структура таблицы "Language" приведена в таблице 3.
Таблица "Word" содержит кэшируемые слова. Структура таблицы "Word" приведена в таблице 6.
Таблица "Translate" содержит перевод кэшируемых слов. Структура таблицы "Translate" приведена в таблице 7.
Таблица "AspNetUsers" содержит данные пользователей. Структура таблицы "AspNetUsers" приведена в таблице 9.
Таблица "AspNetUserRoles" содержит информацию о пользовательских ролях. Структура таблицы "AspNetUserRoles" приведена в таблице 10.
Таблица "AspNetRoles" содержит описание доступных ролей. Структура таблицы "AspNetRoles" приведена в таблице 11.
Таблица 3 - Структура таблицы Language
Поле |
Тип поля |
Описание |
Параметры поля |
|
ID |
Числовой |
Идентификационный номер записи |
Первичный ключ |
|
NAME |
Текстовый |
Название на английском |
Максимальная длина - 64 символов |
|
ISO693_1 |
Текстовый |
Обозначение в стандарте |
Максимальная длина - 8 символов |
|
ISO693_3 |
Текстовый |
Обозначение в стандарте |
Максимальная длина - 8 символов |
Таблица 4 - Структура таблицы Book
Поле |
Тип поля |
Описание |
Параметры поля |
|
ID |
Числовой |
Идентификационный номер записи |
Первичный ключ |
|
TITILE |
Текстовый |
Название книги |
Максимальная длина - 256 символов |
|
CREATETIME |
Дата |
Дата и время загрузки |
||
LANGUAGEID |
Числовой |
Язык текста книги |
Внешний ключ |
|
ISPUBLIC |
Бит |
Флаг публичного доступа |
||
VIEWSCOUNT |
Числовой |
Счетчик просмотров |
||
IMAGE |
Текстовый |
Имя файла обложки |
Максимальная длина - 64 символов |
|
BLOCKED |
Бит |
Флаг блокировки |
||
SOURCEFILE |
Текстовый |
Имя файла книги |
Максимальная длина - 64 символов |
|
OWNERID |
Текстовый |
Идентификатор владельца |
Максимальная длина - 128 символов Внешний ключ |
|
FILETYPE |
Числовой |
Тип файла из перечислений |
||
IDENTIFIER |
Текстовый |
Внутренний идентификатор книги |
Максимальная длина - 256 символов |
Таблица 5 - Структура таблицы Author
Поле |
Тип поля |
Описание |
Параметры поля |
|
ID |
Числовой |
Идентификационный номер записи |
Первичный ключ |
|
NAME |
Текстовый |
Имя автора |
Максимальная длина - 256 символов |
Таблица 6 - Структура таблицы AspNetUsers
Поле |
Тип поля |
Описание |
Параметры поля |
|
ID |
Числовой |
Идентификатор пользователя |
Максимальная длина - 128 символов. Составной первичный ключ |
|
|
Текстовый |
Email пользователя |
Максимальная длина - 128 символов. |
|
CONFIRMED |
Бит |
Флаг подтверждения email |
||
PASSWORDHASH |
Текстовый |
Идентификатор предложения |
Максимальная длина |
|
SECURITYSTAMP |
Текстовый |
Код подтверждения |
Максимальная длина. |
|
PHONE |
Текстовый |
Телефон |
Максимальная длина. |
|
PHONENUMER CONFIRMED |
Бит |
Флаг подтверждения телефона |
||
TWOFACTOR ENABLED |
Бит |
Флаг двухфакторной авторизации |
Не используется |
|
LOCKOUT ENABLED |
Бит |
Флаг блокировки |
||
ACCESSFILED COUNT |
Числовой |
Счетчик неудачных авторизаций |
||
USERNAME |
Текстовый |
Имя пользователям |
Максимальная длина - 256 символов. |
Таблица 7 - Структура таблицы AspNetUserRoles
Поле |
Тип поля |
Описание |
Параметры поля |
|
USERID |
Числовой |
Идентификатор пользователя |
Первичный ключ |
|
ROLEID |
Числовой |
Идентификатор роли |
Внешний ключ |
Таблица 8 - Структура таблицы AspNetRoles
Поле |
Тип поля |
Описание |
Параметры поля |
|
ID |
Текстовый |
Идентификатор |
Максимальная длина - 128 символов. Первичный ключ |
|
NAME |
Текстовый |
Название |
Максимальная длина - 256 символов. Внешний ключ |
Используемая база данных имеет простую архитектуру и не подразумевает сложных запросов и учета особенностей конкретной реляционной СУБД, поэтому в приложении будет использоваться ORM Entity Framework 6.0, который предоставляют следующие преимущества:
Приложение освобождаются от жестких зависимостей от конкретной СУБД.
Позволяет в приложении иметь дело с объектным представлением данных, абстрагируясь от модели базы данных.
Благодаря работе с объектным представлением данных, возможно использование LINQ-запросов, которые проходят проверку на этапе компиляции приложения.
Использование ORM освобождает от привязки к конкретной CУБД. При использовании подхода Code First, нет необходимости писать запросы для создания структуры таблиц и из атрибутов, учитывающие особенности конкретных систем управления. Также, это облегчает развертывание приложения на сервер. Все что требуется, это создать объекты на C# с необходимыми атрибутами. При этом учитываются особенности типов данных, которые могут отличаться у СУБД и объекта модели. ORM автоматически выберет подходящий тип, на основе атрибутов.
Помимо удобства развертывания, получаем контроль типов данных и обеспечение их целостности, чему способствуют не только механизмы Entity Framework, но и возможность использования LINQ запросов.
Все это дает возможность использовать любую СУБД, для которой существует поставщик данных для ADO.NET.
Для текущего приложения была разработана структура классов, описывающая сущности, с которыми предстоит работать, в терминах MVC это - модель данных.
Структура базы данных полученная на основе объектной модели, изображена на рисунке 19 и очен...
Подобные документы
Преимущества использования электронных каталогов. Структурное и функциональное проектирование компьютерной программы. Особенности процесса загрузка базы данных книг, сохранение базы данных. Вывод каталога книг на экран, меню сортировки программы.
контрольная работа [94,5 K], добавлен 24.12.2017История разработки узкоспециализированного устройства для чтения электронных документов. Плюсы и минусы электронных книг, их применение в образовании. Подъем рынка электронных книг подъем в связи с появлением экранов с технологией электронной бумаги.
презентация [601,3 K], добавлен 10.12.2016Теоретические основы разработки микропроцессорной системы на основе микроконтроллера и устройства для чтения электронных книг, анализ их технико-экономических показателей и сравнение с аналогами. Основные нормы по охране труда при работе с компьютером.
дипломная работа [1,9 M], добавлен 13.07.2010История развития и популярные модели электронных книг. Характеристика электронных книг c LCD-, ChLCD-дисплеем, E-Ink дисплеем. Преимущества и недостатки электронных книг по сравнению с бумажными, перспективы их развития и популярность у потребителей.
реферат [2,9 M], добавлен 09.04.2014История появления электронных книг, их виды, характеристика. Использование электронных книг в библиотеках, их достоинства и недостатки. Формирование электронных библиотек и коллекций. Критерии предоставления электронных книг пользователям, хранение фонда.
курсовая работа [66,9 K], добавлен 05.02.2017Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.
дипломная работа [869,8 K], добавлен 12.08.2017Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.
курсовая работа [2,3 M], добавлен 31.01.2016Разработка сетевой карточной игры "King" для операционной системы Windows XP. Реализация приложения с помощью интерфейса прикладного программирования Win32 API. Назначение серверной и клиентской части. Анализ исходных данных, тестирование приложения.
курсовая работа [209,3 K], добавлен 24.01.2016Требования к аппаратным и операционным ресурсам. Логическая и физическая организация. Состав основных классов проекта. Технико-экономическое обоснование разработки программного средства. Задержки при обработке данных. Разработка интерфейса приложения.
дипломная работа [4,4 M], добавлен 16.06.2017Электронные книги, их достоинства и недостатки. Традиционные технологии создания электронных книг. Защита авторских прав при распространении электронных книг. Наиболее распространенные форматы. Информационная безопасность и информационные технологии.
курсовая работа [1,3 M], добавлен 03.06.2019Анализ возможных подходов к созданию web-приложения с использованием программирования Java и CGI. Разработка структуры базы данных и реализация полученной модели в рамках СУБД. Обеспечение диалога CGI-программы с пользователем, используя браузер.
курсовая работа [310,9 K], добавлен 07.08.2011Базы данных как совокупность структур, предназначенных для хранения больших объемов информации и программных модулей. Анализ способов создания базы данных для учета книг личной библиотеки, особенности использования языка программирования C++Builder.
курсовая работа [8,1 M], добавлен 10.01.2014Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.
курсовая работа [1,0 M], добавлен 16.12.2012Классификация электронных средств обучения, преимущества их использования, рекомендации по созданию. Требования к структуре и содержанию учебного материала. Особенности изучения языков программирования на уроках информатики. Среда программирования Delphi.
дипломная работа [770,2 K], добавлен 12.09.2015Обзор существующих систем управления базами данных. Концептуальное, логическое и физическое проектирование и создание базы данных. Обзор языков программирования. Создание и реализация клиентского приложения с помощью выбранного языка программирования.
дипломная работа [2,4 M], добавлен 02.06.2013Разработка приложения для проверки использования времен глаголов в английском языке. Создание базы данных. Анализ используемых средств для реализации автоматического разбора текста. Проектирование мобильного приложения с помощью диаграмм деятельности.
дипломная работа [2,6 M], добавлен 13.09.2017Характеристика компьютерных игр и их влияние на формирование навыков Softskills. Геймификация как современный тренд в образовании. Обзор наиболее популярных языков программирования для создания игровых приложений. Техническое задание для приложения.
дипломная работа [928,4 K], добавлен 13.01.2023Разработка web-приложения для оперирования данными с помощью базы данных и web-браузера в качестве клиента пользователя. Основные преимущества языка программирования Java. Осуществление редактирования, добавления информации и поиска по архивам данных.
дипломная работа [2,1 M], добавлен 30.09.2016Тематический план курса разработки цифрового образовательного ресурса по технологии создания электронных графических документов (электронных книг). Особенности сканирования, программное обеспечение. Основные возможности программы ABBYY Fine Reader.
дипломная работа [3,7 M], добавлен 07.07.2011Построение логической модели базы данных "Сбор сведений о писателях и их литературных произведениях". Описание таблиц и построение физической модели системы. Проектирование базы данных в XML и разработка клиентской части в среде программирования C#.
курсовая работа [817,3 K], добавлен 13.01.2015