|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
Когда только начинал изучать WPF сразу в разрезе MVVM так как было сказано что WPF как рас то и создавался под MVVM, была надежда на то что это все таки та технология RAD разработки которая будет проста удобна, естественна, но блин, куда не ткнусь везде костыль? Например как присвоить окну DialogResult из ViewModal, забиндить не получится, в сети полно примеров реализации через свойство зависимости, но блин если сравнить объем работ с возвратом DialogResult в MVVM и WinForms то это где то 100/1, потом привязаться к событиям окна из ViewModel также красиво не получится как из контекста окна, да это несложно но это загрязняет текст, а если используешь Entity Framework то это вообще вешалка, представьте что пользователь что то изменил (контекст не уничтожался), при этом привязанные объекты изменились тоже, а бац и передумал и нажал отмена, но изменения то ведь остались, ок теперь нужно откатить контекст. единственный способ который мне известен это присвоить стары значения которые хранятся в StateManager, и тут то и начинаются аномалии (появляются непонятные объекты с непредсказуемым статусом у которых StateManager есть, а сама ссылка Entity == null), если постоянно создавать и уничтожать контекст, то тогда не сохраняется информация об изменениях. В общем сплошные разочарования. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 14:07 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007было сказано что WPF как рас то и создавался под MVVM... Где это было сказано и кем? Балаболами на форумах? Ничего страшного, в следующий раз будете своей головой думать при выборе технологий для решения Ваших задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 15:10 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007Когда только начинал изучать WPF сразу в разрезе MVVM... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 18:31 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007, а бац и передумал и нажал отмена Гениальный юзер-кейс. Просто MS до этого не доперли, срочно пиши им письмо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 19:15 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007 если постоянно создавать и уничтожать контекст, то тогда не сохраняется информация об изменениях. Ну а это известный баг, в следующей версии обещали всё исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 19:19 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007В общем сплошные разочарования. В общем, ТС ниасилил. Ничего, еще год-полтора интенсивной практики - и наступит просветление. У меня тоже в начале изучения были сплошные недоумения и разочарования - справился, однако. PS. Чем мне нравится связка WPF/MVVM - относительно высоким (по крайней мере, сравнительно с WinForms) порогом вхождения, что достаточно хорошо отсеивает случайных людей. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 05:59 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, порог вхождения это конечно хорошо, но усложнения мне кажется должны быть оправданы и корректироваться с результатом от проделанной работы, а когда на простых вещах приходится городить огород это больше смахивает на шизофрению ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 10:34 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, можно узнать как лучше поступать когда нужна возможность не сохранять изменения editable detail view в entity framework или лучше от оного отказаться (entity framework)? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 13:23 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007Сон Веры Павловны, можно узнать как лучше поступать когда нужна возможность не сохранять изменения editable detail view в entity framework или лучше от оного отказаться (entity framework)? Без понятия, мы используем NHibernate - там для отмены изменений вполне работает Session.Refresh(Object entity). А вообще - в гугл: https://www.google.ru/search?q=entity framework rollback changes например, вот: http://code.msdn.microsoft.com/How-to-undo-the-changes-in-00aed3c4 хотя это тема для совсем другого раздела этого форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 14:04 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, я конечно не вкусные как в NHibernate, но в Entity Framework такой метод достает данные из базы предположу что также и в NHibernate, вы считаете нормальным когда для восстановления исходных данных лезть за ними в базу в то время когда они есть на клиенте ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 14:34 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007порог вхождения это конечно хорошоЭто и не хорошо, и не плохо, это факт. :-) megazoid007но усложнения мне кажется должны быть оправданы и корректироваться с результатом от проделанной работыВ WPF нет никаких усложнений. В нём есть дополнительные возможности, отсутствующие, например, в WinForms. megazoid007а когда на простых вещах приходится городить огород это больше смахивает на шизофрениюНикто и не заставляет "городить" в простых вещах. Если какой-то умник где-то на форуме или в блоге написал, что использовать code-behind в WPF нельзя, то это ещё не значит, что на самом деле это так. Например, вот моё видение ситуации. Но это лишь моё мнение, никоим образом не претендующее на абсолютную истину, в отличие от некоторых. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 12:26 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
James Bond FRmegazoid007было сказано что WPF как рас то и создавался под MVVM... Где это было сказано и кем? Балаболами на форумах? Да сами "отцы-основатели-евангелисты" и писали. Доказательств приводить не буду - верьте мне на слово. Сон Веры Павловныmegazoid007В общем сплошные разочарования. В общем, ТС ниасилил. Ничего, еще год-полтора интенсивной практики - и наступит просветление. У меня тоже в начале изучения были сплошные недоумения и разочарования - справился, однако. PS. Чем мне нравится связка WPF/MVVM - относительно высоким (по крайней мере, сравнительно с WinForms) порогом вхождения, что достаточно хорошо отсеивает случайных людей. Любишь зарплату за троих получать, негодяй? Молодёжи проходу не даёшь?! То ли дело джаваскрипт - что ни напиши, всегда результат будет - наны, нилы, нот а намберы всякие. Любая хрень будет выведена в результаты, лишь бы не бросать исключений и не показывать, что что-то пошло не так. Идеальный язык и технологии для контор вида "куяк-куяк и в продакшын" и "а вот здесь мы втираем очки заказчику". А, вообще, согласен - МВВМ в контексте ВПФ мог бы быть и полегче. МС должна больше написать всяких готовых классов на всякие юзеркейсы и утилит-мастеров для автогенерации всего этого. megazoid007Сон Веры Павловны, можно узнать как лучше поступать когда нужна возможность не сохранять изменения editable detail view в entity framework или лучше от оного отказаться (entity framework)? Я не совсем понял. У вас загружается форма редактирования объекта с привязками, и вы боитесь, что при редактировании все привязки отрабатывают сразу в контекст? Так не делайте такого. Пусть все изменения отрабатываются в контекст после нажатия юзером "ОК" после окончания редактирования и закрытия формы. Это если я правильно понял, что вы имеете ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2014, 21:26 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
user7320, ну а как если я привязал к DataGrid, а пользователь в ней изменил текст какого нить свойства, вы имеете ввиду мне обходить все стоки и поля таблицы как в старые добрые времена и присваивать имеющимся объектам ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2014, 21:57 |
|
MVVM + WPF = костыли
|
|||
---|---|---|---|
#18+
megazoid007user7320, ну а как если я привязал к DataGrid, а пользователь в ней изменил текст какого нить свойства, вы имеете ввиду мне обходить все стоки и поля таблицы как в старые добрые времена и присваивать имеющимся объектам ? Т. е. насчёт формы вы согласны? Насчёт грида - попробуйте связывать грид только на чтение из контекста. На редактирование и записи - пользоваться командами. Т. е. юзер начинает редактировать конкретное поле - вы создаёте объект (берёте из контекста), которому принадлежит это поле. После потери фокуса полем или по нажатии в поле "Ввода" - отрабатывается команда, сохранения изменённого объекта в контекст. При нажатии "Эскейп" (это будет "Отмена") - ничего с контекстом не происходит. Понимаю, что это не так удобно, как связки сразу на чтение и запись, но если возникают проблемы, то зачем продолжать упорно следовать парадигме? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2014, 07:06 |
|
|
start [/forum/topic.php?fid=21&msg=38595483&tid=1441166]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 280ms |
0 / 0 |