Vietne ir vairāk nekā tā, kas izskatās no ārpuses. Faktiski vietnes struktūra atšķiras tikpat lielā mērā kā pati vietne. Vietne ir sarežģīts daudzu komponentu tīkls, kas mijiedarbojas viens ar otru, lai palaistu lietojumprogrammu. Piemēram, Facebook, kas ir viena no sarežģītākajām vietnēm, kuras mēs izmantojam gandrīz katru dienu. Dodieties uz tās sākumlapu, un jūs redzēsit, ka vietne vienlaikus apstrādā gandrīz duci datu pieprasījumu, lai lapu aizpildītu ar daudziem komponentiem. Var viegli iedomāties, ka loģika, pēc kuras komponenti mijiedarbojas savā starpā, lai palaistu tādu programmu kā Facebook, var ļoti atšķirties no citām vietnēm. Jebkuras vietnes galveno funkcionalitāti nosaka tas, cik viegli priekšējā daļa mijiedarbojas ar atbilstošu modeli, lai iegūtu datus, ko skatītājs vēlas. MVC un MVVM ir divi populāri dizaina modeļi pasaules programmatūras izstrādes pasaulē.
MVC, saīsināts no Model-View-Controller, ir lietojumprogrammu dizaina modelis, ko parasti izmanto modernu lietotāja saskarņu izstrādei. MVC modelis ir mūsdienu uz objektu orientētas programmatūras izstrādes pamatā, jo tas parādījās uz objektu orientētā dizaina kopienā. Sākotnēji tas tika nosaukts par Thing-Model-View-Editor 1979. gadā, bet vēlāk tika vienkāršots un pārdēvēts par Model-View-Controller. To galvenokārt izmanto mobilo un tīmekļa lietojumprogrammu projektēšanai un izstrādei. Tas sadala lietojumprogrammas lietotāja interfeisu trīs atšķirīgās daļās: modelis, skats un kontrolieris.
Modelis: Modelis pārstāv klašu kopu, kas apraksta datus, kurus plānojat izmantot lietojumprogrammā. Tas apraksta kopēju datu formātu, bet tajā var būt arī biznesa noteikumi, reklāmguvumi, validācijas loģika un dažādas citas funkcijas.
Skats: Skats attēlo datus, kas tiks parādīti no modeļa. Tas nosaka, kā tiks parādīts lietojumprogrammas lietotāja interfeiss. Modelim var būt vairāki skati atkarībā no lietojumprogrammas. Skata modelis dizaina izteiksmē būtībā attēlo tādus lietotāja interfeisa komponentus kā HTML, jQuery utt.
Kontrolieris: Kontrolieris ir MVC lietojumprogrammas centrālais elements, kas apstrādā lietotāja komunikāciju notikumu, vispārējās lietojumprogrammu plūsmas un lietojumprogrammas loģikas veidā. Pēc tam notikumi tiek pārveidoti par pakalpojumu pieprasījumiem un tiek pārsūtīti modelim vai skatam. Tas ir vienīgais komponents, caur kuru lietotājs mijiedarbojas ar sistēmu.
Model-View-ViewModel jeb MVVM ir populārs programmatūras arhitektūras modelis, ko parasti izmanto atkārtoti lietojamu un viegli pārbaudāmu tīmekļa lietojumprogrammu izstrādei. MVVM balstās uz MVC modeli, bet uzlabo uz MVC modeli, ieviešot jaunu klasi ar nosaukumu ViewModel, kas pārvalda skatam specifiskus datus. MVVM modeļa galvenais mērķis ir panākt patiesu modeļa un skata komponentu atdalīšanu. Galvenie modeļa komponenti ir: Modelis, View un ViewModel.
Modelis: Princips paliek tāds pats kā MVC modelī. Modelis atspoguļo biznesa loģiku un datus un norāda, kā ar datiem jātiek manipulētiem.
Skats: Skata modelis apzīmē parādāmos datus, bet ar datiem neveic nekādas manipulācijas. Skats ir tāds pats kā MVC, izņemot to, ka skatam ir jāiestata datu saistīšana, kas tiek veikts, skatam pievienojot ViewModel..
ViewModel: Tā ir vissvarīgākā modeļa sastāvdaļa, jo tā ir izstrādāta, lai izmantotu datu iesiešanas funkcijas, kas faktiski palīdz saglabāt skatu atsevišķi no modeļa, un tajā pašā laikā darbojas kā kontrolieris, lai atvieglotu saziņu starp skatu un modeļa komponentiem.
- Modelis-skats-kontrolieris (MVC) ir lietojumprogrammu dizaina modelis, ko parasti izmanto, lai izstrādātu mūsdienīgas lietotāja saskarnes. Tas sadala lietojumprogrammas lietotāja interfeisu trīs atšķirīgās daļās: modelis, skats un kontrolieris. No otras puses, Model-View-ViewModel (MVVM) ir moderns MVC modeļa variants, ko parasti izmanto atkārtoti lietojamu un viegli pārbaudāmu tīmekļa lietojumprogrammu izstrādei. MVVM modeļa galvenās sastāvdaļas ir Model, View un ViewModel.
- Galvenā iezīme, kas atšķir MVVM no citiem programmatūras projektēšanas modeļiem, ir datu iesiešana, kas ir vienkārši mehānisms, kas savieno lietotāja saskarni ar biznesa loģiku. Tā ir galvenā tehnoloģija, kas savieno skatus ar to ViewModels, kas nodrošina modeļu un rekvizītu sinhronizāciju ar skatu ViewModel. Tas novērš nepieciešamību pakļaut visu modeli skatam.
- Galvenā atšķirība starp abiem arhitektūras modeļiem ir tāda, ka MVC kontrolieris ir atbildīgs par modeļa un skata sakaru pārvaldību, izmantojot notikumus, turpretī ietvars visu MVVM smago celšanu veic, izmantojot funkciju, ko sauc par datu iesiešanu. ViewModel MVVM palīdz saglabāt skatu atsevišķi no modeļa, un tajā pašā laikā darbojas kā kontrolieris, lai atvieglotu saziņu starp skatu un modeļa komponentiem.
Lai gan MVC un MVVM ir MVC modeļa atvasinājumi, MVVM ir moderns MVC modeļa variants, kas ievieš jaunu klasi ar nosaukumu ViewModel, kas pārvalda skatam specifiskus datus. MVVM modeļa galvenais mērķis ir panākt patiesu modeļa un skata komponentu atdalīšanu. MVC kontrolieris ir atbildīgs par modeļa un skata sakaru pārvaldību. Tomēr MVVM ViewModel palīdz saglabāt skatu atsevišķi no modeļa un darbojas arī kā kontrolieris, lai atvieglotu saziņu starp komponentiem.