Как выбрать, должна ли веб-страница быть пользовательским элементом управления? - PullRequest
2 голосов
/ 11 ноября 2008

Несколько человек в нашей команде считают, что каждая веб-страница в приложении должна быть пользовательским элементом управления. Таким образом, у вас будет вся обработка html + событий, например, в Customer.ascx, и будет соответствующая страница Customer.aspx, которая содержит элемент управления Customer.ascx.

Вот их аргументы:

  1. Эта практика способствует универсальности, портативности и возможности повторного использования.
  2. Даже если страница не будет повторно использоваться прямо сейчас, это может произойти в будущем.
  3. Странице клиента может потребоваться переместиться в другое место или иногда переименовываться в будущем, и перемещение пользовательских элементов управления будет проще.
  4. Это рекомендация MS для новой разработки.

Это действительно рекомендация для новых разработок? Есть ли недостатки этой стратегии? Я согласен, что было бы хорошо иметь под рукой пользовательский элемент управления, если возникнет такая необходимость, но кажется, что это излишне делать это для всего приложения «на тот случай, если оно понадобится нам позже».

Ответы [ 4 ]

2 голосов
/ 11 ноября 2008

1, 2 & 3: делать что-нибудь , потому что "это может понадобиться вам позже" - ужасная стратегия.

http://c2.com/xp/YouArentGonnaNeedIt.html

4: Я никогда не читал это и серьезно сомневаюсь, что MS когда-либо говорила что-то подобное. Может быть, какая-то случайная статья от одного человека, у которого есть метка MS или MVP или что-то в этом роде, и доверчивый младший разработчик воспринял ее как Евангельскую Истину.

1 голос
/ 11 ноября 2008

Я наткнулся на приложение в .NET 1.1, которое было написано так однажды. Кто-то, должно быть, услышал ту же ошибочную «лучшую практику» и принял ее за абсолютную правду.

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

Я также не понимаю аргумент перемещения / переименования. Переименовать / переместить страницу не так сложно. Если вы сделаете то, что предлагают ваши коллеги, у вас получится страница customer.aspx, которая содержит только файл orders.ascx? При таком подходе я вижу больше путаницы / ошибок, чем просто переименование / перемещение файла.

1 голос
/ 11 ноября 2008

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

1 голос
/ 11 ноября 2008
  1. Серьезно усложняет сценарий на стороне клиента, так как при работе с NamingContainer иногда все равно будет _ctl0 и т. Д.
  2. Я не думаю, что MS когда-либо рекомендовал это. Запросить ссылки на документацию MSDN.
  3. Как правило, к тому времени, когда вы закончите что-то реализовывать, и это будет достаточно сложно, вы обнаружите много «ловушек», когда будете пытаться «повторно использовать» это. Хорошим примером являются относительные ссылки в пользовательском элементе управления, которые больше не работают вне их пути.
  4. Пользователям не требуется возможность добавлять / редактировать / удалять клиентов на каждой странице. Действительно, вы начинаете сталкиваться с проблемами кэширования, если у вас есть эти типы элементов управления на каждой странице. Например, если на странице «Счет-фактура» вы добавляете «Клиента», будет ли элемент управления «Счет-фактура» обновляться новым клиентом? Все виды проблем оперативности управления могут проявиться. С этими проблемами трудно поспорить, потому что, конечно, пользовательский контроль будет идеальным , поэтому этого никогда не произойдет. ха ха правильно.
  5. Посмотрите, могут ли они придумать пример, в котором перемещение / переименование пользовательского элемента управления фактически экономит время, а не усложняет его. Составьте реальный пример и покажите за / против каждого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...