Я совершенно не знаком с WPF, поэтому я трачу время на трафик в Интернете для примеров и руководств по тому, как это должно быть сделано. Я пришел к выводу, что путь вперед - попытаться использовать шаблон MVVM в качестве руководства для моей структуры приложения. Я полностью согласен с теорией, если не с моими техническими способностями. У меня есть один или два вопроса, и надеюсь, что вы, возможно, можете указать мне в правильном направлении по нескольким вопросам, касающимся дизайна приложения.WPF, консультация по дизайну приложений и параллелизм базы данных
Я хочу сохранить список клиентов. Я видел несколько примеров этого. Они включают загрузку репозитория Customers, содержащего список объектов Customer. Создается соответствующая View и ViewModel для Клиентов. Когда пользователь выбирает Заказчика для редактирования, для объекта Customer в коллекции Customers создается объект View и ViewModel. Это позволяет синхронизировать все изменения при внесении изменений. Мой вопрос: моя модель клиента очень сложная, она содержит основную информацию о клиенте, имя, адрес и т. Д., А также атрибуты о клиенте, списки категорий, профили продуктов, целевые бюджеты и т. Д. Я хочу, чтобы они были доступны для редактирования в Клиенте Просмотрите, но не хотите накладных расходов на их загрузку в репозиторий Клиентов. Я хочу только загрузить расширенную информацию о клиенте, если это необходимо, но обновить представление Клиента с изменениями. Каков наилучший способ достичь этого?
Мой второй вопрос: если я разделяю информацию Клиента по нескольким вкладкам, должен ли я иметь отдельный View и ViewModel для каждой вкладки или иметь один вид. Какая практика?
Я думаю, что я буду использовать Linq to SQL для обработки базы данных. В многопользовательской среде клиенты могут одновременно добавлять несколько пользователей. Как отразить новые дополнения, сделанные другими пользователями в моем репозитории клиентов? Нужно ли его перезагружать?
Любые предложения по обработке проблем параллелизма базы данных. Если другой пользователь редактирует или удаляет Клиента, который я сейчас редактирую, что должно произойти, когда я попытаюсь сохранить его? Я знаком с Datasets и ADO.net и обрабатываю любые ошибки параллелизма, возникающие при использовании DataAdapter, есть ли подобный метод с Linq to SQL?
Я ценю, что здесь есть много неопределенных вопросов. Но я был бы признателен за любые рекомендации.
С уважением Тим
Eduardo, Большое спасибо за ваше мнение. Я полностью согласен с вашими комментариями. Образцы очень полезны, и я чрезвычайно благодарен всем, кто делает время, чтобы представить их. Мне просто жаль, что я не могу найти то, что объясняет, как делать вещи в реальном мире, сложное приложение. Я сделал код, просто указатель в правильном направлении. – Tim