powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM и куча вопросов
62 сообщений из 62, показаны все 3 страниц
MVVM и куча вопросов
    #36838271
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все замечательные (немногочисленные примеры) показывают нам и говорят что данный шаблон просто спасение души и его самая замечательная особенность что можно отделить лицо от view
и что ни одна из частей не знает друг о друге!

Но у меня возникает вопрос - а где же реализовывать бизнес-логику по вводу данных??
Пример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары"
бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема - если фильтровать данные в модели - этож скока кода и геморра надо поиметь шоб все это вручную реализовывать, а если это сделать всего лишь парами параметров в XAML - нарушаецца идеология такого замечательного шаблона!

Как быть? может надо использовать MVVMExt???? ))
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838276
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

да поддерживаю вопрос .
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838283
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ааа, и вдогонку - смотрю кучу примеров там и у модели куча своих методов и у view куча своих методов - непонятно - то есть логика свободно гуляет между этими 2мя частями??? куда что помещать? где граница что должен делать объект и его view?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838304
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
sp
Пример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары"

В VM должен быть каскадный lookup.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838311
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары"
бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема

Никакой проблемы тут не возникает.
В связке Model-View-ViewModel бизнес-логика реализуется в слое Model (оно же DomainModel, оно же модель предметной области). ViewModel, и уж тем более View - никакого отношения к бизнес-логике не имеют.

Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838319
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПspПример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары"
бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема

Никакой проблемы тут не возникает.
В связке Model-View-ViewModel бизнес-логика реализуется в слое Model (оно же DomainModel, оно же модель предметной области). ViewModel, и уж тем более View - никакого отношения к бизнес-логике не имеют.

Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel.

но самое главное то я забыл Вам сказать - шо редактируем то мы накладную )))))
это шо за каждым чихов лице я должен пройти 2 слоя чтобы чтото изменить!!?? это же абсурд - получаецца модель ответственна за лицо!!??
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838365
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sp
но самое главное то я забыл Вам сказать - шо редактируем то мы накладную )))))
Ну и редактируйте накладную. Именно её я имел в виду во фразе "при формирования какого-либо составного объекта"
Есть объект Накладная. У него есть св-во Склад (с которого идёт отгрузка). Есть у Накладной список отгружаемых товаров. Вот при изменении этого списка и проверяйте правило "данный товар есть на данном складе". Товар присутствует в Склад.ТоварыВНаличии - ок, не присутствует - эксепшен вверх.
Так же можете проверять правила "есть ли данный товар в нужном количестве", "не зарезервирован ли он", и прочие правила бизнес-логики.
Всё на уровне DomainModel.

это шо за каждым чихов лице я должен пройти 2 слоя чтобы чтото изменить!!??
Да хоть десять.

это же абсурд - получаецца модель ответственна за лицо!!??
Абсурд - это когда лицо ответственно за бизнес-логику. И когда модель лица ответственна за бизнес-логику - тоже абсурд.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838371
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel.

и не сильно ли это накладно будет по части ресурсов бегать каждый раз за товарами в модель или даже на сервер, когда лицо само может эффективнее это выполнить!?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838380
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Абсурд - это когда лицо ответственно за бизнес-логику. И когда модель лица ответственна за бизнес-логику - тоже абсурд.

Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!!
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838386
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никакого гемора в формировании в модели представления списка товаров в зависимости от изменения выбранного склада.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
/////////////////////////////////////////////////////////
// модель данных
public class BaseEntity
{
	decimal ID { get; set; }
	string Name { get; set; }

	public override string ToString()
	{
		return string.Format("{0} ({1})", Name, ID);
	}
}

public class Storage : BaseEntity	// склад
{

}

public class Product : BaseEntity	// товар
{
	// склад, на котором находится данный товар
	Storage Storage { get; set; }
}

///////////////////////////////////////////////////////////
// модель представления
public class ViewModel : INotifyPropertyChanged
{
	// реализация INotifyPropertyChanged
	...

	// список доступных складов
	public List<Storage> Storages { get; }

	// текущий выбранный склад
	private Storage _selectedStorage;
	public Storage SelectedStorage
	{
		get
		{
			return _selectedStorage;
		}
		set
		{
			_selectedStorage = value;
			
			OnPropertyChanged("SelectedStorage");
			
			// т.к. товары зависят от склада, то известим клиентов об 
			// обновлении списка товаров
			OnPropertyChanged("Products");
			// и очистим выбранный товар
			SelectedProduct = null;
		}
	}

	// список доступных товаров (зависит от выбранного склада)
	public List<Product> Products
	{
		get
		{
			// выборка списка товаров из к.-л. источника в зависимости от выбранного склада
			// например - запрос LINQ (вероятно с ошибками, редко пользуюсь)
			List<Product> products = 
				(from p 
				in FullProducts 
				where p.Storage == SelectedStorage 
				select p).ToList<Product>();
		}
	}

	// текущий выбранный товар
	private Product _selectedProduct;
	public Product SelectedProduct
	{
		get
		{
			return _selectedProduct;
		}
		set
		{
			_selectedProduct = value;
			
			OnPropertyChanged("SelectedProduct");
			
			// т.к. товары зависят от склада, то известим клиентов об 
			// обновлении списка товаров
			OnPropertyChanged("Products");
			// и очистим выбранный товар
			SelectedProduct = null;
		}
	}
}
XAML представления
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<ComboBox Name="ComboStorages" 
		  ItemsSource="{Binding Path=Storages, UpdateSourceTrigger=PropertyChanged}" 
		  SelectedItem="{Binding Path=SelectedStorage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

<ComboBox Name="ComboProducts" 
		  ItemsSource="{Binding Path=Products, UpdateSourceTrigger=PropertyChanged}" 
		  SelectedItem="{Binding Path=SelectedProduct, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838395
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spи не сильно ли это накладно будет по части ресурсов бегать каждый раз за товарами в модель или даже на сервер, когда лицо само может эффективнее это выполнить!?
Кто сказал, что оно куда-то бегать должно, на какой-то там сервер?
Не путайте Layer и Tier
Хотите - кэшируйте информацию локально, с ней и работайте. Не хотите - флаг в руки, на каждый чих дёргайте сервак. Хотите - службу нотификейшенов прикрутите сбоку, для обеспечения обновления локально закэшированных данных. К MVVM оно вообще никак не относится.

Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!!
Тогда и не говорите про бизнес-логику.
Не знаете значение слова - не употребляйте его.
Авось за умного сойдёте.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838400
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и это всеголишь один вопрос - а вот примеру действия "тут мы читаем, тут не читаем тут рыбу заворачивали" - это же дествия исключительно с лицом - что модель должна и этим занимацца , а ViewModel тогда что тут делает?? если разбоки идут только между моделью и лицом???
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838409
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере кода во ViewModel.SelectedProduct.Set() все, что после строки "OnPropertyChanged("SelectedProduct");", лишнее: свойство SelectedProduct получено механическим копированием SelectedStorage, прохлопал удалить лишнее.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838410
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!!
Тогда и не говорите про бизнес-логику.
Не знаете значение слова - не употребляйте его.
Авось за умного сойдёте.

Простите, но я вынужден тоже самое сказать и в ваш адрес - по вашему изменения в лице сцелью ударить юзера по рукам - это не бизнес логика!!?? вам тогда на 1й курс срочно надо!!
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838418
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПростите, но я вынужден тоже самое сказать и в ваш адрес - по вашему изменения в лице сцелью ударить юзера по рукам - это не бизнес логика!!?? вам тогда на 1й курс срочно надо!!
Простите, вы дурак?
Чисто с медицинской точки зрения?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838423
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spда и это всеголишь один вопрос - а вот примеру действия "тут мы читаем, тут не читаем тут рыбу заворачивали" - это же дествия исключительно с лицом - что модель должна и этим занимацца , а ViewModel тогда что тут делает?? если разбоки идут только между моделью и лицом???

тьфу очепятался - вопрос был про view - нафига тада казе баян!?)
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838432
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простите, глупостями не занимаемся и на глупые вопросы не отвечаем! )
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838436
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrowВ примере кода во ViewModel.SelectedProduct.Set() все, что после строки "OnPropertyChanged("SelectedProduct");", лишнее: свойство SelectedProduct получено механическим копированием SelectedStorage, прохлопал удалить лишнее.

Большое спасибо за пример! снял некоторую часть вопросов! )
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838441
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Вопросы "сцелью ударить юзера по рукам" - это вообще авторизация и аутентификация. Сквозная функциональность по всем слоям. Почитайте уже книжки какие-нибудь.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838481
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПP.S. Вопросы "сцелью ударить юзера по рукам" - это вообще авторизация и аутентификация. Сквозная функциональность по всем слоям. Почитайте уже книжки какие-нибудь.

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

Пива нет, пива нет - Нет чтоб написа просто "Пива нет" - не хотел вас обидеть )
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838483
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp
Большое спасибо за пример! снял некоторую часть вопросов! )
Не за что. А какие вопросы не снял?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838531
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrowsp
Большое спасибо за пример! снял некоторую часть вопросов! )
Не за что. А какие вопросы не снял?

Спасибо за помощь!
щас переосмыслю все что было ранее в плане того что Вы показали и апосля сформулирую что осталось непонятым ))
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838835
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, ну вот другой вопрос:
часто бывает что в зависимости од значения одного поля в интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. (т.е. некоторое бизнес-правило говорящее что если поле такоето равно томуто - не заполнять такието поля и т.д.) - где эта функциональность реализовывать?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838975
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36838976
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но в домэйн-модель тоже проверять коректность
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36839166
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер
так получается мы всетаки привносим во вью знание бизнес-правил модели!?? а какже декларируемая независимость и полное отсутствие вьювом знания о модели!!!
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36839240
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spVar79либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер
так получается мы всетаки привносим во вью знание бизнес-правил модели!?? а какже декларируемая независимость и полное отсутствие вьювом знания о модели!!!
А вы не читайте советских газет.
Тем более от невменяемых авторов.

Функционал для фсякого вот такого "интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. " (хосспадя, как же велика и могуча русскей езыг) в MVVM реализуется на уровне ViewModel'и, а никак не "либо в xaml либо в xaml.cs".
Реализация этого функционала опирается на сквозные сервисы авторизации, которые вообще сбоку от MVVM.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36839273
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПТем более от невменяемых авторов.
слова слова

берегите нервы
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36840220
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь более или менее осознав все величие этого шаблона у меня возник вопрос - а нафига все это?

Понятно
- неоспоримое преимущество в том что можно писать юнит-тесты - хотя большинству они и нафиг не нужны
- возможность менять лицо без переделки кода (тут еще надо посмотреть - всеже некая логика выносится на лицо и ее надо в новом лице тоже реализовывать!)

Но минусы то большущщие !!!
- столько подпорок необходимо написать ради того чтобы добиваться декларируемой независимости слоев!! а зачем!! ежели реализация лица с теми же биндингами и логикой реализованной в классе окна гораздо проще и компактней?
- в сложных окнах со сложной логикой взаимодействия наверняка код пойдет гулять и так или иначе все слои будут связываться или прийдется подмастырить еще кучу подпорок дабы этого не случилось!!!

Вот собственно вопрос
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36840282
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spВот собственно вопрос
мухи прилипшие к котлете кажутся меньшей проблемой (и выглядят менее отвратительно) чем мухи внутри (надкушенной) котлеты ))
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36840294
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spНу как минимум - чтобы логически разделить код визуализации морды от модели и её логики. И никто не заставляет взаимодействовать модель морды с мордой исключительно через биндинги и эвенты. Просто в большинстве случаев это удобнее и позволяет избавиться от лишней зависимости. Это явно продемонстрировано в концепции написания контролов, где допускается обращаться к частям морды из кода (он же модель морды кастомконтрола) по именам типа PART_XXX.

А в сложной форме, чтобы код не стал гулять - нужно нормально её разделить на части, а не пихать всё в одно. Тогда глядишь, и логика в этих взаимодействиях начнёт прослеживаться. И не таким сложным оно покажется. :-)
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36840311
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА в сложной форме, чтобы код не стал гулять - нужно нормально её разделить на части, а не пихать всё в одно. Тогда глядишь, и логика в этих взаимодействиях начнёт прослеживаться. И не таким сложным оно покажется. :-)
где-то встретилось определение что есть суть программирования - "это размазывание сложности более-менее равномерным слоем" :)
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841411
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spТеперь более или менее осознав все величие этого шаблона у меня возник вопрос - а нафига все это?

Понятно
...
Но минусы то большущщие !!!
...


Уважаемый sp, а как Вы думаете, зачем вообще нужна парадигма MVC и ее реализация для WPF (MVVM)?

