Разработка сайта компании | Дипломные работы | 2021

Дипломная работа «Разработка сайта компании розничной торговли»

Дипломная работа «Разработка сайта компании розничной торговли»

План

Введение

1. Современные технологии создания сайтов

1.1 Динамические и статические сайты

1.2 Системы управления содержимым в создании сайтов

1.3 Языки программирования для создания веб-сайтов

2. Разработка сайта компании розничной торговли

2.1 Выбор инструментов для разработки сайта

2.1.1 Локальный сервер для создания сайта     

2.1.2 СУБД для сайта

2.1.3 Среда разработки сайта

2.2 Проектирование информационной структуры сайта

2.3 Проектирование базы данных сайта

2.4 Реализация сайта компании ООО «Мегафорт-Калининград»

2.5 Проверка работоспособности сайта

3. Экономическое обоснование создания сайта

Заключение

Список использованной литературы

Введение

Роль информационных технологий в современном мире постоянно возрастает. Это связано с повсеместным внедрением компьютерной техники и средств передачи информации. Возникающие информационные потоки на основе внедрения информационно-коммуникационных технологий являются объективным отражением реальных хозяйственных процессов.

Актуальность работы состоит в том, что развитие организаций в современных рыночных условиях невозможно без использования новейших технологий, которые автоматизируют множество процессов в деятельности организации. Современные компании и организации функционируют в условиях большого объема постоянно изменяющейся информации, которую необходимо оперативно анализировать и принимать правильные решения. И одним из элементов информационно-коммуникационных технологий в деятельности компании является сайт. Сайт компании может служить как площадок для продаж, так и инструментов общения и взаимодействия с пользователями и клиентами.

Целью данной работы является разработка сайта для ООО «Мегафорт-Калининград».

Для достижения поставленной цели требуется решить следующие задачи:

  • изучить теоретические аспекты функционирования, проектирования и разработки сайтов;
  • спроектировать базу данных сайта;
  • разработать сайт для ООО «Мегафорт-Калининград»;
  • произвести тестирование программы;
  • дать оценку экономической эффективности.

Объект исследования: сайт компании.

Предмет исследования: сайт для ООО «Мегафорт-Калининград»

1. Современные технологии создания сайтов

1.1 Динамические и статические сайты

Статические веб-сайты имеют в основе жестко связанную структуру данных и хранят всю предоставляемую пользователям информацию неразрывно со структурой. Статические веб-сайты состоят из статических веб-страниц со своей независимой внутренней структурой, стилями и информацией. Поэтому при изменении структуры всего сайта понадобится изменять каждую страницу.

Для создания статических сайтов не требуется глубоких знаний в области программирования, достаточно иметь дизайнерские навыки и подходящую визуальную среду разработки. На работу с такими сайтами необходимо много времени, а в случае изменения в шаблоне сайта, или меню сайта, нужно вносить изменения во все страницы сайта.

Все статические сайты созданы с помощью языка гипертекстовой разметки HTML. Язык гипертекстовой разметки HTML служит для наглядного и хорошо структурированного представления информации в сети Интернет. Программы, интерпретирующие данную разметку и выводящие информацию на экран, стали называться браузерами. На сегодняшний день известно много их разновидностей: Firefox, Chrome, Opera, Microsoft Edge и др [19].

Разнообразие браузеров впоследствии привело к нюансам и разночтениям в интерпретации некоторых инструкций языка HTML и соответственно проблемам адаптации HTML-документа к разным вариантам их интерпретации. Для разрешения данной проблемы был создан консорциум W3C, в задачу которого входит составление спецификации, отражающей современный уровень развития возможностей языка с учетом разнообразных предложений разработчиков браузеров. Важными итогами работы консорциума стал выход спецификации HTML 4.0 и HTML 5.0. В частности, в HTML 4.0 рекомендуется разделение описания структуры документа от его вида на экране монитора или мобильного устройства, что значительно упрощает разработку, исправление документа, а также поддержку большого числа платформ, сред и т.п.

Современные браузеры имеют довольно широкие возможности для представления информации и взаимодействию пользователей в сети Интернет. Кроме форматированного вывода текста они позволяют отображать изображения, видео, проигрывать музыку. Встроенный в HTML-документ язык JavaScript позволяет анализировать и обрабатывать содержимое страницы, взаимодействовать с сервером (откуда загружен документ), динамически менять свойства и содержание документа в окне браузера. По сути, на сегодняшний момент, браузер стал еще одной платформой взаимодействия пользователя с информацией и другими пользователями, а для ряда мобильных устройств составной частью операционной системы.

В динамических веб-сайтах, структура данных хранится отдельно от информационных данных, причем информация заполняется в соответствии со структурой при каждом запросе пользователя. Вследствие этого при изменении одной структуры, эти изменения повлияют на все веб-страницы сайта.

Важным характерным отличием динамических веб-сайтов от статических является существование исполняемой части, которую выполняет сервер, на котором находится веб-приложение. Динамический веб-сайт предоставляет следующие возможности:

  • уменьшение роли вмешательства администратора путем автоматизации создания контента сайта и предоставления структурированной информации по запросу;
  • вся информация легко каталогизируется с использованием специализированных баз данных или простых хранилищ;
  • возможны такие функции, как принятие данных от пользователя, обработка и сохранение их на сервере;
  • выполнение различных пользовательских действий: размещение заказов, вычисление сложных арифметических действий и работа с информацией из базы данных;
  • идентификация пользователя по предоставленной им информации и отображение интерфейса, настроенного в соответствии с его предпочтениями;
  • отображение динамически меняющегося содержимого сайта (инвентарные списки, обрабатываемые заказы и сведения о различных товарах).

Веб-страница, демонстрируемая динамичным сайтом, как правило, состоит из отдельных, автономных блоков, которые загружаются или нет в зависимости от наступившего события (регистрация, отправка формы). Каждое окно служит для доступа к отдельному информационному контенту, услугам или страницам сайта.

Контент динамических сайтов хранится обычно в базе данных, а на специальных языках программирования пишутся программы, генерирующие «на лету» из содержимого таких баз данных HTML-странички, которые, собственно, и показываются пользователю (рис. 1).

Структура динамического веб-сайта

Рисунок 1 — Структура динамического веб-сайта

База данных — структурированный упорядоченный набор данных. Система управления базами данных (СУБД) — программа, предназначенная для организации и ведения базы данных.

MySQL — бесплатная свободно-распространяемая СУБД. Данные в базе MySQL хранятся в форме таблиц. При создании таблицы задаются ее столбцы, дальнейшие манипуляции (добавление, изменение, удаление) производятся со строками. Для управления базой данных используется язык SQL.

На одном сервере MySQL может быть расположено несколько баз данных. Это позволяет выделить отдельную базу данных для каждого пользователя.

База данных содержит в себе таблицы. Таблицы базы данных состоят, как и обычные таблицы, из строк и столбцов. Столбцы имеют заранее определенное название и тип данных, а строки хранят непосредственно сами данные.

Язык PHP имеет встроенные функции для работы с MySQL и многими другими базами данных. Это позволяет хранить в базе данных пользователей, сообщения, содержание страниц, статистику сайта и другую информацию. При запросе страницы PHP обращается к базе данных, получает необходимые данные и на основе их формирует ответ пользователю (чаще всего это HTML страница).

 Схема работы сервера СУБД

Рисунок 2 – Схема работы сервера СУБД

Веб-сервером называют специальную программу, обеспечивающую работу сайта, а также компьютер, на котором она работает. Веб-сервер обрабатывает запросы, полученные через Интернет от браузера (клиента) и выдает в ответ нужный ресурс: HTML-код страниц, изображения, видеоролики и т.п.

Для веб-сервера, как правило, используется специально выделенный компьютер, работающий круглосуточно и имеющий постоянное подключение к Интернет. Так как к серверу могут одновременно обращаться множество клиентов, сервер должен быть быстродействующим и надежным [19].

PHP — серверный язык создания приложений, ориентированный на веб-разработку. PHP код может быть внедрен в HTML-страницу и будет выполняться при каждом ее посещении. Код PHP интерпретируется веб-сервером и генерирует HTML-код или другой вывод (например, графику), который отсылается браузеру пользователя. Так как PHP интерпретируемый язык, он не требует компиляции (преобразования в машинный код в файле .exe) — программы хранятся на веб-сервере как обычные текстовые файлы.

Трехкомпонентная архитектура веб-приложений, реализуемых на языке PHP

Рисунок 3 — Трехкомпонентная архитектура веб-приложений, реализуемых на языке PHP

1.2 Системы управления содержимым в создании сайтов

В настоящее время в мире насчитывается десятки коммерческих и бесплатных CMS.

В таблице 1 приведена статистика использования CMS в мировом Интернете согласно исследованию компании Q-Success (Software Quality Management Consulting) на сайте World Wide Web Technology Surveys [26].

№ п/пНаименованиеИспользование
1WordPress27,9%
2Joomla3,3%
3Drupal2,2%
4Blogger1,1%
5Shopify0,7%
Таблица 1 — Самые распространенные CMS в 2017 году

