Rammeverk for webapplikasjoner

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] .

Funksjoner

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] .

Typer rammeverkarkitekturer

Model-view-controller

Mange rammeverk følger Model-view-controller (MVC) arkitekturmodell for å skille forretningsregeldatamodellen fra brukergrensesnittet [4] .

Push-basert vs. pull-basert

De 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.

Tre-lags organisasjon

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] .

Applikasjoner

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] .

Merknader

  1. ^ a b Laura Bartoli, What is a web framework , på nephila.digital , 3. oktober 2014. Hentet 25. august 2021 .
  2. ^ a b Martin Fowler, bliki: InversionOfControl , fra martininfowler.com . Hentet 6. mars 2016 .
  3. ^ Qiang Xue, Capital One Engineering - Philosophies that Shaped Successful Frameworks , su capitalone.io . Hentet 6. mars 2016 .
  4. ^ pdf ( PDF ), på dia.uniroma3.it .
  5. ^ Kris Thomson, Clarification on MVC = Pull and MVC Push , theserverside.com , 29. oktober 2003. Hentet 29. juli 2007 .
  6. ^ Hva er de grunnleggende forskjellene mellom Struts og JSF , på cwiki.apache.org , Struts.apache.org, 14. februar 2011. Hentet 14. juni 2013 .
  7. ^ Microsoft, trelags distribusjon , på msdn.microsoft.com . Hentet 19. september 2011 .
  8. ^ Oracle, clustering_concepts_10en ( PDF ), på download.oracle.com . Hentet 19. september 2011 .
  9. ^ Robert R. Perkoski, Introduction to Web Development ( PPT ), på sis.pitt.edu (arkivert fra originalen 7. november 2013) .
  10. ^ IBM, Bruke Client Access Express i et trelagsmiljø , på publib.boulder.ibm.com . Hentet 19. september 2011 .
  11. ^ Oracle, Understanding the Three-Tier Architecture , på download.oracle.com . Hentet 19. september 2011 .
  12. ^ Microsoft, Pragmatic Architecture: Layering , på msdn.microsoft.com . Hentet 19. september 2011 .
  13. ^ Arokia, 3-lags nettarkitektur , på arokiait.com . Hentet 19. september 2011 .
  14. ^ ASP.NET MVC Controller Best Practices , på arrangeactassert.com . Hentet 19. september 2011 (arkivert fra originalen 11. oktober 2011) .
  15. ^ Jamis Buck, Skinny Controller, Fat Model , på weblog.jamisbuck.org (arkivert fra originalen 16. mai 2015) .
  16. ^ Komme i gang med Web Frameworks , Wired Magazine . Hentet 2. april 2018 .

Relaterte elementer