Уебсайтът е повече от това, което изглежда отвън. Всъщност структурният модел на уебсайт варира толкова, колкото и самият уебсайт. Уебсайтът е сложна мрежа от множество компоненти, които си взаимодействат помежду си за стартиране на приложение. Вземете например Facebook, който е един от най-сложните уебсайтове, които използваме почти всеки ден. Отидете на началната му страница и ще видите, че уебсайтът обработва почти дузина заявки за данни наведнъж, за да запълни страницата с множество компоненти. Човек лесно може да си представи, че логиката, по която компонентите си взаимодействат помежду си за изпълнение на програма като Facebook, може да бъде много различна от другите уебсайтове. Основната функционалност на всеки уебсайт се определя от лекотата, с която предният край взаимодейства с подходящ модел за получаване на данните, които зрителят търси. MVC и MVVM са двата популярни модела на дизайн в света на софтуерната разработка.
MVC, съкратено за Model-View-Controller, е модел за дизайн на приложения, използван обикновено за разработване на съвременни потребителски интерфейси. Моделът MVC е в основата на съвременната обектно-ориентирана разработка на софтуер, тъй като се появи от обектно-ориентираната дизайнерска общност. Първоначално е кръстен Thing-Model-View-Editor през 1979 г., но по-късно е опростен и преименуван на Model-View-Controller. Използва се предимно за проектиране и разработване на мобилни и уеб приложения. Той разделя потребителския интерфейс на приложение на три отделни части: Модел, Изглед и Контролер.
Модел: Моделът представлява набор от класове, които описват данните, които планирате да използвате в приложението. Той описва общ формат за данните, но може да съдържа и бизнес правила, конверсии, логика за валидиране и различни други функции.
изглед: Изгледът представлява данните, които ще се показват от модела. Той определя как ще се показва потребителският интерфейс на приложението. Моделът може да има редица изгледи в зависимост от приложението. Моделът на изглед, по отношение на дизайна, по същество изобразява UI компоненти като HTML, jQuery и т.н..
контрольор: Контролерът е централното парче на MVC приложение, което обработва комуникацията от потребителя под формата на събития, цялостен поток на приложение и специфична логика на приложението. След това събитията се преобразуват в заявки за услуги и се предават на модела или изгледа. Това е единственият компонент, чрез който потребителят взаимодейства със системата.
Model-View-ViewModel, или MVVM, е популярен софтуерен архитектурен модел, който обикновено се използва за разработване на многократни и лесно тествани уеб приложения. MVVM се основава на модела MVC, но се подобрява на MVC модела, като въвежда нов клас, наречен ViewModel, който управлява данните, специфични за изгледа. Основната цел на модела MVVM е да има истинско разделение между компонентите Model и View. Основните компоненти на модела са: Model, View и ViewModel.
Модел: Принципът остава същият като при модела MVC. Моделът представя бизнес логика и данни и уточнява как трябва да се манипулират данните.
изглед: Моделът View представлява данните, които трябва да бъдат показани, но не извършва никакви манипулации върху данните. Изгледът е същият като в MVC, с изключение на връзките на данни трябва да бъдат зададени за изгледа, което става чрез добавяне на ViewModel към изгледа.
ViewModel: Това е най-важният компонент на модела, тъй като е проектиран да използва функциите за свързване на данни, което всъщност помага да се запази изгледът отделен от модела и в същото време действа като контролер за улесняване на комуникацията между компонентите View и Model.
- Model-View-Controller (MVC) е модел за дизайн на приложения, използван обикновено за разработване на съвременни потребителски интерфейси. Той разделя потребителския интерфейс на приложение на три отделни части: Модел, Изглед и Контролер. Model-View-ViewModel (MVVM), от друга страна, е съвременен вариант на MVC модела, който обикновено се използва за разработване на многократни и лесно тествани уеб приложения. Основните компоненти на MVVM модела са Model, View и ViewModel.
- Основната характеристика, която отличава MVVM от другите модели на софтуерно проектиране, е обвързването на данни, което е просто механизъм, който свързва потребителския интерфейс с бизнес логиката. Ключовата технология, която свързва Views с техните ViewModels, гарантира, че моделите и свойствата са в синхрон с изгледа в ViewModel. Той елиминира необходимостта да се излага целия модел на изглед.
- Ключовата разлика между двата архитектурни модела е, че в MVC, Controller е отговорен за управлението на комуникацията между модел и изглед, използвайки събития, докато рамката прави цялото повдигане в MVVM, използвайки функция, наречена свързване на данни. ViewModel в MVVM помага да се поддържа изгледът отделен от модела и в същото време действа като контролер за улесняване на комуникацията между компонентите View и Model.
Докато и MVC, и MVVM са производни на MVC модела, MVVM е модерен вариант на MVC модела, който въвежда нов клас, наречен ViewModel, който управлява данните, специфични за изгледа. Основната цел на модела MVVM е да има истинско разделение между компонентите Model и View. В MVC контролерът е отговорен за управлението на комуникацията между модел и изглед. В MVVM обаче ViewModel помага да се поддържа изгледът отделен от модела и също така действа като контролер за улесняване на комуникацията между компонентите.