Счётчик посещений для сайта на ASP.NET (Web Forms) своими руками

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

В настоящее время существует множество готовых решений по сбору статистики посещаемости сайта, таких как Google Analytics, LiveInternet, Яндекс Метрика и другие. Но, при этом по-прежнему остаются актуальными вопросы, связанные с самостоятельным написанием подобных счётчиков.

В интернете есть множество материалов по написанию счётчиков посещений на PHP. Но, что делать владельцу сайта, который был написан на ASP.NET? К счастью, в ASP.NET также есть возможность написать счётчик посещений для сайта.

Для примера напишем простой счётчик, который учитывает следующие параметры:

  • IP адрес пользователя;
  • Тип браузера;
  • Адрес страницы сайта, которую посетил данный пользователь;
  • Время посещения страницы.

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

 Сведения о времени посещения можно получить с помощью свойства Now структуры DateTime.

 Однако на этом создание счётчика не заканчивается. Для его реализации необходимо решить задачу сохранения сведений о посещении страницы для ведения статистики. Лучше всего воспользоваться базой данных (БД).

Создадим следующую таблицу:

Поле Назначение
id Уникальный идентификатор записи (первичный ключ)
IP IP адрес
UserAgent Используемый браузер
PageUrl Адрес страницы
VisitDate Дата и время посещения страницы

Рассмотрим работу с БД на примере MS SQL Server.

Для добавления новых записей удобнее всего использовать хранимые процедуры. Создадим процедуру для добавления записи о посетителе страницы.

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

Для работы с БД в .NET Framework есть два основных подхода: ADO.NET и LINQ (так как речь идёт о MS SQL Server, воспользуемся LINQ to SQL).

При использовании ADO.NET необходимо подключить пространства имён System.Data и System.Data.SqlClient, создать соединение с БД, сформировать команду на выполнение хранимой процедуры и после выполнить её.

 В случае использования LINQ to SQL задача решается значительно проще.

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

Это даёт подобным счётчикам определённое преимущество перед готовыми решениями, так как последние используют JavaScript.

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

2 комментария

  1. Спасибо.
    Может быть что то не то, но у меня Request принимал только значения string.

    1. Пожалуйста!

      Что касается Request, то это объект (свойство класса Controller), который представляет интерфейс для доступа к различным параметрам HTTP запроса и далеко не все из них имеют тип string. Например, тот же параметр URL, это объект класса Uri.
      Вероятно, Вы что-то не то пытались сделать. Но, что именно, так без кода сказать не могу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *