Когда Вы использовали бы Управление Интернет-пользователя веб-Пользовательским элементом управления?

Не найдя хорошего решения, я написал небольшой скрипт давным-давно, загрузив данные из спецификации unicode (v.5.0.0) и генерируя интервалы для каждой категории юникода и подкатегории в BMP (в последнее время вместо была использована небольшая программа Java , которая использует свою собственную поддержку Unicode).

В основном он преобразует \p{...} в диапазон значений, очень похожий на выход инструмента , упомянутый Томалаком, но интервалы могут оказаться довольно большими (поскольку он не имеет дело с блоками, а с символами, разбросанными по многим различным местам).

Например, Regex, написанное так:

var regex = unicode_hack(/\p{L}(\p{L}|\p{Nd})*/g);

Будет преобразовано в нечто подобное:

/[\u0041-\u005a\u0061-\u007a...]([...]|[\u0030-\u0039\u0660-\u0669...])*/g

Не использовали его много в но, похоже, он отлично работает на моих тестах, поэтому я публикую здесь, если кто-то найдет это полезным. Несмотря на длину результирующих выражений (пример выше имеет 3591 символ при расширении), производительность кажется приемлемой (см. тесты в jsFiddle, благодаря @modiX и @Lwangaman для улучшения).

Вот источник (raw, 27.5KB; minified , 24.9KB, не намного лучше ...). Это может быть уменьшено за счет отмены символов Unicode, но OTOH будет подвергать риску проблемы с кодировкой, поэтому я ухожу, как есть. Надеюсь, что с ES6 этот вид больше не понадобится.

Обновление: это похоже на ту же стратегию, которая была принята в плагине XRegExp Unicode , упомянутом Тимом Дауном, кроме что в этом случае используются регулярные выражения JavaScript.

8
задан Ray Vega 29 May 2009 в 21:29
поделиться

8 ответов

Это от сайта Microsoft:

Средства управления интернет-пользователя

  • Легче создать
  • Ограниченная поддержка потребителей, которые используют инструмент визуального проектирования
  • Отдельная копия управления требуется в каждом приложении
  • Не может быть добавлен к Панели инструментов на Visual Studio
  • Хороший для статического расположения

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

  • Тяжелее создать
  • Полный инструмент визуального проектирования поддерживает для потребителей
  • Только единственная копия управления требуется в глобальном кэше сборок
  • Может быть добавлен к Панели инструментов на Visual Studio
  • Хороший для динамического расположения

http://msdn.microsoft.com/en-us/library/aa651710 (По сравнению с 71) .aspx

10
ответ дан 5 December 2019 в 12:15
поделиться

UserControl должен быть размещен веб-сайтом и связан с файлом ASCX с помощью codebehind модели. Поэтому с пользовательским элементом управления можно определить основную разметку для управления в файле ASCX и поместить весь код в файл ASCX.CS.

WebControl является просто классом и не позволяет Вам определить связанный файл ASCX; необходимо переопределить функцию Рендеринга для распечатывания любой разметки, которую управление собирается произвести. Однако, потому что это не зависит от ASCX, это может быть помещено в общую библиотеку. (DLL)

Ответить на Ваш вопрос: и сеть - и UserControls обладают тем же преимуществом - они берут некоторую часть страницы и инкапсулируют ее. Я использую UserControls, когда рассматриваемый код применяется к только одному из моих сайтов; если я буду использовать подобный код в нескольких сайтах, то я преобразую код в WebControl и перемещу его в общую библиотеку. Тот путь, когда я должен обновить его, я вношу изменения в одном месте а не 3 или 4.

Подсказка: можно обойти часть проблемы определить собственный WebControl путем наследования одному из стандартного ASP WebControls. Много стандартных средств управления как Маркировка или Изображение не изолируются - можно наследоваться от них и переопределить их методы для создания собственной специализированной версии того управления. Это намного легче и менее подвержено ошибкам, чем расширение WebControl непосредственно.

2
ответ дан 5 December 2019 в 12:15
поделиться