Логика такова, что любой шаблон реализуется средствами языка и соответствующей технологии; если их не знать на некотором уровне, то спроектировать приложение по данному шаблону не получится. Большинство Ваших вопросов в этой теме касаются довольно-таки базовых аспектов WPF (т.е. технологии, на использовании которой строится MVVM, а не самого шаблона). Имело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты.

Вот пример:
spага, ну вот другой вопрос:
часто бывает что в зависимости од значения одного поля в интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. (т.е. некоторое бизнес-правило говорящее что если поле такоето равно томуто - не заполнять такието поля и т.д.) - где эта функциональность реализовывать?
Прямой пример приведен на стр. 539 вышеупомянутой книги. Причем, без всякого MVVM. А вот пример, где цвет заливки эллипса зависит от значения логического свойства модели представления:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Ellipse>
    <Ellipse.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsWorking}" Value="True">
                    <Setter Property="Ellipse.Fill" Value="{StaticResource WorkingIndicatorBrush}"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=IsWorking}" Value="False">
                    <Setter Property="Ellipse.Fill" Value="{StaticResource StoppedIndicatorBrush}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>
И никакого выноса логики модели в код представления. И никаких "подпорок" и "мы всетаки привносим во вью знание бизнес-правил модели". Представление - это приборная панель автомобиля, а модель - его двигатель. Двигателю побоку, как им управляют (с сенсорной панели или большими железными рычагами и педалями), важно, чтобы и сенсор и рычаг подавали импульсы определенного формата в управляющий контур. А выражение "а какже декларируемая независимость и полное отсутствие вьювом знания о модели" говорит о неправильном понимании MVС/MVVM: модель ничего не знает о View (рычаг/сенсор), а вот последние о модели (интерфейсе управления) знать должны все.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841514
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrowИмело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты.


Книгу кстати я только закончил читать, и вначале я упомянул что я не профи в WPF MVVM :)
Плюс ко всему на просторах гугла нет толковой книги или статьи по MVVM - есть хорошие только краткие примеры которые в полной мере не позволяют охватить все аспекты использования данного шаблона - поэтому отчасти и возникают на этом форуме вопросы про MVVM

К примеру я нигде не встретил простого примера показывающего технику вызова из одного (как его назвать... ??? ) MVVM1 (буду так называть :) ) другого MVVM2 - пишут только о какомто загадочном сервисе навигации который еще надо изобрести - это ли не подпорки? в купе с базовым классом и новым классом команд + еще куча всякой фигни ...?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841821
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrowА выражение "а какже декларируемая независимость и полное отсутствие вьювом знания о модели" говорит о неправильном понимании MVС/MVVM: модель ничего не знает о View (рычаг/сенсор), а вот последние о модели (интерфейсе управления) знать должны все.

тут буду с вами спорить аргументированно - почитайте блогпост
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841845
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а че мбудет плоха такая связка XML-ViewModel-View? (типа без модели)
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841858
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книг:
главное окно - список книг
при двойном нажатии на элементе списка открывается окно редактирование данной книги
функции добавления и удаления книг из списка
список книг хранится в xml файле

Я думаю для многих начинающих осваивать этот шаблон это было бы хорошей отправной точкой
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36841895
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spJohnSparrowА выражение "а какже декларируемая независимость и полное отсутствие вьювом знания о модели" говорит о неправильном понимании MVС/MVVM: модель ничего не знает о View (рычаг/сенсор), а вот последние о модели (интерфейсе управления) знать должны все.

тут буду с вами спорить аргументированно - почитайте блогпост В английском не настолько силен, чтобы читать статьи вообще без проблем и задержек, потому не читал, а проскроллил по диагонали. Вас не затруднит привести оттуда цитату, согласно которой View ничего не должен знать о ViewModel?

spа че мбудет плоха такая связка XML-ViewModel-View? (типа без модели)Модуль, сохраняющий данные в XML - это и будет модель, а, точнее, ее часть.

spУважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книгВот Вам хороший и наиболее часто упоминаемый рабочий пример MVVM: http://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36843451
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
spJohnSparrowИмело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты.


Книгу кстати я только закончил читать, и вначале я упомянул что я не профи в WPF MVVM :)
Плюс ко всему на просторах гугла нет толковой книги или статьи по MVVM - есть хорошие только краткие примеры которые в полной мере не позволяют охватить все аспекты использования данного шаблона - поэтому отчасти и возникают на этом форуме вопросы про MVVM

