Что такое веб-формы

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

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

С помощью Visual Studio можно создать ASP.NET веб-формы. Интегрированная среда разработки Visual Studio (IDE) позволяет перетаскивать элементы управления сервера для размещения страницы веб-форм. Затем можно легко задать свойства, методы и события для элементов управления на странице или для самой страницы. Эти свойства, методы и события используются для определения поведения веб-страницы, внешнего вида и т. д. Чтобы написать код сервера для обработки логики страницы, можно использовать язык .NET, например Visual Basic или C#.

Замечание

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

ASP.NET веб-формы:

  • На основе технологии Microsoft ASP.NET, в которой код, выполняющийся на сервере, динамически создает выходные данные веб-страницы в браузере или клиентском устройстве.
  • Совместим с любым браузером или мобильным устройством. Веб-страница ASP.NET автоматически отображает правильный HTML-код, совместимый с браузером, для таких функций, как стили, макет и т. д.
  • Совместим с любым языком, поддерживаемым средой CLR .NET, например Microsoft Visual Basic и Microsoft Visual C#.
  • Создано на платформе Microsoft .NET Framework. Это обеспечивает все преимущества платформы, включая управляемую среду, безопасность типов и наследование.
  • Гибкий, так как вы можете добавлять в них созданные пользователем элементы управления и сторонние элементы управления.

предложение веб-форм ASP.NET:

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

ASP.NET веб-формы помогают преодолеть проблемы

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

  • Реализация насыщенного веб-пользовательского интерфейса — это может быть сложно и трудоемко для проектирования и реализации пользовательского интерфейса с помощью базовых средств HTML, особенно если страница имеет сложный макет, большой объем динамического содержимого и полнофункциональные пользовательские интерактивные элементы.
  • Разделение клиента и сервера — в веб-приложении клиент (браузер) и сервер часто работают на разных компьютерах (и даже в разных операционных системах). Следовательно, два компонента приложения совместно используют очень мало информации; они могут взаимодействовать, но обычно обмениваются только небольшими порциями простой информации.
  • Выполнение без отслеживания состояния . Когда веб-сервер получает запрос на страницу, он находит страницу, обрабатывает ее, отправляет его в браузер, а затем удаляет все сведения о странице. Если пользователь снова запрашивает ту же страницу, сервер повторяет всю последовательность, повторно обработав страницу с нуля. Другими словами, сервер не имеет памяти о страницах, которые он обрабатывает — страницы не имеют состояния. Таким образом, если приложению требуется сохранить сведения о странице, его безгосударственность может стать проблемой.
  • Неизвестные возможности клиента . Во многих случаях веб-приложения доступны многим пользователям с помощью различных браузеров. Браузеры имеют различные возможности, что затрудняет создание приложения, которое будет работать одинаково хорошо на всех из них.
  • Осложнения с доступом к данным . Чтение из источника данных и запись в источник данных в традиционных веб-приложениях может быть сложным и ресурсоемким.
  • Осложнения с масштабируемостью . Во многих случаях веб-приложения, разработанные с существующими методами, не соответствуют целям масштабируемости из-за отсутствия совместимости между различными компонентами приложения. Это часто распространенная точка сбоя для приложений в условиях тяжелого цикла роста.

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

  • Интуитивно понятная, согласованная объектная модель . Платформа страниц ASP.NET представляет объектную модель, которая позволяет рассматривать формы как единицу, а не как отдельные части клиента и сервера. В этой модели можно программировать страницу более интуитивно, чем в традиционных веб-приложениях, включая возможность задать свойства для элементов страницы и реагировать на события. Кроме того, ASP.NET серверные элементы управления являются абстракции от физического содержимого HTML-страницы и прямого взаимодействия между браузером и сервером. Как правило, можно использовать серверные элементы управления так, как вы можете работать с элементами управления в клиентском приложении, а не думать о том, как создать HTML для представления и обработки элементов управления и их содержимого.
  • Модель программирования на основе событий — ASP.NET веб-формы переносят в веб-приложения знакомую модель написания обработчиков событий для событий, происходящих на клиенте или сервере. Платформа страниц ASP.NET абстрагирует эту модель таким образом, чтобы базовый механизм записи события на клиенте, передачи его на сервер и вызов соответствующего метода был автоматическим и невидимым для вас. Результатом является четкая, легко написанная структура кода, которая поддерживает разработку на основе событий.
  • Интуитивно понятное управление состоянием. Платформа страницы ASP.NET автоматически обрабатывает задачу поддержания состояния страницы и его элементов управления, а также предоставляет явные способы поддержания состояния сведений, относящихся к приложению. Это достигается без интенсивного использования ресурсов сервера и может быть реализовано с помощью или без отправки файлов cookie в браузер.
  • Приложения, независимые от браузера. Платформа страниц ASP.NET позволяет создавать всю логику приложения на сервере, устраняя необходимость явного кода для различий в браузерах. Однако он по-прежнему позволяет воспользоваться преимуществами функций браузера, написав клиентский код, чтобы обеспечить улучшенную производительность и более широкий клиентский интерфейс.
  • Поддержка среды CLR .NET Framework — платформа страниц ASP.NET построена на платформе .NET Framework, поэтому вся платформа доступна для любого приложения ASP.NET. Приложения могут быть написаны на любом языке, совместимом с средой выполнения. Кроме того, доступ к данным упрощается с помощью инфраструктуры доступа к данным, предоставляемой платформой .NET Framework, включая ADO.NET.
  • Масштабируемая производительность сервера .NET Framework — платформа страниц ASP.NET позволяет масштабировать веб-приложение с одного компьютера с одним процессором на веб-ферму с несколькими компьютерами и без сложных изменений в логике приложения.

