Веб-формы ASP.NET

Фреймворк веб-приложений Microsoft
Веб-формы ASP.NET
Оригинальный автор(ы)Майкрософт
Первоначальный выпуск2002 ; 23 года назад ( 2002 )
Операционная системаОкна
Платформа.NET Framework
ТипФреймворк веб-приложений
Веб-сайтdotnet.microsoft.com/apps/aspnet/web-forms

ASP.NET Web Forms — это фреймворк веб-приложений и одна из нескольких моделей программирования, поддерживаемых технологией Microsoft ASP.NET . Приложения Web Forms могут быть написаны на любом языке программирования , который поддерживает Common Language Runtime , например C# или Visual Basic . Основными строительными блоками страниц Web Forms являются серверные элементы управления , которые являются повторно используемыми компонентами, отвечающими за рендеринг HTML- разметки и реагирование на события. [1] Для сохранения состояния серверных элементов управления между HTTP- запросами , обычно не имеющими состояния , используется метод, называемый состоянием представления . [2]

Web Forms был включен в оригинальный выпуск .NET Framework 1.0 в 2002 году (см. Историю версий .NET Framework и Историю версий ASP.NET ), как первая модель программирования, доступная в ASP.NET. В отличие от более новых компонентов ASP.NET, Web Forms не поддерживается ASP.NET Core . [3]

Характеристики

Веб-страницы ASP.NET, официально известные как веб-формы, [4] были основными строительными блоками для разработки приложений в ASP.NET до появления MVC. [5] Существует две основные методологии для веб-форм: формат веб-приложения и формат веб-сайта. [6] Веб-приложения необходимо компилировать перед развертыванием, в то время как веб-сайты позволяют пользователю копировать файлы непосредственно на сервер без предварительной компиляции. Веб-формы содержатся в файлах с расширением ".aspx"; эти файлы обычно содержат статическую ( X ) HTML- разметку или разметку компонентов. Разметка компонентов может включать серверные веб-элементы управления и пользовательские элементы управления, которые были определены в фреймворке или веб-странице. Например, компонент текстового поля может быть определен на странице как , который отображается в поле ввода HTML. Кроме того, динамический код, который выполняется на сервере, может быть размещен на странице внутри блока , что похоже на другие технологии веб-разработки, такие как PHP , JSP и ASP . С ASP.NET Framework 2.0 компания Microsoft представила новую модель code-behind , которая позволяет статическому тексту оставаться на странице .aspx, в то время как динамический код переходит в файл .aspx.vb, .aspx.cs или .aspx.fs (в зависимости от используемого языка программирования). [7]<asp:textbox id="myid" runat="server"><% -- dynamic code -- %>

Модель с выделенным кодом

Microsoft рекомендует работать с динамическим программным кодом, используя модель code-behind, которая помещает этот код в отдельный файл или в специально обозначенный тег скрипта. Файлы code-behind обычно имеют имена типа " MyPage.aspx.cs" или " MyPage.aspx.vb" , в то время как файл страницы — MyPage.aspx (то же имя файла, что и файл страницы (ASPX), но с конечным расширением, обозначающим язык страницы). Эта практика является автоматической в ​​Visual Studio и других IDE , хотя пользователь может изменить имя страницы code-behind. Кроме того, в формате веб-приложения pagename.aspx.cs является частичным классом, который связан с файлом pagename.designer.cs. Файл конструктора — это файл, который автоматически генерируется из страницы ASPX и позволяет программисту ссылаться на компоненты на странице ASPX из страницы с выделенным кодом без необходимости объявлять их вручную, как это было необходимо в версиях ASP.NET до версии 2. [8] При использовании этого стиля программирования разработчик пишет код для реагирования на различные события, такие как загрузка страницы или нажатие элемента управления, а не выполняет процедурный просмотр документа.

Модель code-behind в ASP.NET знаменует собой отход от классического ASP, поскольку она поощряет разработчиков создавать приложения с учетом разделения представления и контента . Теоретически это позволило бы веб-дизайнеру, например, сосредоточиться на разметке дизайна с меньшим потенциалом для нарушения программного кода, который им управляет. Это похоже на разделение контроллера и представления в фреймворках модель–представление–контроллер (MVC).

Директивы

