Проект интернет-магазина
129ASP.NET --- Интернет магазин на ASP.NET Web Forms --- Проект интернет-магазина
Исходный код проектаВ этой и следующих статьях мы создадим новый проект Visual Studio по имени GameStore, используя шаблон ASP.NET Empty Web Application (Пустое веб-приложение ASP.NET). Мы начнем с настройки модели данных и базы данных, после чего добавим другие необходимые средства.
Мы будем выделять каждый шаг при создании приложения, так что вы сможете видеть, как взаимодействуют друг с другом разнообразные средства, и постепенно воспроизводить пример интернет-магазина на собственном компьютере.
Создание структуры папок
В простых примерах мы помещали все файлы приложения в корневую папку проекта, что нормально для простых приложений, но может усложнить управление крупными проектами. В этом проекте мы собираемся быть более организованными и следовать структуре, которую применяем в реальных проектах. В таблице ниже описаны все созданные папки и даны пояснения относительно типа контента, который будет помещен в каждую из них (ряд таких категорий будет объясняться при создании соответствующего контента).
Имя папки | Описание |
---|---|
App_Start | По соглашению эта папка содержит классы, которые выполняют начальное конфигурирование приложения при его запуске. Мы будем использовать эту папку во время конфигурирования маршрутизации URL и настройки подключаемых библиотек JavaScript |
Content | По соглашению эта папка содержит статический контент, такой как файлы таблиц стилей CSS |
Controls | Эта папка будет содержать пользовательские элементы управления |
Models | Эта папка будет содержать классы моделей данных |
Models\Repository | Эта папка будет содержать классы, которые используются для реализации постоянного хранилища для классов моделей данных |
Pages | Эта папка будет содержать файлы веб-форм |
Pages\Admin | Эта папка будет содержать файлы веб-форм для административных средств приложения GameStore |
Pages\Helpers | Эта папка будет содержать вспомогательные классы, с которыми работают веб-формы |
Scripts | Эта папка будет содержать JavaScript-файлы |
Создайте указанные папки, чтобы они были готовы к добавлению контента разных типов в этой и последующих статьях. После создания папок окно Solution Explorer (Проводник решения) должно выглядеть примерно так, как показано на рисунке:

Эта структура папок нас вполне устраивает, но при желании вы можете организовать любую структуру, удовлетворяющую реальным потребностям. Существует совсем немного ограничений относительно того, где размещается контент, особенно в случае применения маршрутизации URL, которая реализуется в приложении GameStore.
Вас может интересовать, почему мы продолжаем использовать шаблон ASP.NET Empty Web Application (Пустое веб-приложение ASP.NET), хотя в списке доступен также шаблон ASP.NET Web Forms Application (Приложение ASP.NET Web Forms). В Visual Studio включен набор шаблонов, которые помогают начать процесс разработки за счет добавления файлов и функций, широко применяемых в проектах разных типов. Шаблон ASP.NET Web Forms Application предназначен для проектов Web Forms. Мы не считаем эти шаблоны особенно полезными и хотели бы получать в проектах только средства и файлы, которые нужны, а не все разновидности обобщенных и неиспользуемых файлов. Мы не особо высокого мнения относительно предлагаемых шаблонов для всех типов проектов .NET, и они не содержат ничего такого, что нельзя было бы легко добавить самостоятельно.
Мы обычно всегда выбираем вариант пустого проекта, поскольку хотим объяснить, каким образом работает каждое важное средство, и показать, как добавить или установить такое средство в любом приложении Web Forms. В собственных проектах вы можете использовать предварительно сконфигурированные шаблоны — и многие так поступают. Однако мы уверены, что вы многое выиграете, если начнете с основ и поймете предназначение и роль всего, что добавляете самостоятельно.
Добавление глобального класса приложения
Когда приложение Web Forms запускается, исполняющая среда ищет глобальный класс приложения, который служит для реагирования на события жизненного цикла приложения и обычно используется для выполнения одноразовых задач по настройке. Глобальные классы приложений имеют суффикс .asax и по соглашению существует один такой класс по имени Global.asax. Для запуска в работу приложения Web Forms наличие глобального класса приложения не обязательно, но большинство приложений требуют определенного начального конфигурирования, и некоторыми средствами, используемыми в приложении GameStore, проще всего управлять через глобальный класс приложения.
Чтобы добавить глобальный класс приложения, щелкните правой кнопкой мыши на элементе GameStore в окне Solution Explorer и выберите в контекстном меню пункт Add --> New Item. Найдите шаблон Global Application Class, как показано на рисунке ниже, удостоверьтесь, что в качестве имени указано Global.asax, и щелкните на кнопке Add (Добавить).

Среда Visual Studio создаст файл Global.asax и файл класса отделенного кода по имени Global.asax.cs. Способ обработки этих файлов в Visual Studio отражает способ их использования — двойной щелчок на файле Global.asax в окне Solution Explorer приводит к открытию для редактирования файла Global.asax.cs. Начальный контент файла Global.asax.cs, создаваемый Visual Studio, показан ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace GameStore
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}
Каждый метод позволяет определять код, который будет выполняться в ключевых точках жизненного цикла приложения — когда приложение запускается, останавливается, возникает ошибка и т.д. Для регистрации файла Global.asax никаких действий предпринимать не нужно. Исполняющая среда ASP.NET Framework находит его автоматически при запуске приложения, и его методы будут выполняться по мере возникновения соответствующих событий жизненного цикла.
Чтобы просмотреть содержимое файла Global.asax (а не класса отделенного кода), щелкните правой кнопкой мыши на элементе Global.asax в окне Solution Explorer и выберите в контекстном меню пункт View Markup (Просмотреть разметку). Открывшийся файл содержит единственную строку, которая показана ниже:
<%@ Application Codebehind="Global.asax.cs" Inherits="GameStore.Global" Language="C#" %>
Фрагмент кода похож на фрагменты кода в файлах веб-форм, но в нем применяется директива Application для сообщения среде ASP.NET Framework о том, что это часть глобального класса приложения, а также информации о месте, где может быть найден класс отделенного кода. Пока что мы не собираемся добавлять какой-либо специальный код в файл Global.asax.cs.