Может кто-нибудь скажет мне, следует ли мне использовать элементы управления пользователя в своем проекте настолько, насколько я могу? Ff, так почему, а если нет, то почему?Преимущества и недостатки usercontrol в asp.net
ответ
Это интересный вопрос; но думать об этом так.
Вы только что написали таблицу, в которой перечислены все ваши пользователи. Вы показываете это на странице Список пользователей вашего сайта.
На странице «Найти пользователя» вам может потребоваться показать список пользователей. Вы переписываете один и тот же HTML, код, javascript, CSS, как и раньше? Или вы повторно используете элемент управления, на этот раз добавляя возможность фильтрации по имени пользователя или другим атрибутам?
По существу, пользовательские элементы управления предназначены для упаковки многоразовых битов вашего веб-сайта. Вместо того, чтобы повторять один и тот же код повсюду, вы можете упаковать его в пользовательский элемент управления и просто добавить его на любую страницу, которую вы хотите, просто добавив соответствующий тег.
Кроме того, вы только что сделали ОДИН контроль в своем проекте, ответственный за работу с некоторыми функциями - вся логика для него находится в одном месте и отделена от другого кода. Это тоже важная концепция, так как она останавливает весь ваш код. В примере пользователей вы можете взаимодействовать со списком пользователей через интерфейс, а не смешивать его с другим кодом, который может делать разные вещи. Это называется SRP и может быть хорошей вещью.
В качестве практического примера у нас есть элемент управления, который показывает список наших продуктов. Мы можем повторно использовать один и тот же элемент управления на экране поиска, экране администратора, экране «Продукты как этот» и на экране «Продукты, которые вы выбрали». Этот код содержит много логики, которая находится в одном месте, поэтому ее можно легко поддерживать, и ее можно использовать слишком просто.
Пользовательские элементы управления могут быть очень полезными. Поэтому вы должны использовать их, когда чувствуете, что можете упаковать группу существующих элементов управления, HTML и т. Д. Это делает их многоразовыми и намного проще в обслуживании.
Существует также концепция пользовательских элементов управления - это, как правило, повторная реализация существующих элементов управления - например, у вас может быть ExtendedTextBox, который проверяет текст, когда кто-то его вводит.
Вы можете прочитать больше about both kinds of controls here
Я бы использовал элементы управления, которые предоставляет VS IDE Toolbox как можно больше. Я бы только бросил свой собственный контроль, если что-то, что предоставила окружающая среда, не совсем сделал то, что я хотел.
Пользовательские элементы управления хороши по тем же причинам, что процедуры/функции/методы хороши: код (и разметки) повторное использование.
Как и подпрограммы, элементы управления могут быть проблемой, если они выполняют такие вещи, как изменение глобального состояния, делают много БД или других внеблочных вызовов, которые не всегда нужны, вводят неизбежную синхронную блокировку и т. Д. Они также могут добавить ненужный уровень сложности, если они никогда не используются повторно.
- 1. Преимущества и недостатки использования пользовательских обработчиков asp.net?
- 2. Преимущества и недостатки J2ME?
- 3. Преимущества и недостатки CardView
- 4. Преимущества и недостатки appium
- 5. Преимущества и недостатки BPMN?
- 6. Преимущества и недостатки DotNetNuke?
- 7. Преимущества и недостатки NHibernate
- 8. Преимущества и недостатки AngularJS
- 9. WCF - преимущества и недостатки
- 10. преимущества и недостатки шаблона Smarty
- 11. gwt + grail .. преимущества и недостатки
- 12. Преимущества и недостатки программирования CAS
- 13. Преимущества и недостатки цепных методов?
- 14. Преимущества и недостатки нейронных сетей
- 15. Преимущества и недостатки лазурной защиты
- 16. Преимущества и недостатки использования ReactJS
- 17. Преимущества и недостатки функций вложенности
- 18. Каковы преимущества и недостатки метапрограммирования?
- 19. Преимущества/недостатки ветвей и forks
- 20. Преимущества/недостатки int и Int32
- 21. Каковы преимущества и недостатки NHibernate?
- 22. EF CodeFirst преимущества и недостатки
- 23. Преимущества и недостатки использования раскадровки?
- 24. Преимущества и недостатки Android NDK
- 25. Преимущества и недостатки использования панелей обновления Ajax в приложении ASP.NET
- 26. HttpModule против DelegatingHandler - преимущества/недостатки?
- 27. Преимущества/недостатки реактивного программирования
- 28. SOAP Pooling Преимущества/Недостатки
- 29. Преимущества/недостатки инструментов рефакторинга
- 30. Преимущества/недостатки единства строят?
Еще один пример, который мне нравится, - это когда я группирую метку, текстовое поле, валидаторы и окружающий html в один пользовательский элемент управления, а затем я использую его на экранах редактирования следующим образом: . Сравните эту строку с исходным
Я думаю, что он заслуживает того, чтобы быть ответом на все его собственные, поскольку это хорошая практическая демонстрация того, как простой пример использования может выиграть от пользовательского контроля и повторного использования. В вашем примере я реализовал нечто подобное; пользовательский EmailTextBox, наследующий от Control, хотя, как я сказал (с некоторыми другими) в сборке, чтобы делиться между всеми нашими проектами - Custom Control. – dash
В вашем ответе написано все и вот почему у него есть +1 от меня. Мой пример, я думаю, больше похож на композитный. Я также использую наследование. Например, я наследую FormView и решаю там, если DefaultMode предназначен для Edit или для Insert, в зависимости от некоторого значения, такого как QueryString ["id"], затем я решаю, что происходит, когда Edit/Insert не удается/имеет успех, например, показывая сообщение видимые некоторые буквальные или просто перенаправляющие где-нибудь, возможно, на страницах списков). Идея, как вы сказали, если один и тот же код или разметка повторяется на всех страницах, то ее следует перенести в пользовательские элементы управления или расширить существующие. –