Должна ли функциональность, которая используется только один раз, войти в UserControl? - PullRequest
4 голосов
/ 26 марта 2009

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

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

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

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

Так кто же прав?

Редактировать

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

Дальнейшее редактирование

Похоже, я победитель: D

Я проигнорировал сообщения, которые предполагают, что мы оба правы, и посчитал ответ в поддержку каждой стороны как +1, и каждый положительный голос по этому ответу как +1 тоже. Я выигрываю 11-6.

Ответы [ 7 ]

7 голосов
/ 26 марта 2009

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

Это действительно облегчает общение. Подумайте, SRP.

4 голосов
/ 26 марта 2009

Почему бы просто не оставить его в WebForm и не выполнить рефакторинг в UserControl, когда вы do повторно используете эту функциональность? Помните: ЯГНИ.

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

3 голосов
/ 26 марта 2009

Я бы не включал его в UserControl, извините, но я разделяю мнение вашего коллеги. UserControls специально предназначены для повторно используемого контента (это control , верно?). Будьте проще, не перегружайте себя, не создавайте больше работы для себя, потому что «вы можете повторно использовать эту функциональность в будущем». Вы не можете. Вы сделаете это контролем, когда вам это действительно нужно.

2 голосов
/ 26 марта 2009

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

Простой ответ: Вы правы, ваш коллега не прав.

1 голос
/ 26 марта 2009

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

1 голос
/ 26 марта 2009

Рассмотрим случай, когда на странице существуют десятки таких фрагментов кода: имеет ли смысл все это жить в одной форме или каждая форма должна иметь свой собственный контроль?

Не скажу, что вы будете на 100% правы в этом, но это может быть способом пробить дыру в взгляде вашего коллеги на это.

0 голосов
/ 26 марта 2009

Я утверждаю, что дополнительные издержки незначительны

Согласовано - следует слишком недооценивать слишком микрооптимизацию производительности, не используя UserControls.

и это делает код лучше организованным,

Может, и если это происходит в вашем конкретном контексте - тогда, да, это хорошая идея.

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

Да, вы можете. Или вы не можете. Это стирка, и лучше всего опровергнуть Y (P) AGNI (Вам (вероятно) она не понадобится).

Итак, подведем итог, это зависит от того, действительно ли это способствует лучшему упорядочению кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...