Разработка web-приложения

Курсовая работа

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

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

Таким образом, вместо того, чтобы писать различные версии одного и того же приложения для Windows, MacOS, Linux и других операционных систем, приложение создаётся один раз для любой платформы и на ней использую функции браузера поддерживается работоспособность. Однако при создании веб-приложений и их последующей поддержке различные варианты реализации языков разметки и других спецификаций в браузерах может вызвать проблемы. Помимо этого, возможность юзера настраивать многие параметры браузера, как то, например: размер шрифта, цвета, переход на мобильную версию — может препятствовать корректной работе приложения. Но использование активных серверных страниц ASP позволило в большей степени избежать данных проблем.

Цель работы: Спроектировать и разработать Web-приложение для упрощенного доступа пользователя к информации о динамике на ценовом рынке определенных видов товаров, запрашиваемых пользователем. То есть можно выделить несколько основных пунктов, которые должны быть выполнены. Во-первых, приложение должно позволять пользователю выбирать произвольный товар. Во-вторых, реализовать механизм парсинга html страницы с последующем поиском цены с помощью селектора. В-третьих, предоставить пользователю доступ к собранной информации.

Для реализации поставленной задачи были выбраны активные серверные страницы ASP. Вся работа была выполнена с помощью Visual Studio 2015. Для написания сценариев использовался C#. Работа с базами данных осуществлялась с помощью поставщика БД SQL server.

16 стр., 7838 слов

Разработки приложений для системы Android,

... очень удобной для разработки и отладки приложений. Для мобильных приложений под Windows Phone отладка происходит с помощью эмулятора Windows Phone с помощью среды разработки Windows Phone. iPhone SDK Разработка под iPhone под ...

1. Постановка задачи

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

Базой данных (БД) называется совокупность материалов, которые систематизированы таким образом, чтобы их было легко найти и обработать с помощью ПК или другой ЭВМ (электронно-вычислительной машины).

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

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

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

1. Дружественный веб-интерфейс с основной информацией и необходимыми данными для успешного запуска данного приложения.

2. Обеспечить успешный парсинг html кода необходимой веб-страницы и поиск цен.

3. Занесение в базу данных информации введенной пользователем: Имя, персональный id, ссылка на товар, селектор и период мониторинга.

4. Занесение в базу данных, структурировании информации из логов парсинга.

5. Предоставление пользователю возможности добавлять, удалить и исправлять внесенные им данные.

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

2. Проектирование приложения

Проектирование целевого приложения предполагало собой несколько этапов, которые в последствии должны работать как единое целое:

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

2) Реализовать веб-сервис и веб-страницу для программного и ручного доступа к системе (просмотр статистики).

3) Спроектировать и создать базу данных для приложения.

4) Реализовать алгоритм парсинга html с помощью библиотеки CSQuery.

5) Реализовать механизм выполнения серверных задач по расписанию и отправки уведомлений пользователю.

В ходе создания приложения первый и второй пункт были объеденены, так как использую asp.net web form они были успешно созданы в рамках одного веб-сайта. Также в ходе создания приложения было решено использовать одну базу данных и для хранения параметров, введенных пользователем (пункт 1) и для хранения результатов мониторинга и последующего доступа к его результатам (пункт 2).

3. Создание интерфейса

Известно два основных метода создания собственного активного сервера Web с использованием базы Micrоsoft Internet Infоrmation Server:

18 стр., 8712 слов

Разработка мобильного приложения расчета и учета оплаты коммунальных услуг

