Совместное использование общего DAL между WPF, Silverlight и ASP.NET - PullRequest
2 голосов
/ 05 октября 2010

Каков наилучший метод / технология для совместного использования одного и того же уровня доступа к данным между WPF, Silverlight и ASP.NET?

Я использую платформу ADO.NET Entity и думал о создании DAL с использованием шаблона Repository. Затем с помощью RIA Services в качестве фиктивного посредника для подключения Silverlight и ASP.NET.Это твердый план или есть другие лучшие решения?

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Одним из решений, которое мне нравится использовать, является следующее: - Иметь проект, хранящий только сущности (например, Player, Game, Entity) без ссылки на базу данных вообще. - Иметь проект, реализующий шаблон репозитория (Repository, Repository etc ...) - Использовать сначала код ADO.NET Entity Framework для сопоставления с базой данных (он создает динамический дочерний объект, содержащийся в вашем проекте в вашем проекте, см. Блог ScottGu для объяснения того, как его использовать)

Подключение Silverlight к вашему шаблону можно выполнить с помощью Ria Services или классических сервисов WCF. Обычно я стараюсь использовать WCF всякий раз, когда это возможно, поскольку Ria Services на самом деле не совместима с разработкой MVVM.

Если вы хотите использовать WCF и делиться объектами DAL с Silverlight, вы можете создать проект библиотеки классов MyDal.Silverlight Silverlight и добавить символическую ссылку вместо копий всех объектов, которыми вы хотите поделиться с Silverlight. Затем, когда вы добавите ссылку на сервис в Visual Studio, она будет достаточно умен, чтобы не создавать копии с Player, Game и User для вас в проекте Silverlight.

Если вы хотите использовать Ria Services, она все равно создаст копии ваших юридических лиц.

Надеюсь, что поможет

John

1 голос
/ 05 октября 2010

Службы RIA

Службы RIA, безусловно, снимут с вас бремя всей сантехники WCF.У него есть несколько незначительных недостатков (отсутствие определенных типов данных), но для большинства проблем есть обходные пути.

Модель проверки (с использованием декорации атрибутов и пользовательских валидаторов) очень сильна и является отличным местом для подвешивания бизнес-правил..

RIA счастливо сосуществует с ASP.Net, так что это еще один плюс.За кулисами это просто еще один сервис WCF.Мы с радостью используем сервисы RIA с MVVM и Prism.

Модель ADO.Net EF

Это проверенная и протестированная многофункциональная модель.Единственные проблемы, которые я обнаружил, связаны с отношениями «многие ко многим».Опять же, есть обходные пути.

DAL

Поскольку наборы изменений RIA управляются для вас во всем, включая POCO , эта область будет требовать наибольшего внимания.Считается «плохим» выставлять вашу модель EF напрямую RIA, и это, безусловно, не защитит вас от изменений данных.

Я не могу конкретно рекомендовать какой-либо один шаблон (все еще экспериментируя), но убедитесь, что вашВыбор совместим с IQueryable.Функция подкачки страниц и добавление запросов Linq для выполнения на стороне сервера - это функции, которые вы не хотите потерять!

...