Функции веб-форм ASP.NET

  • Серверные элементы управления— ASP.NET веб-серверные элементы управления — это объекты на ASP.NET веб-страницах, которые выполняются при запросе страницы и отображают разметку в браузере. Многие элементы управления веб-сервера похожи на знакомые элементы HTML, такие как кнопки и текстовые поля. Другие элементы управления охватывают сложное поведение, например элементы управления календарем и элементы управления, которые можно использовать для подключения к источникам данных и отображения данных.
  • Главные страницы— ASP.NET эталонные страницы позволяют создавать согласованный макет для страниц в приложении. Одна главная страница определяет внешний вид и стандартное поведение всех страниц (или группы страниц) приложения. Затем можно создать отдельные страницы контента, содержащие содержимое, которое вы хотите отобразить. Когда пользователи запрашивают страницы содержимого, они объединяются с главной страницей для создания выходных данных, которые объединяют макет главной страницы с содержимым из страницы контента.
  • Работа с data- ASP.NET предоставляет множество вариантов хранения, получения и отображения данных. В приложении веб-форм ASP.NET используются элементы управления, привязанные к данным, для автоматизации представления или ввода данных в элементах пользовательского интерфейса веб-страницы, таких как таблицы и текстовые поля и раскрывающийся список.
  • Членство в ASP.NET Identity хранит учетные данные пользователей в базе данных, созданной приложением. При входе пользователей приложение проверяет свои учетные данные, считывая базу данных. Папка учетной записи проекта содержит файлы, реализующие различные части членства: регистрация, вход, изменение пароля и авторизация доступа. Кроме того, ASP.NET веб-формы поддерживают OAuth и OpenID. Эти улучшения проверки подлинности позволяют пользователям входить на сайт с помощью существующих учетных данных, таких как Facebook, Twitter, Windows Live и Google. По умолчанию шаблон создает базу данных членства с использованием стандартного имени базы данных в экземпляре SQL Server Express LocalDB, сервера разработки баз данных, который входит в комплект поставки Visual Studio Express 2013 для Web.
  • Клиентский скрипт и клиентские платформы. Вы можете улучшить серверные функции ASP.NET, включая функции скрипта клиента в ASP.NET страницах веб-формы. Вы можете использовать клиентский скрипт для предоставления более полного, более гибкого пользовательского интерфейса пользователям. Вы также можете использовать клиентский скрипт для асинхронного вызова веб-сервера во время работы страницы в браузере.
  • Маршрутизация URL позволяет настроить приложение для приема URL-адресов запросов, не сопоставляемых с физическими файлами. URL-адрес запроса — это просто URL-адрес, который пользователь вводит в браузер, чтобы найти страницу на веб-сайте. Маршрутизация используется для определения URL-адресов, которые семантические для пользователей и могут помочь в оптимизации поисковой системы (SEO).
  • Управление состояниями— ASP.NET веб-формы включает несколько вариантов, которые помогают сохранять данные как на каждой странице, так и на уровне приложения.
  • Безопасность— важная часть разработки более безопасного приложения заключается в том, чтобы понять угрозы для него. Корпорация Майкрософт разработала способ классификации угроз: спуфинга, незаконного изменения, раскрытия информации, отказа в обслуживании, повышения привилегий (STRIDE). В веб-формах ASP.NET можно добавлять точки расширяемости и параметры конфигурации, позволяющие настраивать различные действия безопасности в ASP.NET веб-формах.
  • Производительность— может быть ключевым фактором в успешном веб-сайте или проекте. ASP.NET Веб-формы позволяют изменять производительность, связанную с обработкой страниц и сервером управления, управлением состоянием, доступом к данным, конфигурацией приложения и загрузкой, а также эффективными методами написания кода.
  • Internationalization- ASP.NET Web Forms позволяет создавать веб-страницы, которые могут получать содержимое и другие данные на основе предпочтительного языковых параметров браузера или на основе явного выбора языка пользователя. Содержимое и другие данные называются ресурсами, и такие данные могут храниться в файлах ресурсов или других источниках. На странице веб-форм ASP.NET вы настраиваете элементы управления для получения значений свойств из ресурсов. Во время выполнения выражения ресурсов заменяются ресурсами из соответствующего локализованного файла ресурсов.
  • Отладка и обработка ошибок— ASP.NET включает функции для диагностики проблем, которые могут возникнуть в приложении веб-форм. Отладка и обработка ошибок хорошо поддерживаются в веб-формах ASP.NET, чтобы приложения компилируются и работают эффективно.
  • Развертывание и размещение— Visual Studio, ASP.NET, Azure и IIS предоставляют средства, которые помогут вам в процессе развертывания и размещения приложения веб-форм.

