|
|
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-господа! не нужно уводить разговор в плоскость MVVM! есть конкретный шаблон MVC - придерживайтесь его понятий и представлений, иначе складывается впечатление, что беседа беспредметна! Нет никаких проблем строго придерживаться шаблона MVC, для вилидации модели использовать - сервисный слой, нужно понять что модель это не класс из БД, а совокупность бизнес правил, но есть также логика представления, капча относится именно к ней, ибо представление может изменится и капча там не понадобится, но на модель это не повлияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 11:50:30 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
авторНет никаких проблем строго придерживаться шаблона MVC, для вилидации модели использовать - сервисный слой, нужно понять что модель это не класс из БД, а совокупность бизнес правил, но есть также логика представления, капча относится именно к ней, ибо представление может изменится и капча там не понадобится, но на модель это не повлияет. КО! что представляет собой валидация - чисто с технической точки зрения?! некий класс, который в состоянии применить то или иное правило к тому или иному значению, сохранить результат на протяжении опр. времени и выдать его по требованию - валидно\невалидно! использовать этот класс я волен в контроллере (или др. месте) для проверки значения капчи (к примеру), которое не относится к модели, или в самой модели непосредственно! У меня не возникает желания создавать промежуточный слой для валидации значений модели - я могу это сделать непосредственно в самой модели, НО у меня есть большое желание не пихать в модель капчу, только потому, что её придётся валидировать, бо я в состоянии свалидировать это значение в самом контроллере! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 13:19:49 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-Чуть не збыл! Оторвите взгляд от творений чужих рук - создайте свой маленький трёхколёсный велик - ИМХО много нового откроется! Забей, паттерны не для твоего головного мозга. Так бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 14:25:04 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-У меня не возникает желания создавать промежуточный слой для валидации значений модели Если все дело в капче - пожалуйста, просто иногда валидация включает в себя кучу разных сервисов, моделей и прочего, так что когда контроллер распухнет то придется задуматся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 14:29:27 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-КО! Читай и осознавая до просветвления: http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspxASP.NET MVC View Model Patterns] Если осознаешь разницу между Motorcycle и MotorcycleViewModel, считай голова есть на плечах. Motorcycle - это модель (доменная модель). MotorcycleViewModel - это модель представления. ValidationAlthough there are many ways to perform validation, one of the most common is to use libraries like Data Annotations. Although typical validations (e.g., required fields, etc.) will probably be the same between your domain models and your views, not all validation will always match. Additionally, you may not always be in control of your domain models (e.g., in some enterprises the domain models are exposed via services that UI developers simply consume). So there is a limit to how you can associate validations with those classes. Yes, you can use a separate “meta data” class to designate validations but this duplicates some code similar to how a view model entity from option #3 would anyway. Therefore, option #3 gives you the absolute most control over UI validation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 14:32:26 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 14:33:27 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ, Правильно ли я понимаю, что наглядным примером разницы модели и вьюмодели может служить компонент "дерево"? Модель --------------- ID Название Parent ID ВьюМодель --------------- Модель Selected Expanded Checked Вью -------------- Дерево ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 15:54:59 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
spМСУ, Правильно ли я понимаю, что наглядным примером разницы модели и вьюмодели может служить компонент "дерево"? Да. Use ViewModels to manage data & organize code in ASP.NET MVC applications ...In ASP.NET MVC, ViewModels allow you to shape multiple entities from one or more data models or sources into a single object, optimized for consumption and rendering by the view. Что делать, если представление используются несколько моделей? Правильно - использовать модель представления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 17:00:35 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
авторЕсли осознаешь разницу между Motorcycle и MotorcycleViewModel, считай голова есть на плечах. Motorcycle - это модель (доменная модель). MotorcycleViewModel - это модель представления. ASP.NET MVC View Model Patterns - ничего не настораживает?! ;) авторЕсли все дело в капче - пожалуйста, просто иногда валидация включает в себя кучу разных сервисов, моделей и прочего, так что когда контроллер распухнет то придется задуматся. да...да... не нужно пугать народ кучами всего всего! конкретно - POST текстового поля с сохранением в БД (так обожаемую некоторыми персонажами ;) 1. броузер посылает значение aaa=mmmmm 2. сервер запрашивает страницу, которая по опр. правилам вызывает опр. метод класса контроллера! 3. этод метод вызывает метод класса модели, передавая туда значение aaa=mmmmm 4. ВАЛИДАЦИЯ происходит именно там и, в зависимости от true\false записывается\незаписывается значение ааа в БД!!! 5. на странице ПРЕДСТАВЛЕНИЯ смотрим класс error - не пустой - значит выводим ошибку пользователю - пустой, значит всё ОК - ждём от пользователя дальнейших действий! GET 1. броузер запрашивает страницу по адресу передавая туда GET значение id=1 2. сервер запрашивает страницу, которая по опр. правилам вызывает опр. метод класса контроллера! 3. этод метод вызывает метод класса модели, передавая туда GET значение id=1 4. ВАЛИДАЦИЯ происходит именно там и, в зависимости от true\false выдаёт нам значение из БД!!! 5. контроллер передаёт полученные данные представлению, которое отрисовывает данные в нужном порядке! Где в этой схеме появилась модель представления !? там где мы захотим в GET перевернуть строку с ног на голову?! честно - меня поражает ваша доверчивость - МС кормит вас слоями, архитектурой и всякой требухой - вы хаваете и рады непомерно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 17:01:15 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча- ASP.NET MVC View Model Patterns - ничего не настораживает?! ;) Ничего. А что должно настораживать? В классический механизм тупо добавлена новая абстракция для расслоения зависимости от доменной модели. Чего испугался-то? -капча-конкретно ... поток сознания поскипан... Убейся об канализационный люк, тролль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 17:54:22 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-, не утехи ради хаваем чем МСУ кормит, из-за лени потом писать миллионы спагетти-кода - чем лучше спроектирован и сделан фундамент - тем круче и надежнее строение! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 17:57:40 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ, Получается что мы должны иметь еще кроме Моделей и ВьюМодели и использовать ВьюМодели и Модели для отображения Вью? Тогда получается что вью должна знать кто ей будет поставлять данные? тоесть у нас получается совокупление Вью и (ВьюМодель или Модель)? а ведь по шаблону надо этого избегать? Дилема однако! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:06:21 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-, Начнем с понимания того что "mmmmm" это поле, которе находится в системе платежного сервиса, дальше курим смысл типизированного представления, и как можно заполнить его данными из других источников, не меняя тип и структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:11:39 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ, А ежели использовать только ВьюМодели, то тогда нужен будет доп слой мапперов для операций преобразования данных из БД во ВьюМодель и обратно! а вы лично какой вариант предпочитаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:18:52 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ Правда еще есть один вариант - все время юзать ВьюМодели (а там где ВьюМодель какбы и ненужна получаем вырожденную ВьюМодель в Модель) - т.е. небольшой оверхэад (всегда иметь ВьюМодели даже если она не нужна), но тогда легко решается вопрос получения данных в Модель и сохранения данных только Модели в БД без доп. мучений по выделению их из ВьюМодели - ВьюМодель.Save() -> Модель.Save() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:25:05 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
spМСУ, А ежели использовать только ВьюМодели, то тогда нужен будет доп слой мапперов для операций преобразования данных из БД во ВьюМодель и обратно! а вы лично какой вариант предпочитаете? Вот, молодцом. Умные вопросы задаете и по делу. Я предпочитаю свой маппер, чтоб не плодить левые сборки: 10281093 А так, мапперов полно, например AutoMapper. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:31:23 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
авторНичего. А что должно настораживать? В классический механизм тупо добавлена новая абстракция для расслоения зависимости от доменной модели. гыгы... ну возми карандаш и пририсуй к классическому механизму новую сущность - модель представления - незабудь выложить сюда свою схему - посмотрим на связи и зависимости! ;) автордальше курим смысл типизированного представления , и как можно заполнить его данными из других источников, не меняя тип и структуру. YES!!! вот мы и добрались до сути вопроса - ещё один уровень абстракции! да нах оно не нужно! есть руки, есть голова! есть набор данных получаемый из контроллера - этого вполне достаточно, для отрисовки этих данных на стр. представления! ОСТАЛЬНОЕ - приведёт к копированию модели WebForms - и в довольно обозримом будущем будет признано ошибкой, тк зашьёт логику исполнения так глубоко, что никакими клещами будет не выдрать! авториз-за лени потом писать миллионы спагетти-кода - чем лучше спроектирован и сделан фундамент - тем круче и надежнее строение! :) ты будешь зажат рамками серверного кода и отсутствием что либо изменить - по определению! ИМХО - для реализации козырного WEB-проекта - возми в руки учебник по HTML, CSS, javascript + какой-нибудь серверный ЯП - этого хватит с головой! ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:36:01 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
sp, я ж Вам в прошлом году вот тут 11509954 всё рассказывал. Отшибло память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 18:37:10 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ, Вы то писали, но я то был еще не готов! :) Работу работал. а учиться некогда было, вот бросил работу - учусь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 19:27:22 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ, Т.е. вы выбрали вариант с мапперами - ну это ближе к серверной реализации, а я разрабатываю клиентскую реализацию и наверно лучше всего в моей ситуации иметь лишний слой ВьюМоделей - потому как мапить надо на что-то, а это что-то и будет обычной моделью по-сути ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 19:30:11 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУ а если пойти другим путем - сложное Вью, которое юзает несколько Моделей для своей отрисовки К примеру тотже пример, но с МодельМотоцыкл, МодельСтраны и МодельИзготовители ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 19:54:06 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
-капча-честно - меня поражает ваша доверчивость - МС кормит вас слоями, архитектурой и всякой требухой - вы хаваете и рады непомерно... Каким боком тут майкрософт, остаётся загадкой. spМСУ, Т.е. вы выбрали вариант с мапперами - ну это ближе к серверной реализации, а я разрабатываю клиентскую реализацию и наверно лучше всего в моей ситуации иметь лишний слой ВьюМоделей - потому как мапить надо на что-то, а это что-то и будет обычной моделью по-сути Дык, я про вьюмодели и говорю. У меня маппер намапливает данные из БД (доменная модель) в модель представления. А другие атрибуты, если нужно, инициализируем вручную. spМСУ а если пойти другим путем - сложное Вью, которое юзает несколько Моделей для своей отрисовки К примеру тотже пример, но с МодельМотоцыкл, МодельСтраны и МодельИзготовители ? Такое встречается сплошь и рядом. Я же писал об этом. Для этого нужна всё та же одна модель представления, которая содержит нужные атрибуты. Эту модель представления расширяем по портебностям, не трогая доменную модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 20:44:06 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
МСУТакое встречается сплошь и рядом. Я же писал об этом. Для этого нужна всё та же одна модель представления, которая содержит нужные атрибуты. Эту модель представления расширяем по портебностям, не трогая доменную модель. Но в таком случае же мы добавляем новый слой ВьюМодель, а если усложним сам Вью за счет использования нескольких моделей - не надо создавать слой ВьюМоделей? Или как ваиант для доп. полей и свойств - создать виртуальную модель для представления и Вью тогда будет потреблять и реальную модель и специальную модель для вью!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 20:48:27 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
ПарамонНачнем с понимания того что "mmmmm" это поле, которе находится в системе платежного сервиса, дальше курим смысл типизированного представления, и как можно заполнить его данными из других источников, не меняя тип и структуру. забавно!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 20:51:20 |
|
||
|
MVC: должна ли модель всегда быть корректной?
|
|||
|---|---|---|---|
|
#18+
spНо в таком случае же мы добавляем новый слой ВьюМодель Мля, ну а я про что говорю?! Разумеется добавляем. "вариант с мапперами" == "вариант с вьюмоделью" Не понятно? :) Короче, хватит мне насиловать моск. Хотите гибкости и расширяемости - курите вьюмодели. Иначе - идем прямиком в институт, о котором говорил Серж. Бывайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 21:02:11 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37666107&tid=1359928]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 575ms |

| 0 / 0 |