Пользовательские элементы управления компилируются с проектом, и он должен быть записан на том же языке как проект.

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

Если внимание обращено на деталь, Пользовательский элемент управления может быть записан для отображения в разработчике (хотя это не может стоить проблемы).

1
ответ дан 5 December 2019 в 12:15
поделиться

Я думаю, о чем Вы думаете, Пользовательский элемент управления по сравнению с Пользовательским элементом управления, обоими из которых являются Веб-элементы управления. usercontrol не имеет разработчика UI, в то время как пользовательский элемент управления может.

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

Только пользовательские элементы управления могут быть добавлены к панели инструментов.

Вот выборка от Microsoft:

http://msdn.microsoft.com/en-us/library/aa651710 (По сравнению с 71) .aspx

1
ответ дан 5 December 2019 в 12:15
поделиться

Для доступа к ним от JavaScript необходимо использовать document.GetElementById('<%=TheControl.ClientID%>').
Различие между веб-элементом управления и пользовательским элементом управления - то, что пользовательский элемент управления имеет ascx файл с определением HTML, в то время как веб-элемент управления не делает; это - причина для других различий. Кроме того, для пользовательских элементов управления Вы не можете использовать new Control(), необходимо использовать LoadControl вместо этого, потому что это загружает .ascx.
Для простых средств управления, которые наследовались средствам управления .NET, как текстовое поле с проверкой или чем-то как этот, я склонен использовать веб-элементы управления; для более сложных средств управления с HTML и внутренних средств управления я склонен использовать пользовательские элементы управления. Но это - в основном Ваше персональное предпочтение.

0
ответ дан 5 December 2019 в 12:15
поделиться

Простой:

UserControl:

  • UserControl нужен *.ascx файл для завершения инициализации экземпляра. Для этого Вы не можете получить один UserControl от другого.
  • UserControl имеет *.ascx файл, таким образом, Вы можете легкая запись HTML. И (большая часть преимущества) можно изменить содержание *.ascx файла и изменить вид управления во времени выполнения веб-приложения.

WebControl:

  • WebControl является "только" классом в блоке, таким образом, можно получить другое управление от них.
  • WebControl не имеет никакого *.ascx (или другой) файл, co никто не может изменить вид этого управления (дисквалифицированные веб-администраторы, например).
0
ответ дан 5 December 2019 в 12:15
поделиться

это не совсем верно. Веб-элемент управления похож на кнопку, и можно создать разработчика для него так, это действительно становится представленным в режиме разработчика.

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

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

Один лучше, чем другой? Это зависит от того, какова цель. Но в целом, если Вы создаете что-то, чтобы другие люди/проекты использовали, пошел с веб-элементом управления. Если Вы создаете что-то для потребления своего собственного проекта, затем идут с пользовательским элементом управления.

Теперь, насколько JS затронут, это - более твердая вещь описать и гарантирует довольно большое обсуждение самостоятельно. Для управления сервером необходимо будет обеспечить рычаги для JS для достигания клиентского идентификатора для каждого внутреннего контроля. В то время как пользовательский элемент управления можно кодировать JS непосредственно на пользовательском элементе управления и получить доступ к средствам управления тем же путем, Вы были бы на странице ASPX.

0
ответ дан 5 December 2019 в 12:15
поделиться

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

  • Легко реализовать, потому что вы можете визуально перетаскивать другие элементы управления на часть разметки.
  • Хорошая поддержка дизайнера в Visual Studio
  • Может быть повторно использована только в том же проекте
  • Вы также можете создавать шаблонные пользовательские элементы управления, если хотите (хотя и не так часто).

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

  • Сложнее создать, но есть целый ряд возможных сценариев:
    • Наследование от существующих элементов управления, таких как Label, Button, ...
    • Создание составного элемента управления
    • Создание шаблонов, + привязка данных, элементы управления
  • Возможность многократного использования в других проектах
  • Идеально для создания фреймворков который можно использовать в масштабах компании
0
ответ дан 5 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: