|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Вот мучают сомнения, использую блок валидации из EnterpriseLibrary. Может чот посоветуете или поделитесь опытом, где лучше хранить правила валидации? (я пока остановился на 2 варианте, но больше склоняюсь к первому) 1. Хранить вместе с сущностями (навесить аттрибуты прямо в классах). + правила валидации и сущности описаны в одном месте, можно рефлекшеном достать - сборка POCO сущностей Domain зависит от EnterpriseLibrary - для изменения правила валидации нужно перекомпилить сборку 2. описать правила валидации в файле конфигурации web.config + сборка POCO сущностей Domain не зависит от других сборок. + для изменения валидаторов не нужно перекомпилить сборку - конфиг разрастается до огромных размеров - описание сущностей и из валидация в разных частях системы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 11:51 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
alneo, - вы ошиблись веткой форума - валидация неразрывно связана с бизнес-логикой. Её нельзя перемещать туда-сюда-xml-exe-... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 15:08 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
почему не в тот раздел? куда нужно было постить? хочется реализовать сквозной функционал используя АОП. (не хочу писать кучу кода в разных слоях приложения) решил заюзать в новом проекте enterprise library (еще рассмративал варианты CSLA или Spring.NET). вот хотелось бы услышать мненеие опытных архитекторов, best practicy так сказать. не хочется наступать на грабли. лишний раз ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 15:32 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
alneoпочему не в тот раздел? куда нужно было постить? специфическая библиотека _конкретного_ языка программирования ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 15:37 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
alneo, в БД храни ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 16:01 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
возможно я не совсем корректно задал вопрос. ответить на него могут как .net разработчики, так и java и с++ и др.. (тот же CSLA есть для разных платформ). здесь речь идет о АОП (аспектно-ориентированном программировании, не важно какой фремворк используется.) меня интересует вопрос о том, где лучше хранить правила (валидации, авторизации и т.д.) - непосредственно в классах бизнес-сущностей или во внешних хранилищах(файлы конфигурации, субд и т.д.) я перечислил несколько плюсов и минусов, может кто еще что добавит по существу основываясь на своём опыте? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 16:41 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
alneo, 1. шансы равны 50 на 50, т.к. есть сторонники обоих подходов. Некоторые не любят простыни XML и его избыточный синтаксис. 2. вариант нужен такой, чтобы была "обозреваемость" кода. 3. т.к. валидация зависит от БЛ, то выделить для неё отдельный блок-библиотеку я не считаю правильным. Пусть САМ контрол валидирует себя (по ООП) 4. на Java GWT валидирует совсем по другому методу сразу ОБА слоя - клиент и сервер Т.е. всё ЭТО временно и "мелко" 5. Если клиент пишет отдельный программист, то он валидирует сам и своими средствами. т.е. нет общего подхода и вопроса. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 16:59 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
- в 2-х звенке, на сервере Основные правила. На клиенте Дополнительные-необязательные - в 3-х звенке, 1-ый эшелон на сервере, 2- аппсервере, 3- на клиенте ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 17:02 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Petro123, он спрашивает - ГДЕ хранить ПРавила валидации. А не ГДЕ валидировать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 18:37 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
для небольшого веб-приложения я хранил их в файле конфигурации, для большого (около двух сотен сущностей) - в классах сущностей. вот теперь не знаю на какие грабли наступить снова.. :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 18:56 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
alneo, ну в БД лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 18:57 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
ViPRosPetro123, он спрашивает - ГДЕ хранить ПРавила валидации. А не ГДЕ валидировать. :) читай внимательно. Там есть ВСе ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 22:02 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Аттрибуты неудобны и не решают всех проблем. На мой взгляд, более предпочтителен вариант, когда правила валидации инжектятся с помощью MEF. В этом случае они могут лежать в отдельных сборках ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 08:35 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
SeVaАттрибуты неудобны и не решают всех проблем. На мой взгляд, более предпочтителен вариант, когда правила валидации инжектятся с помощью MEF. В этом случае они могут лежать в отдельных сборках ну вот, яркий пример, лагеря "инжектирования" вместо написания кода. Т.е., не побоюсь этого слова - "конфигурастов". Где связи классов конструируются и конфигурируются вне сборки. Так что, в сильвере MEF, в Java Spring, но есть разность в подходах - инжект\атрибут\аннотация\XML\DI dependency injection ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 10:03 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Petro123SeVaАттрибуты неудобны и не решают всех проблем. На мой взгляд, более предпочтителен вариант, когда правила валидации инжектятся с помощью MEF. В этом случае они могут лежать в отдельных сборках ну вот, яркий пример, лагеря "инжектирования" вместо написания кода. Т.е., не побоюсь этого слова - "конфигурастов". Где связи классов конструируются и конфигурируются вне сборки. Так что, в сильвере MEF, в Java Spring, но есть разность в подходах - инжект\атрибут\аннотация\XML\DI dependency injection А к чему этот пук? Инжектирование отнюдь не отрицает написание кода. PetroПусть САМ контрол валидирует себя (по ООП) По ООП в соответствии с принципом единичной ответственности, контрол не должен заниматься валидацией. Помимо этого, данные могут иметь разные представления и модель может использоваться в разных приложениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 12:22 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
SeVa, инжектирование убирает написание кода по инстанцированию. Т.е. объект приходит не через параметры в конструкторе (один из многолетних прогер-вариантов), а через волшебный значёк аннотацию-атрибут. Т.е. над ЯП есть мета-ЯП. 2. ссылку на то что должен делать контрол. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 12:39 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Petro123SeVa, инжектирование убирает написание кода по инстанцированию. Т.е. объект приходит не через параметры в конструкторе (один из многолетних прогер-вариантов), а через волшебный значёк аннотацию-атрибут. Т.е. над ЯП есть мета-ЯП. 2. ссылку на то что должен делать контрол. 1. Многолетние old school на свалку. Чем замечателен DI, он позволяет избавится от инициализации через конструкторы, параметры которых зачастую бывают избыточны. Например, logger, который нужен только при записи ошибок в лог потребуется только в исключительных вариантах. Создавать его каждый раз - маразм и лишний расход ресурсов. 2. Буквари пересказывать лениво и времени нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 14:15 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
SeVaНапример, logger, программировать разучился? Волшебное слова - сингдетон и ДайМнеКонтекст\Окружение. Скоро забудут такие слова и все станут конфигурастами. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 14:55 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Petro123SeVaНапример, logger, программировать разучился? Волшебное слова - сингдетон и ДайМнеКонтекст\Окружение. Скоро забудут такие слова и все станут конфигурастами. Удачи! Программаст, за твои "волшебные" слова тебя только в конфигурасты и возьмут. Только они ничего не слышали про тестирование. А за синглетоны и самопальные фабрики давно волчьи билеты дают за профнепригодность. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 17:16 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
SeVa, контекст и окружение, это JavaEE. Самый мейнстрим. В твоём DI тоже есть 2 направления. Продолжай спорить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 17:36 |
|
AOP, EL: где лучше хранить правила валидации?
|
|||
---|---|---|---|
#18+
Какой может быть мейнстрим в заброшенной под лавку javе? Вы даже не можете понять для чего нужны дженерики. Обсуждать DI с вами - пустая трата времени ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2011, 19:21 |
|
|
start [/forum/moderation_log.php?user_name=Dimy]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 1255ms |
total: | 1445ms |
0 / 0 |