Как видно из таблицы 1, самой распространённой CMS в мировой практике Интернета является WordPress. Joomla и Drupal находятся на 2 и 3 местах, со значительным отрывом от WordPress.

Если провести анализ отечественного Интернета, то получим подобные результаты. Результаты рейтинга CMS по версии компании iTrack [17] представлены в таблице 2.

№ п/пНаименованиеИспользование
1WordPress37,16%
2Joomla20,04%
31С-Битрикс9,48%
4MODx5,4%
5Drupal4,43%
6OpenCart3,37%
7DataLife Engine3,36%
8Wix1,95%
9Прочие26,46%
Таблица 2 — Рейтинг CMS в доменной зоне ru в 2017 году

Как видно из таблицы, популярность WordPress и Joomla в отечественном Интернете в отличие от мирового почти одинаковая.

Для CMS, которую можно использовать в деятельности компании можно определить ряд следующих требований:

  1. CMS должна быть распространенной в Интернете, и чтобы полученные навыки и знания при работе с выбранной CMS можно было свободно применять для разных тематических областей;
  2. CMS должна позволять создавать web-приложения любой степени сложности, начиная от простых сайтов и заканчивая сложными профессиональными web-порталами типа Интернет-магазины, Интернет-систем по продаже или бронированию билетов и т. п;
  3. CMS должна иметь дружественный интерфейс, чтобы пользователи могли легко и свободно без дополнительной подготовки осваивать работу с CMS;
  4. Немаловажным фактором является большое наличие на русском языке как обычной бумажной литературы, так и наличие профессиональных и вспомогательных электронных онлайн публикаций, дающих возможность самостоятельного изучения CMS для студентов независимо от знания или незнания английского языка;
  5. Большое количество сайтов-форумов где обсуждаются вопросы использования CMS;
  6. Наличие простых процедур инсталляции CMS и интеграции CMS с другими программными продуктами, поддерживающими web-портал;
  7. Желательно чтобы система была с открытым кодом, чтобы была возможность расширять и дорабатывать систему в случае необходимости;
  8. Наличие большого количества бесплатных качественных плагинов, модулей, компонентов, шаблонов в свободном доступе в Интернете, которые с успехом можно было бы использовать в качестве образцов;
  9. CMS должна обеспечивать реализацию и поддержку последних стандартов и методов, используемые для разработки web-приложений;
  10. Возможность интеграции в CMS плагинов, расширений, компонентов, шаблонов, разработанных вне рамок CMS;
  11. Возможность разработки и последующей вставки в CMS обычного web-кода, который мог бы использоваться самостоятельно в Интернет без использования CMS.

По своей структуре, системы управления контентом представляют собой некоторое программное обеспечение, устанавливаемое на веб-сервере и предназначаемое для создания и обслуживания динамических веб-сайтов. Все они в том или ином объеме предполагают отделение контента от дизайна, работу с группами пользователей, поддержку бизнес-процессов и минимизацию усилий программистов при разработке сайтов. Системы могут управлять как контентом, так и дизайном через предоставляемый ими интерфейс.

Система управления контентом

Рисунок 4 — Система управления контентом

По существу, можно перечислить основные составляющие всех CMS:

  • способ представления информационного наполнения сайта;
  • способы описания и механизмы управления дизайном;
  • механизмы авторизации и поддержки сообществ пользователей;
  • механизмы управления контентом (редактирование материалов, выложенных на веб-сайте, и управление структурой сайта);
  • механизмы поддержки бизнес-процессов.

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

Основными задачами, которые решают современные CMS, являются следующие [2]:

  1. Автоматизация всего цикла разработки и публикации web-приложений в Интернете;
  2. Автоматическое изменение представлений содержимого страниц web-портала в сети, обеспечивая возможность реализации различных дизайнов преставления страниц за счет использования разных шаблонов отображения информации, плюс возможность широкого использования шаблонов, созданных другими разработчиками;
  3. Разграничение пользовательских полномочий, что позволяет осуществлять независимую настройку web-портала под представления разных категорий пользователей, включая возможность ведения персональных странниц;
  4. Возможность создания web-портала внутри web-портала, что позволяет создавать сложные web-порталы;
  5. Простота редактирования и создание информации для web-портала;
  6. Возможность автоматически модернизировать web-портал к новым стандартам Интернета;
  7. Возможность разрешения или запрета публикации информации без удаления ее из системы;
  8. Возможность интеграции и использования средств управления проектами по разработке web-приложений;
  9. Масштабируемость, что позволяет развивать системы путем подключения программных расширений от разных разработчиков;
  10. Многоязычность, возможность автоматического перевода и поддержки web-портала для разной национальной целевой аудитории;
  11. Поддержка разных версий сайта;
  12. Обеспечение возможности продвижения web-портала в Интернете путем подстройки к механизмам поисковых систем типа Yandex, Rambler, Google, и др.

Реализация вышеприведенных задач приводит к:

  • повышению качества разработки;
  • уменьшению стоимости и сроков разработки;
  • снижению эксплуатационных расходов;
  • понижению требований к персоналу поддержки.

Главной задачей системы управления контентом является создание платформы для управления структурой и наполнением веб-сайта.

Обычно CMS состоит из двух приложений: CMA — приложения, управляющего контентом, и CDA — приложения, доставляющего контент. CMA позволяет автору, не знающему HTML, управлять созданием, изменением (включая удаление) контента веб-сайта, не обращаясь к помощи веб-мастера. Для создания новой страницы пользователю не нужно обладать специальными знаниями: текстовый редактор, использующийся в CMS, позволяет организовать обновление сайта на уровне работы с офисными приложениями. Модуль CDA компилирует созданный контент для обновления веб-сайта.

Средства CMA сохраняют полученный документ, CDA обеспечивают автоматическую верстку Web-страниц на основе заранее определенных шаблонов оформления сайта. Редизайн (автоматическое переоформление всех страниц) может быть осуществлен простой заменой шаблонов.

Гибкость CMS и интуитивность интерфейса позволяют легко изменить структуру сайта и систему навигации [4].

Преимуществом использования CMS является снижение стоимости создания и поддержки интернет-сайтов, которое достигается за счет уменьшения расходов на зарплату web-мастера, а также времени на поиски документов, составляющих контент, пресечение их дублирования и устранение ошибок.

CMS снижает зависимость стоимости разработки сайта от объема информации, размещенной на нем. CMS не требует дополнительного программного обеспечения, устанавливаемого на клиентской машине, что позволяет увеличить надежность Интернет-ресурса за счет делегирования доступа только авторизованным пользователям [4].

1.3 Языки программирования для создания веб-сайтов

На сегодняшний день у разработчиков веб-сайтов есть богатый выбор относительно того, какой язык (или технологию) использовать для создания сайта. Вариантов много: Perl, PHP, ASP, ASP.Net, JSP, Coldfusion. Самыми распространенными (с большим отрывом от остальных) сегодня являются PHP и ASP.Net. Поскольку мы имеем большой опыт разработки с применением обеих технологий, хотелось бы максимально объективно провести сравнение между этими двумя платформами.

Платформа веб-страниц ASP.NET предоставляет объектную модель, позволяющую работать с формами как с единым целым, а не как с отдельными клиентскими и серверными частями. В этой модели страницу можно запрограммировать интуитивно более понятным способом, чем в традиционных веб-приложениях. Существует возможность задать свойства для элементов страницы и сформировать отклик на события. В дополнение к этому серверные элементы управления ASP.NET являются абстракцией физического содержимого HTML-страницы и прямого взаимодействия между обозревателем и сервером. Как правило, с серверными элементами управления можно работать так же, как и с элементами управления в клиентских приложениях, не задумываясь при этом о создании кода HTML, представляющего и обрабатывающего элементы управления и их содержимое.

Веб-страницы ASP.NET предоставляют веб-приложениям привычную модель создания обработчиков для событий, которые возникают на стороне клиента или сервера. Эта модель в платформе веб-страниц ASP.NET настолько абстрактна, что основной механизм захвата события на клиенте, передачи его серверу и вызов соответствующего метода является полностью автоматическим и невидимым разработчику. В результате создается простая кодовая структура, поддерживающая разработку на основе событийного механизма.

Платформа веб-страниц ASP.NET автоматически решает задачу поддержания состояния страницы и ее элементов управления и предоставляет явные способы сохранения состояния сведений о конкретном приложении. Эта задача решается без использования значительных ресурсов сервера и может быть реализована как без отправки, так и с отправкой объектов Сооkie обозревателю.

Платформа веб-страниц ASP.NET позволяет создавать любые алгоритмы приложения на сервере, устраняя необходимость дополнительного программирования для различных обозревателей. Однако она также позволяет использовать преимущества определенного обозревателя путем написания кода на стороне клиента для обеспечения лучшей производительности и более широких возможностей клиента.

Модель платформы веб-страниц ASP.NET основана на платформе .NET Framework, поэтому все возможности этой платформы доступны для любого приложения ASP.NET. Приложения могут быть написаны на любом языке, совместимом со средой выполнения. Кроме того, доступ к данным упрощается благодаря использованию инфраструктуры доступа к данным технологии .NET Framework, включающей ADO.NET.

