MVC
Projektēšanas šablons „Modelis-Skats-Kontrolieris” (Model-View-Controller), tālāk tekstā — MVC, ir fundamentāls projektēšanas šablons, kas tiek lietots interaktīvās sistēmās (sistēmā, kur mijiedarbība starp lietotāju un sistēmu notiek dialogu režīmā, paredz lietotāja saskarni un iekļauj elementus, ar kuriem lietotājs manipulē ar sistēmu, un elementus, kas attēlo šo manipulāciju rezultātus). Loģiski sadalot lietojumprogrammu trīs patstāvīgās komponentēs, kur katrai komponentei ir savi uzdevumi un mērķi, lietojumprogramma kļūst vieglāk saprotama un pārvaldāma, kā arī tās komponentes ir iespējams atkārtoti izmantot. Projektēšanas šablons MVC sadala sistēmu trijās daļās - datu ievads, datu apstrāde, datu attēlojums, kur katra daļa risina savu uzdevumu. Loģiskā komponente Modelis iekapsulē datu kodolu un pamatfunkcionalitāti, kas nav atkarīga no attēlojuma. Loģiskā komponente Skats ir atbildīga par Modeļa datu attēlošanu, atbilstoši lietotāja definētai datu prezentācijas formai. (Prezentāciju formu nosaka, piemēram, lietotāja saskarnes valoda vai lietotāja piekļuves līmenis). Loģiskā komponente Kontrolleris saņem un nolemj kā apstrādāt ziņojumus, kurus saņem no lietotāja, un translē signālus komandās, kas tiek sūtītas Modelim vai Skatam. MVC mērķis ir padarīt Modeli neatkarīgu no Skata un Kontrollera, kuri kopā veido lietotāja saskarni lietojumprogrammā. Tāda neatkarība ļauj izstrādāt un testēt modeli neatkarīgi no tā attēlojuma. Tā kā Modelis ir neatkarīgs, tas nevar tieši griezties pie Skata vai Kontrollera. Modelis var pasīvi piegādāt servisus un datus citām lietojumprogrammas komponentēm, vai arī paziņot citām komponentēm par sava stāvokļa izmaiņām.