Директива — это специальная инструкция о том, как ASP.NET должен обрабатывать страницу. [9] Наиболее распространенной директивой является , которая может указывать множество атрибутов, используемых анализатором и компилятором страниц ASP.NET.<%@ Page %>

Пользовательские элементы управления

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

Пользовательские элементы управления

Программисты также могут создавать пользовательские элементы управления для приложений ASP.NET. В отличие от пользовательских элементов управления, эти элементы управления не имеют файла разметки ASCX, а весь их код скомпилирован в файл библиотеки динамической компоновки (DLL) . Такие пользовательские элементы управления могут использоваться в нескольких веб-приложениях и проектах Visual Studio 2013 .

Техника рендеринга

.NET использует технику рендеринга "посещенных композитов". Во время компиляции файл шаблона (.aspx) компилируется в код инициализации, который создает дерево элементов управления (композит), представляющее исходный шаблон. Буквальный текст помещается в экземпляры класса элементов управления Literal, а серверные элементы управления представлены экземплярами определенного класса элементов управления. Код инициализации объединяется с кодом, написанным пользователем (обычно путем сборки нескольких частичных классов), и в результате получается класс, специфичный для страницы. Страница также является корнем дерева элементов управления.

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

После обработки запроса экземпляр класса страницы отбрасывается, а вместе с ним и все дерево управления. Это является источником путаницы среди начинающих программистов ASP.NET, которые полагаются на члены экземпляра класса, которые теряются с каждым циклом запроса/ответа страницы.

Государственное управление

Приложения ASP.NET размещаются на веб-сервере и к ним осуществляется доступ с помощью протокола HTTP без сохранения состояния . Таким образом, если приложение использует взаимодействие с сохранением состояния, оно должно реализовать управление состоянием самостоятельно. ASP.NET предоставляет различные функции для управления состоянием. Концептуально Microsoft рассматривает «состояние» как состояние GUI . Проблемы могут возникнуть, если приложение должно отслеживать «состояние данных»; например, конечный автомат , который может находиться в переходном состоянии между запросами ( ленивая оценка ) или требует много времени для инициализации. Управление состоянием на страницах ASP.NET с аутентификацией может затруднить или сделать невозможным веб-скрапинг .

Приложение

Состояние приложения удерживается коллекцией общих пользовательских переменных. Они устанавливаются и инициализируются, когда Application_OnStartсобытие срабатывает при загрузке первого экземпляра приложения, и доступны до выхода последнего экземпляра. Доступ к переменным состояния приложения осуществляется с помощью коллекции Applications, которая предоставляет оболочку для состояния приложения. Переменные состояния приложения идентифицируются по имени. [10] Приложение — это управление состоянием.

Состояние сеанса

Состояние сеанса на стороне сервера хранится в коллекции пользовательских переменных сеанса, которые сохраняются в течение сеанса пользователя. Эти переменные, доступ к которым осуществляется с помощью Sessionколлекции, уникальны для каждого экземпляра сеанса. Переменные могут быть настроены на автоматическое уничтожение после определенного времени бездействия, даже если сеанс не заканчивается. Клиентский сеанс пользователя поддерживается либо файлом cookie , либо кодированием идентификатора сеанса в самом URL. [10]

ASP.NET поддерживает три режима сохранения переменных сеанса на стороне сервера: [10]

Режим обработки
Переменные сеанса поддерживаются в процессе ASP.NET . Это самый быстрый способ; однако в этом режиме переменные уничтожаются при повторном запуске или завершении процесса ASP.NET.
Режим сервера состояний
ASP.NET запускает отдельную службу Windows , которая поддерживает переменные состояния. Поскольку управление состоянием происходит вне процесса ASP.NET, а движок ASP.NET обращается к данным с помощью .NET Remoting, ASPState работает медленнее, чем In-Process. Этот режим позволяет балансировать нагрузку приложения ASP.NET и масштабировать его на нескольких серверах. Поскольку служба управления состоянием работает независимо от ASP.NET, переменные сеанса могут сохраняться при завершении работы процесса ASP.NET. Однако, поскольку сервер состояний сеанса работает как один экземпляр, он по-прежнему является одной точкой отказа для состояния сеанса. Служба состояний сеанса не может быть сбалансирована по нагрузке, и существуют ограничения на типы, которые могут храниться в переменной сеанса.
Режим SQL-сервера
Переменные состояния хранятся в базе данных , что позволяет сохранять переменные сеанса при завершении работы процесса ASP.NET. Главное преимущество этого режима заключается в том, что он позволяет приложению балансировать нагрузку на кластере серверов, разделяя сеансы между серверами. Это самый медленный метод управления состоянием сеанса в ASP.NET.

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

