Благодарим за вопрос.
Джон, как автор HT, предложил ответ. Я, как руководитель проекта Бриз, склонен согласиться с ним :)
HotTowel создает основу для вас. Это не само здание.
Это фонд, предназначенный для конкретного вида приложений, CRUD-приложения на основе определенного набора взаимодействующих технологий JavaScript и ASP.NET. Бриз - вкладчик ... но не единственный. Нокаут, с его MVVM-дизайном и двухсторонней привязкой данных, особенно хорошо подходит для задач ввода данных, типичных для приложений CRUD.
Конечно, есть другие виды SPA. Существует важный класс приложений, которые в основном предоставляют информацию и принимают небольшой ввод пользователя. Такие приложения не так сильно выигрывают от привязки данных, и люди, которые их пишут, могут стать довольно враждебными в отношении привязки данных в целом и KO в частности.
Я хочу сказать, что HT нацелен на конкретный класс приложений ... тот, который, оказывается, чрезвычайно успешен, по крайней мере, когда измеряется устойчивой популярностью. Он предоставляет товары для людей, которые создают эти приложения. Возможно, это не подходящее место для других приложений.
Верно, что легкий путь к Breeze проходит через веб-интерфейс API, EF и реляционную базу данных. Уберите их, и вы можете написать больше кода на сервере (и немного больше на клиенте). Это может быть идеальным компромиссом для вас.
Авторы Бриз хотели бы сделать этот путь проще. Я не думаю, что BreezeJS делает это сложнее. Я не понимаю вашего заявления «Бриз очень сложно использовать». Ты это пробовал?
Ваш клиент может взаимодействовать с любым HTTP-ресурсом любым выбранным вами способом. Достаточно просто использовать существующие контроллеры Web API (хотя и проще с контроллерами Breeze Web API). Вы можете использовать amplify.js, если хотите (кстати, вы можете сказать Бриз, чтобы делать AJAX-вызовы с усилением). Вам даже не нужно использовать Breeze EntityManager
для запроса и сохранения данных, если вы этого не хотите.
Остальная часть BreezeJS может по-прежнему иметь ценность для вас. После того, как вы выяснили, как вы будете получать и хранить данные, и предпочитаете ли вы стиль Entity-ChangeSet или стиль Command/Query, остается много работы.
Вы должны найти ответы на эти вопросы:
- Как вы будете формировать исходные данные в формате JSON в привязываемые объекты?
- Как вы будете держаться за эти объекты и делиться ими на нескольких экранах, не делая избыточных круглых поездок на сервер?
- Как вы будете перемещаться от одного объекта к связанному объекту так же, как и при привязке адреса к выписке StatesAndProvinces?
- Как вы отслеживаете изменения?
- Как вы их проверите?
- Как вы будете хранить некоторые или все данные в локальном хранилище, когда приложение «надгробные плиты»?
Breeze может помочь с этими хлопотами, даже если вы не хотите, чтобы он запрашивал и сберегал вас.
И если вы ответ остается «Я сделаю все, что я, спасибо» ... ну, удаление Breeze с вашего HotTowel проекта так же просто, как:
Uninstall-Package breeze.webapi
Как примечание стороны ... Усиление, в то время как фантастическое, не приближается к тому, что делает Бриз. –
Спасибо за подробный ответ. Наверное, я использую Hot Towel больше как образец стартера, чем шаблон. Я вижу ваши точки. Для меня Бриз мешает, так как у меня уже есть богатый WebAPI для подключения. Для других, возможно, это лучше. Вы проделали отличную работу по подключению Durandal, а оболочка Hot Towel великолепно хрустящая. Мне было довольно легко заменить те части, которые мне не нужны, так что все хорошо. Серьезно, это спасло меня от неприятностей. Спасибо!!! –
+1 Для включения moment.js. Отличная библиотека. –