Веб-формы ASP.NET - ASP.NET Web Forms
| Автор (ы) оригинала | Microsoft |
|---|---|
| Первый выпуск | 2002 |
| Операционная система | Windows , Linux , macOS |
| Платформа | .NET Framework |
| Тип | Фреймворк веб-приложений |
| Веб-сайт | dotnet |
ASP.NET Web Forms - это платформа веб-приложений и одна из нескольких моделей программирования, поддерживаемых технологией Microsoft ASP.NET . Приложения Web Forms могут быть написаны на любом языке программирования, который поддерживает Common Language Runtime , например C # или Visual Basic . Основными строительными блоками страниц веб-форм являются серверные элементы управления , которые представляют собой повторно используемые компоненты, отвечающие за отображение разметки HTML и реагирование на события. Метод, называемый состоянием просмотра, используется для сохранения состояния серверных элементов управления между обычными HTTP- запросами без сохранения состояния .
Веб-формы были включены в исходный выпуск .NET Framework 1.0 в 2002 году (см . История версий .NET Framework и история версий ASP.NET ) как первая модель программирования, доступная в ASP.NET. В отличие от более новых компонентов ASP.NET, веб-формы не поддерживаются ASP.NET Core .
Характеристики
Веб-страницы ASP.NET, официально известные как веб-формы, были основными строительными блоками для разработки приложений в ASP.NET до появления MVC. Существует две основных методологии для веб-форм: формат веб-приложения и формат веб-сайта. Веб-приложения необходимо скомпилировать перед развертыванием, тогда как веб-сайты позволяют пользователю копировать файлы непосредственно на сервер без предварительной компиляции. Веб-формы содержатся в файлах с расширением «.aspx»; эти файлы обычно содержат статическую ( X ) разметку HTML или разметку компонентов. Разметка компонента может включать серверные веб-элементы управления и пользовательские элементы управления, которые были определены в платформе или на веб-странице. Например, компонент текстового поля может быть определен на странице как <asp:textbox id='myid' runat='server'>, который отображается в поле ввода html. Кроме того, динамический код, который выполняется на сервере, можно разместить на странице внутри блока <% -- dynamic code -- %>, что похоже на другие технологии веб-разработки, такие как PHP , JSP и ASP . В ASP.NET Framework 2.0 Microsoft представила новую модель кода программной части, которая позволяет статическому тексту оставаться на странице .aspx, в то время как динамический код переходит в файл .aspx.vb, .aspx.cs или .aspx.fs (в зависимости от используемый язык программирования).
Модель кода программной части
Microsoft рекомендует работать с динамическим программным кодом, используя модель кода программной части, которая помещает этот код в отдельный файл или в специально назначенный тег скрипта. Файлы кода программной части обычно имеют такие имена, как « MyPage.aspx.cs» или « MyPage.aspx.vb», в то время как файл страницы - MyPage.aspx (то же имя файла, что и файл страницы (ASPX), но с последним расширением, обозначающим страницу язык). Эта практика выполняется автоматически в Visual Studio и других IDE , хотя пользователь может изменить имя страницы кода программной части. Кроме того, в формате веб-приложения pagename.aspx.cs - это частичный класс, связанный с файлом pagename.designer.cs. Файл конструктора - это файл, который автоматически создается из страницы ASPX и позволяет программисту ссылаться на компоненты на странице ASPX со страницы кода программной части без необходимости объявлять их вручную, как это было необходимо в версиях ASP.NET до версии 2. Когда используя этот стиль программирования, разработчик пишет код для реагирования на различные события, такие как загрузка страницы или нажатие на элемент управления, а не на пошаговое руководство по документу.
Модель кода программной части ASP.NET отличается от классического ASP тем, что побуждает разработчиков создавать приложения с разделением представления и содержимого . Теоретически это позволило бы веб-дизайнеру, например, сосредоточиться на разметке дизайна с меньшим потенциалом нарушения программного кода, который управляет им. Это похоже на отделение контроллера от представления в фреймворках модель – представление – контроллер (MVC).
Директивы
Директива является специальной инструкцией о том , как ASP.NET должен обрабатывать страницы. Самая распространенная директива - это <%@ Page %>, которая может указывать множество атрибутов, используемых анализатором и компилятором страницы ASP.NET.
Пользовательские элементы управления
Пользовательские элементы управления представляют собой инкапсуляцию разделов разделов страницы, которые зарегистрированы и используются в качестве элементов управления в ASP.NET.
Пользовательские элементы управления
Программисты также могут создавать собственные элементы управления для приложений ASP.NET. В отличие от пользовательских элементов управления, эти элементы управления не имеют файла разметки ASCX, весь их код скомпилирован в файл библиотеки динамической компоновки (DLL) . Такие настраиваемые элементы управления можно использовать в нескольких веб-приложениях и проектах Visual Studio 2013 .
Техника рендеринга
.NET использует метод рендеринга «посещенных композитов». Во время компиляции файл шаблона (.aspx) компилируется в код инициализации, который строит дерево элементов управления (составное), представляющее исходный шаблон. Литеральный текст входит в экземпляры класса элемента управления Literal, а серверные элементы управления представлены экземплярами определенного класса элемента управления. Код инициализации комбинируется с кодом, написанным пользователем (обычно путем сборки нескольких частичных классов), и в результате создается класс, специфичный для страницы. Страница служит корнем дерева управления.
Фактические запросы на страницу обрабатываются в несколько этапов. Сначала на этапах инициализации создается экземпляр класса страницы и выполняется код инициализации. Это создает исходное дерево управления, которым теперь обычно манипулируют методы страницы на следующих этапах. Поскольку каждый узел в дереве представляет собой элемент управления, представленный как экземпляр класса, код может изменять древовидную структуру, а также управлять свойствами / методами отдельных узлов. Наконец, на этапе визуализации посетитель посещает каждый узел в дереве, прося каждый узел отрисовать себя с использованием методов посетителя. Полученный в результате вывод HTML отправляется клиенту.
После обработки запроса экземпляр класса страницы отбрасывается, а вместе с ним и все дерево управления. Это источник путаницы среди начинающих программистов ASP.NET, которые полагаются на члены экземпляра класса, которые теряются с каждым циклом запроса / ответа страницы.
Государственное управление
Приложения ASP.NET размещаются на веб-сервере и доступны по протоколу HTTP без сохранения состояния . Таким образом, если приложение использует взаимодействие с отслеживанием состояния, оно должно реализовать управление состоянием самостоятельно. ASP.NET предоставляет различные функции для управления состоянием. Концептуально Microsoft рассматривает «состояние» как состояние графического интерфейса пользователя . Проблемы могут возникнуть, если приложение должно отслеживать «состояние данных»; например, конечный автомат, который может находиться в переходном состоянии между запросами ( ленивая оценка ) или требует много времени для инициализации. Управление состоянием на страницах ASP.NET с проверкой подлинности может сделать очистку веб-страниц трудной или невозможной.
заявка
Состояние приложения поддерживается набором общих пользовательских переменных. Они устанавливаются и инициализируются, когда Application_OnStartсобытие запускается при загрузке первого экземпляра приложения, и доступны до выхода последнего экземпляра. Доступ к переменным состояния приложения осуществляется с помощью Applicationsколлекции, которая предоставляет оболочку для состояния приложения. Переменные состояния приложения идентифицируются по имени. Приложение - это государственное управление.
Состояние сеанса
Состояние сеанса на стороне сервера поддерживается набором определяемых пользователем переменных сеанса, которые сохраняются во время сеанса пользователя. Эти переменные, доступ к которым осуществляется с помощью Sessionколлекции, уникальны для каждого экземпляра сеанса. Можно настроить автоматическое уничтожение переменных по истечении определенного времени бездействия, даже если сеанс не завершается. Пользовательский сеанс на стороне клиента поддерживается файлом cookie или кодированием идентификатора сеанса в самом URL-адресе.
ASP.NET поддерживает три режима сохранения для переменных сеанса на стороне сервера:
- Рабочий режим
- В переменные сессии сохраняются в ASP.NET процесса . Это самый быстрый способ; однако в этом режиме переменные уничтожаются при перезапуске или завершении процесса ASP.NET.
- Режим государственного сервера
- ASP.NET запускает отдельную службу Windows, которая поддерживает переменные состояния. Поскольку управление состоянием происходит вне процесса ASP.NET и поскольку механизм ASP.NET обращается к данным с помощью .NET Remoting, ASPState работает медленнее, чем In-Process. Этот режим позволяет приложению ASP.NET балансировать нагрузку и масштабировать его на нескольких серверах. Поскольку служба управления состоянием работает независимо от ASP.NET, переменные сеанса могут сохраняться при завершении работы процессов ASP.NET. Однако, поскольку сервер состояния сеанса работает как один экземпляр, это все еще одна точка отказа для состояния сеанса. Служба состояния сеанса не может быть сбалансирована по нагрузке, и существуют ограничения на типы, которые могут храниться в переменной сеанса.
- Режим SQL Server
- Переменные состояния хранятся в базе данных , что позволяет сохранять переменные сеанса при завершении работы процессов 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коллекции.
В основном это используется для сохранения информации о форме при обратной передаче. Состояние просмотра включено по умолчанию и обычно сериализует данные в каждом элементе управления на странице независимо от того, действительно ли они используются во время обратной передачи. Однако это поведение можно (и нужно) изменить, поскольку состояние просмотра можно отключить для каждого элемента управления, для каждой страницы или для всего сервера.
Разработчикам следует с осторожностью относиться к хранению конфиденциальной или частной информации в состоянии просмотра страницы или элемента управления, поскольку строку Base64, содержащую данные состояния просмотра, можно легко десериализовать. По умолчанию состояние просмотра не шифрует __VIEWSTATEзначение. Шифрование может быть включено на уровне сервера (и для конкретного сервера), что позволяет поддерживать определенный уровень безопасности.
Кеширование на стороне сервера
ASP.NET предлагает объект «Кэш», который является общим для всего приложения, а также может использоваться для хранения различных объектов. Объект «Кэш» хранит данные только в течение определенного времени.
Другой
Другие средства управления состоянием, поддерживаемые ASP.NET, - это файлы cookie , кэширование и строка запроса .
Движок шаблонов
При первом выпуске в ASP.NET отсутствовал механизм шаблонов . Поскольку .NET Framework является объектно-ориентированной и допускает наследование , многие разработчики должны определить новый базовый класс, наследующий от " System.Web.UI.Page", написать там методы , отображающие HTML, а затем сделать страницы в своем приложении наследуемыми от этого нового класса. Хотя это позволяет повторно использовать общие элементы на сайте, это добавляет сложности и смешивает исходный код с разметкой . Более того, этот метод можно проверить только визуально, запустив приложение, но не во время его разработки. Другие разработчики использовали включаемые файлы и другие уловки, чтобы не реализовывать одну и ту же навигацию и другие элементы на каждой странице.
ASP.NET 2.0 представила концепцию главных страниц , которые позволяют разрабатывать страницы на основе шаблонов . Веб-приложение может иметь одну или несколько главных страниц, которые, начиная с ASP.NET 2.0, могут быть вложенными. В главных шаблонах есть элементы управления-заполнители, называемые ContentPlaceHolders, чтобы указать, куда идет динамический контент, а также HTML и JavaScript, общие для дочерних страниц.
Дочерние страницы используют эти элементы управления ContentPlaceHolder, которые должны быть сопоставлены с заполнителем главной страницы, которую заполняет страница содержимого. Остальная часть страницы определяется общими частями главной страницы, как при слиянии писем в текстовом процессоре . Вся разметка и серверные элементы управления на странице содержимого должны быть размещены в элементе управления ContentPlaceHolder.
Когда делается запрос для страницы содержимого, ASP.NET объединяет вывод страницы содержимого с выводом главной страницы и отправляет вывод пользователю.
Главная страница остается полностью доступной для страницы содержимого. Это означает, что страница содержимого может по-прежнему управлять заголовками, изменять заголовок, настраивать кэширование и т. Д. Если главная страница предоставляет общедоступные свойства или методы (например, для установки уведомлений об авторских правах), страница содержимого также может использовать их.
Другие файлы
Другие расширения файлов, связанные с разными версиями ASP.NET, включают:
| Расширение | Введено в версии | Описание |
|---|---|---|
| asax | 1.0 | Это глобальный файл приложения. Вы можете использовать этот файл для определения глобальных переменных (переменная, к которой можно получить доступ с любой веб-страницы в веб-приложении). Он в основном используется для определения общего события приложения, связанного с приложением и объектом сеанса. Global.asax , используемый для логики уровня приложения |
| ascx | 1.0 | Пользовательский элемент управления, используемый для логики файлов пользовательского элемента управления |
| Ashx | 1.0 | Пользовательские обработчики HTTP не имеют пользовательского интерфейса. |
| asmx | 1.0 | Страницы веб-сервисов . Начиная с версии 2.0 страница кода позади файла asmx помещается в папку app_code. |
| aspx | 1.0 | Страница веб-форм ASP.NET, которая может содержать веб-элементы управления, презентацию и бизнес-логику. http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx |
| axd | 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. |
| config | 1.0 | web.config - единственный файл в конкретном веб-приложении, который использует это расширение по умолчанию (machine.config аналогичным образом влияет на весь веб-сервер и все приложения на нем), однако ASP.NET предоставляет средства для создания и использования других файлов конфигурации. Они хранятся в формате XML . |
| cs / vb / fs | 1.0 | Файлы кода (cs обозначает C #, vb обозначает Visual Basic, fs обозначает F #). Код позади файлов (см. Выше) преимущественно имеет расширение " .aspx.cs" или " .aspx.vb" для двух наиболее распространенных языков. Другие файлы кода (часто содержащие общие «библиотечные» классы) также могут существовать в веб-папках с расширением cs / vb. В ASP.NET 2 они должны быть помещены в папку App_Code, где они динамически компилируются и доступны для всего приложения.
|
| cshtml | 4.1 | Представления (смешанные C # и HTML с использованием синтаксиса Razor ) |
| dbml | 3.5 | Файл классов данных LINQ to SQL |
| edmx | 3.5 | ADO.NET Entity Framework модель |
| мастер | 2.0 | Файл главной страницы. Имя файла по умолчанию - Master1.master |
| resx | 1.0 | Файлы ресурсов для интернационализации и локализации . Файлы ресурсов могут быть глобальными (например, сообщения) или локальными , что означает специфические для одного файла aspx или ascx. |
| карта сайта | 2.0 | Файлы конфигурации Sitemap. Имя файла по умолчанию - web.sitemap |
| кожа | 2.0 | Файлы темы оформления. |
| svc | 3.0 | Служебный файл Windows Communication Foundation |
| vbhtml | 4.1 | Представления (смешанные VB и HTML с использованием синтаксиса Razor ) |
Структура каталогов
В общем, структура каталогов ASP.NET может определяться предпочтениями разработчика. Помимо нескольких зарезервированных имен каталогов, сайт может охватывать любое количество каталогов. Структура обычно отражается непосредственно в URL-адресах. Хотя ASP.NET предоставляет средства для перехвата запроса в любой момент во время обработки, разработчик не обязан направлять запросы через центральное приложение или фронт-контроллер.
Имена специальных каталогов (начиная с ASP.NET 2.0 и далее):
- App_Code
- Это каталог «сырого кода». Сервер ASP.NET автоматически компилирует файлы (и подкаталоги) в этой папке в сборку, доступную в коде каждой страницы сайта. App_Code обычно используется для кода абстракции доступа к данным, кода модели и бизнес-кода. Также в этот каталог помещаются любые специфичные для сайта обработчики и модули http, а также реализация веб-служб. В качестве альтернативы использованию App_Code разработчик может выбрать отдельную сборку с предварительно скомпилированным кодом.
- Данные приложения
- Каталог App_Data ASP.NET - это каталог по умолчанию для любой базы данных, используемой веб-сайтом ASP.NET. Эти базы данных могут включать файлы Access (mdb) или файлы SQL Server (mdf). App_Data - единственный каталог с включенным доступом для записи для веб-приложения ASP.NET .:
- App_GlobalResources
- Содержит файлы resx с локализованными ресурсами, доступными для каждой страницы сайта. Здесь разработчик ASP.NET обычно хранит локализованные сообщения и т. Д., Используемые более чем на одной странице.
- App_LocalResources
- Например, файл с именем CheckOut.aspx.fr-FR.resx содержит локализованные ресурсы для французской версии страницы CheckOut.aspx. Если для языка пользовательского интерфейса установлен французский язык, ASP.NET автоматически находит и использует этот файл для локализации.
- App_Offline.htm
- Файл (не каталог), который отключает приложение, возвращая содержимое файла для любого запроса приложения.
- App_Themes
- Добавляет папку, в которой хранятся файлы, связанные с темами. Это новая функция ASP.NET, которая помогает обеспечить единообразный внешний вид всего веб-сайта и упрощает изменение внешнего вида веб-сайта при необходимости.
- App_WebReferences
- содержит файлы обнаружения и файлы WSDL для ссылок на веб-службы, которые будут использоваться на сайте.
- Корзина
- Содержит скомпилированный код ( файлы .dll ) для элементов управления, компонентов или другого кода, на который вы хотите ссылаться в своем приложении. Любые классы, представленные кодом в папке Bin, автоматически упоминаются в вашем приложении.
Представление
ASP.NET стремится к повышению производительности по сравнению с другими технологиями, основанными на сценариях (включая классический ASP), путем компиляции серверного кода при первом его использовании в один или несколько файлов DLL на веб-сервере . Эти DLL-файлы или сборки содержат Microsoft Intermediate Language (MSIL) для работы в среде CLR ; это обеспечивает повышение производительности по сравнению с чистыми скриптовыми языками и аналогично подходу, используемому в Python, и не отличается от JavaServer Pages . Эта компиляция происходит автоматически при первом запросе страницы (что означает, что разработчику не нужно выполнять отдельный этап компиляции для страниц).
Эта функция обеспечивает простоту разработки, предлагаемую языками сценариев, с преимуществами производительности скомпилированного двоичного файла. Однако компиляция может вызвать заметную, но короткую задержку для пользователя, когда новая отредактированная страница сначала запрашивается с веб-сервера, но не снова, если запрошенная страница не обновится дальше.
ASPX и другие файлы ресурсов размещаются на виртуальном хосте на сервере Internet Information Services (или других совместимых серверах ASP.NET; см. «Другие реализации» ниже). Когда клиент впервые запрашивает страницу, .NET Framework анализирует и компилирует файл (ы) в сборку .NET и отправляет ответ; последующие запросы обслуживаются из файлов DLL. По умолчанию ASP.NET компилирует весь сайт пакетами по 1000 файлов при первом запросе. Если задержка компиляции вызывает проблемы, размер пакета или стратегия компиляции могут быть изменены.
Разработчики также могут выбрать предварительную компиляцию своих файлов с выделенным кодом перед развертыванием с помощью Microsoft Visual Studio, что устраняет необходимость своевременной компиляции в производственной среде. Это также устраняет необходимость иметь исходный код на веб-сервере. Он также поддерживает предварительную компиляцию текста.
ASP.NET по сравнению с классическим ASP
ASP.NET WebForms упрощает переход разработчиков от разработки приложений Windows к веб-разработке, предлагая возможность создавать страницы, состоящие из элементов управления, аналогичные пользовательскому интерфейсу Windows . Веб-элемент управления, такой как кнопка или метка , работает во многом так же, как и его аналоги в Windows: код может назначать его свойства и реагировать на его события. Элементы управления умеют отображать себя: в то время как элементы управления Windows рисуют себя на экране, веб-элементы управления создают сегменты HTML и JavaScript, которые образуют части результирующей страницы, отправляемые в браузер конечного пользователя.
ASP.NET WebForms поощряет программистов разрабатывать приложения с использованием модели графического интерфейса, управляемой событиями , а не в обычных средах веб- сценариев, таких как ASP и PHP . Платформа объединяет существующие технологии, такие как JavaScript, с внутренними компонентами, такими как « ViewState », чтобы обеспечить постоянное (межзапросное) состояние веб-среде, которая изначально не имеет состояния .
Другие отличия от Classic ASP :
- Скомпилированный код означает, что приложения работают быстрее, и на этапе разработки обнаруживается больше ошибок времени разработки.
- Значительно улучшена обработка ошибок во время выполнения за счет использования обработки исключений с использованием блоков try-catch.
- Похожие метафоры на приложения Microsoft Windows, такие как элементы управления и события.
- Обширный набор элементов управления и библиотек классов, а также пользовательские элементы управления позволяют быстро создавать приложения. Расположение этих элементов управления на странице проще, потому что большинство из них можно сделать визуально в большинстве редакторов.
- ASP.NET использует многоязычные возможности .NET Common Language Runtime , позволяя кодировать веб-страницы на VB.NET, C #, F #, Delphi.NET и т. Д.
- Возможность кэшировать всю страницу или только ее части для повышения производительности.
- Возможность использовать модель разработки кода программной части для отделения бизнес-логики от представления.
- Возможность использовать настоящий объектно-ориентированный дизайн для программирования страниц и элементов управления.
- Если в приложении ASP.NET происходит утечка памяти , среда выполнения ASP.NET выгружает домен приложений, в котором размещено ошибочное приложение, и перезагружает приложение в новом домене приложений.
- Состояние сеанса в 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, в зависимости от конфигурации сайта. Обнаружение совместимых со стандартами веб-браузеров стало более надежным, а поддержка каскадных таблиц стилей шире.
- Серверные веб-элементы управления: это элементы управления, представленные веб-формами ASP.NET для предоставления пользовательского интерфейса для веб-формы. Эти элементы управления являются элементами управления, управляемыми состоянием, и являются элементами управления WYSIWYG .
использованная литература
Цитаты
Источники
- Макдональд, Мэтью; Шпуста, Марио (2005). Pro ASP.NET 2.0 на C # 2005 (1-е изд.). Апресс. ISBN 978-1-59059-496-4.
внешние ссылки
- Официальная документация
- Веб-формы на www.asp.net
- Введение в ASP.NET и веб-формы (документ начала 2001 г.)