Платформа веб-страниц ASP.NET позволяет без сложных изменений в алгоритмах веб-приложений масштабировать их от компьютера с единственным процессором к многокомпьютерным веб-фермам.

Страницы ASP.NET выполняются как код на сервере. Следовательно, если страницу нужно обработать, страница конфигурируется для отправки на сервер при нажатии пользователем кнопок (или например, когда пользователь выбирает флажки или взаимодействует с другими элементами управления на странице). Каждый раз страница отправляется обратно, так что она может выполнить свой код сервера снова и затем отправить свою новую версию обратно пользователю.

Цикл обработки для веб-страницы ASP.NET:

  • пользователь запрашивает страницу. (Страница запрашивается при помощи HTTP метода GET.) Страница выполняется первый раз, выполняя предварительную обработку, если Вы запрограммировали ее действовать так;
  • страница динамически отсылает разметку обозревателю, которую пользователь видит как веб-страницу, похожую на любую другую страницу;
  • пользователь печатает информацию или выбирает ее из доступных вариантов и затем нажимает на кнопку. (Если пользователь нажимает на ссылку вместо кнопки, страница может просто перенаправить на другую страницу и последующая обработка не будет выполняться на первой странице.);
  • страница развертывается на веб-сервере. (Обозреватель выполняет метод HTTP POST, который в ASP.NET называется обратной передачей.) В частности, страница передается обратно. Например, если пользователь работает со страницей Default.aspx, нажатие на кнопку на странице отправляет страницу обратно на сервер с целевым объектом Default.aspx;
  • на веб-сервере страница выполняется снова. Информация, которую пользователь напечатал или выбрал, доступна на странице;
  • страница выполняет запрограммированную обработку и передается обратно в обозреватель.

Можно создать код сервера для веб-страниц ASP.NET при помощи языка Visual C#, Visual Basic или другого языка, поддерживаемого платформой .NET Framework. Веб-страницы ASP.NET могут содержать клиентский скрипт, который выполняется в обозревателе. Некоторые функции ASP.NET генерируют клиентский скрипт и вставляют его на страницу. В этом случае ASP.NET всегда создает ECMAScript (JavaScript) для лучшей функциональности, не зависящей от обозревателя. В дополнение к ним можно добавить свой собственный клиентский скрипт для определенной функциональности.

При создании веб-страниц ASP.NET можно использовать следующие типы элементов управления:

  • серверные HTML-элементы управления. Используемые на сервере HTML-элементы, которые можно запрограммировать. Серверные HTML- элементы управления предоставляют объектную модель, строго соответствующую воспроизводимым ими HTML-элементам;
  • серверные веб-элементы управления. Элементы управления, имеющие больше встроенных функциональных возможностей, чем серверные HTML- элементы управления. Серверные веб-элементы управления включают не только элементы управления формы, такие как кнопки и текстовые поля, но и специализированные элементы управления, например, календарь, меню и элемент управления иерархического представления. Серверные веб-элементы управления более абстрактны, чем серверные HTML-элементы управления; это проявляется в том, что их объектная модель не обязательно отражает HTML- синтаксис;
  • проверяющие элементы управления. Элементы, включающие логику, которая предоставляет возможность контролировать данные, введенные пользователями в элементы управления для ввода, например в элемент управления TextBox. Проверяющие элементы управления позволяют проверить требуемое поле, протестировать на предмет наличия определенного значения или шаблона знаков, удостовериться, что значение лежит в нужном диапазоне и т. д;
  • пользовательские элементы управления. Элементы управления, создаваемые для веб-страниц ASP.NET. Можно внедрять пользовательские элементы управления ASP.NET в другие веб-страницы ASP.NET. Это простой способ создания панелей инструментов и других элементов многократного использования;
  • серверные HTML-элементы управления являются HTML-элементами (или элементами в других поддерживаемых разметках, таких как XHTML), содержащими атрибуты, которые делают их программируемыми в серверном коде. По умолчанию HTML-элементы на веб-странице ASP.NET недоступны для сервера. Вместо этого они рассматриваются как непрозрачный текст и передаются обозревателю. Тем не менее, при преобразовании HTML-элементов в серверные HTML-элементы управления они представляются как элементы, которые можно программировать на сервере.

Объектная модель для серверных HTML-элементов управления строго соответствует этому свойству элементов. Например, в серверных HTML- элементах управления атрибуты HTML представлены как свойства.

Любой HTML-элемент на странице может быть преобразован в серверный HTML-элемент управления путем добавления атрибута runat=»server». Во время синтаксического анализа структура страницы ASP.NET создает экземпляры всех элементов, содержащих атрибут runat-«server». Если требуется сослаться в коде на элемент управления как на член, необходимо также назначить атрибут id этому элементу управления.

Структура страниц предоставляет предварительно заданные серверные HTML-элементы управления для HTML-элементов, наиболее часто динамически используемых на странице. Это элемент form, элементы input (текстовое поле, флажок, кнопка «Отправить»), элемент select и т. п. Эти предварительно определенные серверные HTML-элементы управления совместно используют основные свойства универсального элемента управления; кроме того, каждый элемент управления обычно предоставляет свой набор свойств и свое событие.

Серверные HTML элементы управления имеют следующие функциональные возможности:

  • объектная модель, которую можно запрограммировать на сервере с помощью обычных методов объектно-ориентированного программирования. Каждый серверный элемент управления обладает свойствами, позволяющими программно управлять его атрибутами разметки в серверном коде;
  • набор событий, для которых можно писать обработчики в основном так же, как и в клиентской форме, за исключением того, что событие обрабатывается в серверном коде.
  • возможность обработки событий в клиентском скрипте;
  • автоматическая поддержка состояния элемента управления. Если страница выполняет круговой путь к серверу, то значения, введенные пользователем в серверные HTML-элементы управления, автоматически учитываются и отправляются обратно в обозреватель;
  • взаимодействие с проверяющими элементами управления ASP.NET, так что можно проверять сведения, введенные пользователем в элемент управления;
  • привязка данных к одному или нескольким свойствам элемента управления;
  • поддержка стилей в случае, когда веб-страница ASP.NET отображается в обозревателе, поддерживающем каскадные таблицы стилей;
  • передача специализированных атрибутов. В серверные HTML-элементы управления можно добавить любые необходимые атрибуты, которые структура страниц отображает, не изменяя их функциональных возможностей. Это позволяет добавлять в элементы управления атрибуты, предоставленные обозревателем.

Серверные веб-элементы управления представляют собой второй набор элементов управления, разработанных с другим акцентом. Они не обязательно полностью соответствуют серверным HTML-элементам управления. Они определены как абстрактные элементы управления, в которых фактическая разметка, воспроизведенная элементом управления, может сильно отличаться от запрограммированной модели. Например, серверный веб-элемент управления RadioButtonList может воспроизводиться как в виде таблицы, так и в виде встроенного текста в другой разметке.

Серверные веб-элементы управления включают как традиционные элементы управления форм, например, кнопки и текстовые поля, так и сложные элементы управления, например, таблицы. Они также включают элементы управления, предоставляющие часто используемые функциональные возможности форм, такие как представление данных в виде сетки, выбор дат, отображение меню и т. д.

Серверные веб-элементы управления обладают всеми функциональными возможностями, перечисленными выше для серверных HTML-элементов управления (за исключением взаимнооднозначного сопоставления с элементами), а также следующими дополнительными возможностями: Объектная модель с широкими функциональными возможностями, обеспечивающая типобезопасные возможности программирования.

Элементы управления могут обнаруживать возможности обозревателя и отображать соответствующую разметку.

Для некоторых элементов управления имеется возможность определить собственную разметку элемента управления с помощью Templates.

Для некоторых элементов управления возможно указать, вызывает ли событие элемента управления немедленную отправку данных на сервер, или оно кэшируется и возникает при отправке страницы.

Поддержка тем, позволяющая определить согласованный вид для элементов управления по всему узлу.

Возможность передавать события из вложенного элемента управления (такого как кнопка в таблице) в контейнерный элемент управления.

Элементы управления используют следующий синтаксис:

<asp:button attributes runat-’server» id=»Button1″ />

При запуске веб-страницы ASP.NET серверный веб-элемент управления воспроизводится на странице с помощью соответствующей разметки, которая часто зависит не только от типа обозревателя, но и от параметров, установленных для элемента управления. Например, элемент управления TextBox может отображаются в виде тега input или тега textarea, в зависимости от его свойств.

Веб-страница ASP.NET состоит из двух частей: визуальные элементы, к которым относится разметка, серверные элементы управления и статический текст; программная логика страницы, к которой относятся обработчики событий и другой код.

В ASP.NET реализовано две модели управления визуальными элементами и кодом: однофайловая модель страницы и модель страницы с выделенным кодом. Обе модели работают одинаково, и в них обеих используются одни и те же элементы управления и код.

В однофайловой модели разметка страницы и ее программный код физически расположены в одном и том же ASPX-файле. Программный код находится в блоке script, который содержит атрибут runat=»server», указывающий, что этот код должен быть выполнен в ASP.NET.