Альтернативы состоянию сеанса включают следующее:

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

Посмотреть состояние

Состояние просмотра относится к механизму управления состоянием на уровне страницы, используемому HTML-страницами, создаваемыми приложениями ASP.NET, для поддержания состояния элементов управления и виджетов веб-форм . Состояние элементов управления кодируется и отправляется на сервер при каждой отправке формы в скрытом поле, известном как __VIEWSTATE. Сервер отправляет обратно переменную, так что при повторном отображении страницы элементы управления отображаются в своем последнем состоянии. На стороне сервера приложение может изменить состояние просмотра, если обработка требует изменения состояния любого элемента управления. Состояния отдельных элементов управления декодируются на сервере и доступны для использования на страницах ASP.NET с использованием коллекции ViewState. [11]

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

Разработчикам следует быть осторожными при хранении конфиденциальной или частной информации в состоянии просмотра страницы или элемента управления, поскольку строка Base64, содержащая данные состояния просмотра, может быть легко десериализована. По умолчанию состояние просмотра не шифрует значение __VIEWSTATE. Шифрование может быть включено на уровне сервера (и на уровне сервера), что позволяет поддерживать определенный уровень безопасности. [12]

Кэширование на стороне сервера

ASP.NET предлагает объект "Кэш", который является общим для всего приложения и может также использоваться для хранения различных объектов. Объект "Кэш" хранит данные только в течение определенного периода времени.

Другой

Другими средствами управления состоянием, поддерживаемыми ASP.NET , являются файлы cookie , кэширование и строка запроса .

Шаблонизатор

При первом выпуске ASP.NET не имел шаблонизатора . Поскольку .NET Framework является объектно-ориентированным и допускает наследование , многие разработчики определяли новый базовый класс, который наследуется от " System.Web.UI.Page", писали там методы , которые визуализируют HTML, а затем заставляли страницы в своем приложении наследоваться от этого нового класса. Хотя это позволяет повторно использовать общие элементы на сайте, это добавляет сложности и смешивает исходный код с разметкой . Кроме того, этот метод можно визуально протестировать только при запуске приложения, а не во время его проектирования. Другие разработчики использовали включаемые файлы и другие приемы, чтобы избежать необходимости реализовывать одну и ту же навигацию и другие элементы на каждой странице.

ASP.NET 2.0 представил концепцию мастер-страниц , которые позволяют разрабатывать страницы на основе шаблонов . Веб-приложение может иметь одну или несколько мастер-страниц, которые, начиная с ASP.NET 2.0, могут быть вложенными. [13] Мастер-шаблоны имеют элементы управления-заполнители, называемые ContentPlaceHolders, для обозначения того, куда следует помещать динамическое содержимое, а также HTML и JavaScript, общие для дочерних страниц.

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

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

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

Другие файлы

Другие расширения файлов , связанные с различными версиями ASP.NET, включают:

