Почему в приложении Durandal нет папки предлагаемых моделей?

Я работаю над Durandal SPA и настроил некоторые представления и модели представления. Однако я думал, что архитектура MVVM также будет включать сегмент «модели» (Model, View, ViewModel — правильно?).

Однако на странице начала работы с Durandal в разделе "Организация" указано следующее:

Если вы развернете папку App, вы найдете исходный код всего образца SPA. Вот организация высокого уровня, которую вы найдете:

  • App
    • durandal/
    • модели просмотра/
    • Просмотры/
    • main.js

В этой структуре отсутствует папка «модели». Куда вы должны поместить свои модели в приложении Durandal?

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

Папка «модели» (которой там нет) кажется мне важной частью приложения Durandal. Однако его там нет, и поэтому я сомневаюсь в своем понимании того, как устроен Durandal (и приложения MVVM). Наверняка есть что-то, чего я не понимаю... может ли кто-нибудь рассказать мне о предполагаемой структуре приложения Durandal и о том, где размещать объекты вашей модели?


person Josh    schedule 14.05.2013    source источник


Ответы (2)


Ответ заключается в том, что Дюрандаль дает вам только структуру, необходимую для запуска, и ничего более. Он использует папку viewmodels и views, поэтому вам предлагается создать ее. Дюрандаль не использует папку models, а ты.

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

Обратите внимание, что он также не оставляет места для кода, который не является моделью представления, которая наверняка будет существовать в любом приложении. Я настоятельно рекомендую для этой цели создать папку modules.

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

person Kyeotic    schedule 15.05.2013
comment
Кроме того, у @Tyrsius есть отличный пост в блоге о структурировании приложений Durandal: Организация приложения Durandal. - person Alexander; 16.04.2014

В моих приложениях модели всегда определялись службами REST или WebAPI, к которым приложение отправляет запросы. У меня не было необходимости определять эти модели в коде приложения. Модели определяются на стороне сервера/службы.

При использовании чего-то вроде Breeze модель представляет собой просто JSON-представление ваших моделей сущностей в вашей базе данных.

Если вам удобнее определять эти модели в коде приложения, добро пожаловать. Если бы я сделал что-то подобное, я бы поместил это в папку App\models, как вы предложили. Я не думаю, что вам нужно будет делать это большую часть времени, хотя.

person blachniet    schedule 14.05.2013