Подтвердить что ты не робот

В чем разница между UserControl, WebControl, RenderedControl и CompositeControl?

В чем разница, каковы официальные термины, какие-либо термины устарели в ASP.NET 3.5?

4b9b3361

Ответ 1

UserControl. Пользовательский элемент управления, заканчивающийся на .ascx, который состоит из других веб-элементов управления. Это почти как небольшая версия веб-страницы aspx. Он состоит из UI (ascx) и codebehind. Нельзя повторно использовать в других проектах, ссылаясь на DLL.

WebControl: элемент управления, размещенный на веб-странице или в UserControl. Он состоит из одного или нескольких классов, работающих в тандеме и размещенных на странице aspx или в UserControl. WebControls не имеет "страницы" пользовательского интерфейса и должен отображать их содержимое напрямую. Они могут быть повторно использованы в других приложениях, ссылаясь на их библиотеки DLL.

RenderedControl: не существует. Может быть синонимом WebControl. Возможно, элемент управления написан непосредственно на HttpResponse, а не отображается на странице aspx.

CompositeControl: между UserControls и WebControls. Они кодируются как UserControls, поскольку они состоят из других элементов управления. Нет графического интерфейса для управления композицией, а поддержка редактирования пользовательского интерфейса CompositeControls должна быть закодирована дизайнером управления. Композиция выполняется в коде. CompositeControls можно повторно использовать в других проектах, таких как WebControls.

Ответ 2

Вы забыли ServerControl.

В моем понимании это так:

  • Есть только два разных типа элементов управления: UserControl и ServerControl
  • CompositeControls являются своего рода "продвинутыми" UserControls. Найдите дополнительную информацию о Блог Скотта Гутриса.
  • Все они являются WebControls (потому что все они получены из System.Web.UI.Control)
  • Все они отображаются любым способом, поэтому я хотел бы видеть их как обработанные элементы управления.

Из MSDN:

Пользовательский контроль

В ASP.NET: сервер контроль, который является декларативным используя тот же синтаксис, что и ASP.NET страницы и сохраняется как текстовый файл с расширение .ascx. Элементы управления пользователя разрешить функциональность страницы разделен и используется повторно. Сначала запроса, структура страницы анализирует пользовательский контроль в класс, который выводит из System.Web.UI.UserControl и компилирует этот класс в сборку, который он повторно использует при последующих Запросы. Элементы управления пользователя развиваться из-за их стиля страницы авторинг и развертывание без предварительного сборник.

Управление сервером

Компонент на стороне сервера который инкапсулирует пользовательский интерфейс и связанных с функциональностью. ASP.NET управление сервером происходит напрямую или косвенно из Класс System.Web.UI.Control. надмножество серверных элементов управления ASP.NET включает элементы управления веб-сервером, HTML серверные элементы управления и ASP.NET mobile управления. Синтаксис страницы для Управление сервером ASP.NET включает runat = "server" на контрольный тэг. См. Также: HTML-сервер управления, проверки сервера, Управление веб-сервером.

Ответ 3

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

Это упрощает использование элементов управления веб-пользователей, если вы привыкли к полной поддержке времени разработки Visual Studio.NET, включая окно "Свойства" и предварительный просмотр проектных представлений. Также единственным способом совместного использования пользовательского контроля между приложениями является размещение отдельной копии в каждом приложении, что требует дополнительного обслуживания, если вы вносите изменения в элемент управления.

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

Ответ 5

Поскольку у меня еще недостаточно репутации, чтобы комментировать, я добавлю это как ответ, но это относится к Ответу выше.

В ссылка вы включили:

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

Я считаю, что документация относится к UserControls, которые были созданы путем переопределения метода Render как Rendered Controls. Таким образом, это не отдельный тип, как предполагает вопрос, а способ реализации UserControl; шаблон.