Использование breeze js для отказа от прямого взаимодействия с DBContext

Я новичок в breezejs и у меня есть несколько вопросов.

Я думаю, что breezejs имеет очень хорошие функции, поэтому я могу заменить свой собственный контекст данных. Однако я не хочу, чтобы breezejs напрямую взаимодействовал со слоем dbcontext. На самом деле, в моем приложении уровень службы предоставляет контроллерам только ViewModels, а не настоящие бизнес-модели. Поэтому я не уверен, могу ли я использовать Breeze или нет, поскольку в нескольких примерах Breeze я видел только непосредственное взаимодействие Breeze с DBContext.

Спасибо.

=========================================

Спасибо Уорд за ответ,

Что касается функций, которые мне нравятся в Breeze, так это то, что они помогают сократить много времени на создание моих собственных моделей представления на стороне клиента. И для создания SPA поддержание моделей представления на стороне клиента для меня очень болезненно, особенно в моем приложении есть клиент настольного приложения и приложения для других портативных устройств. Кроме того, для обработки сопоставления объекта JSon с Knockout, что означает, что для каждой модели представления мне также понадобится сопоставитель.

В настоящее время моя архитектура выглядит так:

На стороне сервера: уровень репозитория ‹=> уровень сервиса ‹=> контроллеры (с веб-API, который открывается на стороне клиента)

Только контроллеры могут получить данные (в формате модели представления), отправив запрос через Сервис.

Итак, мой вопрос заключается в том, можно ли использовать Breeze для запросов, а также его интеграцию с нокаутом.


person mashix    schedule 31.12.2012    source источник


Ответы (2)


Breeze никогда не работает напрямую с вашим DbContext; он работает с моделью службы, которую вы предоставляете через конечные точки службы (например, методы контроллера веб-API). Но вы, безусловно, получаете наибольшую ценность от Breeze, когда клиент может запрашивать и сохранять сущности, которые структурно совпадают с сущностями на сервере.

Вы можете получить ViewModels с помощью Breeze — вы можете вызвать почти любой метод службы HTTP с помощью Breeze. Мне непонятно, как Breeze поможет вам управлять этими ViewModels на клиенте после того, как вы их извлечете.

Какие функции Breeze кажутся вам очень хорошими? Ваш ответ на этот вопрос поможет вам определить, может ли Breeze быть полезным для вашего предпочтительного архитектурного стиля.

person Ward    schedule 31.12.2012

Запрос данных через Breeze без контроллеров API, напрямую использующих DBContext, не должен быть проблемой, сохранение может быть сложнее, но все же управляемо. Я думаю, что самая сложная часть — передать метаданные клиенту.

В соответствии с этим ответом SO, образцы для предоставления метаданных из других источников, напрямую связанных с DBContext, должны появиться примерно через неделю.

Тем временем проверьте пример спа-шаблона BreezeJS, так как на стороне сервера задействован шаблон репозитория. что делает его похожим на вашу настройку доступа к данным.

person gius    schedule 20.03.2013