К примеру я нигде не встретил простого примера показывающего технику вызова из одного (как его назвать... ??? ) MVVM1 (буду так называть :) ) другого MVVM2 - пишут только о какомто загадочном сервисе навигации который еще надо изобрести - это ли не подпорки? в купе с базовым классом и новым классом команд + еще куча всякой фигни ...?
Сам по себе MVVM - не панацея. На мой взгляд, этот паттерн слишком перегружен.Не хватит пальцев
на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который
можно тестировать, но в результате особой внятности и краткости нет.
spУважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книг:
главное окно - список книг
при двойном нажатии на элементе списка открывается окно редактирование данной книги
функции добавления и удаления книг из списка
список книг хранится в xml файле

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

Посему нужны "подпорки", а с MVVM они пишутся гораздо легче и быстрее. В этом случае можно будет обойтись только базовыми классами, необходимо будет создать только Views&Models.
Все остальное - работа с БД, навигация, разграничение прав доступа, валидация и тд будет на автомате
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36846944
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i... этот паттерн слишком перегружен .Не хватит пальцев
на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который
можно тестировать, но в результате особой внятности и краткости нет .
...
Не совсем понятен смысл выражения: "паттерн слишком перегружен" - будьте добры, перечислите хотя бы 5 функций этого паттерна (я уже не вспоминаю про "на двух руках").

Какой такой "особой внятности и краткости" вам еще нужно?
(куда уж внятнее и короче: добавляешь элемент данных в коллекцию ViewModel-и - на экране появляется вкладка для редактирования этого элемента, и все-е-е-е-е...).
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36847519
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
qu-qui... этот паттерн слишком перегружен .Не хватит пальцев
на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который
можно тестировать, но в результате особой внятности и краткости нет .
...
Не совсем понятен смысл выражения: "паттерн слишком перегружен" - будьте добры, перечислите хотя бы 5 функций этого паттерна (я уже не вспоминаю про "на двух руках").

Какой такой "особой внятности и краткости" вам еще нужно?
(куда уж внятнее и короче: добавляешь элемент данных в коллекцию ViewModel-и - на экране появляется вкладка для редактирования этого элемента, и все-е-е-е-е...).
Это всееееееееее может быть только в одном случае - показываем один экран, но даже в этом случае необходимо:
- сформировать условия выборки
- загрузить данные (для SL необходимы асинхронные вызовы)
- предусмотреть обработку ошибок
- назначить Моdel
- реализовать интерфейсы INotifyPropertyChanged и валидаторов
- сформировать команды
- реализовать CUD операции с обработкой ошибок
и тддддддддддддддддддд
Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода.
Посему один только MVVM не решает основных задач
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36847776
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i...
- сформировать условия выборки
- загрузить данные (для SL необходимы асинхронные вызовы)
- предусмотреть обработку ошибок
- назначить Моdel
- реализовать интерфейсы INotifyPropertyChanged и валидаторов
- сформировать команды
- реализовать CUD операции с обработкой ошибок
и тддддддддддддддддддд
Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода.
Посему один только MVVM не решает основных задач
Э-м-м-м-м...

Каким боком все вышеперечисленное (кроме "назначить Моdel",быть может?) относится к функциям паттерна MVVM?

"- сформировать условия выборки" - в BLL;
"- загрузить данные" - в DAL;
"- предусмотреть обработку ошибок" - в Application Framework;
"- реализовать интерфейсы INotifyPropertyChanged и валидаторов" - в Layer SuperType;
"- сформировать команды" - в BLL;
"- реализовать CUD операции с обработкой ошибок" - в DAL, или в BLL, или в Layer SuperType, на выбор;

Пока что не вижу ни одной функции паттерна MVVM, кроме "назначить Моdel" с непонятной для меня семантикой (обычно тоже релизуется в Layer SuperType).

Чем еще "перегружен" паттерн MVVM на ваш взгляд?
(имеется ввиду ваше: "и тддддддддддддддддддд").

З.Ы. зрите в корень, если мы обсуждаем функции паттерна MVVM (их "перегруженность" или "легковесность"), то надо их и обсуждать, а не функции всего приложения, использующего MVVM для реализации UI...
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36848349
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
qu-qui...
- сформировать условия выборки
- загрузить данные (для SL необходимы асинхронные вызовы)
- предусмотреть обработку ошибок
- назначить Моdel
- реализовать интерфейсы INotifyPropertyChanged и валидаторов
- сформировать команды
- реализовать CUD операции с обработкой ошибок
и тддддддддддддддддддд
Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода.
Посему один только MVVM не решает основных задач
Э-м-м-м-м...

Каким боком все вышеперечисленное (кроме "назначить Моdel",быть может?) относится к функциям паттерна MVVM?

"- сформировать условия выборки" - в BLL;
"- загрузить данные" - в DAL;
"- предусмотреть обработку ошибок" - в Application Framework;
"- реализовать интерфейсы INotifyPropertyChanged и валидаторов" - в Layer SuperType;
"- сформировать команды" - в BLL;
"- реализовать CUD операции с обработкой ошибок" - в DAL, или в BLL, или в Layer SuperType, на выбор;

Пока что не вижу ни одной функции паттерна MVVM, кроме "назначить Моdel" с непонятной для меня семантикой (обычно тоже релизуется в Layer SuperType).


Чем еще "перегружен" паттерн MVVM на ваш взгляд?
(имеется ввиду ваше: "и тддддддддддддддддддд").

З.Ы. зрите в корень, если мы обсуждаем функции паттерна MVVM (их "перегруженность" или "легковесность"), то надо их и обсуждать, а не функции всего приложения, использующего MVVM для реализации UI...
1. MVVM разрабатывался именно для UI.
2. Если команды к нему не относятся, то следует изучить его более внимательно
3. И всееееееее лучше всего продемонстрировать на примере.
Автор топика просил весьма простой вариант. Продемонстрируй код, посмотрим на эти малочисленные ееееееееее, хотя бы для этого лапидарного случая.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849455
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i...
1. MVVM разрабатывался именно для UI.
...
Тогда зачем вы тащите за уши к нему:
условия выборки;

обработку ошибок;

загрузку данных;

CUD операции;
???

i...
2. Если команды к нему не относятся, то следует изучить его более внимательно
...

Что-то мне это высказывание определенно напоминает...

i...
3. И всееееееее лучше всего продемонстрировать на примере.
...
Пока мы не договоримся с определением "перегруженности" функций паттерна (любого, не только MVVM) - демонстрировать на примере нечего.
(на любую демонстрацию - будет придумана "контр-демонстрация", было бы желание пофлудить).

Еще раз повторяю - "Зри в корень!" (с) К. Прутков.

Если вас спросили - "в чем вы видите перегруженность паттерна?", а вы в ответ начали перечислять функции не имеющие к паттерну никакого отношения, то - какой еще "демонстрации" вам нужно?

З.Ы. "И эти люди учат меня не ковырять в носу!?" (с) народное...
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849833
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Твои аппеляции к пионерским примерам из MSDN, где, действительно, не нужны никакие DI - мало интересны и прекрасный пример флуда.
Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849895
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iТвои аппеляции к пионерским примерам из MSDN, где, действительно, не нужны никакие DI - мало интересны и прекрасный пример флуда.
Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере.
Узнаю нашего теоретика Севу. Что ж ты, сынок, так сливаешь злостно?
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849903
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849949
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
критика достаточно теоретическая.

по второму пункту: играет роль не объем проекта и число биндингов в нем, а число биндингов в каждом конкретном view. это действительно потенциальная проблема, вот только надо понять, с какого именно числа биндингов эта проблема становится реальной. я еще ни разу не втыкался в проблемы, связанные с этим

>third is that the exercise in creating large numbers of data bindings to the ViewModel results in duplicate code and maintenance problems[9]
не ясно, с чего бы вдруг. ссылка [9] ведет куда-то, что никак не связано с сабжом
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36849967
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
статься на вики имеет корректную [9] ссылку, которая ведет сюда . из статьи совершенно не ясно, где там дублирование кода и проблемы с сопровождением
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850040
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Вестниккритика достаточно теоретическая.