Далее приведем краткое сравнение платформы ASP.NET с PHP. PHP — это язык программирования, с помощью которого можно создавать достаточно развитые Web-узлы. PHP — открытая и бесплатная технология. Это скриптовый язык, предназначенный для динамического вывода HTML. Это означает, что создавать на PHP крупные проекты — достаточно дорогостоящий и трудозатратный процесс.

Операторы РНР выполняются и результат их обработки вставляется в HTML-документ, после чего передается броузеру. Программа на РНР может выполнить запрос к базе данных, создать графические изображения, работать с файлами, работать с сетью.

Благодаря мощному интерпретатору PHP по результатам тестовых испытаний не уступает технологии ASP. Кроме того, технология РНР обеспечивает эффективную переносимость. В результате этого РНР может работать на многих операционных системах и почти на всех серверах.

ASP.NET — технология, предназначенная для создания Web-сайтов, Web-сервисов и приложений. Технология достаточно надежная, безопасная, устойчивая к атакам. ASP-технология основана на модели COM (COM — Component Object Model). ASP.NET формирует динамические, постоянно обновляющиеся страницы. Но программный код и код HTML разделены. При этом сама результирующая страница не содержит ни кодов ASP.NET, ни элементов управления и может быть просмотрена в любом из браузеров, отредактирована в любом редакторе HTML.

PHP работает значительно быстрее в сравнении с ASP.NET. Кроме того, цены на размещения сайтов, созданных на языке PHP для операционных систем Linux/FreeBSD на серверах ведущих провайдеров в 3-5 раз ниже цен на размещения Web-сайтов на ASP.NET.

Интерпретация в PHP — это возможность собирать и запускать на выполнение строку программного кода (функцией eval()), что даёт целый ряд возможностей.

Как правило, PHP работает в связке с базой данных mySQL, а ASP.NET/C# — в связке с базой данных MS SQL Server или Oracle. Быстродействие же связки РНР + MySQL обеспечивается тем, что разрабатывающие эти две технологии группы очень тесно сотрудничают. То же самое и со связкой ASP.NET + MS SQL.

PHP имеет сходные с ASP функции по управлению сессиями. Хотя функции управления заголовками HTTP в ASP.NET намного легче в использовании.

2. Разработка сайта компании розничной торговли

Обществом с ограниченной ответственностью «Мегафорт-Калининград» является юридическое лицо – хозяйственное общество, уставный капитал которого создан в целях извлечения прибыли. Общество действует на основании Гражданского кодекса Российской Федерации, Федерального закона «Об обществах с ограниченной ответственностью», Устава компании.

Общество имеет в собственности обособленное имущество (в том числе программное обеспечение), учитываемое на его самостоятельном балансе, может от своего имени приобретать и осуществлять имущественные  и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде.

Общество «Мегафорт-Калининград» имеет самостоятельный баланс, расчетный и иные счета. Оно имеет круглую печать, содержащую его полное фирменное наименование на русском языке и указание на место нахождения Общества. Вправе иметь штампы и бланки  со своим фирменным наименованием, собственную эмблему, а также зарегистрированный в установленном порядке товарный знак и другие средства индивидуализации. 

«Мегафорт-Калининград» считается созданным как юридическое лицо с момента его государственной регистрации в порядке, установленном федеральным законом о государственной регистрации юридических лиц.

Полное фирменное наименование – общество с ограниченной ответственностью «Мегафорт-Калининград». Сокращенное фирменное наименование – ООО «Мегафорт-Калининград». Сведения о месте нахождения Общества – 236010, город Калининград, улица л-та Яналова, 17Д.

Целью деятельности ООО «Мегафорт-Калининград» является извлечение прибыли.

«Мегафорт-Калининград» осуществляет основные виды деятельности:

  • разработка проектов дизайна интерьеров,
  • розничная торговля в неспециализированных и специализированных магазинах,
  • разработка технических заданий, чертежей, эскизов,
  • аренда грузового автомобильного транспорта,
  • разработка систем освещения общественных объектов,
  • розничная торговля, а также любые иные виды хозяйственной деятельности, в том числе внешнеэкономической, не запрещенные законодательством.

Отдельными видами деятельности, перечень которых определяется федеральным законом, Общество может заниматься только на основании специального разрешения (лицензии). Если условиями предоставления специального разрешения (лицензии) на осуществление определенного вида деятельности предусмотрено требование осуществлять такую деятельность как исключительную, Общество в течение срока действия такого разрешения (лицензии) вправе осуществлять только виды деятельности, предусмотренные специальным  разрешением (лицензией), и сопутствующие виды деятельности.

ООО «Мегафорт-Калининград» поставляет продукцию в дизайн-студии, строительным фирмам и частным клиентам.

ООО «Мегафорт-Калининград» закупает продукцию у производителей и поставляет паркетную доску своим клиентам, таким образом,  данная организация является посредником в цепочке продаж. Поставка продукции является ключевым бизнес-процессом на предприятии.

Характеристика фирмы:

По виду реализуемого ассортимента — узкоспециализированное предприятие.

По методу продажи – по образцам и каталогам.

2.1 Выбор инструментов для разработки сайта

2.1.1 Локальный сервер для создания сайта

В процессе работы над проектом необходим сервер, который бы обрабатывал запросы и отправлял в браузер данные из базы данных. В качестве сервера была использована сборка OpenServer.

OpenServer – это бесплатный веб-сервер, подходящий для разработки веб-приложений в локальных условиях.

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

Компоненты программного комплекса:

  • OpenServer 5.2.5;
  • Apache 2.2.31 / 2.4.20;
  • Bind 9.10.4-P1;
  • Nginx 1.6.3 / 1.8.1 / 1.10.1;
  • MySQL 5.1.73 / 5.5.50 / 5.6.31 / 5.7.13;
  • MariaDB 5.5.50 / 10.0.26 / 10.1.14;
  • MongoDB 2.4.14 / 2.6.12 / 3.0.12 / 3.2.7;
  • PostgreSQL 9.2.17 / 9.3.13 / 9.4.8 / 9.5.3;
  • Redis 2.8.2402 / 3.0.504 / 3.2.100;
  • Memcached 1.2.6 / 1.4.5;
  • FTP FileZilla 0.9.57;
  • PHP 5.2.17;(Zend Optimizer 3.3.3, IonCube 4.0.7, Memcache 2.2.4)
  • PHP 5.3.29;(Xdebug 2.2.7, Memcache 3.0.8, Mongo 1.6.14, Redis 2.2.7, Imagick 3.2.0)
  • PHP 5.4.45;(Xdebug 2.4.0, Memcache 3.0.8, Mongo 1.6.14, Redis 2.2.7, Imagick 3.2.0)
  • PHP 5.5.37;(Xdebug 2.4.0, Memcache 3.0.8, Mongo 1.6.14, MongoDB 1.1.7, Redis 2.2.7, Imagick 3.2.0)
  • PHP 5.6.23;(Xdebug 2.4.0, Memcache 3.0.8, Mongo 1.6.14, MongoDB 1.1.7, Redis 2.2.7, Imagick 3.2.0)
  • PHP 7.0.8;(Xdebug 2.4.0, PDFlib 3.0.4, MongoDB 1.1.7, Redis 3.0.0)
  • ImageMagick 6.8.9-9-Q16;
  • Ghostscript 9.19;
  • Sendmail 32;
  • Wget 1.11.4;
  • NNCron Lite 1.17;
  • Adminer 4.2.5;
  • ConEmu 16.10.09a;
  • HeidiSQL 9.3;
  • RockMongo 1.1.7;
  • PHPRedisAdmin 1.6.0;
  • PHPMyAdmin 4.6.4;
  • PHPPgAdmin 5.2;
  • PHPMemcachedAdmin 1.2.2;

Компоненты сборки представлены в 32-битной и 64-битной (частично) версиях.

Поддерживаемые версии Windows (32-бит и 64-бит): Windows 7 и все более новые версии.

Частично поддерживаемые версии Windows (32-бит и 64-бит): Windows XP SP3 и Windows Vista.

Минимальные аппаратные требования: 500 МБ свободной RAM и 3 ГБ свободного места на HDD.

Требуется наличие Microsoft Visual C++ 2005-2008-2010-2012-2013-2015 Redistributable Package.

Возможности управляющей программы:

  • незаметная работа в трее Windows;
  • быстрые старт и остановка;
  • автостарт сервера при запуске программы;
  • несколько режимов управления доменами;
  • монтирование виртуального диска;
  • поддержка управления через командную строку;
  • поддержка профилей настроек;
  • удобный просмотр логов всех компонентов;
  • переключение http, MySQL и PHP модулей;
  • подробная и понятная документация;
  • доступ к доменам в один клик;
  • быстрый доступ к шаблонам конфигурации;
  • мультиязычный интерфейс;
  • автозапуск программ по списку.

Особенности комплекса:

  • не требует установки (портативность);
  • возможность работы с USB накопителя;
  • одновременная работа с Denwer, XAMPP и т.д.;
  • работа на локальном/сетевом/внешнем IP адресе;
  • поддержка SSL без всякой дополнительной настройки;
  • создание домена путем создания обычной папки;
  • поддержка кириллических доменов;
  • поддержка алиасов (доменных указателей);
  • защита сервера от внешнего доступа;
  • Punycode конвертер доменных имён;
  • пакет из более 40 портативных программ;
  • планировщик заданий (cron);
  • создание локального поддомена без потери видимости основного домена в сети интернет.

