Et nettapplikasjonsrammeverk , innen informatikk og spesielt i webprogrammering , er et programvarerammeverk utviklet for å støtte utviklingen av dynamiske nettsteder , webapplikasjoner og webtjenester .
Målet er å lette arbeidet knyttet til utviklingen av de vanligste aktivitetene til en nettapplikasjon av utvikleren . Et av de grunnleggende prinsippene er oppsummert med akronymet DRY ( ikke gjenta deg selv ), i den forstand at bruk av teknikker for gjenbruk av kode er sterkt anbefalt . Mange rammeverk gir for eksempel biblioteker for tilgang til databaser , for å lage HTML - maler eller for å administrere brukerens økt [1] .
Eksempler på nettapplikasjonsrammeverk er Apache Struts , Spring , Swing , Java Server Faces ( Oracle ADF ), Symfony , Phalcon , CodeIgniter , Angular , ReactJS , Laravel . I store organisasjoner som banker eller store selskaper brukes proprietære rammeverk, varianter av rammeverket i kjente teknologier, ofte for å øke sikkerhetsnivået [1] .
Frameworks setter vanligvis kontrollflyten til et program og lar rammebrukeren "hekte" til den flyten ved å avsløre ulike hendelser [2] . Dette designmønsteret med "omvendt kontroll" betraktes som et prinsipp som definerer et rammeverk og fordeler koden ved å håndheve en felles flyt for et team som alle kan tilpasse på lignende måter [2] . For eksempel tillater noen populære "mikrorammeverk" som Ruby's Sinatra (som inspirerte Express.js) mellomvarehooks før og etter HTTP -forespørsler . Disse mellomvarefunksjonene kan være hva som helst og lar brukeren definere registrering, autentisering, øktadministrasjon og omdirigering [3] .
Mange rammeverk følger Model-view-controller (MVC) arkitekturmodell for å skille forretningsregeldatamodellen fra brukergrensesnittet [4] .
Push-basert vs. pull-basertDe fleste MVC-rammeverk følger en push-basert arkitektur også kalt "handlingsbasert". Disse rammeverkene bruker handlinger som utfører den nødvendige behandlingen og deretter "passer" dataene til visningslaget for å gjengi resultatene [5] . Django , Ruby on Rails , Symfony , Spring MVC , Stripes , Sails.js , CodeIgniter [6] er eksempler på denne arkitekturen.
I trelagsorganisasjonen er applikasjoner strukturert på tre fysiske nivåer: klient, applikasjon og database [7] [8] [9] [10] . Databasen er vanligvis en RDBMS . Applikasjonen inneholder forretningslogikken, kjører på en server og kommuniserer med klienten via HTTP [11] . Klienten på nettapplikasjonene er en nettleser som kjører HTML generert av applikasjonslaget [12] [13] . Begrepet må ikke forveksles med MVC, hvor det, i motsetning til trelagsarkitekturen, anses som god praksis å holde forretningslogikken borte fra kontrolleren, «mellomlaget» [14] [15] .
Rammeverket er bygget for å støtte bygging av Internett-applikasjoner basert på et enkelt programmeringsspråk, alt fra generelle verktøy som Zend Framework og Ruby on Rails , som øker mulighetene til et spesifikt språk, til programmerbare morsmålspakker bygget rundt en spesifikk bruker applikasjoner, som innholdsstyringssystemer, noen mobile utviklingsverktøy og noen portalverktøy [16] .