... проблемы. Целью курсовой работы является разработка программы на базе Android - приложение, позволяющее вести расчёт и учет платежей и показаний ... базе. Такая защитная функция, наряду с выполнением программного кода, является одной из ключевых для Android Runtime. Уровень каркаса приложений (ApplicationFramework). ОС Android позволяет полностью использовать API (интерфейс программирования приложений ...

1. С применением программ расширения CGI (или ISAPI)

2. С помощью активных серверных страниц ASP.

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

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

Что же касается второго способа (с помощью активных серверных страниц ASP), то он значительно проще, несмотря на то, что позволяет решать те же самые задачи, что и программные расширения сервера Web. Страницы ASP представляют собой текстовые файлы с конструкциями языка HTML, классами и сценариями, составленными на таких языках программирования, как JScript и VB Script. Поэтому при условии хороших знаний таких языков программирования как (VB script) написание веб-приложения с использованием технологии ASP не составит труда.

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

1. Регистрация с последующим занесением (e-mail и пароля в базу данных).

2. Введение параметров мониторинга

3. Выбор периода мониторинга

4. Доступ к собранной информации.

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

  • главная страница с основной информацией о приложении и необходимыми ссылками на более подробное описание аспектов программы.
  • панель быстрого доступа расположенная сверху:

*МИЭМ НИУ ВШЭ — ссылка на главную страницу университета

*Главная — переход на домашнюю страницу

*Информация — более подробные сведения о веб-приложении

*Связаться — мои контакты

*Начать работу — пользовательский интерфейс позволяющий создать, изменить или удалить задачу

*Мой мониторинг — позволяет получить подробную информацию о каждом мониторинге, но не предоставляет возможность приостановить мониторинг.

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

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

Доступ к основному функционалу приложения возможен только после регистрации пользователя. А именно к вкладкам «начать работу» и мой мониторинг».

Весь пользовательский интерфейс был реализован с помощью ASP.net Web-forms.

Рис. 1 Демонстрация веб-сайта, созданного с помощью web-forms

26 стр., 12757 слов

Проектирование и разработка базы данных ‘Магазин продажи одежды’

... данным приложением. 1. Анализ предметной области Задачей курсовой работы является проектирование и разработка базы данных «Магазина продажи одежды». Особенности: Введение данных в БД ... для разработки БД для «Магазин продажи одежды» так как эта среда моделирует среду установленную на хостингах и идеально подходит для отладки web приложения Далее изобразим структуры таблиц для реализации данной БД, ...

Модель ASP.NET Web Forms изначально проектировалась для того, чтобы реализовать потенциал RAD в среде Web. Таким образом, главным определяющим фактором для большинства основных характеристик и ключевых концепций ASP.NET было стремление к производительности программирования. Модель Web Forms базируется на трех основных концепциях: обратной передаче страниц, состоянии просмотра и серверных элементах управления. Эти три концепции работают совместно в соответствии с моделью, изображенной на рис. 1. Каждый запрос HTTP, передаваемый веб-серверу и сопоставляемый со средой выполнения ASP.NET, проходит несколько стадий, в которых центральное место занимает обработка события обратной передачи (postback).

Событие обратной передачи — главное действие, которое ожидает получить пользователь в результате обработки своего запроса.

Рис. 2 модель Web-Forms

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

Пример в приложении А

Подключение базы данных

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

В моем проекте вся работа с БД осуществляется с помощью поставщика баз данных SQL server. Так как она легко взаимодействует с ASP и имеет простой интерфейс управления.

Рис. 3 Вывод содержимого таблицы и меню управления

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

9 стр., 4030 слов

Управление обеспечением качества сестринской помощи

... сестринской помощи зависит от степени развития сестринского дела в ... в стандартизации. Это: организационные технологии (технологии аккредитации и лицензирования медицинских учреждений); медицинские услуги; квалификация персонала; учетно-отчетная документация; информационные технологии; ... данные в «Стандартах практической деятельности медицинской сестры», принятых Ассоциацией медицинских сестер России в ...

ASP.NET предоставляет возможность хранения данных в каталоге веб-приложения App_Data. Содержимое каталога App_Data не предоставляется в ответ на веб-запросы, что повышает безопасность данных приложения. Кроме того, разработчик может указать строку подключения |DataDirectory| вместо пути к каталогу приложения App_Data. Функции ASP.NET — например, элементы управления SqlDataSource.

Для удобства использования и во избежание путаницы было создано 2 базы данных:

1. База данных Entities — является стандартной и генерируется автоматически при создании веб-формы, она используется для хранения информации о зарегистрированных пользователях, также в классах и скриптах осуществляется проверка правильности введенной информации. Логин (e-mail пользователя проверки на корректность введённого адреса не проверяется, кроме наличия «@») и пароль пользователя (должен быть введен на латинице, содержать 1 заглавную букву, цифры и строчный знак (<<!»№;%:….>>).

2. База данных NewConnectionString. Была создана для работы с пользователем, в ней содержится информация, внесенная пользователем для мониторинга, а также данные самого мониторинга.

Хочу остановиться подробней на второй базе данных. В ней было создано 2 таблицы:

  • Table
  • Stat

Таблица Table состоит из следующих столбцов:

  • Id — идентификатор необходим для более удобной работы с таблицей, именно к нему обращаются SqlDataSource для создания, правик и удаления строк.
  • Name — Название товара мониторинг которого будет вестись
  • Refference — полная ссылка на товар
  • Pointer — указатель на цену в html коде страницы товара, информацию об указателях можно найти на вкладке веб-приложения » Список поддерживаемых сайтов «.
  • Period — Период мониторинга.

Таблица Stat состоит из 4 стобцов:

  • Id — идентификатор(аналог таблицы Table)
  • Name — имя пользоваетля, именно с помощью данного имени пользователь может следить за ходом мониторинга, так как при наличии мониторинга 2 и более товаров поиск нужного будет осуществляться по этому столбцу.
  • Price — цена товара полученная с помощью парсинга html страницы в определенное время
  • Time — время когда был совершен парсинг.

По 2 последним столбцам пользователь сможет построить график и увидеть зависимости.

Работа с 1 таблицей осуществлялася с помощью элемента управления данными asp.net, а именно SqlSource. Элементы управления источниками данных включают любые элементы управления, которые реализуют интерфейс IDataSource. С помощью этого элемента было создано подключение к любому источнику данных, который имеет поставщика данных ADO.NET. Сюда относятся и SQL Server.

9 стр., 4417 слов

Проектирование базы данных ‘Гостиница’

... не зависит от Z. Рассмотри функциональные зависимости по базе данных «Гостиница»: ФЗ 1: Код_гостиницы - Наименование_гостиницы, Адрес_гостиницы; ФЗ 2: ... SQL Server 1. Описание предметной области Основной задачей является проектирование и разработка приложения для автоматизации регистрации гостиницы. ... и люкс. База данных должна хранить информацию: о гостях, о номерах, об оплате. При работе с системой ...

Рис. 4 Добавление нового элемента в таблицу

Элементы управления источниками данных могут решать две основных задачи:

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

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

Задачи привязки данных возникают в перечисленном ниже порядке:

  • Добавляется объект страницы.
  • Происходит запуск страницы, а именно события Page.Init и Page.Load.
  • любые события элементов управления.
  • выполняются обновления элементами управления источниками данных.

При обновлении строки, генерируются события Updating и Updated. При вставке — то события Inserting и Inserted. При удалении— Deleting и Deleted.

  • Генерируется событие Page.PreRender.
  • Страница отображается и освобождается.

Пример в приложении Б и В:

4. Реализация логики приложения

Основной задачей данного пункта создания веб-приложения, является создание логики приложения. А именно парсинг html страницы в .net.

Данный пункт можно было осуществить двумя способами: с помощью регулярного выражения либо с помощью полноценного парсера. Парсер — объектно-ориентированный скриптовый язык программирования, который позволяет генерировать HTML-страницы на веб-сервере и поддерживает CGI. Так как HTML не всегда успешно работает с регулярными выражениями, то был выбран второй вариант реализации.

Существует множество парсеров, самые популярные из них AngleSharp и CsQuery.

CsQuery был одним из самых новых парсеров HTML для .NET. В качестве основы была взята библиотека validator.nu для Java, которая в свою очередь является портом из движка Gecko (Firefox).

AngleSharp В отличие от CsQuery, написан с нуля вручную на C#. Также включает парсеры других языков. API построен на базе официальной спецификации по JavaScript HTML DOM. В некоторых местах есть странности, непривычные для разработчиков на .NET (например, при обращении к неверному индексу в коллекции будет возвращён null, а не выброшено исключение; есть свой отдельный класс Url; пространства имён очень гранулярные).

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

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

Рис. 5 Демонстрация работоспособности парсера

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

6 стр., 2908 слов

Создание таблицы базы данных в Microsoft Access

... в списке таблиц в окне базы данных появятся имя и значок новой таблицы. Ввести данные в созданную таблицу можно, открыв таблицу в ... работы. Измеряется в ... в Microsoft Access используется схема данных (Relationships). Чтобы открыть схему данных, ... В столбце <Тип данных> (Data Type) для каждого поля таблицы выбрать из раскрывающегося списка тип данных, которые будут содержаться в этом поле. 4. В ...

Пример в приложении Г

5. Windows Task Sheduler

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

Для выполнения данного пункта использовался Task Scheduler Managed Wrapper.

Это библиотека классов, которая является основным модулем для COM объектов WindowsTaskScheduler. У Данной библиотеки имеется удобный и понятный интерфейс для работы с планировщиком задач. Это open-source проект на языке C#. Библиотека Task Scheduler Managed Wrapper использует scheduler версии 2.0.

В Task Sheduler (далее TS) 2.0 был создан новый пользовательский интерфейс в основу которого положен ManagementConsole. Помимо того, что TS позволяет запускать задачи в определенное время или через определенные интервалы, TS 2.0 также поддерживает триггеры, которые основаны на календарных и прочих событиях, такие как запуск задачи при записи необходимого события в Event Log, или при комбинации событий. Также конфигурация запуска для задач может зависить от состояния системы, например, бездействие системы определенное время, запуск, прекращение сеанса. Также существует расширение xPath, с его помощью можно задать фильтры для событий из Windows Event Log. Задачи также могут приостановлены на определенное время после возникновения события или повторяться пока не возникнет событие. Помимо этого, можно задать последовательность действий, которые будут выполнены, если текущая задача не может быть выполнена. Действия, которые выполняются в ответ на триггеры, могут не только запускать приложения, но и ряд спец. дейтсвий.

Task Sheduler имеет ряд стандартных действий, таких как отправка е-майла, вызов всплывающего окна с сообщением, или создание СОМ обработчика. Специальные действия также могут быть заданы при помощи Task Sheduler API. TS сохраняет подробный протокол хода выполнения последовательности задач. API для программного создания задач доступен через СОМ интерфейс ITaskServise. Однако он не включает в себя обертки для управляемого кода для TS-а.

6. Использованные ресурсы, технологии и подходы

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

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

MVC подход

Следуя этому подходу приложение разделяется на 3 компонента: вид, модель и контроллер. Есть несколько паттернов проектирования, которые описывают способы, по которым эти компоненты взаимодействуют.

В данном проекте под Вид попадает большая часть User Interface, который представляет собой «косметику», реализованную на ASP.NET в которой содержатся клиентские страницы, а также описания стилей. Под Контроллер попадает оставшаяся часть User Interface, в котором описаны обрботчики событий, реализуемые пользователем (введение данных, клик по кнопке, загрузка страницы…).

9 стр., 4131 слов

Разработка ASP.NET приложения с нестандартными WEB – элементами управления

... и для развития дальнейших технологий. В данной курсовой работе описана разработка ASP.NET приложения с использованием технологии AJAX. §1. ASP.NET п.1. ... структуры страниц: application; ObjectContext; response; r equest; server; session. Эти объекты встроены в модель ASP.NET- ... AppendToLog – добавляет строку в конец записи журнала веб-сервера, относящейся к этому запросу. BinaryWrite – записывает ...

Под модель попадают все остальные элементы приложения.

Рис. 6 структура MVC подхода

ADO.NET

ADO.NET — представляет собой библиотеку классов, основным смыслом которой является упростить работу с данными, в том числе и с СУБД. Также как и ASP является частью .NET.В настоящее время осуществляет поддержку только двух СУБД: MySQL и MS SQL Server. Но несмотря на это приложение позволяет сравнительно легкими путями добавить поддержку других СУБД.

Основное отличие ADO.NET от других API заключается в том, что в ней не происходит прямого взаимодействия с базами данных. Это реализуется с помощью поставщиков данных (data provider), которые инкапсулируют механизм работы с определенной СУБД. Это очень гибкий подход, позволяющий создавать адаптеры для любой СУБД и использовать все ее особенности.

Заключение

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

1. Был спроектирован веб-интерфейс

2. Была создана база данных для хранения информации о мониторинге, а также информация, введенная пользователем

3. Был реализован алгоритм парсинга HTML страницы, а также поиск цены с помощью селектора

4. Была создана веб-страница для более удобного использования приложения, а также просмотра статистики

5. С помощью Windows Task Sheduler была реализована возможность запуска программы по расписанию.

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

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

Самой сложной в плане реализации частью проекта является этап ScheduleManager. Для версии фреймворка .NET 4.5 и самой последней версии планировщика задач Windows 2.0. Не предусматривается управление задачей без прав администратора. Что более важно, при включенной службе контроля учетных записей пользователей, запрос будет появляться при каждом новом запуске парсера. Поэтому при запуске приложения на другом устройстве может потребоваться небольшая настройка операционной системы.

Список литературы

[Электронный ресурс]//URL: https://inzhpro.ru/kursovaya/razrabotka-servernyih-prilojeniy-dlya-web/

1. ASP.NET общая информация. Url: https://ru.wikipedia.org/wiki (дата обращения: 10.05.2016)

2. ASP.NET веб-форма и подключение СУБД. Url: http://metanit.com (дата обращения: 13.05.2016)

5 стр., 2082 слов

Разработка интернет-чата

... курсовой работы заключаются: 1. Сбор и обработка информации о своем проекте; 2. Выбор среды разработки ... class Form1 : Form {delegate void UpdateStatusCallback(string strMessage);Form1() {(); }void btnListen_Click(object sender, EventArgs e) { // Parse the server's ... сети, введите свой никнейм в чате и нажмите на кнопку ... from the TextBox into an IPAddress object= IPAddress.Parse(txtIp.Text); // Start ...

3. Windows Task Sheduler. Url: http://taskscheduler.codeplex.com (дата обращения: 24.05.2016)

4. Работа с базами данных. Url: https://msdn.microsoft.com (дата обращения: 17.05.2016)

Приложение А

Разметка страницы:

<div class=»navbar navbar-inverse navbar-fixed-top»>

<div class=»container»>

<div class=»navbar-header»>

<button type=»button» class=»navbar-toggle» data-toggle=»collapse» data-target=».navbar-collapse»>

<span class=»icon-bar»></span>

<span class=»icon-bar»></span>

<span class=»icon-bar»></span>

</button>

<a class=»navbar-brand» runat=»server» href=»https://miem.hse.ru»>МИЭМ НИУ ВШЭ</a>&nbsp;</div>

<div class=»navbar-collapse collapse»>

<ul class=»nav navbar-nav»>

<li><a runat=»server» href=»~/»>Домашняя</a></li>

<li><a runat=»server» href=»~/About»>Информация</a></li>

<li><a id=»aContact» runat=»server» href=»~/Contact»>Связаться</a></li>

<li><a id=»a1″ visible=»false» runat=»server»>Начать работу</a></li>

<li><a id=»a2″ visible=»false» runat=»server» href=»~/Information»>Мой мониторинг</a></li>

</ul>

<asp:LoginView runat=»server» ViewStateMode=»Disabled»>

<AnonymousTemplate>

<ul class=»nav navbar-nav navbar-right»>

<li><a runat=»server» href=»~/Account/Register»>Регистрация</a></li>

<li><a runat=»server» href=»~/Account/Login»>Вход</a></li>

</ul>

</AnonymousTemplate>

<LoggedInTemplate>

<ul class=»nav navbar-nav navbar-right»>

<li><a runat=»server» href=»~/Account/Manage» title=»Manage your account»>Hello, <%: Context.User.Identity.GetUserName() %> !</a></li>

<li>

<asp:LoginStatus runat=»server» LogoutAction=»Redirect» LogoutText=»Выход» LogoutPageUrl=»~/» OnLoggingOut=»Unnamed_LoggingOut» />

</li>

</ul>

</LoggedInTemplate>

</asp:LoginView>

</div>

</div>

</div>

<div class=»container body-content»>

<asp:ContentPlaceHolder ID=»MainContent» runat=»server»>

</asp:ContentPlaceHolder>

<hr />

<footer>

<p>Выполнил Евстюхин Никита</p>

</footer>

</div>

Пример заполнения домашней страницы:

<asp:Content ID=»BodyContent» ContentPlaceHolderID=»MainContent» runat=»server»>

<div class=»jumbotron»>

<h1>Мониторинг динамики цен</h1>

<p class=»lead»>Дання программа предоставляет возможность более качественно и просто следить за изменениями на ценовом рынке. Ниже представлена более точная информация.</p>

</div>

<div class=»row»>

<div class=»col-md-4″>

<h2>Запуск программы</h2>

<p>

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

</p>

<p>

<a runat=»server» class=»btn btn-default» href=»~/Account/Login»>Авторизация &raquo;</a>

</p>

</div>

<div class=»col-md-4″>

<h2>Все для пользователя</h2>

<p>

DPM(dynamic prices monitoring) позволяет следить за изменениями на ценовом рынке с помощью мониторинга сайтов «гигантов» таких как яндекс.маркет, букинг.ком…. Полный список сайтов можно посмотреть по ссылке ниже.

</p>

<p>

<a runat=»server» class=»btn btn-default» href=»~/PageList»>Список сайтов &raquo;</a>

</p>

</div>

<div class=»col-md-4″>

<h2>Поддержка</h2>

<p>

Не нашли нужный Вам продукт на сайтах, доступных для мониторинга? Можете отправить мне e-mail с ссылкой на нужный Вам сайт и он будет добавлен в список.

</p>

<p>

<a class=»btn btn-default» href=»~/Contact»>Мои контакты для связи &raquo;</a>

</p>

</div>

</div>

</asp:Content>

Приложени е Б

Задание элементов управления SqlDataSource, а также проверка работоспособности парсера:

  • <p>
  • <asp:SqlDataSource ID=»SqlDataSource1″ runat=»server» ConnectionString=»<%$ ConnectionStrings:NewConnectionString %>» SelectCommand=»SELECT [Name], [Reference], [Id] FROM [Table]»></asp:SqlDataSource>
  • </p>
  • <p>
  • <asp:SqlDataSource ID=»SqlDataSource2″ runat=»server» ConnectionString=»<%$ ConnectionStrings:NewConnectionString %>» DeleteCommand=»DELETE FROM [Table] WHERE [Id] = @Id» InsertCommand=»INSERT INTO [Table] ([Name], [Reference], [Pointer], [Time(sec)]) VALUES (@Name, @Reference, @Pointer, @column1)» SelectCommand=»SELECT * FROM [Table] WHERE ([Id] = @Id)» UpdateCommand=»UPDATE [Table] SET [Name] = @Name, [Reference] = @Reference, [Pointer] = @Pointer, [Time(sec)] = @column1 WHERE [Id] = @Id»>
  • <DeleteParameters>
  • <asp:Parameter Name=»Id» Type=»Int32″ />
  • </DeleteParameters>
  • <InsertParameters>
  • <asp:Parameter Name=»Name» Type=»String» />
  • <asp:Parameter Name=»Reference» Type=»String» />
  • <asp:Parameter Name=»Pointer» Type=»String» />
  • <asp:Parameter Name=»column1″ Type=»Int32″ />
  • </InsertParameters>
  • <SelectParameters>
  • <asp:ControlParameter ControlID=»GridView1″ Name=»Id» PropertyName=»SelectedValue» Type=»Int32″ />
  • </SelectParameters>
  • <UpdateParameters>
  • <asp:Parameter Name=»Name» Type=»String» />
  • <asp:Parameter Name=»Reference» Type=»String» />
  • <asp:Parameter Name=»Pointer» Type=»String» />
  • <asp:Parameter Name=»column1″ Type=»Int32″ />
  • <asp:Parameter Name=»Id» Type=»Int32″ />
  • </UpdateParameters>
  • </asp:SqlDataSource>
  • </p>
  • <p>
  • <asp:Label ID=»Label1″ runat=»server» Text=»Ссылка на товар:»></asp:Label>
  • &nbsp;&nbsp;
  • <asp:TextBox ID=»TextBox1″ runat=»server»></asp:TextBox>
  • </p>
  • <p>&nbsp;</p>
  • <p>
  • <asp:Label ID=»Label2″ runat=»server» Text=»Селектор:»></asp:Label>
  • &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  • <asp:TextBox ID=»TextBox2″ runat=»server»></asp:TextBox>
  • </p>
  • <p><br />
  • <asp:Button ID=»Button1″ runat=»server» OnClick=»Button1_Click1″ Text=»Проверка» />
  • &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  • <asp:TextBox ID=»TextBox3″ runat=»server»></asp:TextBox>
  • </p>
  • </asp:Content>

Приложени е В

Функции добавления и выбора элемента таблицы:

static public bool Insert(int id, double price)

{

bool res = true;

  • using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[«DefaultConnection»].ConnectionString))

{

conn.Open();

  • string cmd_txt = string.Format(«insert into Stat(id, price) values({0},{1})», id, price.ToString().Replace(«,»,».»));
  • SqlCommand cmd = new SqlCommand(cmd_txt, conn);
  • res = cmd.ExecuteNonQuery() >
  • 0;
  • conn.Close();

}

return res;

}

static public DataTable Select(int id)

{

DataTable dt = new DataTable();

  • using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[«DefaultConnection»].ConnectionString))

{

conn.Open();

  • string cmd_txt = string.Format(«select * from Names where id = {0}», id);
  • SqlCommand cmd = new SqlCommand(cmd_txt, conn);
  • SqlDataAdapter da = new SqlDataAdapter(cmd);
  • da.Fill(dt);
  • conn.Close();

}

return dt;

}

}

Функция вызова и пример использования данных функций:

  • int Id;
  • Id = Convert.ToInt32(TextBox1.Text);
  • Id = int.Parse(TextBox1.Text);
  • double Price;
  • //Price = Convert.(TextBox1.Text);
  • Price = double.Parse(TextBox2.Text);
  • DBACCESS.Insert(Id, Price);
  • DataTable dt = DBACCESS.Select(1);
  • if(dt.Rows.Count > 0)

foreach(DataRow dr in dt.Rows)

{

string name = dr[«name»].ToString();

}

}

Приложени е Г

Парсер HTML странички:

  • string s1 = TextBox1.Text.ToString();
  • string s2 = TextBox2.Text.ToString();
  • string s = Zabiraemhtml(s1);
  • string selector = s2;
  • var document = new CQ(s);
  • string value = document.Select(selector).Text();
  • TextBox3.Text = value;

Поиск цены с помощью селектора:

public static string Zabiraemhtml(string url)

{

WebClient client = new WebClient();

  • using (Stream data = client.OpenRead(url))

{

using (StreamReader reader = new StreamReader(data))

{

return reader.ReadToEnd();

}

}

}