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