Запрос RavenDb от Silverlight - PullRequest
2 голосов
/ 04 июля 2011

Необходимо определиться с архитектурой и дизайном одного приложения Silverlight, которое я создаю.Приложение предназначено для отслеживания требований / проблем.
Требования:

  • SL 4
  • ASP.NET (MVC)
  • среда общего хостинга с полным доверием, IIS7

Я хотел бы иметь:

  • CQS (CQRS) стиль разделения, запросы и команды
  • один дБ, не нужно два хранилищакак в «реальном» CQRS, у меня нет ни состояния гонки, ни проблем с масштабированием.Было бы здорово, если бы я мог использовать RavenDb
  • для команд, я буду использовать однонаправленные объекты DTO команды, которые обрабатываются на стороне сервера и публикуются на стороне клиента (SL), вдохновленные сеансом NDC11 на«CQRS, прекрати CRUDing, люби домен»
  • Мне нравится стиль запросов данных в RIA Services, отображение объектов с помощью DataService, но он действительно работает только с EF и NH (реляционная модель)
  • как можноЯ использую RavenDb для запроса данных?Я на виртуальном хостинге, поэтому я должен использовать встроенный режим и не могу запустить процесс ravendb.exe, он должен быть размещен внутри приложения asp.net.У меня действительно нет никакого опыта с RavenDb, и это будет похоже на учебный проект.
  • не хотел бы выставлять конечные точки RPC SOAP с WCF, есть ли лучшее решение, REST?

Итак, командная сторона не проблема, но не может понять, как использовать RavenDb, виртуальный хостинг и какой-то простой REST-стиль для запроса данных из приложения Silverlight.RavenDb поддерживает что-то подобное из коробки?

Как ответил Айенде, RavenDb можно запустить на asp.net и запросить из Silverlight.Вопрос в том, подходит ли этот подход, по крайней мере, для чтения?БД предоставляется клиентскому приложению без какой-либо логики на стороне сервера (уровень службы / приложения), поэтому любой может изменять данные (если они аутентифицированы).

Выполнить ли мне команду (запись) из Silverlight или передать объекты Command DTO (DelegateToOtherMemberCommand) на сервер и выполнить ее там, на объекте домена (Ticket.AssignTo (member))?

1 Ответ

2 голосов
/ 04 июля 2011

Hrvoje, Вы можете использовать RavenDB с виртуальным хостингом. Обычно вы настраиваете RavenDB как виртуальный каталог внутри вашего приложения и настраиваете его в IIS, как показано здесь: http://ravendb.net/documentation/docs-deployment-iis

Затем вы можете предоставить RavenDB вашему клиенту SL и просто использовать сборку Raven.Client.Silverlight

...