Сборка представлена тремя версиями OpenServer: basic, premium и ultimate. В ultimate версии кроме веб-сервера, происходит распаковка и дополнительного программного обеспечения (рисунок 5).

Директория «domains» содержит виртуальные хосты, папка «modules» содержит модули OpenServer (СУБД MySQL различных версий, интерпретатор PHP различных версий и непосредственно сам веб-сервер (nginx или Apache) и другое). В папке «userdata» хранятся настройки для модулей.

Результат распаковки

  Рисунок 5 – Результат распаковки

После запуска сборки OpenServer в трее появится иконка OpenServer представляющая собой флаг красного (остановлен), зеленого (запущен) или желтого цвета (перезапускается) (рисунок 6).

Основные настройки программы

Рисунок 6 – Основные настройки программы

Вкладка «Основные» отображает основные настройки программного комплекса, где можно создать профиль и для каждого профиля завести различные уникальные настройки.

При создании виртуальных хостов OpenServer автоматически добавляет запись в файл hosts. При ошибках запуска программы в OpenServer включена возможность запуска сервера без редактирования файла (рисунок 7).

Отключение возможности внесения измене

Рисунок 7 – Отключение возможности внесения изменений в файл hosts

Программный комплекс OpenServer может обеспечить не только локальную работу, но также может сделать персональный компьютер полноценным веб-сервером.

Для создания проекта, необходимо в папке domains создать паку с нужным названием, и в этой папке создать индексный файл – index.php, таким образом создается виртуальный хост, в котором будет размещаться разрабатываемы проект.

При возникновении проблем при запуске, или при необходимости узнать статус работы веб-сервера в OpenServer предусмотрена возможность ведения логов, это позволяет регистрировать, находить и устранять ошибки в работе сервера.

Во вкладке «Модули» осуществляется конфигурирование веб-сервера, а именно выбор сервера, версии PHP и СУБД и другое (рисунок.8).

 Модули OpenServer

Рисунок 8 – Модули OpenServer

2.1.2 СУБД для сайта

Реляционная база данных – база данных, основывающаяся на реляционной модели. Слово «реляционный» происходит от английского слова «relation» (отношение). Для работы с реляционными базами данных применяют реляционные системы управления базами данных. Использование реляционных баз данных было предложено в 1970 году доктором Коддом, работающим в компании IBM [11].

Реляционная модель организует данные в виде двумерных таблиц. Каждая реляционная таблица, представляющая собой двумерный массив, должна обладать следующими свойствами [5]:

1) каждый элемент таблицы представляет собой только один элемент данных;

2) все ячейки в столбце таблицы являются однородными – все элементы столбца должны иметь одинаковый тип (INT, FLOAT, VARCHAR и т. д.);

3) каждый столбец имеет уникальное имя, идентифицирующее данный столбец;

4) в таблице не может быть одинаковых строк;

5) порядок следования строк и столбцов произволен.

Практически все системы управления реляционными базами данных обеспечивают работу с языком SQL, при помощи которого можно определять и модифицировать структуру данных, добавлять, изменять и удалять данные, а также делать самые разнообразные выборки данных.

Наибольшее распространение получили серверы реляционных баз данных, которые основаны на клиент-серверной архитектуре. Эти серверы обеспечивают устойчивую работу с базами данных одновременно большого количества клиентов (это могут быть десятки, сотни, тысячи и миллионы клиентов – все зависит от используемого оборудования и программного обеспечения).

Кроме этого, реляционную модель данных реализуют так называемые настольные базы данных, такие как dBASE, FoxPro, Clarion, Paradox, Access. Практически все ведущие настольные базы данных в настоящее время поддерживают возможность работы в качестве клиентов серверов баз данных при помощи технологий ODBC, BDE, ADO и др.

Реляционные базы данных построены на строгой теории реляционных баз данных, которая, в свою очередь, базируется на теории множеств и теории отношений. Реляционная база данных представляет собой набор таблиц, между которыми заданы связи. Строки таблиц называют записями, а элементы, из которых состоит запись — полями. В теории реляционных баз данных таблицы называют отношениями, записи — кортежами, а поля — атрибутами.

Таблица реляционной базы данных не может содержать повторяющихся записей (строк). Это требование как бы унаследовано из теории множеств. Минимальный набор полей, который позволяет отличить запись от любой другой записи, называется ключом. Все значения ключа в пределах одной таблицы должны быть уникальными. Каждая таблица должна иметь, по крайней мере, один ключ, что прямо следует из того, что таблица не может содержать повторяющихся записей.

Ключи таблицы могут состоять из одного поля – такие ключи называют атомарными или простыми ключами. Ключи могут состоять из нескольких полей — составные ключи. Таблица базы данных может иметь один ключ или несколько ключей. Один из ключей назначают в качестве первичного ключа, а остальные называют потенциальными (в теории реляционных баз данных) или альтернативными (в конкретных реализациях некоторых баз данных) [11].

Часто используют суррогатные первичные ключи – это ключи, состоящие из поля (или полей), которые не несут информации из предметной области, а служат заменой (суррогатом) для естественного (натурального) первичного ключа. В качестве суррогатных ключей чаще всего используются счетчики (генераторы, последовательности) autoincrement или глобально–уникальные идентификаторы (GUID). Правильно разработанная структура базы данных должна удовлетворять специальным правилам, которые базируются на теории отношений и называются нормальными формами [8].

Понятие нормальной формы было введено Эдгаром Коддом при создании реляционной модели баз данных. Нормализация – это процесс преобразования базы данных, к виду, который отвечает нормальным формам и обеспечивает минимальную избыточность. Цель нормализации – защита базы данных от структурных и логических проблем, являющимися аномалиями данных.

К примеру, если есть несколько одинаковых записей в таблице, то в этом случае есть риск нарушения целостности данных при последующем обновлении таблицы. Таблица, прошедшая нормализацию, меньше подвергается этим проблемам, поскольку структура такой таблицы определяет связи между данными, таким образом исключается необходимость существования записей с информацией, которая повторяется.

Избыточность можно устранить при помощи разбиения отношений (таблиц) таким образом, чтобы в каждом отношении хранились только первичные факты (факты, которые не выводятся из других хранимых фактов). Таким образом, нормализация не ставит цель уменьшения или увеличения производительности работы или же уменьшения, или увеличения объёма базы данных. Конечная цель нормализации – уменьшение потенциальной противоречивости, хранимой в БД информации. Нормализация применима к таблице, которая представляет собой правильное отношение.

Реляционные СУБД делятся на системы с открытым кодом (OpenSource) и с закрытым. Согласно исследованиям компании IDC, компании из Европы чаще отдают предпочтении открытому программному обеспечению (ПО). Делают это они из-за повышения качества и гибкости данного ПО [12].

Система управления базами данных представляет собой программное обеспечение, с помощью которого пользователи могут создавать, определять и поддерживать базу данных. Особенность СУБД с открытым кодом является то, что они имеют при себе исходный код, который можно изменить, оптимизировать, ускорить за счет какого-либо алгоритма.

Рассмотрим характеристики некоторых СУБД.

Firebird. Представленная СУБД является кроссплатформенной. Одним из преимуществ является возможность параллельной обработки запросов, то есть когда читающие пользователи не заблокируют пишущих. СУБД зарекомендовала себя в системах автоматизированного управления процессами для сбора текущих данных.

SQLite представляет собой компактную встраиваемую реляционную базу данных. Данная СУБД не может применяться в системах с клиент серверной архитектурой. Движок является встраиваемым, предоставляет собой библиотеки. После компиляции становится единым целым с написанной программой. Применяется для хранения настроек, временных данных.

PostgreSQL. Одна из наиболее популярных, является объектно–ориентированной системой управления базами данных. Одной из сильной стороны данной СУБД является поддержка баз данных практически неограниченного размера.

MySQL. Свободная реляционная СУБД. Применяется в приложениях малого и среднего класса. Используют как локально, так и удаленно по принципу клиент–сервер. Разработку и поддержку ведет компания Oracle.

Выбор СУБД для реализации информационной системы– это довольно сложный процесс, который требует навыков, знаний и внимания профессионала в этой области. Неправильный выбор СУБД может заблокировать процесс реализации данной технологии, а замена СУБД может стоить слишком дорого.

СУБД относится к очень сложной части программного обеспечения, которую трудно понять во всей полноте и является жизненно важной для определения критериев, которые могут быть использованы администратором базы данных в процессе их отбора. Многие практики–разработчики баз данных в своих работах отмечают, что выбор критериев использования СУБД заключается в первичном анализе организационных потребностей и необходимых функций СУБД. Практики-разработчики выделяют ряд факторов выбора СУБД для реализации задачи, в частности [3]:

  • требования к применению (это ограничение, которые вводятся в базу данных в приложении);
  • функции и инструменты СУБД (встроенный набор инструментов, который помогает облегчить задачу разработки приложений);
  • модели СУБД (иерархические, сетевые, реляционные, объектно–ориентированные);
  • переносимость СУБД (системы и языки программирования, платформы)
  • требования СУБД к оборудованию (минимальная скорость процессора, объем оперативной памяти, дискового пространства и т.д.);
  • стоимость СУБД (затраты на приобретение и обслуживание, эксплуатационные расходы, стоимость лицензий, затраты на установку, стоимость обучения и преобразования расходов);
  • сохранение целостности данных (защита данных в базе данных от несанкционированного доступа, изменения или уничтожения данных).

