Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Преобразование приложения WPF/ADO.NET Data Services в шаблон MVVM - примеры

Автор вопроса: Ian GregoryОтветов: 1

У меня есть приложение WPF, написанное на C#. Это приложение не было написано с учетом какого-либо конкретного шаблона проектирования, но, изучив .NET, я понял, что модель MVVM подойдет. Таким образом, я хотел бы начать преобразование кода.

Это будет первый раз, когда я использую MVVM, и хотя я готов застрять, мне трудно найти надежные примеры MVVM в Интернете, где служба данных ADO.NET является моделью, а XAML - это представление . Я хотел бы просмотреть несколько примеров, прежде чем приступить к процессу конвертации собственного приложения, чтобы убедиться, что я правильно понял, что делаю!

Может ли кто-нибудь порекомендовать небольшой (но нетривиальный) пример приложения с кодом, использующим WPF, ADO.NET Data Services и модель MVVM?

mvvmdesign-patternswpf

Ответы

Ответ 1 · рейтинг 1 · Jay

Я рекомендую начинать с любого примера, в котором используется MVVM с WPF, а их много. Дело в том, что в чистой реализации MVVM не будет никакого реального кода доступа к данным - доступ к данным должен обрабатываться другим, абстрактным уровнем (см. MVVM, где разместить уровень доступа к данным?).

Работайте над созданием модели представления, которая инкапсулирует все данные и взаимодействия, необходимые для ваших (уже существующих) представлений. Очистите свой программный код и привяжите свое представление к своей модели представления.

После того, как вы это сделаете, вы можете беспокоиться о том, как получить ваши объекты в хранилище сохраняемости и из него, но фактическая работа по выполнению этого не принадлежит M, V или VM.

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

Найдите любой нетривиальный пример MVVM в WPF, и когда вы дойдете до той части, где они имеют дело непосредственно с доступом к данным, напомните себе, что в этот момент вы будете использовать абстракцию постоянства.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы