Защо няма папка с предложен модел в приложение на Durandal?

Работя върху Durandal SPA и съм настроил някои изгледи и изгледи. Мислех обаче, че архитектурата на MVVM също ще включва сегмент "модел" (Модел, Изглед, ViewModel - нали?).

Въпреки това страницата Durandal Getting Started казва следното в раздела „Организация“:

Ако разширите папката App, ще намерите източника за цялата проба на SPA. Ето организацията на високо ниво, която ще намерите:

  • App
    • durandal/
    • изгледи/
    • мнения/
    • main.js

В тази структура липсва папка "модели". Къде трябва да поставите моделите си в приложение на Durandal?

Разгледах някои други примерни приложения и не мога да намеря папка „models“ (или където и да било, където се намират моделите) за нито едно от примерните приложения, които прегледах.

Папката "models" (която я няма) ми се струва критична част от приложението на Durandal. Въпреки това, той не е там - и следователно поставям под съмнение разбирането си за това как са проектирани Durandal (и MVVM приложенията). Със сигурност има нещо, което не разбирам... може ли някой да ме разясни относно планираната структура на приложение на Durandal и къде да поставите вашите моделни обекти?


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


Отговори (2)


Отговорът е, че Durandal ви дава само структурата, необходима за бягане, и нищо повече. Той използва папка viewmodels и views, така че ви казва да направите такава. Durandal не използва папка models, вие го правите.

Правя такъв в моите проекти. Ако смятате, че пасва на вашия стил на разработка, можете и трябва да си направите такъв сами.

Забележете, че също така не оставя място за код, който не е модел на изглед, който със сигурност ще съществува във всяко приложение. Аз силно препоръчвам да направите папка modules за тази цел.

Не мислете, че единствените неща, които можете или трябва да правите, са тези, които виждате направени в уроците на Durandal. Вие сте разработчикът. Ще трябва да надградите върху това, което Durandal предоставя, а това означава да направите свой собствен избор.

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