РасширениеПредставлено в версииОписание
асакс1.0Это глобальный файл приложения. Вы можете использовать этот файл для определения глобальных переменных (переменных, к которым можно получить доступ с любой веб-страницы в веб-приложении). Он в основном используется для определения общего события приложения, связанного с объектом приложения и сеанса. Global.asax, используется для логики уровня приложения [14]
ascx1.0Пользовательский контроль, используемый для логики файлов пользовательского контроля [15]
ашх1.0Пользовательские обработчики HTTP не имеют пользовательского интерфейса.
asmx1.0Страницы веб-сервисов . Начиная с версии 2.0 страница Code behind файла asmx помещается в папку app_code.
aspx1.0Страница ASP.NET Web Forms, которая может содержать веб-элементы управления, а также логику представления и бизнес-логику. http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx
ахд1.0При включении в web.config запрос trace.axd выводит трассировку на уровне приложения . Также используется для специального обработчика webresource.axd, который позволяет разработчикам элементов управления/компонентов упаковывать компонент/элемент управления вместе с изображениями, скриптом, css и т. д. для развертывания в одном файле («сборка»)
браузер2.0Файлы возможностей браузера, хранящиеся в формате XML ; введены в версии 2.0. ASP.NET 2 включает многие из них по умолчанию для поддержки распространенных веб-браузеров. Они определяют, какие возможности есть у браузеров, так что ASP.NET 2 может автоматически настраивать и оптимизировать свой вывод соответствующим образом. Специальные файлы .browser доступны для бесплатной загрузки для обработки, например, W3C Validator, так что он правильно отображает страницы, соответствующие стандартам, как соответствующие стандартам. Заменяет сложный в использовании раздел BrowserCaps, который был в machine.config и мог быть переопределен в web.config в ASP.NET 1.x.
конфигурация1.0web.config — единственный файл в определенном веб-приложении, который использует это расширение по умолчанию (machine.config аналогичным образом влияет на весь веб-сервер и все приложения на нем), однако ASP.NET предоставляет возможности для создания и использования других файлов конфигурации. Они хранятся в формате XML .
cs/vb/fs1.0Файлы кода (cs обозначает C#, vb обозначает Visual Basic, fs обозначает F#). Файлы кода (см. выше) в основном имеют расширение " .aspx.cs" или " .aspx.vb" для двух наиболее распространенных языков. Другие файлы кода (часто содержащие общие "библиотечные" классы) также могут существовать в веб-папках с расширением cs/vb. В ASP.NET 2 они должны быть помещены в папку App_Code, где они динамически компилируются и становятся доступными для всего приложения.
cshtml4.1Представления (смешанные C# и HTML с использованием синтаксиса Razor )
dbml3.5Файл классов данных LINQ to SQL
edmx3.5Модель ADO.NET Entity Framework
владелец2.0Файл главной страницы. Имя файла по умолчанию Master1.master
resx1.0Файлы ресурсов для интернационализации и локализации . Файлы ресурсов могут быть глобальными (например, сообщения) или локальными , что означает специфичными для одного файла aspx или ascx.
карта сайта2.0Файлы конфигурации Sitemap. Имя файла по умолчанию — web.sitemap
кожа2.0Файлы тем оформления.
свк3.0Файл службы Windows Communication Foundation
vbhtml4.1Представления (смешанные VB и HTML с использованием синтаксиса Razor )

Структура каталога

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

Специальные имена каталогов (начиная с ASP.NET 2.0): [16]

Код_приложения
Это каталог "сырого кода". Сервер ASP.NET автоматически компилирует файлы (и подкаталоги) в этой папке в сборку, доступную в коде каждой страницы сайта. App_Code обычно используется для кода абстракции доступа к данным, кода модели и бизнес-кода. Также в этом каталоге находятся любые специфичные для сайта http-обработчики и модули, а также реализация веб-службы. В качестве альтернативы использованию App_Code разработчик может выбрать предоставление отдельной сборки с предварительно скомпилированным кодом.
Данные_приложения
Каталог App_Data ASP.NET является каталогом по умолчанию для любой базы данных , используемой веб-сайтом ASP.NET. Эти базы данных могут включать файлы Access (mdb) или файлы SQL Server (mdf). App_Data — единственный каталог с разрешенным доступом на запись для веб-приложения ASP.NET.: [17]
App_GlobalResources
Содержит файлы resx с локализованными ресурсами, доступными для каждой страницы сайта. Здесь разработчик ASP.NET обычно хранит локализованные сообщения и т. д., используемые на более чем одной странице.
App_LocalResources
Например, файл CheckOut.aspx.fr-FR.resx содержит локализованные ресурсы для французской версии страницы CheckOut.aspx. Когда культура пользовательского интерфейса установлена ​​на французский язык, ASP.NET автоматически находит и использует этот файл для локализации.
Приложение_Оффлайн.htm
Файл (не каталог), который отключает приложение, возвращая содержимое файла на любой запрос приложения.
Темы_приложений
Добавляет папку, в которой хранятся файлы, связанные с темами, что является новой функцией ASP.NET, помогающей обеспечить единообразный внешний вид всего веб-сайта и облегчающей изменение внешнего вида веб-сайта при необходимости.
App_WebReferences
содержит файлы обнаружения и файлы WSDL для ссылок на веб-сервисы , которые будут использоваться на сайте.
Корзина
Содержит скомпилированный код ( файлы .dll ) для элементов управления, компонентов или другого кода, на который вы хотите ссылаться в своем приложении. Любые классы, представленные кодом в папке Bin, автоматически ссылаются в вашем приложении.

Производительность

ASP.NET нацелен на повышение производительности по сравнению с другими технологиями на основе скриптов (включая Classic ASP) путем компиляции серверного кода при первом использовании в один или несколько файлов DLL на веб-сервере . Эти файлы или сборки DLL содержат Microsoft Intermediate Language (MSIL) для запуска в среде выполнения CLR ; это обеспечивает повышение производительности по сравнению с чистыми скриптовыми языками и похоже на подход, используемый в Python, и не отличается от JavaServer Pages . [18] Эта компиляция происходит автоматически при первом запросе страницы (что означает, что разработчику не нужно выполнять отдельный шаг компиляции для страниц).

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

ASPX и другие файлы ресурсов размещаются на виртуальном хосте на сервере Internet Information Services (или других совместимых серверах ASP.NET; см. Другие реализации ниже). Когда клиент впервые запрашивает страницу, .NET Framework анализирует и компилирует файл(ы) в сборку .NET и отправляет ответ; последующие запросы обслуживаются из файлов DLL. По умолчанию ASP.NET компилирует весь сайт пакетами по 1000 файлов при первом запросе. Если задержка компиляции вызывает проблемы, можно изменить размер пакета или стратегию компиляции.

Разработчики также могут выбрать предварительную компиляцию своих файлов "codebehind" перед развертыванием, используя Microsoft Visual Studio, устраняя необходимость в компиляции "точно в срок" в производственной среде. [19] Это также устраняет необходимость иметь исходный код на веб-сервере. Он также поддерживает предварительную компиляцию текста.

ASP.NET в сравнении с классическим ASP

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

ASP.NET WebForms поощряет программиста разрабатывать приложения с использованием событийно-управляемой модели GUI , а не в обычных средах веб- скриптинга , таких как ASP и PHP . Фреймворк объединяет существующие технологии, такие как JavaScript, с внутренними компонентами, такими как « ViewState », чтобы привнести постоянное (межзапросное) состояние в изначально не имеющую состояния веб-среду.

Другие отличия по сравнению с классическим ASP :

  • Скомпилированный код означает, что приложения работают быстрее, а больше ошибок времени проектирования фиксируется на этапе разработки.
  • Значительно улучшена обработка ошибок во время выполнения за счет использования обработки исключений с использованием блоков try-catch.
  • Похожие метафоры с приложениями Microsoft Windows, такими как элементы управления и события.
  • Обширный набор элементов управления и библиотек классов, а также определяемые пользователем элементы управления позволяют быстро создавать приложения. Размещение этих элементов управления на странице упрощается, поскольку большую часть можно сделать визуально в большинстве редакторов.
  • ASP.NET использует многоязыковые возможности .NET Common Language Runtime , позволяя кодировать веб-страницы на VB.NET, C#, F#, Delphi.NET и т. д.
  • Возможность кэширования всей страницы или только ее частей для повышения производительности.
  • Возможность использования модели разработки с выделенным кодом для разделения бизнес-логики и представления.
  • Возможность использования настоящего объектно-ориентированного проектирования для программирования страниц и элементов управления
  • Если в приложении ASP.NET происходит утечка памяти , среда выполнения ASP.NET выгружает AppDomain, в котором размещено ошибочное приложение, и перезагружает приложение в новом AppDomain.
  • Состояние сеанса в ASP.NET может быть сохранено в базе данных Microsoft SQL Server или в отдельном процессе, запущенном на той же машине, что и веб-сервер, или на другой машине. Таким образом, значения сеанса не теряются при сбросе веб-сервера или повторном запуске рабочего процесса ASP.NET.
  • Версии ASP.NET до 2.0 критиковались за несоответствие стандартам. Сгенерированные HTML и JavaScript, отправленные в клиентский браузер, не всегда соответствовали стандартам W3C / ECMA . Кроме того, функция определения браузера фреймворка иногда неправильно определяла веб-браузеры, отличные от собственного Internet Explorer от Microsoft , как «низкоуровневые» и возвращала HTML/JavaScript этим клиентам с некоторыми удаленными функциями или иногда поврежденными или сломанными. Однако в версии 2.0 все элементы управления генерируют допустимый вывод HTML 4.0, XHTML 1.0 (по умолчанию) или XHTML 1.1 в зависимости от конфигурации сайта. Обнаружение веб-браузеров, соответствующих стандартам, стало более надежным, а поддержка каскадных таблиц стилей стала более обширной.
  • Web Server Controls: это элементы управления, введенные ASP.NET WebForms для предоставления пользовательского интерфейса для веб-формы. Эти элементы управления являются управляемыми состоянием элементами управления и являются элементами управления WYSIWYG .

Пример

<%@ Page Language = "C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat= "server" > protected void Page_Load ( object sender , EventArgs e ) { Label1 . Text = DateTime . Now . ToLongDateString (); } </script> <html xmlns= "http://www.w3.org/1999/xhtml" > <head runat= "server" > <title> Пример страницы </title> </head> <body> <form id= "form1" runat= " server" > <div> Текущее время : <asp:Label runat= "server" id= "Label1" /> </div> </form> </body> </html>                                       

[20]

Ссылки

Цитаты

  1. ^ «Что такое веб-формы». docs.microsoft.com . 15 июня 2023 г.
  2. ^ «Обзор состояния представления ASP.NET». msdn.microsoft.com . 4 декабря 2014 г.
  3. ^ «Выбор между ASP.NET и ASP.NET Core». docs.microsoft.com . 10 апреля 2024 г.
  4. ^ Staff (ноябрь 2001 г.). "Обзор ASP.NET и веб-форм". Microsoft . Получено 2011-06-05 .
  5. ^ (Макдональд и Шпуста 2005, стр. 63)
  6. ^ «Проекты веб-приложений и проекты веб-сайтов в Visual Studio». 26 августа 2013 г.
  7. ^ "Code Behind vs. Code Inline". Microsoft .NET Framework . Microsoft . Архивировано из оригинала 11 ноября 2010 . Получено 2010-11-22 .
  8. ^ "aspx.designer.cs как это работает?". StackOverflow . 10 сентября 2015 г.
  9. ^ "Обзор синтаксиса веб-страницы ASP.NET". Microsoft .NET Framework . Microsoft . Получено 2010-11-22 .
  10. ^ abc "INFO: Обзор управления состоянием ASP.NET" . Получено 2007-10-23 .
  11. ^ "ViewState in ASP.NET". Архивировано из оригинала 14 октября 2007 г. Получено 2007-10-23 .
  12. ^ "Шифрование Viewstate в ASP.NET" . Получено 2009-07-19 .
  13. ^ "ASP.NET Master Pages". microsoft.com . Microsoft. 4 декабря 2014 г.
  14. ^ "Global.asax Syntax". microsoft.com . Microsoft.
  15. ^ «Превращение пользовательского элемента управления .ascx в распространяемый пользовательский элемент управления». microsoft.com . Microsoft. 24 июня 2011 г.
  16. ^ "Структура папок веб-проекта ASP.NET". microsoft.com . Microsoft. 4 декабря 2014 г.
  17. ^ "Структура каталога ASP.NET". aspnet4.com . Архивировано из оригинала 2011-10-27 . Получено 2018-06-16 .
  18. ^ (MacDonald & Szpuszta 2005, стр. 7–8)
  19. ^ «Обзор предварительной компиляции проекта веб-сайта ASP.NET: выполнение предварительной компиляции». Microsoft Developer Network . 4 декабря 2014 г. Получено 13 января 2016 г.
  20. ^ pygments/tests/examplefiles/aspx-cs/aspx-cs_example.aspx на GitHub

Источники

  • Макдональд, Мэтью; Шпуста, Марио (2005). Pro ASP.NET 2.0 на C# 2005 (1-е изд.). Апресс. ISBN 978-1-59059-496-4.
  • Официальная документация
  • Веб-формы на www.asp.net
  • Введение в ASP.NET и веб-формы (документ начала 2001 года)
Получено с "https://en.wikipedia.org/w/index.php?title=ASP.NET_Web_Forms&oldid=1264021625#Code-behind_model"