Я довольно плохо знаком с целой n-tier вещью архитектуры, и у меня были некоторые вопросы об использовании MVVM с 3-уровневым приложением.
От моего понимания мы имеем:
Мой вопрос, как я помещаю это все вместе использование Уровня доступа к данным? С MVVM у меня были бы модели, содержат методы для Загружения/Обновления себя. Вместо этого это должно быть чем-то, что происходит на Сервере WCF? Если так, должен ссылка на сервер быть сохраненной в Модели или ViewModel? И как это нужно назвать?
Строго говоря, DAL не является частью шаблона MVVM. DAL находится где-то «позади» модели, а модель просмотра и просмотра ничего не должна знать о DAL.
Например, выставляйте сущности как свойства вашей модели, которые загружаются при первом доступе.
public class ProductListModel
{
public List<Product> AllProducts
{
get
{
if (_AllProducts == null)
_AllProducts = MyServiceProxy.LoadAllProducts(...)
return _AllProducts;
}
}
public void SaveChanges()
{
if (_AllProducts != null)
MyServiceProxy.SaveProducts(AllProducts);
}
}
Есть тонны очень длинных постов в блогах и описаний по организации всего этого. Вот то, что я прочитал совсем недавно (сегодня):
[текст ссылки][1]
[1] http://dotnetslackers.com/articles/data-management/About-layers-separation-and-Entity-Framework.aspx "Дино Эспозито о EF и слоях
Доступ к данным - это отдельный и независимый вопрос ... Вы можете реализовать его различными способами и шаблонами, но во всех случаях конечным результатом является модель, которая будет использоваться вашими классами MVVM.
WCF может возвращать классы, используемые в вашей модели, или могут возвращать более простые классы, разработанные так же, как объекты передачи данных, в которых cxase вы должны преобразовать эти объекты в экземпляры классов, определенных в вашей модели ...
Фактический доступ к данным (от самой базы данных, конечно, закодирован на стороне сервера WCF ...