Как только переходишь от журнальных статей к реальному коду, то сразу становится ясно, что сам MVVM ничего особо не дает, помимо биндинга и команд есть масса других вопросов, на которые нет ответа.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850053
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык, не понятно, почему из этого следует, что на mvvm надо забить? дополните его и будет вам щастье
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850064
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ваще не понятно, почему все так грустно?
все уже не хотят думать сами, а пытаются скопи-пастить идею.
все-это не все. а те кто верит в mvvm.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850124
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
AlexeiKда ваще не понятно, почему все так грустно?
все уже не хотят думать сами, а пытаются скопи-пастить идею.
все-это не все. а те кто верит в mvvm.
А никакой грусти. Жизнь прекрасна и замечательна и МVVM в этом помогает, если не следовать примерам из жураналов.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850155
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i...
Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере.
Вы сами себе все уже продемонстрировали (надо только внимательно читать те ссылки, которые сами же и приводите в качестве "аргументов"):
http://blogs.msdn.com/b/davihard/archive/2010/04/26/mvvm-criticism.aspx
...
Given that the MVVM pattern is still relatively new, and that new tool-sets, walkthroughs, or patterns, such as Onyx , the Microsoft WPF Toolkit , Caliburn , MVVM Light Toolkit , and Calcium are being released, this problem may be solved over time.
...
Пройдите по любой из указанных ссылок и получите себе Layer SuperType на любой вкус и цвет, заодно и про т.н. "проблемы с большим числом биндингов" позабудете...
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36850219
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
qu-qui...
Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере.
Вы сами себе все уже продемонстрировали (надо только внимательно читать те ссылки, которые сами же и приводите в качестве "аргументов"):
http://blogs.msdn.com/b/davihard/archive/2010/04/26/mvvm-criticism.aspx
...
Given that the MVVM pattern is still relatively new, and that new tool-sets, walkthroughs, or patterns, such as Onyx , the Microsoft WPF Toolkit , Caliburn , MVVM Light Toolkit , and Calcium are being released, this problem may be solved over time.
...
Пройдите по любой из указанных ссылок и получите себе Layer SuperType на любой вкус и цвет, заодно и про т.н. "проблемы с большим числом биндингов" позабудете...


Проходил ничего полезного не нашел. Возьми эти супер слои и попробуй ответить на вопросы автора топика. Всеееееееееее же простооооооооооооооооо!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36864095
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x
вот прикольная ссылка для всех, кого осадили архитектурные астронавты :) ухахаха
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36872701
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что такое mvvm в 5-ти минутном обзоре
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36872938
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"I hope this helps!"
чему поможет эта статься,автор умолчал.
а начал статью со слов :
"сча я расскажу про mvvm по своему,слушайте!".
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36877278
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял, перечитав пол инета на тему МВМВ, этот паттерн лишь основа, сначала его надо изучить, поменять логику мышления а затем в каждой нестандартной ситуации мостырить под него подпорки - потому как он описывает лишь простые стандартные действия - когда все известно и все просто и хорошо как в детском садике, а если все уже хотя бы как в школе - бери напильник и пили Шура... )))
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36877774
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
spнасколько я понял, перечитав пол инета на тему МВМВ, этот паттерн лишь основа, сначала его надо изучить, поменять логику мышления а затем в каждой нестандартной ситуации мостырить под него подпорки - потому как он описывает лишь простые стандартные действия - когда все известно и все просто и хорошо как в детском садике, а если все уже хотя бы как в школе - бери напильник и пили Шура... )))
Как правило основных вариантов форм не так уж много и это не проблема. Приведи пример нестандартных действий
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36878043
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот золотые слова отсюда
8хFatherTo me the pitfall with WPF is that too many people try to use bindings for everything or force all their apps into the MVVM pattern. This isn’t necessarily a problem with WPF but how people try to use it. Maybe someone should publish a book on how to effectively use WPF for LOB applications. People need to remember that just because you can do something doesn’t mean you should.
...
Рейтинг: 0 / 0
MVVM и куча вопросов
    #36878274
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
LRВот золотые слова отсюда
8хFatherTo me the pitfall with WPF is that too many people try to use bindings for everything or force all their apps into the MVVM pattern. This isn’t necessarily a problem with WPF but how people try to use it. Maybe someone should publish a book on how to effectively use WPF for LOB applications. People need to remember that just because you can do something doesn’t mean you should.

Вы нам разжуйте, а мы подумаем проглотить или нет.
Проблема WPF только в одном - не получится сразу,как в Winforms, начать таскать контролы и ковыряться в обработчиках.
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM и куча вопросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]