Я занимаюсь разработкой приложения (Silverllight или WPF, все еще обсуждаю), но я застрял в проблеме дизайна и, если вам интересно, вы могли бы высказать свое мнение об этом ....
Вот сценарий.Это приложение для управления сотрудниками для HR.Как только приложение будет готово, HR может попросить добавить дополнительные функции (что в большинстве случаев означает больше данных).Скажем, есть форма сотрудника, которая сохраняет запись сотрудника в базе данных. Форма сотрудника имеет связанный EmployeeViewModel, с которым она связывается.EmployeeViewModel использует Entity Framework для сохранения своих данных в базе данных.
Теперь, если HR хочет добавить новый набор полей, например, «Информация о супруге», я планирую предоставить плагин, который HR может просто добавитьк форме, когда доступно.Этот плагин SpouseInfo является своего рода пользовательским контролем с собственной моделью представления.
Проблема в том, кто здесь владеет ViewModel.
а.Я делаю SpouseInfo полностью независимым.Всякий раз, когда форма Сотрудника сохраняется или загружается, SpouseInfo вызывает свою модель представления и загружает или сохраняет данные.В этом случае, прежде чем он сможет сохранить или загрузить данные, ему понадобится EmployeeId из родительской формы, прежде чем данные могут быть сохранены (это означает, что форма Employee сначала сохранит данные, а затем передаст идентификатор сотрудника в SpouseInfo)
Или
б.Форма Employee является владельцем ViewModel для SpouseInfo.Будучи «родительским объектом», он отвечает за загрузку и сохранение «дочернего объекта», то есть SpouseInfo viewModel.
Спасибо, A