Необходимо определиться с архитектурой и дизайном одного приложения 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))?