Et websted er mere end hvad det ser ud på ydersiden. Faktisk varierer det strukturelle mønster på et websted lige så meget som selve webstedet. Et websted er et komplekst web med mange komponenter, der interagerer med hinanden for at køre en applikation. Tag f.eks. Facebook, som er et af de mest komplekse websteder, vi bruger næsten hver dag. Gå til dens startside, så ser du, at webstedet håndterer næsten et dusin dataforespørgsler ad gangen for at udfylde siden med en række komponenter. Man kan nemt forestille sig, at logikken bag, hvordan komponenterne interagerer med hinanden for at køre et program som Facebook, kan være meget forskellig fra andre websteder. Hovedfunktionaliteten på ethvert websted defineres af, hvor let frontend interagerer med en passende model for at få de data, en seer søger. MVC og MVVM er de to populære designmønstre i verden af softwareudvikling.
MVC, kort for Model-View-Controller, er en applikationsdesignmodel, der ofte bruges til at udvikle moderne brugergrænseflader. MVC-mønsteret er kernen i moderne objektorienteret softwareudvikling, da det kom ud af det objektorienterede designfællesskab. Det blev oprindeligt navngivet Thing-Model-View-Editor i 1979, men blev senere forenklet og omdøbt til Model-View-Controller. Det bruges overvejende til design og udvikling af mobil- og webapplikationer. Det opdeler brugergrænsefladen for en applikation i tre forskellige dele: Model, Visning og Controller.
Model: Modellen repræsenterer et sæt klasser, der beskriver de data, du planlægger at bruge i applikationen. Det beskriver et almindeligt format for dataene, men kan også indeholde forretningsregler, konverteringer, valideringslogik og forskellige andre funktioner.
Udsigt: Visningen repræsenterer de data, der skal vises fra modellen. Den definerer, hvordan programmets brugergrænseflade skal vises. En model kan have et antal visninger afhængigt af applikationen. Visningsmodellen skildrer i designmæssigt grundlæggende brugergrænseflade-komponenterne som HTML, jQuery og så videre.
Controller: Controller er det centrale stykke af en MVC-applikation, der håndterer kommunikation fra brugeren i form af begivenheder, samlet applikationsstrøm og applikationsspecifik logik. Begivenhederne konverteres derefter til serviceanmodninger og sendes videre til modellen eller visningen. Det er den eneste komponent, gennem hvilken brugeren interagerer med systemet.
Model-View-ViewModel eller MVVM er et populært softwarearkitektonisk mønster, der ofte bruges til at udvikle genanvendelige og let testbare webapplikationer. MVVM er baseret på MVC-mønsteret, men forbedres på MVC-modellen ved at introducere en ny klasse kaldet ViewModel, som administrerer de specifikke data for visningen. Hovedmålet med MVVM-modellen er at have en reel adskillelse mellem modellen og View-komponenterne. De vigtigste komponenter i modellen er: Model, View og ViewModel.
Model: Princippet forbliver det samme som i MVC-modellen. Modellen repræsenterer forretningslogik og data og specificerer, hvordan dataene skal manipuleres.
Udsigt: Visningsmodellen repræsenterer de data, der skal vises, men udfører ingen manipulationer af data. Visningen er den samme som i MVC, bortset fra at databindinger skal indstilles til visningen, hvilket gøres ved at tilføje en ViewModel til visningen.
ViewModel: Det er den vigtigste komponent i modellen, da den er designet til at gøre brug af databindingsfunktionerne, som faktisk hjælper med at holde visningen adskilt fra modellen og samtidig fungerer som controlleren for at lette kommunikationen mellem Vis- og modelkomponenterne.
- Model-View-Controller (MVC) er en applikationsdesignmodel, der ofte bruges til at udvikle moderne brugergrænseflader. Det opdeler brugergrænsefladen for en applikation i tre forskellige dele: Model, Visning og Controller. Model-View-ViewModel (MVVM) er på den anden side en moderne variant af den MVC-model, der ofte bruges til at udvikle genanvendelige og let testbare webapplikationer. De vigtigste komponenter i MVVM-modellen er Model, View og ViewModel.
- Nøglefunktionen, der adskiller MVVM fra andre softwaredesignmønstre er dataforbinding, som simpelthen er en mekanisme, der forbinder brugergrænsefladen med forretningslogikken. Det er nøgleteknologien, der forbinder Views med deres ViewModels, som sikrer, at modellerne og egenskaberne synkroniseres med visningen i ViewModel. Det eliminerer behovet for at udsætte hele modellen for en visning.
- Den vigtigste forskel mellem de to arkitektoniske mønstre er, at i MVC er controlleren ansvarlig for at styre kommunikationen mellem en model og en visning ved hjælp af begivenheder, hvorimod rammen gør alt det tunge løft i MVVM ved hjælp af en funktion kaldet data binding. ViewModel i MVVM hjælper med at holde visningen adskilt fra modellen og fungerer samtidig som controlleren for at lette kommunikationen mellem View- og Model-komponenterne.
Mens både MVC og MVVM er derivaterne af MVC-modellen, er MVVM en moderne variant af MVC-modellen, der introducerer en ny klasse kaldet ViewModel, som administrerer de specifikke data for visningen. Hovedmålet med MVVM-modellen er at have en reel adskillelse mellem modellen og View-komponenterne. I MVC er controlleren ansvarlig for at styre kommunikationen mellem en model og en visning. I MVVM hjælper ViewModel imidlertid med at holde visningen adskilt fra modellen og fungerer også som controller for at lette kommunikationen mellem komponenterne.