СУБД MySQL (Structured Query Language) является одной из самых популярных СУБД на сегодняшний день. СУБД MySQL рационально подходит к решению сложных задач. С помощью СУБД MySQL можно реализовать высоко функциональные системы.

К преимуществам СУБД MySQL относится:

  • упрощение ввода записей;
  • упрощение поиска записей;
  • гибкость поиска записей;
  • гибкость вывода записей;
  • доступ к записям многопользовательский;
  • возможность передачи записей в электронном виде.

MySQL представляет собой высокопроизводительную многопоточную и многопользовательскую систему управления реляционными базами данных, основанную на архитектуре «клиент – сервер». За последние годы эта мощная, надежная и дружественная к пользователю система управления базами данных стала стандартом для использования, как в деловой, так и в личной сфере во многом благодаря ее продвинутому набору инструментов для управления данными, мягкой политике лицензирования и общемировой поддержке со стороны сообщества, куда входят как простые пользователи, так и серьезные разработчики.

Популярность MySQL обусловлена определенным сочетанием уникальных особенностей, к которым относятся скорость, надежность, расширяемость и открытость исходного кода [16].

Для системы управления реляционными базами данных скорость – время, затрачиваемое на выполнение запроса и возврат результатов тому, кто его совершает, – это решающий показатель. По любым меркам MySQL является производительной системой, которая зачастую оказывается на порядок быстрее решений конкурентов. Тесты производительности, доступные на сайте MySQL, свидетельствуют о том, что MySQL опережает почти все прочие системы управления базами данных, доступные в настоящее время, включая коммерческие аналоги вроде Microsoft SQL Server 2000 и IBM DB2.

Иногда, высокая производительность сопровождается низко надежностью. Однако MySQL, созданная с целью обеспечить максимальную надежность и оптимальное время работы, прошла тесты и сертификацию для использования в высокоуровневых критически важных приложениях. MySQL поддерживает транзакции, гарантирующие согласованность данных и снижающие риск потери информации, а также репликацию и кластеризацию, которые представляют собой методики, значительно уменьшающие время простоя в случае сбоя сервера. И наконец, многочисленная аудитория пользователей MySQL содействует быстрому обнаружению и устранению ошибок, а также тестированию этого программного продукта в различных окружениях. Такой профилактический подход привел к тому, что в MySQL фактически нет ошибок[16].

MySQL может обрабатывать чрезвычайно большие и сложные базы данные, сохраняя при этом достойный уровень производительности. Таблицы объемом в несколько гигабайт, содержащие сотни тысяч записей, являются распространенным явлением в информационных системах, которые в качестве базы данных используют MySQL.

Несмотря на то, что большая часть взаимодействия с MySQL осуществляется через интерфейс командной строки, существует и ряд графических инструментов на браузерной или иной основе, облегчающих выполнение задач управления и администрирования сервера баз данных MySQL.

В отличие от своих платных аналогов, где необходимо настраивать буквально сотни параметров, система MySQL довольно легка в настройке и оптимизации даже в случае с самыми требовательными приложениями. Если говорить о коммерческом окружении, то здесь полностью поддерживаются профессиональное обучение, консультирование и техническое сопровождение MySQL.

MySQL поддерживает большинство важных требований стандарта ANSI SQL (ANSI — American National Standards Institute (Американский национальный институт стандартов)) и часто позволяет дополнять его пользовательскими расширениями, функциями и типами данных, которые призваны улучшить переносимость и обеспечить расширенную функциональность для потребителей.

MySQL является полноценной многопользовательской системой, а это означает, что множество клиентов могут одновременно получать доступ и использовать одну (или более) базу данных MySQL. Это особенно важно при разработке веб–приложений, которые должны поддерживать одновременное подключение множества удаленных клиентов. MySQL включает также мощную и гибкую систему привилегий, позволяющую администраторам защищать доступ к критическим данным, используя комбинацию из схем проверки подлинности пользователей и хостов [7].

Поскольку MySQL является программным решением, используемым миллионами людей по всему миру, она полностью поддерживает кодировку Unicode, а также наиболее существенные наборы символов (в том числе латинских и китайских). Наборы символов учитываются при сортировке, сравнении и сохранении данных.

MySQL предусматривает наличие интерфейсов программирования приложений API (Application Programming Interfaces) на множестве языков, что дает возможность создавать управляемые базами данных приложения на множестве языков программирования. В настоящее время MySQL позволяет работать с такими языками, как C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl, имеются также коннекторы для JDBC–, ODBC– и .NET–приложений.

2.1.3 Среда разработки сайта

Для разработки информационной системы была использована программа PHPStorm. Это интегрированная среда разработки на PHP с интеллектуальным редактором, поддерживает PHP 7.0, 5.6, 5.5, 5.4 и 5.3 для проектов, обеспечивает автодополнение кода, рефакторинги, предотвращение ошибок и поддерживает смешивание языков.

Можно назвать много причин, почему программа PHPStorm была выбрана в качестве среди разработки, среди которых следует отметить понятный интерфейс, широкий функционал, поддержку подсветки, поддержка широкого перечня баз данных. Программа позволяет получить доступ к базе данных и вносить туда информацию, а также проводить изменения данных в ней. Кроме того, программа поддерживает загрузку и выгрузка файлов проекта из сервера, а также обновление и редактирование файлов

Программа поддерживает передовые технологии веб-разработки, включая HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, шаблоны Jade, Zen Coding, Emmet, и, конечно же, JavaScript.

PHPStorm включает в себя возможности WebStorm (HTML/CSS редактор, JavaScript редактор) и добавляет полнофункциональную поддержку PHP и баз данных / SQL.

Основные возможности программы PHPStorm [38]:

  • интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету;
  • поддержка 7.0, 5.6, 5.5, 5.4 и 5.3, генераторов, сопрограмм, синтаксические улучшения;
  • PHP рефакторинги, code (re)arranger, детектор дублируемого кода;
  • поддержка Vagrant, Composer, встроенный REST клиент, Command Line Tools, SSH консоль;
  • поддержка фреймворков (MVC view для Symfony2, Yii) и специализированные плагины для ведущих PHP фреймворков (Symfony, Magento, Drupal, Yii, CakePHP и многих других) (рисунок 10);
Создание проектов на основании фреймворков

Рисунок 10 – Создание проектов на основании фреймворков

  • визуальный отладчик для PHP приложений, валидация конфигурации отладчика, PHPUnit с покрытием кода (поддержка PHPUnit 5), а также интеграция с профилировщиком;
  • HTML, CSS, JavaScript редактор. Отладка и модульное тестирование для JS. Поддержка HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, Emmet и другие передовые технологии веб-разработки;
  • полный набор инструментов для фронтенд-разработки;
  • поддержка стилей кода, встроенные стили PSR1/PSR2, Symfony2, Zend, Drupal и других;
  • интеграция с системами управления версиями (GitHub и др.), включая унифицированный интерфейс (рисунок 11);
  • удаленное развертывание приложений и автоматическая синхронизация с использованием FTP, SFTP, FTPS;
Контроль версий в PHPStorm

Рисунок 11 – Контроль версий в PHPStorm

  • Live Edit: изменения в коде можно мгновенно просмотреть в браузере без перезагрузки страницы;
  • PHP UML;
  • интеграция с баг-трекерами;
  • инструменты работы с базами данных, SQL редактор (рисунок 3.3);
  • кросс-платформенность (Windows, Mac OS X, Linux).

Новые возможности версии PhpStorm 2016.3:

  • инструменты и фреймворки: поддержка Docker в удаленных интерпретаторах, поддержка фреймворка тестирования PHPSpec, автоматическое обнаружение и конфигурирование PHPUnit, Behat и PHPSpec из composer.json, поддержка открытия нескольких проектов в одном фрейме, поддержка стиля кода Codeigniter;
Работа с базами данных

Рисунок 12 – Работа с базами данных

  • новый подход к редактированию: семантическая подсветка переменных и параметров, автодополнение переопределенных методов и полей без ключевого слова function и var, улучшенная поддержка PSR-0/PSR-4;
  • анализ качества кода: строгие типы PHP 7 во всем проекте, новые инспекции соглашения по присвоению имен, улучшенное предотвращение ошибок времени выполнения;

В программе версии 2016.3 значительно усовершенствована поддержка передовых веб-технологий: поддержка Flow, улучшенная поддержка TypeScript, поддержка PostCSS, Stylelint и многое другое.

