Spletno mesto je več kot tisto, kar je videti na zunaj. Pravzaprav se strukturni vzorec spletnega mesta razlikuje toliko kot sam. Spletno mesto je zapleten splet množice komponent, ki medsebojno delujejo za zagon aplikacije. Vzemimo za primer Facebook, ki je eno najbolj zapletenih spletnih strani, ki ga uporabljamo skoraj vsak dan. Pojdite na njegovo domačo stran in tam boste videli, da spletno mesto obravnava skoraj ducat zahtev za podatke, da napolni stran z množico komponent. Lahko si predstavljamo, da se lahko logika, kako sestavni deli medsebojno izvajajo program, kot je Facebook, zelo razlikuje od drugih spletnih strani. Osnovna funkcionalnost katerega koli spletnega mesta je določena z lahkoto, s katero sprednji del deluje z ustreznim modelom, da pridobi podatke, ki jih gledalec išče. MVC in MVVM sta dva priljubljena modela oblikovanja v svetu razvoja programske opreme.
MVC, kratek za Model-View-Controller, je model zasnove aplikacij, ki se običajno uporablja za razvoj sodobnih uporabniških vmesnikov. Vzorec MVC je v središču sodobnega objektno usmerjenega razvoja programske opreme, saj izhaja iz objektno usmerjene oblikovalske skupnosti. Prvotno je bil leta 1979 imenovan Thing-Model-View-Editor, vendar je bil pozneje poenostavljen in preimenovan v Model-View-Controller. Večinoma se uporablja za oblikovanje in razvoj mobilnih in spletnih aplikacij. Uporabniški vmesnik aplikacije razdeli na tri različne dele: Model, Pogled in Krmilnik.
Model: Model predstavlja niz razredov, ki opisujejo podatke, ki jih nameravate uporabljati v aplikaciji. Opisuje skupno obliko podatkov, lahko pa vsebuje tudi poslovna pravila, pretvorbe, validacijsko logiko in različne druge funkcije.
Pogled: Pogled predstavlja podatke, ki bodo prikazani iz modela. Določa, kako bo prikazan uporabniški vmesnik aplikacije. Model ima lahko več ogledov, odvisno od aplikacije. Model pogled v oblikovnem smislu v bistvu prikazuje komponente uporabniškega vmesnika, kot so HTML, jQuery itd..
Krmilnik: Krmilnik je osrednji del aplikacije MVC, ki upravlja z komunikacijo od uporabnika v obliki dogodkov, celotnega toka aplikacij in logike, specifične za aplikacijo. Dogodki se nato pretvorijo v zahteve po storitvah in se prenesejo na model ali pogled. Je edina komponenta, prek katere uporabnik komunicira s sistemom.
Model-View-ViewModel ali MVVM je priljubljen arhitekturni vzorec programske opreme, ki se običajno uporablja za razvoj spletnih aplikacij za večkratno uporabo in enostavno preizkušanje. MVVM temelji na vzorcu MVC, vendar se izboljša na modelu MVC z uvedbo novega razreda, imenovanega ViewModel, ki upravlja s podatki, specifičnimi za pogled. Glavni cilj modela MVVM je resnična ločitev med komponento Model in Pogled. Glavne komponente modela so: Model, View in ViewModel.
Model: Načelo ostaja enako kot v modelu MVC. Model predstavlja poslovno logiko in podatke ter določa, kako je treba z njimi ravnati.
Pogled: Model View predstavlja podatke, ki jih je treba prikazati, vendar ne izvaja nobenih manipulacij s podatki. Pogled je enak kot v MVC, le podatkovne povezave morajo biti nastavljene za pogled, kar se izvede z dodajanjem ViewModel v pogled.
ViewModel: Je najpomembnejša komponenta modela, saj je zasnovan za uporabo funkcij vezave podatkov, kar dejansko pomaga, da je pogled ločen od modela, hkrati pa deluje kot krmilnik za lažjo komunikacijo med komponentami Pogled in Model.
- Model-View-Controller (MVC) je model zasnove aplikacij, ki se običajno uporablja za razvoj sodobnih uporabniških vmesnikov. Uporabniški vmesnik aplikacije razdeli na tri različne dele: Model, Pogled in Krmilnik. Model-View-ViewModel (MVVM) je na drugi strani sodobna različica modela MVC, ki se običajno uporablja za razvoj spletnih aplikacij za večkratno uporabo in enostavno preizkušanje. Glavne komponente modela MVVM so Model, View in ViewModel.
- Ključna značilnost, ki MVVM razlikuje od drugih vzorcev programske zasnove, je vezava podatkov, kar je preprosto mehanizem, ki uporabniški vmesnik povezuje s poslovno logiko. Ključna tehnologija, ki povezuje poglede s svojimi ViewModels, zagotavlja, da so modeli in lastnosti sinhronizirani s pogledom v ViewModelu. Odpravlja potrebo po izpostavljanju celotnega modela pogledu.
- Ključna razlika med dvema arhitekturnima vzorcema je, da je v MVC-ju krmilnik odgovoren za upravljanje komunikacije med modelom in pogledom z uporabo dogodkov, medtem ko je ogrodje vse težje dviganje v MVVM s funkcijo, imenovano vezava podatkov. ViewModel v MVVM pomaga, da je pogled ločen od modela, hkrati pa deluje kot krmilnik za lažjo komunikacijo med komponentami View in Model..
Medtem ko sta MVC in MVVM izpeljanki modela MVC, je MVVM sodobna različica modela MVC, ki uvaja nov razred, imenovan ViewModel, ki upravlja s podatki, specifičnimi za pogled. Glavni cilj modela MVVM je resnična ločitev med komponento Model in Pogled. V MVC je krmilnik odgovoren za upravljanje komunikacije med modelom in pogledom. Vendar v MVVM ViewModel pomaga, da je pogled ločen od modela in deluje tudi kot krmilnik za lažjo komunikacijo med komponentami.