MVC-arkkitehtuuri

MVC-arkkitehtuuri (sanoista model-view-controller eli malli–näkymä–käsittelijä) on ohjelmistoarkkitehtuuri, jonka tarkoituksena on käyttöliittymän erottaminen sovellusaluetiedosta. MVC-arkkitehtuuria käytetään etenkin graafisten käyttöliittymien suunnittelussa ja ohjelmoinnissa. Se on kehitetty alun perin Smalltalk-kielen yhteydessä Xerox PARC:issa.

Osat 
MVC-arkkitehtuurissa ohjelma jaetaan kolmeen osaan: malliin, näkymään ja käsittelijään.
 Malli (model) kuvaa järjestelmän tiedon tallentamisen, ylläpidon ja käsittelyn (tietokantakuvaus).
 Näkymä (View) määrittää käyttöliittymän ulkoasun ja tietojen näytön esityksen käyttöliittymässä.
 Käsittelijä (Controller) / Ohjain eli kontrolleri vastaanottaa käyttäjältä tulevat käskyt sekä muuttaa mallia ja näkymää vastauksena niihin.

Ominaisuudet

Etuja 
 Malli ei riipu näkymästä eikä ohjaimesta.
 Malli voidaan suunnitella, ohjelmoida ja testata riippumatta järjestelmän muista osista.
 Samaan malliin voidaan tehdä erilaisia käyttöliittymiä. Saman järjestelmän tietoon voi olla pääsy esimerkiksi natiivilla graafisella käyttöliittymällä ja webbikäyttöliittymällä.
 Näkymän ja ohjaimen toimintaan voidaan tehdä muutoksia muuttamatta mallia.
 Näkymän ja ohjaimen riippuvuus toisistaan on verrattain pieni.
 Tietonäyttöä (käyttöliittymä) voidaan muuttaa muuttamatta tiedonkäsittelijää (UI-ohjainta).
 Tietokäsittelijää (ja -mallia) voidaan muuttaa muuttamatta näkymää.
 Käyttöliittymän asynkronointi (ei-samanaikaisen tiedonvaihdon toteuttaminen) on helppoa.

Haittoja 
 Sovellusaluekuvauksen jalkautuvat  UVC-arkkitehtuurin mukaisessa järjestelmässä kolmelle tasolle (tietonäkymä, tietomalli ja tietokäsittelijä). Järjestelmän sisällön ymmärtäminen voi näin muodostua vaikeaksi.
 Malli ei itsessään ohjaa kehittäjiä optimoimaan tietokantahakuja käyttöliittymän tarpeiden näkökulmasta. Tämän vuoksi tietokannasta haetaan helposti tarpeetonta tietoa ja tiedon hakuun käytetään tarpeeseen optimoimattomia SQL-lauseita. Tämä aiheuttaa helposti suorituskykyongelmia laajoissa sovelluksissa. Suorituskykyongelmat voidaan kustannustehokkaasti välttää kiinnittämällä huomiota tähän ongelmaan sovelluskehityksen alusta asti.

Ohjelmointi
Ohjelmistoarkkitehtuuri
Käyttöliittymät
Seulonnan keskeiset artikkelit