Шаблон репозитория с WCF Rest Service и возврат IQUERYABLE с использованием LINQ to OBJECTS?

Я хочу создать шаблон репозитория, но с WCF Rest Service, который контролирует доступ к данным. Может ли кто-нибудь подтвердить или помочь с моим мышлением / конфигурацией.

  1. Контроллеры ASP.NET >> вызов службы (не службы отдыха, а службы шаблона репозитория)
  2. Служба шаблонов репозитория >> вызовы репозитория
  3. Репозиторий >> вызывает WCF Rest Service для получения данных.

Насколько хороша эта настройка, или мне следует удалить уровень репозитория и вызвать службу репозитория напрямую в службу REST?

Кто-нибудь делает подобную настройку?

Хотелось бы услышать комментарии?

В основном моя служба отдыха (WCF) возвращала бы XHTML ...

Итак, на уровне моего репозитория, как мне преобразовать то, что возвращается из моей службы отдыха, в IQUERYABLE? Я предполагаю, что мне нужно будет сделать ReadAsDataContract в классе (контракт данных), а затем использовать LINQ to OBJECTS ?? Это немного сбивает меня с толку

Потому что, конечно, нормальным является возвращение IQUERYABLE из уровня репозитория на уровень сервиса.

Затем уровень обслуживания возвращается вызывающему клиенту в обычном режиме как TOLIST или аналогичный.

Очень признателен за любой вклад.

Спасибо

ИЗМЕНИТЬ

Эммм, после переосмысления этого, я думаю, что делаю это неправильно ... я должен просто скрыть уровень сервиса репозитория в WCF REST Service ... таким образом мои другие клиенты могут вызывать мою службу отдыха ??

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

Есть ли в этом смысл?


person Martin    schedule 25.09.2010    source источник
comment
Я подумал, что должен объяснить, как работает моя служба REST. В основном у меня есть / Users (получает всех пользователей), / Users / n (Get user n) ... На самом деле я не использую службы данных ... но то, что я возвращаю, очень похоже на службы данных ... В основном все мои данные исходит из службы REST.   -  person Martin    schedule 25.09.2010


Ответы (1)


Пытаясь скрыть уровень REST за репозиторием, вы пытаетесь реализовать распределенные объекты. REST никогда не задумывался как подход к реализации этого типа архитектуры.

Если вы действительно хотите использовать REST, вы делаете это неправильно. Однако в этом погоне вы далеко не одиноки.


Обновлять:

Единственное место, где я вижу репозиторий для объектов домена, - это сервер, за интерфейсом REST. Все, что у вас есть на клиенте, - это обработчики типов мультимедиа и сценарии пользовательских агентов.

person Darrel Miller    schedule 25.09.2010
comment
Вы видели мою правку в моем вопроснике? Это лучше? то есть преобразование уровня обслуживания моего репозитория в службу отдыха. Вот что я сказал, Эмм, после переосмысления этого, я думаю, что делаю это неправильно ... я должен просто скрыть уровень сервиса репозитория в WCF REST Service ... таким образом мои другие клиенты могут вызывать мою службу отдыха? ? Я полагаю, что я сохраню уровень репозитория там, но я мог бы заставить его вызывать уровни служб данных (технически еще одна служба отдыха) для доступа к моим данным. Это имеет смысл? - person Martin; 25.09.2010
comment
Я думаю, в этом больше смысла, не так ли? Следовательно, моя служба преобразована в службу REST, и все мои клиенты могут ее вызывать (веб, окна и т. Д.) ... в asp.net mvc я бы назвал свою службу (теперь службу отдыха) изнутри контроллера - person Martin; 25.09.2010
comment
или, в качестве альтернативы, было бы лучше преобразовать уровень репозитория в сервис отдыха. Уровень репозитория возвращает Iqueryable, хотя - person Martin; 25.09.2010
comment
Мы говорим об одном и том же шаблоне репозитория? martinfowler.com/eaaCatalog/repository.html Я не понимаю, что вы имеете в виду под сервисный уровень репозитория. - person Darrel Miller; 25.09.2010
comment
Да, Даррел, мы говорим о том же шаблоне репозитория. Но я использовал его со слоем службы (также через Мартина Фаулера), чтобы убедиться, что мои контроллеры в ASP.NET MVC были ТОНКИМИ, а не FAT. - person Martin; 03.10.2010
comment
Привет, дорогая, спасибо за обновление. Единственное место, где я вижу репозиторий для объектов домена, - это сервер, за интерфейсом REST. Все, что у вас есть на клиенте, - это обработчики типов мультимедиа и сценарии пользовательских агентов. ЭТО именно то, что я искал! Итак, теперь у меня есть REST, а за ним - мой репозиторий. - person Martin; 03.10.2010