В PhpStorm 2016.3 также попали многие новые возможности и усовершенствования из IntelliJ Platform, улучшены эргономические характеристики и скорость работы журнала VCS, доработано диалоговое окно объединения (Merge), подсветка синтаксиса в диалоговых окнах Diff и Merge, а также интерфейс для управления удаленными репозиториями Git в проекте. Кроме того, улучшены средства работы с базами данных [17].

2.2 Проектирование информационной структуры сайта

В разрабатываемой системе будет использована иерархическая структура. Такое представление информации хорошо подходит для проработанной, систематизированной и организованной информации. Перемещение по уровням такой структуры осуществляется в направлении от общего к частному.

Такая информационная архитектура подходит для информационно-справочной системы и позволит легко воспринимать посетителям сайта, информацию, которая представлена на нем (рисунок 12).

  • Сайт будет состоять из следующих страниц:
  • главная страница;
  • справочные материалы;
  • контактная форма;
  • страница администратора;
  • просмотр вопросов (для администратора);
  • управление администраторами (для администратора);
  • изменить данные публичной части (для администратора);
  • добавление категорий (для администратора);
  • добавление записей (для администратора).
Схематическое изображение структуры сайта

Рисунок 12 – Схематическое изображение структуры сайта

2.3 Проектирование базы данных сайта

Среда MySQL Workbench предназначена для визуального проектирования баз данных и управления сервером MySQL. Для построения моделей предназначена секция Models (рисунок 13).

Окно для построения EER-диаграммы

Рисунок 13 – Окно для построения EER-диаграммы

Чтобы создать таблицу нужно нажать пиктограмму, показанную на рисунке 14.

Пиктограмма для создания таблицы в модели базы данных

Рисунок 14 – Пиктограмма для создания таблицы в модели базы данных

После создания таблицы ее можно отредактировать, задав имя и настроить ее структуру (рисунок 15).

Создание таблицы «admins»

Рисунок 16 – Создание таблицы «admins»

Таблица «subjects» (рисунок  17) предназначена для сохранения данных о категориях материалов в системе.

Создание таблицы «subjects»

Рисунок 17 – Создание таблицы «subjects»

Для хранения записей из публичной части создана таблица «pages» (рисунок 18). В эту таблицу записываются данные, после добавления записей в категорию на сайте.

Создание таблицы «pages»

Рисунок 18– Создание таблицы «pages»

Записи из контактной формы на сайте вносятся в таблицу «contactform» (рисунке 19). Также эта таблица используется для формирования страницы информационной системы со списком вопросов из контактной формы.

Создание таблицы «contactform»

Рисунок 20 – Создание таблицы «contactform»

На рисунке 21 изображена ER-модель базы данных сайта, которая показывает структуру созданной базы данных и связь между таблице категорий (subjects) и записей (pages).

ER-модель базы

Рисунок 21 – ER-модель базы

2.4 Реализация сайта компании ООО «Мегафорт-Калининград»

Одной из главных функциональных частей сайта является форма обратной связи. В качестве форм использованы HTML-формы, которые передают в POST-параметры данные обработчику формы, которые необходимо записать в базу данных.

После заполнения формы и нажатия кнопки «Отправить» данные из формы поступают в обработчик — processing_contact_form.php.

На рисунке 22 показан вид созданной формы обратной связи.

Процесс работы над формой обратной связи

Рисунок 22 – Процесс работы над формой обратной связи

Чтобы данные из формы записывались в базу данных необходимо организовать подключение к базе данных. За подключение системы к базе данных отвечает файл db.connect.php (рисунок 23). Код файла представлен ниже:

<?php

define(«DB_SERVER», «localhost»);

define(«DB_USER», «root»);

define(«DB_PASS», «»);

define(«DB_NAME», «megafort»);

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

// Проверка соединения

if (mysqli_connect_errno()) {

die(«Database connection failed: » .

mysqli_connect_error() .

» (» . mysqli_connect_errno() . «)»

);

}

Подключается файл внутри файлов системы с помощью конструкции:<?phpinclude ‘includes/db_connect.php’; ?>.

В случае ошибки подключения к базе данных система выдаст сообщение об этом.

Файл db_connect.php

Рисунок 24 – Файл db_connect.php

После отправки данных при нажатии кнопки, параметры из формы поступают на обработку в файл processing_contact_form.php. Данный файл обеспечивает очистку данных от всего лишнего (с целью обезопасить систему) и после этого записывает в базу данных.

На рисунке 25 показан процесс работы над обработчиком формы.

Процесс работы над файлом - processing_contact_form.php

Рисунок 25 – Процесс работы над файлом — processing_contact_form.php

Для выбора и отображения информации из базы данных необходимо создать запрос к базе данных на выборку данных, а потом сформировать из этих данных таблицу. За этот функционал при выводе вопросов заданных из формы обратной связи и записанных в базу данных отвечает файл contactform.php. Данный файл считывает информацию из базы данных и выводит ее на экран.

Процесс работы над файлом выборки и отображения информации из базы данных показан на рисунке 26.

Работа над файлом contactform.php

Рисунок 26 – Работа над файлом contactform.php

Для создания административной части сайта необходимо реализовать вход и выход на сайт. Файл login.php будет отвечать за вход на сайт, logout.php – за выход из сайта, страница администратора – admin.php (рисунки 27 — 28).

Окно входа в систему

Рисунок 27 – Окно входа в систему

 Страница администратора системы

Рисунок 28 – Страница администратора системы

Окно управления администраторами системы

Рисунок 29 – Окно управления администраторами системы

На рисунке 30 показан код формы авторизации на сайте, и ее обработчика которые находятся в одном файле – login.php.

Код формы авторизации в системе

Рисунок 30 – Код формы авторизации в системе

2.5 Проверка работоспособности сайта

Проверка работы формы обратной связи показана на рис. 31.

Проверка функционирования формы обратной связи

Рисунок 31 – Проверка функционирования формы обратной связи

После заполнения формы обратной связи и нажатия кнопки «Отправить» данные из формы записываются в базу данных (рис. 32).

Записи из формы в базе данных

Рисунок 32 – Записи из формы в базе данных

3. Экономическое обоснование создания сайта

Планировать работу над сайтом можно с помощью программы Microsoft Project. Программа предоставляет широкие возможности для управления проектом: планирование задач, управление ресурсами, отслеживание выполнения, составление отчетов, совместная работа, настройка параметров и гибкое планирование.

В процессе разработки сайта задействованы 3 специалиста: руководитель проекта, информатик-экономист, программист (таблица 3).

Таблица 3 – Перечень ресурсов для работы

Название ресурсаСтоимость, р/ч
Информатикэкономист230,00
Программист250,00
Руководитель250,00
Таблица 3 – Перечень ресурсов для работы

Задачи руководителя проекта:

  • согласование и утверждение всех стадий проекта;
  • передача информации и программы для внедрения в организацию.

Задачи информатика-экономиста:

  • анализ предметной области;
  • моделирование бизнес-процессов;
  • разработка требований к будущему сайта;
  • постановка задачи программисту;
  • анализ результатов функционирования сайта.

Задачи программиста:

  • разработка алгоритма решения задач;
  • выбор среды программирования;
  • разработка модулей программы;
  • программирование объектов;
  • отладка;
  • тестирование;
  • установка программы, подготовка программной документации.

Этапы работы по созданию программы, длительность этапов и необходимые ресурсы показаны на рисунке 33.

Для наглядного отображения процесса разработки сайта и привязки основных работ к календарным срокам на рисунке 34 представлен линейный график календарного планирования разработки справочной системы (диаграмма Ганта).

В качестве начала проекта выбрано 3 апреля 2017 года. Общие сроки разработки 39 рабочих дня при пятидневной рабочей неделе и восьмичасовом рабочем дне.

Затраты на разработку сайта определяются по следующим основным статьям:

  • заработная плата;
  • социальные отчисления;
  • стоимость машинного времени;
  • амортизация;
  • накладные расходы;
  • затраты на расходные материалы.
Основные этапы и работы проектирования сайта

Рисунок 33 — Основные этапы и работы проектирования сайта

Совокупные затраты на основную заработную плату при разработке программы берутся из диаграммы Ганта и составляют 116000,00 рублей. (на 3 человек).

Общая страховая нагрузка в 2017 году составляет 30% от заработной платы работника, из которых:

  • 22% уплачиваются в Пенсионный Фонд России;
  • 2,9 % в Фонд Социального Страхования РФ;

5,1% в Федеральный Фонд Обязательного Медицинского Страхования.

Диаграмма Ганта  
Рисунок 34 — Диаграмма Ганта  

Отчисления в страховые и внебюджетные фонды рассчитываются по формуле:

Машинное время составляет 50% от трудоемкости, при этом трудоемкость разработки составляет 312 человеко-часов при длительности разработки 39 рабочих дня и восьмичасовом рабочем. Средняя стоимость 1 машино-часа 6 рублей.

Стоимость машинного времени SМАШ определяется по формуле:

где DМАШ ―доля времени на разработку, приходящаяся на использование машинного времени;

CМАШ― стоимость 1 часа работы ПЭВМ.

Амортизация рассчитывается по формуле:

где АГОД― амортизация основных фондов за год;

S ― стоимость приобретения ПЭВМ вместе с оргтехникой;

T ― время эксплуатации.

Стоимость компьютера вместе с оргтехникой составляет 45 000 рублей. Срок полезного использования установлен 5 лет, тогда:

Ежемесячная сумма амортизации AМЕСрассчитывается по формуле:

Амортизация в связи с разработкой и внедрением ИС рассчитывается по формуле:

где ТМЕС ― количество месяцев, необходимое на разработку и внедрение ЭИС.

Накладные расходы составляют в среднем 5% от затрат на основную зарплату и рассчитываются по формуле:

где Os― суммарная заработная плата;

Knr― коэффициент накладных расходов.

Сметная калькуляция затрат на разработку и внедрение сайта представлена в таблице 4.

Общая стоимость разработки и внедрения сайта составит 127 720 рублей.

Для внедрения разработанной сайта должна быть установлена ПЭВМ с соответствующим программным обеспечением. На предприятии в данном отделе уже установлено необходимое оборудование, поэтому затрат, связанных с его приобретением, в данном случае нет.

Структура затрат на разработку сайта

Рисунок 35 — Структура затрат на разработку сайта

ПоказательСумма (руб.)
Заработная плата исполнителей116000
Отчисления с заработной платы34800
Стоимость машинного времени936
Амортизация1500
Накладные расходы5800
Итого159036
Таблица 4― Сметная калькуляция затрат на разработку и внедрение сайта

Целесообразность разработки и внедрения сайта можно оценить на основе расчетов экономии, полученной в результате разработки и внедрения сайта силами сотрудников в сравнении с альтернативными затратами на покупку или заказ системы у сторонних организаций. Рыночная стоимость одного из аналогов сайта составляет 102 400 рублей (52000 рублей— стоимость лицензии на программный продукт.

Сравнение затрат на разработку сайта собственными силами с затратами на приобретение уже готового программного продукта осуществляется по формуле 7:

Где КЭ ― коэффициент экономии;

ZПР― затраты на приобретение готового программного продукта;

KРМ― количество рабочих мест;

ZРАЗ― затраты на разработку сайта собственными силами.

Кроме того, сторонний программный комплекс требует дополнительных затрат на внедрение и сопровождение. В техническую поддержку входит обновление ключей, версий программы, консультации по настройке и использованию программы.

Затраты на сопровождение ZСОПР рассчитаются по формуле 8:

где ZСМ― затраты на сопровождение за 1 месяц;

TМЕС ― количество месяцев.

Таким образом,

Итак, совокупные затраты на разработку и сопровождение приобретаемого готового продукта ZСОВсоставят:

Таким образом, экономия от создания сайта собственными силами составляет:

Проведенный выше анализ показал, что целесообразнее создать сайт систему собственными силами.

Заключение

В результате работы был произведен анализ требований, предъявляемых к сайту, анализ предметной области и обзор существующих технологий создания сайтов.

Создан сайт, который предоставляет возможность знакомиться с информацией о компании, ее продукции и деятельности. В созданной системе реализовано разграничение доступа: пользователь, администратор. Администратор системы имеет возможность создавать, удалять, редактировать материалы и данные в системе. Произведено тестирование программы и дана оценка экономической эффективности.

Основными технологиями создания сайта послужили: PHP — скриптовый язык программирования; SQL — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Наиболее удобным инструментом для проектирования и создания баз данных является программа MySQL Workbench. Для разработки проекта был использован программный комплекс OpenServer, который может быть использован для публикации сайта. В качестве среды разработки проекта было использована программа – PHPStorm. Среда разработки PHPStorm позволяет создавать проекты любой сложности, помогает в администрировании, отладке и настройке проектов.

Список использованной литературы

  1. Вайсфельд М. Объектно-ориентированное мышление / М. Вайсфельд. — СПб.: Питер, 2014. — 304 с.
  2. Вальчевский А. С. Технология системы управления контентом [Электронный ресурс] / А. С. Вальчевский, Е. Б. Никитин // http://belisa.org.by/pdf/PTS2005/219-220.pdf (дата обращения 19.05.2017)
  3. Вересников, Ю. К. О надежности систем обработки информации / Ю. К. Вересников //Актуальные проблемы современной науки. — 2011. — № 2 (58). — С. 193-195.
  4. Горнаков С. Г. Осваиваем популярные системы управления сайтом (CMS) / С. Г. Горнаков. – М.: ДМК Пресс, 2009. – С. 20 – 31.
  5. Дронов, В. А. PHP, MySQL, HTML5 и CSS3. Разработка современных динамических Web–сайтов / В. А. Дронов. – СПб.: BHV, 2016. – 688 c.
  6. Елиферов В. Г. Бизнес-процессы: регламентация и управление: / Елиферов В. Г., Репин В. В.: ИНФРА-М, 2011 г. — 319 с.
  7. Жуков Р. А. СУБД с открытым исходным кодом: возможность применения алгоритмов распараллеливания / Р. А. Жуков // Технические науки. – 2015. – № 1–2 (35–36). – С. 20 – 21.
  8. Завдстра М. РНР: объекты, шаблоны и методики программирования, 4-е изд. Пер. с англ. / М. Завдстра — М.: ООО «И.Д. Вильяме», 2015. — 576 с.
  9. Зудилова, Т. В. Web-программирование HTML / Т. В. Зудилова, М. Л. Буркова — СПб: НИУ ИТМО, 2012.– 70 с.
  10. Коцюба И. Ю. Основы проектирования информационных систем. Учебное пособие / И. Ю. Коцюба, А. В. Чунаев, А. Н. Шиков. – СПб: Университет ИТМО, 2015. – 206 с.
  11. Кузнецов, М. В. PHP на примерах / М. В. Кузнецов, И. В. Симдянов. – СПб.: BHV, 2012. – 400 c.
  12. Курзыбова Я. В. Средства создания динамических web-сайтов: учеб. пособие / Я. В. Курзыбова. – Иркутск: Изд-во ИГУ, 2011. – 121 с.
  13. Маклафлин Б. PHP и MySQL. Исчерпывающее руководство [Текст] / Б. Маклафлин. – СПб.: Питер, 2014. – 544 с.
  14. Мартовой А. В. Сущность и основные характеристики электронного бизнеса, электронной коммерции, электронного и интернет-маркетинга / А. В Мартовой // Проблемы материальной культуры. — С. 146 — 153
  15. Маторин С. И. Информационные системы: Учебно-практическое пособие / С. И. Маторин, О. А. Зимовец–Белгород: Изд-во НИУ БелГУ, 2012. – 231 с.
  16. Мустафаева Э. И. Использование СУБД MySQL для разработки информационно–справочной системы «Рекреационные ресурсы города Евпатории» [Электронный ресурс] / Э. И. Мустафаева, Ф. В. Шкарбан – Электрон. текстовые дан. – Режим доступа: http://eztuir.ztu.edu.ua/123456789/1037.
  17. Официальный сайт фирмы iTrack [Электронный ресурс]. Режим доступа: http://itrack.ru/research/cmsrate/ (дата обращения 03.05.2017)
  18. Приступа В. В. Подход к выбору технологии создания динамического сайта [Электронный ресурс] / В. В. Приступа. — Режим доступа: http://www.repository.hneu.edu.ua/jspui/bitstream/123456789/6097/29/sect3_Prystupa.pdf (дата обращения 8.05.2017)
  19. Росс В. С. Создание сайтов: HTML, CSS, PHP, MySQL [Текст]. Учебное пособие, ч. 2 / В. С. Росс — МГДД(Ю)Т, М. — 2011 – 68 с.
  20. Сотник И. Н. Информационно-коммуникационные технологии как направление социально-экономических трансформаций при переходе к информационному обществу / И. Н. Сотник, О. Н. Волк // Современные тенденции управления политическим и социально-экономическим развитием территорий: [монография]; под ред. Минаковой И.В., Мельника Л.Г. — Орел: АПЛИТ. — 2013. — С. 222-234.
  21. Титков А. В. Создание веб-приложений: учебное пособие / А. В. Титков, С. А. Черепанов. — Томск: Эль Контент, 2014. — 72 с.
  22. Филлипов С. А. Основы современного веб-программирования: Учебное пособие / С. А. Филлипов. – М.: НИЯУ МИФИ, 2011. – 160 с.
  23. Шинкевич А. В. Современные технологии создания web-сайтов / А. В. Шинкевич // Проблемы и перспективы современной науки: сб. ст. участников V Респ. науч.-практ. семинара молодых ученых, Минск, 28 нояб. 2014 г. / редколл: В. В. Гедранович [и др.]; Минский ун-т управления. – Минск: Минский университет управления, 2015. – С. 110–114.
  24. Янк К. РНР и MySQL. От новичка к профессионалу / К. Янк. — М.: Эксмо, 2013. — 384 с.
  25. PhpStorm – интегрированная среда разработки на PHP [Электронный ресурс] / Режим доступа: http://jetbrains.ru/products/phpstorm/ (05.05.2017).
  26. Usage of content management systems for websites [Электронный ресуср] / Режим доступа: https://w3techs.com/technologies/overvie
    w/content_management/all (дата обращения 03.05.2017)

Купить данную работу или заказать подобную