MVVM - модели учебников? - PullRequest
       2

MVVM - модели учебников?

3 голосов
/ 28 марта 2011

В настоящее время я создаю приложение WPF на C # и следую за этой диаграммой .Я прочитал несколько статей о MVVM, но я специально ищу подробности обо всем, что находится под пунктирной рамкой (например, доступ к модели и данным).У меня уже есть настройка локальной базы данных (SQLite), и я ищу эффективный способ подключения ее к моему приложению.

Есть ли хорошие статьи или демонстрации по созданию этой специфической детали для MVVM?

Ответы [ 2 ]

5 голосов
/ 28 марта 2011

Есть много способов решения этой проблемы, и какой из них вы выберете, будет зависеть от сложности вашего приложения и вашей модели данных.

Стандартный способ решения этой проблемы с точки зрения .NET будетбыть для создания модели Entity Framework поверх вашей базы данных SQLite.Это сгенерирует вашу объектную модель и позволит вам присоединить к ней поведение без особых хлопот.Он также несколько абстрагирует базу данных / постоянство от кода вашего приложения (ViewModels).Для получения подробной информации об этом подходе поищите в Google «Entity Framework» - там масса информации.EF значительно улучшился с момента выхода EF 4.0.

Если вы не хотите использовать EF (из-за сложности, накладных расходов или просто желания сделать что-то свое), то вам захочетсяЧитайте о популярных архитектурных шаблонов источников данных.Начните с шаблонов корпоративной прикладной архитектуры Мартина Фаулера - эта книга представляет собой библиографию управляемой данными прикладной архитектуры.Если вы не хотите покупать книгу, прочитайте описания шаблонов, найдите подходящий и выполните поиск в Google - в Интернете есть масса информации об этом материале.

Если у вас естьсложная модель с множеством поведений и шаблонов, тогда вам понадобится шаблон Domain Model для вашей модели и, возможно, шаблон источника данных Data Mapper для получения данных из вашегоБД и в твою модель.Это наиболее сложный подход, но сложность окупается гибкостью в будущем, если вам это нужно.

Если ваша модель данных проще, вы можете использовать Table Data Gateway или Row Data Gateway для доступа к данным и, возможно, Сценарий транзакции или Сервисный уровень для связи между моделью и базой данных.

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

3 голосов
/ 28 марта 2011

Диаграмма, с которой связано, немного сложнее, чем MVVM. MVVM относится только к Model, View и ViewModel. Он оставляет стратегию доступа к данным на усмотрение программиста.

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

Шаблон, который я сейчас использую, имеет дополнительный пакет с именем Repository. ViewModel вызывает хранилище, сообщая ему о необходимости получения данных. Затем репозиторий получает данные из базы данных (или веб-службы, или файловой системы и т. Д.) И заполняет объекты модели. ViewModel наблюдает за объектами Model, поэтому изменения передаются в пользовательский интерфейс.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...