Выбор момента создания приложения веб-форм

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

Преимущества веб-приложения на основе форм

Платформа на основе веб-форм предоставляет следующие преимущества:

  • Она поддерживает модель событий, которая сохраняет состояние через HTTP, что способствует разработке бизнес-веб-приложений. Приложение на основе веб-форм предоставляет десятки событий, поддерживаемых в сотнях серверных элементов управления.
  • В нем используется шаблон контроллера страницы, который добавляет функциональные возможности для отдельных страниц. Дополнительные сведения см. в разделе "Контроллер страницы".
  • В нем используются формы состояния представления или серверные формы, которые упрощают управление сведениями о состоянии.
  • Он хорошо подходит для небольших команд веб-разработчиков и дизайнеров, которые хотят воспользоваться большим количеством компонентов, доступных для быстрой разработки приложений.
  • Как правило, это менее сложно для разработки приложений, так как компоненты (класс Page , элементы управления и т. д.) тесно интегрированы и обычно требуют меньше кода, чем модель MVC.

Преимущества веб-приложения на основе MVC

Платформа MVC ASP.NET предлагает следующие преимущества:

  • Это упрощает управление сложностью, разделив приложение на модель, представление и контроллер.
  • Он не использует состояние представления или серверные формы. Это делает платформу MVC идеальной для разработчиков, которым требуется полный контроль над поведением приложения.
  • В нем используется шаблон переднего контроллера, обрабатывающий запросы веб-приложения через один контроллер. Это позволяет разрабатывать приложение, поддерживающее многофункциональную инфраструктуру маршрутизации. Дополнительные сведения см. в разделе "Передний контроллер".
  • Она обеспечивает более эффективную поддержку разработки на основе тестов (TDD).
  • Он хорошо подходит для веб-приложений, поддерживаемых большими командами разработчиков и веб-дизайнеров, которым требуется высокий уровень контроля над поведением приложения.